{"version":3,"file":"elements-enterprises.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/elements/enterprises.js","webpack://silverstripe-base/./node_modules/slide-element/dist/index.es.js","webpack://silverstripe-base/./themes/app/src/scripts/common/slide.js"],"sourcesContent":["import { slideUp, slideDown } from \"@common/slide\";\nimport Swiper from \"swiper\";\nimport { A11y, Autoplay, EffectFade } from \"swiper/modules\";\nimport \"@styles/components/slider.css\";\n\ndocument.querySelectorAll(\".element-enterprises\").forEach((el) => {\n const slider = el.querySelector(\".swiper\");\n\n const swiper = new Swiper(slider, {\n modules: [A11y, Autoplay, EffectFade],\n effect: \"fade\",\n fadeEffect: {\n crossFade: true,\n },\n loop: true,\n speed: 1000,\n });\n\n el.querySelectorAll(\".enterprise-trigger\").forEach((trigger) => {\n trigger.addEventListener(\"click\", () => {\n if (trigger.getAttribute(\"aria-expanded\") === \"false\") {\n const currentTrigger = el.querySelector('.enterprise-trigger[aria-expanded=\"true\"]');\n const currentTarget = el.querySelector(`#${currentTrigger.getAttribute(\"aria-controls\")}`);\n\n const index = parseInt(trigger.dataset.index);\n const target = el.querySelector(`#${trigger.getAttribute(\"aria-controls\")}`);\n\n currentTrigger.setAttribute(\"aria-expanded\", \"false\");\n trigger.setAttribute(\"aria-expanded\", \"true\");\n\n slideUp(currentTarget);\n slideDown(target);\n\n swiper.slideTo(index - 1);\n }\n });\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 {\n down,\n toggle,\n up\n};\n","import { up, down, toggle } from \"slide-element\";\n\nexport const slideUp = (element, duration = 400, display = \"block\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = up(element, {\n duration,\n display,\n easing,\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\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = down(element, {\n duration,\n display,\n easing,\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\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = toggle(element, {\n duration,\n display,\n easing,\n });\n\n slide.then(() => {\n element.classList.remove(\"is-sliding\");\n });\n\n return slide;\n};\n"],"names":["document","querySelectorAll","forEach","el","slider","querySelector","swiper","Swiper","modules","A11y","Autoplay","EffectFade","effect","fadeEffect","crossFade","loop","speed","trigger","addEventListener","getAttribute","currentTrigger","currentTarget","index","parseInt","dataset","target","setAttribute","slideUp","slideDown","slideTo","defaultOptions","easing","duration","fill","display","overflow","nonAnimatableOptions","SlideController","element","options","mergedOptions","Object","assign","openDisplayValue","setDisplay","value","style","getHeight","clientHeight","setOverflow","set","getAnimations","triggerAnimation","async","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","up","down","toggle","existingAnimationId","offsetHeight","classList","add","slide","then","remove","slideToggle"],"sourceRoot":""}