{"version":3,"file":"Src_Scripts_components_generic-dropdown-container_js.9f02d7def6d7eadc5009.js","sources":["webpack://haveselskabet/./Src/Scripts/components/generic-dropdown-container.js"],"sourcesContent":["export default class GenericDropdownContainer {\n    constructor(elm, args) {\n        const dropdowns = elm.querySelectorAll('[data-generic-dropdown]');\n        const numberContainer = document.querySelector('.filter-toggle__number-container .generic-dropdown__toggle__number');\n        const numberContainerOuter = document.querySelector('.filter-toggle__number-container');\n        dropdowns.forEach(dropdown => {\n            const container = dropdown.querySelector('[data-generic-dropdown-container]');\n            const opener = dropdown.querySelector('[data-generic-dropdown-opener]');\n            const active = dropdown.querySelector('[data-generic-dropdown-active]');\n            dropdown.addEventListener('change', () => {\n                const activeAmount = [...dropdown.querySelectorAll('[data-generic-dropdown-input]')].filter(x => x.type == 'checkbox' && x.checked || x.type == 'text' && x.value != '').length;\n\n                active.innerHTML = activeAmount < 1 ? '' : activeAmount;\n                if (activeAmount < 1) {\n                    active.innerHTML = '';\n                    numberContainerOuter.classList.add('filter-toggle__number-container--hide');\n                } else {\n                    numberContainerOuter.classList.remove('filter-toggle__number-container--hide');\n                    active.innerHTML = activeAmount;\n                }\n                const numbersArr = [];\n                sumFilters(numbersArr, numberContainer);\n            });\n            opener.onclick = () => {\n                const backdrop = document.querySelector('.filterable-map__backdrop');\n                const sortByDropdown = document.querySelector('.sort-products__dropdown-container');\n                const sortByLabel = document.querySelector('.sort-products__label');\n                const open = dropdown.classList.contains('generic-dropdown--active');\n                dropdowns.forEach(dropdown => dropdown.classList.remove('generic-dropdown--active'));\n                dropdown.classList.toggle('generic-dropdown--active', !open);\n\n                // Check if any of the dropdowns are active. If yes, then keep the backdrop\n                const activeDropdown = document.querySelector('.generic-dropdown--active');\n                if (activeDropdown) {\n                    backdrop.classList.add('filterable-map__backdrop--active');\n                } else {\n                    backdrop.classList.remove('filterable-map__backdrop--active');\n                }\n\n                if (sortByDropdown && sortByDropdown.classList.contains('sort-products__dropdown-container--active')) {\n                    sortByDropdown.classList.remove('sort-products__dropdown-container--active');\n                }\n                if (sortByLabel && sortByLabel.classList.contains('sort-products__label--active')) {\n                    sortByLabel.classList.remove('sort-products__label--active');\n                }\n            };\n        });\n\n        const verticalLines = [...document.querySelectorAll('.filter-bar__vertical-line')];\n        if (verticalLines && verticalLines.length > 0) {\n            verticalLines[0].style.display = 'none';\n        }\n\n        const sumFilters = (numbersArr, numberContainer) => {\n            // Go through the page/section and find the small sums\n            const dropdownsContainer = document.querySelector('.filter-bar__dropdowns-container');\n            const filterNumberElements = [...dropdownsContainer.querySelectorAll('.generic-dropdown__toggle__number')];\n\n            for (let i = 0; i < filterNumberElements.length; i++) {\n                if (filterNumberElements[i].innerHTML) {\n                    numbersArr.push(Number(filterNumberElements[i].innerHTML));\n                }\n            }\n            const sum = numbersArr.reduce(function (accumVariable, curValue) {\n                return accumVariable + curValue;\n            }, 0);\n            numberContainer.innerHTML = sum;\n\n        };\n    }\n}\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;;A;;A","sourceRoot":""}