{"version":3,"file":"js/9988.5ac04a3c4e43a2c1.js","mappings":"wKAIA,MAAMA,EAAuBC,IACzB,MAAMC,EAAQ,IAAID,EAAOE,iBAAoC,iCACvDC,EAAeH,EAAOI,cAA2B,gCAEvD,IAAKD,GAAiC,IAAjBF,EAAMI,OAAc,OACzC,MAAM,KAAEC,IAASC,EAAAA,EAAAA,MAEjB,IAAIC,EAA8B,GAElC,MAAMC,EAAaA,CAACC,EAAeC,GAAmB,KAClD,MAAMC,EAAgBX,EAAMS,GAC5B,IAAKE,EAAe,OAEpB,MAAMC,EAAeL,EAAkBE,GACvCP,EAAaW,MAAMC,MAAQ,GAAGF,MAE9B,MAAMG,EAAaR,EAAkBS,MAAM,EAAGP,GAAOQ,QAAO,CAACC,EAAKJ,IAAUI,EAAMJ,GAAO,GAEzF,IAAIK,EAAWC,EAAAA,GAAoBC,oBAC/BX,IACAS,EAAW,GAGfd,EAAKiB,GAAGpB,EAAc,CAClBqB,WAAYR,EACZI,SAAUA,EACVK,KAAMC,EAAAA,GAAgBC,iBACxB,EAGAC,GAAqBC,EAAAA,EAAAA,IAAI,IAC/BC,EAAAA,EAAAA,IAAMF,GAAqBG,IACvBtB,EAAWsB,EAAgB,IAG/B,MAAMC,EAAmBC,IACrBzB,EAAoByB,EAAQC,KAAKC,GAAUA,EAAMC,cAAc,GAAGC,YAAW,EAGjFpC,EAAMqC,SAAQ,CAACC,EAAM7B,KACjB6B,EAAKC,iBAAiB,SAAS,KAC3B,MAAMC,EAAsBxC,EAAM2B,EAAmBc,OACrDD,EAAoBE,UAAUC,OAAO,aAErC,MAAMC,EAAwBJ,EAAoBK,QAAQP,KACpDQ,EAAsBC,SAASC,eAAeJ,GAChDE,GACAA,EAAoBJ,UAAUO,IAAI,UAGtC,MAAMC,EAAsBZ,EAAKO,QAAQP,KACnCa,EAAoBJ,SAASC,eAAeE,GAC9CC,GACAA,EAAkBT,UAAUC,OAAO,UAGvChB,EAAmBc,MAAQhC,EAC3B6B,EAAKI,UAAUO,IAAI,YAAY,GACjC,IAGN,MAAMG,EAAiB,IAAIC,gBAAgBrB,IACvCD,EAAgBC,GAChBxB,EAAWmB,EAAmBc,OAAO,EAAK,IAG9CzC,EAAMqC,SAASC,GAASc,EAAeE,QAAQhB,KAE/CiB,OAAOhB,iBAAiB,gBAAgB,KACpCa,EAAeI,YAAY,GAC7B,GAGNC,EAAAA,EAAAA,IAAc,KACV,MAAMC,EAAUX,SAAS9C,iBAA8B,uDACvDyD,EAAQrB,SAASsB,GAAM7D,EAAoB6D,IAAG,G,kBCzE5C,SAAUF,EAAcG,GAC1B,GAA4B,YAAxBb,SAASc,WACT,OAAOD,IAEPb,SAASR,iBAAiB,mBAAoBqB,EAEtD,C","sources":["webpack://@sazka/web/./js/app/shared/design-system/navigation/segmented-picker/_ds-segmented-picker.ts","webpack://@sazka/web/../../libs/utils/document-ready.ts"],"sourcesContent":["import { documentReady } from \"@sazka/utils/document-ready\";\r\nimport { CustomEaseDurations, CustomEaseNames, useGsap } from \"@sazka/utils/gsap-register\";\r\nimport { ref, watch } from \"vue\";\r\n\r\nconst initSegmentedPicker = (picker: HTMLElement) => {\r\n    const items = [...picker.querySelectorAll<HTMLButtonElement>(\".ds-segmented-picker__toggle\")];\r\n    const pickerSlider = picker.querySelector<HTMLElement>(\".ds-segmented-picker__slider\");\r\n\r\n    if (!pickerSlider || items.length === 0) return;\r\n    const { gsap } = useGsap();\r\n\r\n    let buttonWidthsCache: number[] = [];\r\n\r\n    const moveSlider = (index: number, withoutAnimation = false) => {\r\n        const currentButton = items[index];\r\n        if (!currentButton) return;\r\n\r\n        const currentWidth = buttonWidthsCache[index];\r\n        pickerSlider.style.width = `${currentWidth}px`;\r\n\r\n        const totalWidth = buttonWidthsCache.slice(0, index).reduce((acc, width) => acc + width, 0);\r\n\r\n        let duration = CustomEaseDurations.MOTION_DURATION_250;\r\n        if (withoutAnimation) {\r\n            duration = 0;\r\n        }\r\n\r\n        gsap.to(pickerSlider, {\r\n            translateX: totalWidth,\r\n            duration: duration,\r\n            ease: CustomEaseNames.MOTION_EASE_OUT,\r\n        });\r\n    };\r\n\r\n    const currentActiveIndex = ref(0);\r\n    watch(currentActiveIndex, (newCurrentIndex) => {\r\n        moveSlider(newCurrentIndex);\r\n    });\r\n\r\n    const calculateWidths = (entries: ResizeObserverEntry[]) => {\r\n        buttonWidthsCache = entries.map((entry) => entry.borderBoxSize[0].inlineSize);\r\n    };\r\n\r\n    items.forEach((item, index) => {\r\n        item.addEventListener(\"click\", () => {\r\n            const currentActiveButton = items[currentActiveIndex.value];\r\n            currentActiveButton.classList.remove(\"is-active\");\r\n\r\n            const inactiveItemElementId = currentActiveButton.dataset.item;\r\n            const inactiveItemElement = document.getElementById(inactiveItemElementId);\r\n            if (inactiveItemElement) {\r\n                inactiveItemElement.classList.add(\"d-none\");\r\n            }\r\n\r\n            const activeItemElementId = item.dataset.item;\r\n            const activeItemElement = document.getElementById(activeItemElementId);\r\n            if (activeItemElement) {\r\n                activeItemElement.classList.remove(\"d-none\");\r\n            }\r\n\r\n            currentActiveIndex.value = index;\r\n            item.classList.add(\"is-active\");\r\n        });\r\n    });\r\n\r\n    const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\r\n        calculateWidths(entries);\r\n        moveSlider(currentActiveIndex.value, true);\r\n    });\r\n\r\n    items.forEach((item) => resizeObserver.observe(item));\r\n\r\n    window.addEventListener(\"beforeunload\", () => {\r\n        resizeObserver.disconnect();\r\n    });\r\n};\r\n\r\ndocumentReady(() => {\r\n    const pickers = document.querySelectorAll<HTMLElement>(\".ds-segmented-picker.ds-segmented-picker--need-init\");\r\n    pickers.forEach((p) => initSegmentedPicker(p));\r\n});\r\n","/**\r\n * Vanila JS variant to jQuery $(() => {}).\r\n * @param {callback} callback\r\n * @example - documentReady(() => {}).\r\n * This function is binding to document.ready\r\n * */\r\nexport function documentReady(callback: () => void) {\r\n    if (document.readyState !== \"loading\") {\r\n        return callback();\r\n    } else {\r\n        document.addEventListener(\"DOMContentLoaded\", callback);\r\n    }\r\n}\r\n"],"names":["initSegmentedPicker","picker","items","querySelectorAll","pickerSlider","querySelector","length","gsap","useGsap","buttonWidthsCache","moveSlider","index","withoutAnimation","currentButton","currentWidth","style","width","totalWidth","slice","reduce","acc","duration","CustomEaseDurations","MOTION_DURATION_250","to","translateX","ease","CustomEaseNames","MOTION_EASE_OUT","currentActiveIndex","ref","watch","newCurrentIndex","calculateWidths","entries","map","entry","borderBoxSize","inlineSize","forEach","item","addEventListener","currentActiveButton","value","classList","remove","inactiveItemElementId","dataset","inactiveItemElement","document","getElementById","add","activeItemElementId","activeItemElement","resizeObserver","ResizeObserver","observe","window","disconnect","documentReady","pickers","p","callback","readyState"],"sourceRoot":""}