{"version":3,"file":"filter-product-list.js","sources":["../../../../src/assets/scripts/filter-product-list.entry.js"],"sourcesContent":["// @ts-nocheck\n\nwindow.arjoFilterProductListModule =\n window.arjoFilterProductListModule ||\n (() => {\n const state = {\n isInitialized: false,\n elements: {},\n };\n\n const setUp = () => {\n const filters = [...document.querySelectorAll('.arjo-m-filter-product-list')];\n\n filters.forEach((element) => {\n const filterId = element.dataset.filterId;\n if (!filterId) return;\n\n state.elements[filterId] = (() => {\n const dropdown = element.querySelector('.arjo-m-filter-product-list__dropdown');\n if (!dropdown) return;\n const options = element.querySelector('.arjo-m-filter-product-list__options');\n if (!options) return;\n\n const innerState = {\n expanded: false,\n currentValue: undefined,\n options: [],\n };\n\n const createOption = ({ value, label, isDefault, trackingLabel }) => {\n return `\n \n \n `;\n };\n\n const updateDom = (dispatchEvent = false, generateOptions = false, init) => {\n if (generateOptions) {\n options.innerHTML = '';\n if (innerState.options.length > 0) {\n element.classList.remove('hidden');\n innerState.options.forEach((opt) => {\n options.innerHTML += createOption(opt);\n });\n } else {\n element.classList.add('hidden');\n }\n }\n\n const parseHtmlText = (text) => {\n if (!text) return text;\n\n let div = document.createElement('div');\n\n div.innerHTML = text;\n return div.innerHTML;\n };\n\n const dropdownLabel = dropdown.querySelector('.arjo-m-filter-product-list__dropdown-text');\n if (innerState.options.length > 0) {\n const selectedValue = innerState.options.find((opt) => parseHtmlText(opt.value) == parseHtmlText(innerState.currentValue));\n if (!!selectedValue) {\n dropdownLabel.innerHTML = selectedValue.label;\n } else {\n dropdownLabel.innerHTML = '';\n }\n } else {\n dropdownLabel.innerHTML = '';\n }\n\n if (innerState.expanded) {\n dropdown.setAttribute('expanded', '');\n Object.keys(state.elements).forEach((key) => {\n if (key === filterId) return;\n const otherBlock = state.elements[key];\n otherBlock.setState({\n expanded: false,\n currentValue: otherBlock.currentValue,\n });\n });\n } else {\n dropdown.removeAttribute('expanded');\n }\n\n if (dispatchEvent) {\n const currentOpt = innerState.options.find((o) => o.value === innerState.currentValue);\n\n const customEvent = new CustomEvent(`filterProductList:${filterId}`, {\n detail: {\n filterForValue: innerState.currentValue,\n filterForTracking: currentOpt?.trackingLabel ?? currentOpt?.label,\n init,\n },\n });\n window.dispatchEvent(customEvent);\n }\n };\n\n const setState = ({expanded, currentValue, options, init}) => {\n innerState.expanded = expanded;\n const oldValue = innerState.currentValue;\n innerState.currentValue = currentValue;\n if (options !== undefined) innerState.options = [].concat(options);\n updateDom(oldValue !== currentValue || options !== undefined, options !== undefined, init);\n };\n\n dropdown.addEventListener('click', () => {\n setState({ expanded: !innerState.expanded, currentValue: innerState.currentValue });\n });\n\n element.addEventListener('change', (e) => {\n const currentValue = e.target.value;\n e.target.setAttribute('checked', true);\n setState({ expanded: false, currentValue: currentValue });\n });\n\n return {\n get currentValue() {\n return innerState.currentValue;\n },\n setState,\n };\n })();\n });\n };\n\n const init = () => {\n if (state.isInitialized) return;\n setUp();\n state.isInitialized = true;\n };\n\n const getElement = (id) => state.elements[id];\n return { init, getElement };\n })();\nwindow.addEventListener('load', window.arjoFilterProductListModule.init);\n"],"names":["state","setUp","element","filterId","dropdown","options","innerState","createOption","value","label","isDefault","trackingLabel","updateDom","dispatchEvent","generateOptions","init","opt","parseHtmlText","text","div","dropdownLabel","selectedValue","key","otherBlock","currentOpt","o","customEvent","setState","expanded","currentValue","oldValue","e","id"],"mappings":"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"}