{"version":3,"sources":["webpack:///./app/components/m/component-selector/index.js"],"names":["getLinks","document","querySelectorAll","handleLinkClick","e","preventDefault","link","currentTarget","filterName","getAttribute","filterValue","inputElement","querySelector","filters","closest","forEach","el","disabled","removeAttribute","click","highlightLink","handleFilterClick","filter","input","parentNode","linkElement","isResetted","handleResetSingleFilterClick","chipLink","resetLinks","handleBtnResetAllClick","linkEl","links","classList","remove","add","addEventListener","filterComp","window","wirtgen","componentSelector","apply","_this$btnResetAll","filterChips","btnResetAll","componentFilters","componentLinks","componentFilter","dataset","filtername","filtervalue","checked","push","length","name","value","filterChip","reset","_this$btnResetAll2","removeEventListener"],"mappings":"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","file":"component-selector.chunk.js","sourcesContent":["//\r\nconst getLinks = () => document.querySelectorAll('.component-selector .link');\r\n\r\n/**\r\n *\r\n * @param e\r\n */\r\nconst handleLinkClick = (e) => {\r\n e.preventDefault();\r\n\r\n // get link element and the required\r\n // info to determine which filter\r\n // should be activated.\r\n const link = e.currentTarget;\r\n const filterName = link.getAttribute('data-filtername');\r\n const filterValue = link.getAttribute('data-filtervalue');\r\n const inputElement = document.querySelector(\"[name='\" + filterName + \"'][value='\" + filterValue + \"']\");\r\n\r\n // simulate element click if\r\n // the filter was found\r\n if (inputElement) {\r\n const filters = inputElement.closest('.list--filter').querySelectorAll('input');\r\n filters.forEach((el) => {\r\n el.disabled = 'disabled';\r\n el.removeAttribute('checked');\r\n });\r\n inputElement.removeAttribute('disabled');\r\n inputElement.click();\r\n }\r\n\r\n // highlight the link\r\n highlightLink(link);\r\n};\r\n\r\n/**\r\n *\r\n * @param e\r\n */\r\nconst handleFilterClick = (e) => {\r\n // don't prevent the default action of the event\r\n // as the input value of the component won't be\r\n // changed and therefore the filter component\r\n // won't work any more\r\n // e.preventDefault();\r\n\r\n //\r\n const filter = e.currentTarget;\r\n const input = filter.parentNode.querySelector('input');\r\n const filterName = input.getAttribute('name');\r\n const filterValue = input.getAttribute('value');\r\n const linkElement = document.querySelector(\r\n `.component-selector .link[data-filtername='${filterName}'][data-filtervalue='${filterValue}']`\r\n );\r\n\r\n highlightLink(linkElement);\r\n};\r\n\r\n// Reset flag to trigger the correct classes when resetting filters\r\nlet isResetted = false;\r\n\r\n/**\r\n *\r\n * @param e\r\n */\r\nconst handleResetSingleFilterClick = (e) => {\r\n e.preventDefault();\r\n\r\n const chipLink = e.currentTarget;\r\n const filterName = chipLink.getAttribute('data-filtername');\r\n const filterValue = chipLink.getAttribute('data-filtervalue');\r\n /*\r\n const linkEl = document.querySelector(\r\n `.component-selector .link[data-filtername='${filterName}'][data-filtervalue='${filterValue}']`\r\n );\r\n\r\n if (linkEl) {\r\n resetLink(linkEl);\r\n }*/\r\n\r\n resetLinks();\r\n isResetted = true; // Set isResetted to true when a single filter is reset\r\n};\r\n\r\n/**\r\n *\r\n * @param e\r\n */\r\nconst handleBtnResetAllClick = (e) => {\r\n //\r\n resetLinks();\r\n isResetted = true; // Set isResetted to true when all filters are reset\r\n};\r\n\r\n/**\r\n * Highlights the given link from the component-\r\n * selection and deactivates the other ones.\r\n * @param linkEl\r\n */\r\nconst highlightLink = (linkEl) => {\r\n // get all links and iterate\r\n const links = getLinks();\r\n for (const link of links) {\r\n // (re)-activate all\r\n link.classList.remove('link__deactive');\r\n link.classList.remove('link--active');\r\n\r\n // skip if we got the link\r\n // we must highlight\r\n if (link === linkEl) {\r\n link.classList.add('link--active');\r\n continue;\r\n }\r\n\r\n // deactivate the current link\r\n link.classList.add('link__deactive');\r\n }\r\n};\r\n\r\n/**\r\n * Removes the highlighted state from\r\n * the given link\r\n */\r\n// const resetLink = (linkEl) => {\r\nconst resetLinks = () => {\r\n const links = getLinks();\r\n for (const link of links) {\r\n /*\r\n if (link === linkEl) {\r\n link.classList.add('link__deactive');\r\n }*/\r\n link.classList.remove('link__deactive');\r\n link.classList.remove('link--active');\r\n link.classList.remove('link--disabled');\r\n }\r\n};\r\n\r\n/**\r\n * DOM ready\r\n */\r\n(function () {\r\n // get all links and bind the click-event\r\n const links = document.querySelectorAll('.component-selector .link');\r\n for (const link of links) {\r\n //\r\n link.addEventListener('click', handleLinkClick);\r\n }\r\n\r\n // get all filter tags so were able to update our\r\n // links if the tags has changed\r\n const filters = document.querySelectorAll('.pam-filter__filters label.tag--label');\r\n for (const filterComp of filters) {\r\n filterComp.addEventListener('click', handleFilterClick);\r\n }\r\n\r\n /*\r\n // get all chips to reset a single filter.\r\n const filterChips = document.querySelectorAll('.pam-filter__resets-chips .tag');\r\n for (const filterChip of filterChips) {\r\n filterChip.addEventListener('click', handleResetSingleFilterClick);\r\n }\r\n\r\n // get the button for resetting all filters\r\n const btnResetAll = document.querySelector('.pam-filter__resets-reset-all .link');\r\n if (btnResetAll !== null) {\r\n btnResetAll.addEventListener('click', handleBtnResetAllClick);\r\n }*/\r\n})();\r\n\r\nwindow.wirtgen = wirtgen ? wirtgen : {};\r\nwirtgen.componentSelector = {\r\n /**\r\n * Apply collects all available chips to reset a single\r\n * filter and the btn to reset all filters.\r\n */\r\n apply: () => {\r\n // get elements\r\n this.filterChips = document.querySelectorAll('.pam-filter__resets-chips .tag');\r\n this.btnResetAll = document.querySelector('.pam-filter__resets-reset-all .link');\r\n\r\n const filters = document.querySelectorAll('.filter input');\r\n const componentFilters = [];\r\n const componentLinks = document.querySelectorAll('.component-selector .link');\r\n componentLinks.forEach((link) => {\r\n const componentFilter = document.querySelector(\r\n `.filter input[name=\"${link.dataset.filtername}\"][value=\"${link.dataset.filtervalue}\"]`\r\n );\r\n if (componentFilter?.checked) {\r\n componentFilters.push(componentFilter);\r\n }\r\n });\r\n componentLinks.forEach((link) => {\r\n if (componentFilters.length) {\r\n link.classList.add('link__deactive');\r\n } else {\r\n link.classList.remove('link__deactive');\r\n }\r\n });\r\n\r\n filters.forEach((filter) => {\r\n const linkElement = document.querySelector(\r\n `.component-selector .link[data-filtername=\"${filter.name}\"][data-filtervalue=\"${filter.value}\"]`\r\n );\r\n // remove disabled state from link-element\r\n if (linkElement) {\r\n linkElement.classList.remove('link--disabled');\r\n }\r\n // if checked remove deactive state and mark as active\r\n if (filter.checked && linkElement) {\r\n linkElement.classList.remove('link__deactive');\r\n linkElement.classList.add('link--active');\r\n }\r\n // if not checked remove active state and mark as de-active\r\n if (!filter.checked && linkElement && !isResetted) {\r\n linkElement.classList.remove('link--active');\r\n linkElement.classList.add('link__deactive');\r\n }\r\n // add disabled state to link-element if according filter is disabled\r\n if (filter.disabled && linkElement) {\r\n linkElement.classList.remove('link--active');\r\n linkElement.classList.add('link__deactive');\r\n linkElement.classList.add('link--disabled');\r\n }\r\n });\r\n // init filter chips\r\n for (const filterChip of this.filterChips) {\r\n filterChip.addEventListener('click', handleResetSingleFilterClick);\r\n }\r\n\r\n this.btnResetAll?.addEventListener('click', handleBtnResetAllClick);\r\n },\r\n\r\n /**\r\n * HighlightLink will highlight the link with the\r\n * given name and value within our component selector.\r\n * @param filterName\r\n * @param filterValue\r\n */\r\n highlightLink: (filterName, filterValue) => {\r\n const linkElement = document.querySelector(\r\n `.component-selector .link[data-filtername='${filterName}'][data-filtervalue='${filterValue}']`\r\n );\r\n\r\n highlightLink(linkElement);\r\n },\r\n\r\n /**\r\n * Reset removes all added event listeners added via apply\r\n */\r\n reset: () => {\r\n isResetted = false; // Reset isResetted to false when the component selector is reset\r\n for (const filterChip of this.filterChips) {\r\n filterChip.removeEventListener('click', handleResetSingleFilterClick);\r\n }\r\n this.btnResetAll?.removeEventListener('click', handleBtnResetAllClick);\r\n },\r\n};\r\n"],"sourceRoot":""}