{"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":""}