{"version":3,"file":"accordion.js","mappings":"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","sources":["webpack://portent-accordion/./src/accordion.js"],"sourcesContent":["const Accordion = () => {\n\t//grab all accordion triggers\n\tconst accordionToggles = document.querySelectorAll(\n\t\t\".portent-accordion__toggle\"\n\t);\n\n\t//grab all accordion content\n\tconst accordionContents = document.querySelectorAll(\n\t\t\".portent-accordion__content\"\n\t);\n\n\t//mobile check\n\tconst isMobile = window.matchMedia(\"(max-width: 768px)\");\n\n\tconst touchSupported = \"ontouchstart\" in window;\n\tconst pointerSupported = \"pointerdown\" in window;\n\n\tlet timeout;\n\n\tconst skipClickDelay = (e) => {\n\t\te.preventDefault();\n\t\te.target.click();\n\t};\n\n\t//Sets attributes on each element\n\tconst setAriaAttr = (el, ariaType, newProperty) => {\n\t\tel.setAttribute(ariaType, newProperty);\n\t};\n\n\t//Set the accesibility for the accordion.\n\tconst setAccordionAria = (el1, el2, expanded) => {\n\t\tswitch (expanded) {\n\t\t\tcase \"true\":\n\t\t\t\tsetAriaAttr(el1, \"aria-expanded\", \"true\");\n\t\t\t\tsetAriaAttr(el2, \"aria-hidden\", \"false\");\n\t\t\t\tbreak;\n\t\t\tcase \"false\":\n\t\t\t\tsetAriaAttr(el1, \"aria-expanded\", \"false\");\n\t\t\t\tsetAriaAttr(el2, \"aria-hidden\", \"true\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t//toggle the accordion properties\n\tconst switchAccordion = (e) => {\n\t\te.preventDefault();\n\t\tlet thisTrigger = e.target;\n\t\tconsole.log(\"thisTrigger\", thisTrigger);\n\t\t//if caputring event within button text buubble up to parent.\n\t\tif (!thisTrigger.classList.contains(\"portent-accordion__toggle\")) {\n\t\t\tthisTrigger = thisTrigger.parentNode;\n\t\t}\n\t\tconst thisContent = thisTrigger.nextElementSibling;\n\n\t\tif (thisContent.classList.contains(\"is-collapsed\")) {\n\t\t\tsetAccordionAria(thisTrigger, thisContent, \"true\");\n\t\t} else {\n\t\t\tsetAccordionAria(thisTrigger, thisContent, \"false\");\n\t\t}\n\t\t// thisTrigger.classList.toggle(\"is-collapsed\");\n\t\tthisTrigger.classList.toggle(\"is-expanded\");\n\t\tthisContent.classList.toggle(\"is-collapsed\");\n\t\tthisContent.classList.toggle(\"is-expanded\");\n\n\t\tthisContent.classList.toggle(\"animateIn\");\n\t};\n\n\t//check if mobile or desktop\n\n\t//if mobile then remove collpased and click events\n\n\tconst initAccordion = () => {\n\t\tfor (let i = 0, len = accordionToggles.length; i < len; i++) {\n\t\t\tif (touchSupported) {\n\t\t\t\taccordionToggles[i].addEventListener(\n\t\t\t\t\t\"touchstart\",\n\t\t\t\t\tskipClickDelay,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (pointerSupported) {\n\t\t\t\taccordionToggles[i].addEventListener(\n\t\t\t\t\t\"pointerdown\",\n\t\t\t\t\tskipClickDelay,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t}\n\t\t\t//setAriaAttr(accordionToggles[i], \"aria-hidden\", \"false\");\n\t\t\taccordionToggles[i].addEventListener(\"click\", switchAccordion, false);\n\t\t}\n\n\t\tfor (let i = 0, len = accordionContents.length; i < len; i++) {\n\t\t\t//setAriaAttr(accordionContents[i], \"aria-hidden\", \"true\");\n\t\t\taccordionContents[i].classList.add(\"is-collapsed\");\n\t\t}\n\t};\n\n\t//destroy and remove functionality from accordion\n\tconst destroyAccordion = () => {\n\t\tfor (let i = 0, len = accordionToggles.length; i < len; i++) {\n\t\t\t//setAriaAttr(accordionToggles[i], \"aria-hidden\", \"true\");\n\t\t\taccordionToggles[i].removeEventListener(\"click\", switchAccordion, false);\n\t\t}\n\n\t\tfor (let i = 0, len = accordionContents.length; i < len; i++) {\n\t\t\t//setAriaAttr(accordionContents[i], \"aria-hidden\", \"false\");\n\t\t\taccordionContents[i].classList.remove(\"is-collapsed\");\n\t\t}\n\t};\n\n\t//toggle crate and destroy for browser events\n\tconst toggleLifecycle = () => {\n\t\tif (!isMobile.matches) {\n\t\t\tdestroyAccordion();\n\t\t} else {\n\t\t\tinitAccordion();\n\t\t}\n\t};\n\n\t//size check on window resize\n\twindow.onresize = () => {\n\t\t//debouncing to prevent multiple calls\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(toggleLifecycle, 250);\n\t};\n\n\t//init accordion\n\twindow.onload = toggleLifecycle;\n};\n\n//Load the accordion\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\tAccordion();\n});\n"],"names":["Accordion","accordionToggles","document","querySelectorAll","accordionContents","isMobile","window","matchMedia","touchSupported","pointerSupported","timeout","skipClickDelay","e","preventDefault","target","click","setAriaAttr","el","ariaType","newProperty","setAttribute","setAccordionAria","el1","el2","expanded","switchAccordion","thisTrigger","console","log","classList","contains","parentNode","thisContent","nextElementSibling","toggle","initAccordion","i","len","length","addEventListener","add","destroyAccordion","removeEventListener","remove","toggleLifecycle","matches","onresize","clearTimeout","setTimeout","onload"],"sourceRoot":""}