{"version":3,"file":"showhide.345dd7559ea071009f75.min.js","mappings":"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","sources":["webpack://intracto-deheus/./Frontend/js/components/showhide/index.js"],"sourcesContent":["'use strict';\r\n\r\nconst classNames = {\r\n active: 'is-active',\r\n targetActive: 'target-active',\r\n};\r\nconst dataset = {\r\n hidden: 'data-showhide-hidden-attribute',\r\n};\r\n\r\nexport default class Showhide {\r\n constructor(component) {\r\n this.component = component;\r\n this.toggleSelector = component.getAttribute('data-showhide-toggle');\r\n this.toggleTargets = this.toggleSelector\r\n ? document.querySelectorAll(this.toggleSelector)\r\n : null;\r\n this.showSelector = component.getAttribute('data-showhide-show');\r\n this.showTargets = this.showSelector ? document.querySelectorAll(this.showSelector) : null;\r\n this.hideSelector = component.getAttribute('data-showhide-hide');\r\n this.hideTargets = this.hideSelector ? document.querySelectorAll(this.hideSelector) : null;\r\n\r\n this.init();\r\n this.hideSimpleDropdown();\r\n }\r\n\r\n _toggleAttributes(element, attribute) {\r\n if (element.hasAttribute(attribute)) {\r\n element.removeAttribute(attribute);\r\n } else {\r\n element.setAttribute(attribute, 'true');\r\n }\r\n }\r\n\r\n _handleToggleTargets() {\r\n const activeElements = document.querySelectorAll(`.${classNames.targetActive}`);\r\n activeElements.forEach((element) => {\r\n if (element !== this.component) {\r\n element.classList.remove(classNames.targetActive);\r\n element.setAttribute('aria-expanded', 'false');\r\n }\r\n });\r\n\r\n this.component.classList.toggle(classNames.targetActive);\r\n this.component.setAttribute(\r\n 'aria-expanded',\r\n this.component.classList.contains(classNames.targetActive)\r\n );\r\n this.toggleTargets.forEach((target) => {\r\n target.classList.toggle(classNames.active);\r\n this._toggleAttributes(target, 'aria-hidden');\r\n });\r\n }\r\n\r\n _handleHideTargets() {\r\n const triggers = document.querySelectorAll(\r\n `[data-showhide-show=\"${this.hideSelector}\"],[data-showhide-toggle=\"${this.hideSelector}\"]`\r\n );\r\n\r\n triggers.forEach((trigger) => {\r\n trigger.classList.remove(classNames.targetActive);\r\n trigger.setAttribute('aria-expanded', 'false');\r\n });\r\n\r\n this.hideTargets.forEach((target) => {\r\n if (this.component.hasAttribute(dataset.hidden)) {\r\n target.setAttribute('hidden', 'true');\r\n } else {\r\n target.classList.remove(classNames.active);\r\n }\r\n\r\n target.setAttribute('aria-hidden', 'true');\r\n });\r\n }\r\n\r\n _handleShowTargets() {\r\n this.component.classList.add(classNames.targetActive);\r\n this.component.setAttribute('aria-expanded', 'true');\r\n\r\n this.showTargets.forEach((target) => {\r\n if (this.component.hasAttribute(dataset.hidden)) {\r\n target.removeAttribute('hidden');\r\n } else {\r\n target.classList.add(classNames.active);\r\n }\r\n\r\n target.removeAttribute('aria-hidden');\r\n });\r\n }\r\n\r\n init() {\r\n if (this.toggleTargets) {\r\n this.component.addEventListener('click', this._handleToggleTargets.bind(this));\r\n }\r\n\r\n this.component.addEventListener('click', () => {\r\n if (this.hideTargets) {\r\n this._handleHideTargets();\r\n }\r\n if (this.showTargets) {\r\n this._handleShowTargets();\r\n }\r\n });\r\n }\r\n\r\n // Hide simple dropdown menu when clicked on document body (outside dropdown).\r\n hideSimpleDropdown() {\r\n document.addEventListener('click', function(e) {\r\n const clickTarget = e.target;\r\n const isSimpleDropdown = clickTarget.classList.contains('link--dropdown-simple');\r\n const isHeaderSearchTrigger = clickTarget.closest('.header-search-trigger') !== null;\r\n const isHeaderSearchInput = clickTarget.closest('.header-search-wrapper') !== null;\r\n\r\n // Check if click event is outside active element\r\n const isActiveElement = clickTarget.classList.contains('target-active');\r\n const isInsideActiveElement = clickTarget.closest('.target-active') !== null;\r\n\r\n if (!isActiveElement && !isInsideActiveElement) {\r\n const activeElements = document.querySelectorAll('.target-active');\r\n\r\n activeElements.forEach((element) => {\r\n element.classList.remove('target-active');\r\n element.setAttribute('aria-expanded', 'false');\r\n });\r\n }\r\n\r\n if (!isSimpleDropdown) {\r\n const simpleDropdowns = document.querySelectorAll('.link--dropdown-simple');\r\n const menus = document.querySelectorAll('.bu-header__nav__select');\r\n\r\n simpleDropdowns.forEach((target) => {\r\n target.classList.remove('target-active');\r\n target.setAttribute('aria-expanded', 'false');\r\n });\r\n\r\n menus.forEach((target) => {\r\n target.classList.remove('is-active');\r\n target.removeAttribute('aria-hidden');\r\n });\r\n }\r\n\r\n if (!(isHeaderSearchTrigger || isHeaderSearchInput)) {\r\n const elements = document.querySelectorAll(\r\n '.bu-header__wrapper .header-search.is-active'\r\n );\r\n\r\n elements.forEach((e) => {\r\n e.classList.remove('is-active');\r\n });\r\n }\r\n });\r\n }\r\n}\r\n"],"names":["classNames","dataset","Showhide","constructor","component","this","toggleSelector","getAttribute","toggleTargets","document","querySelectorAll","showSelector","showTargets","hideSelector","hideTargets","init","hideSimpleDropdown","_toggleAttributes","element","attribute","hasAttribute","removeAttribute","setAttribute","_handleToggleTargets","forEach","classList","remove","toggle","contains","target","_handleHideTargets","trigger","_handleShowTargets","add","addEventListener","bind","e","clickTarget","isSimpleDropdown","isHeaderSearchTrigger","closest","isHeaderSearchInput","isActiveElement","isInsideActiveElement","simpleDropdowns","menus"],"sourceRoot":""}