{"version":3,"file":"components-slide-toggle.0791efdbb17a06d98d29.js","mappings":"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","sources":["webpack://adjusters/./src/scripts/common/slide.js","webpack://adjusters/./src/scripts/components/slide-toggle.js","webpack://adjusters/./node_modules/slide-element/dist/index.es.js"],"sourcesContent":["import { up, down, toggle } from 'slide-element'\n\nexport const slideUp = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = up(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n\nexport const slideDown = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = down(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n\nexport const slideToggle = (element, duration = 400, display = 'block') => {\n element.classList.add('is-sliding')\n\n const slide = toggle(element, {\n duration,\n display,\n easing: 'ease-out',\n })\n\n slide.then(() => {\n element.classList.remove('is-sliding')\n })\n\n return slide\n}\n","import '@styles/components/slide-toggle.css'\nimport { on, off } from 'delegated-events'\nimport { slideToggle } from '@common/slide'\nimport scrollTo from '@common/scroll-to'\n\nconst handleToggle = async (e) => {\n if (e.type === 'keyup' && e.keyCode !== 13) {\n return\n }\n\n const trigger = e.target.closest('[data-slide-toggle]')\n\n if (!trigger) {\n return\n }\n\n const target = document.getElementById(trigger.getAttribute('aria-controls'))\n\n if (!target) {\n return\n }\n\n const otherTriggers = Array.from(\n document.querySelectorAll(`[data-slide-toggle][aria-controls=\"${trigger.getAttribute('aria-controls')}\"]`)\n ).filter((x) => x !== trigger)\n\n if (trigger.getAttribute('aria-expanded') === 'false') {\n trigger.setAttribute('aria-expanded', 'true')\n otherTriggers.forEach((x) => x.setAttribute('aria-expanded', 'true'))\n\n await slideToggle(target)\n\n if (trigger.dataset.slideToggle === 'scroll') {\n scrollTo(target)\n }\n\n const holder = trigger.closest('[data-slide-toggle-holder]')\n\n if (holder) {\n holder.classList.add('is-active')\n } else {\n trigger.parentNode.classList.add('is-active')\n otherTriggers.forEach((x) => x.parentNode.classList.add('is-active'))\n }\n } else {\n slideToggle(target)\n trigger.setAttribute('aria-expanded', 'false')\n otherTriggers.forEach((x) => x.setAttribute('aria-expanded', 'false'))\n\n const holder = trigger.closest('[data-slide-toggle-holder]')\n\n if (holder) {\n holder.classList.remove('is-active')\n } else {\n trigger.parentNode.classList.remove('is-active')\n otherTriggers.forEach((x) => x.parentNode.classList.remove('is-active'))\n }\n }\n}\n\nconst handleOpenedDefault = () => {\n document.querySelectorAll('[data-slide-toggle-opened-default]').forEach((el) => {\n const trigger = el.closest('[data-slide-toggle]')\n const target = document.getElementById(trigger.getAttribute('aria-controls'))\n\n if (trigger && target) {\n trigger.setAttribute('aria-expanded', 'true')\n target.classList.remove('hidden')\n }\n })\n}\n\nexport default {\n init: () => {\n const clickArgs = ['click', '[data-slide-toggle]', handleToggle]\n const keyArgs = ['keyup', '[data-slide-toggle]', handleToggle]\n\n off(...clickArgs)\n off(...keyArgs)\n\n on(...clickArgs)\n on(...keyArgs)\n\n handleOpenedDefault()\n },\n}\n","const afterNextRepaint = (callback) => {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n callback(resolve);\n });\n });\n });\n};\nlet defaultOptions = {\n easing: \"ease\",\n duration: 250,\n fill: \"backwards\",\n display: \"block\",\n overflow: \"hidden\"\n};\nlet nonAnimatableOptions = [\"overflow\", \"display\"];\nlet SlideController = (element, options) => {\n let mergedOptions = Object.assign({}, defaultOptions, options);\n let openDisplayValue = mergedOptions.display;\n let closedDisplayValue = \"none\";\n let setDisplay = (value) => element.style.display = value;\n let getHeight = () => element.clientHeight + \"px\";\n let getComputed = () => window.getComputedStyle(element);\n let setOverflow = (set) => element.style.overflow = set ? mergedOptions.overflow : \"\";\n let getAnimations = () => element.getAnimations();\n let createAnimation = (willOpen, lowerBound) => {\n var _a;\n nonAnimatableOptions.forEach((property) => delete mergedOptions[property]);\n let currentHeight = getHeight();\n let frames = [currentHeight, lowerBound].map((height) => ({\n height,\n paddingTop: \"0px\",\n paddingBottom: \"0px\"\n }));\n let { paddingTop, paddingBottom } = getComputed();\n frames[0].paddingTop = paddingTop;\n frames[0].paddingBottom = paddingBottom;\n if (willOpen) {\n frames[0].height = currentHeight;\n frames.reverse();\n }\n if ((_a = window.matchMedia(\"(prefers-reduced-motion: reduce)\")) == null ? void 0 : _a.matches) {\n mergedOptions.duration = 0;\n }\n let animation = element.animate(frames, mergedOptions);\n animation.id = (+willOpen).toString();\n return animation;\n };\n let triggerAnimation = async (willOpen) => {\n let finishedAnimations = getAnimations().map((a) => a.finish());\n await afterNextRepaint(async (resolve) => {\n let currentHeight = willOpen ? getHeight() : \"0px\";\n if (willOpen)\n setDisplay(openDisplayValue);\n setOverflow(true);\n await createAnimation(willOpen, currentHeight).finished;\n setOverflow(false);\n if (!willOpen)\n setDisplay(closedDisplayValue);\n resolve();\n });\n return finishedAnimations.length ? null : willOpen;\n };\n let up2 = async () => triggerAnimation(false);\n let down2 = async () => triggerAnimation(true);\n let toggle2 = async () => {\n var _a;\n let existingAnimationId = (_a = getAnimations()[0]) == null ? void 0 : _a.id;\n let condition = existingAnimationId ? existingAnimationId === \"1\" : element.offsetHeight;\n return (condition ? up2 : down2)();\n };\n return {\n up: up2,\n down: down2,\n toggle: toggle2\n };\n};\nlet down = (element, options = {}) => SlideController(element, options).down();\nlet up = (element, options = {}) => SlideController(element, options).up();\nlet toggle = (element, options = {}) => SlideController(element, options).toggle();\nexport { down, toggle, up };\n"],"names":["slideUp","element","duration","display","classList","add","slide","up","easing","then","remove","slideDown","down","slideToggle","toggle","handleToggle","async","e","type","keyCode","trigger","target","closest","document","getElementById","getAttribute","otherTriggers","Array","from","querySelectorAll","filter","x","setAttribute","forEach","dataset","scrollTo","holder","parentNode","init","clickArgs","keyArgs","off","on","el","defaultOptions","fill","overflow","nonAnimatableOptions","SlideController","options","mergedOptions","Object","assign","openDisplayValue","setDisplay","value","style","getHeight","clientHeight","setOverflow","set","getAnimations","triggerAnimation","willOpen","finishedAnimations","map","a","finish","callback","resolve","currentHeight","lowerBound","_a","property","frames","height","paddingTop","paddingBottom","window","getComputedStyle","reverse","matchMedia","matches","animation","animate","id","toString","createAnimation","finished","Promise","requestAnimationFrame","length","up2","down2","existingAnimationId","offsetHeight"],"sourceRoot":""}