{"version":3,"file":"elements-steps.js","mappings":"0KAGA,MAAMA,EAAa,CACfC,IAAK,EACLC,IAAK,GAET,SAASC,EAAOC,EAAmBC,GAAS,KAAEC,EAAMC,OAAQC,EAAU,OAAEC,EAAS,OAAU,CAAC,GAOxF,GAAoC,oBAAzBC,qBACP,MAAO,OAEX,MAAMC,GAAW,OAAgBP,GAC3BQ,EAAsB,IAAIC,QAyB1BC,EAAW,IAAIJ,sBAxBSK,IAC1BA,EAAQC,SAASC,IACb,MAAMC,EAAQN,EAAoBO,IAAIF,EAAMG,QAK5C,GAAIH,EAAMI,iBAAmBC,QAAQJ,GAErC,GAAID,EAAMI,eAAgB,CACtB,MAAME,EAAWlB,EAAQY,IACrB,OAAWM,GACXX,EAAoBY,IAAIP,EAAMG,OAAQG,GAGtCT,EAASW,UAAUR,EAAMG,OAEjC,MACSF,IACLA,EAAMD,GACNL,EAAoBc,OAAOT,EAAMG,QACrC,GACF,GAE0D,CAC5Dd,OACAE,aACAmB,UAA6B,iBAAXlB,EAAsBA,EAAST,EAAWS,KAGhE,OADAE,EAASK,SAASY,GAAYd,EAASe,QAAQD,KACxC,IAAMd,EAASgB,YAC1B,C,iBClDA,SAASC,EAAgBpB,EAAUqB,GAC/B,IAAIC,EAgBJ,MAfwB,iBAAbtB,EACHqB,GACmC,QAAlCC,EAAKD,EAAcrB,UAA8B,IAAPsB,IAAsBD,EAAcrB,GAAYuB,SAASC,iBAAiBxB,IACrHA,EAAWqB,EAAcrB,IAGzBA,EAAWuB,SAASC,iBAAiBxB,GAGpCA,aAAoByB,UACzBzB,EAAW,CAACA,IAKT0B,MAAMC,KAAK3B,GAAY,GAClC,C,kDClBA,MAAM4B,EAAcC,GAA2B,mBAAVA,C,mDCKrCN,SAASC,iBAAiB,kBAAkBnB,SAASyB,IACnD,MAAMC,EAASD,EAAGE,cAAc,WAE1BC,EAAS,IAAIC,EAAAA,EAAOH,EAAQ,CAChCI,QAAS,CAACC,EAAAA,GAAMC,EAAAA,GAAUC,EAAAA,IAC1BC,OAAQ,OACRC,WAAY,CACVC,WAAW,GAEbC,MAAM,EACNC,MAAO,MAGTb,EAAGN,iBAAiB,iBAAiBnB,SAASuC,IAC5CA,EAAQC,iBAAiB,SAAS,KAChC,GAA8C,UAA1CD,EAAQE,aAAa,iBAA8B,CACrD,MAAMC,EAAiBjB,EAAGE,cAAc,uCAElCgB,EAAQC,SAASL,EAAQM,QAAQF,OAEvCD,EAAeI,aAAa,gBAAiB,SAC7CP,EAAQO,aAAa,gBAAiB,QAEtClB,EAAOmB,QAAQJ,EAAQ,GACvBK,GACF,IACA,IAGJ,MAAMA,EAAgBA,KACpB,MAAMC,EAAcrB,EAAOsB,OAAOtB,EAAOuB,aAEnCC,EAAQH,EAAYtB,cAAc,SAClC0B,EAASJ,EAAYtB,cAAc,UAOzC,GALIyB,IACFA,EAAME,OACNF,EAAMG,QAGJF,EAAQ,CACV,MAAMG,EAAOH,EAAOZ,aAAa,QACjCY,EAAOP,aAAa,OAAQ,IAC5BO,EAAOI,aACPJ,EAAOP,aAAa,OAAQU,EAC9B,IAGFrE,EAAAA,EAAAA,GACEsC,GACA,KACEuB,GAAe,GAEjB,CACEzD,OAAQ,oBAEX,G","sources":["webpack://silverstripe-base/./node_modules/@motionone/dom/dist/gestures/in-view.es.js","webpack://silverstripe-base/./node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","webpack://silverstripe-base/./node_modules/@motionone/utils/dist/is-function.es.js","webpack://silverstripe-base/./themes/app/src/elements/steps.js"],"sourcesContent":["import { resolveElements } from '../utils/resolve-elements.es.js';\nimport { isFunction } from '@motionone/utils';\n\nconst thresholds = {\n any: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"any\" } = {}) {\n /**\n * If this browser doesn't support IntersectionObserver, return a dummy stop function.\n * Default triggering of onStart is tricky - it could be used for starting/stopping\n * videos, lazy loading content etc. We could provide an option to enable a fallback, or\n * provide a fallback callback option.\n */\n if (typeof IntersectionObserver === \"undefined\") {\n return () => { };\n }\n const elements = resolveElements(elementOrSelector);\n const activeIntersections = new WeakMap();\n const onIntersectionChange = (entries) => {\n entries.forEach((entry) => {\n const onEnd = activeIntersections.get(entry.target);\n /**\n * If there's no change to the intersection, we don't need to\n * do anything here.\n */\n if (entry.isIntersecting === Boolean(onEnd))\n return;\n if (entry.isIntersecting) {\n const newOnEnd = onStart(entry);\n if (isFunction(newOnEnd)) {\n activeIntersections.set(entry.target, newOnEnd);\n }\n else {\n observer.unobserve(entry.target);\n }\n }\n else if (onEnd) {\n onEnd(entry);\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(onIntersectionChange, {\n root,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n });\n elements.forEach((element) => observer.observe(element));\n return () => observer.disconnect();\n}\n\nexport { inView };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","import Swiper from \"swiper\";\nimport { A11y, Autoplay, EffectFade } from \"swiper/modules\";\nimport { inView } from \"motion\";\nimport \"@styles/components/slider.css\";\n\ndocument.querySelectorAll(\".element-steps\").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: 300,\n });\n\n el.querySelectorAll(\".step-trigger\").forEach((trigger) => {\n trigger.addEventListener(\"click\", () => {\n if (trigger.getAttribute(\"aria-selected\") === \"false\") {\n const currentTrigger = el.querySelector('.step-trigger[aria-selected=\"true\"]');\n\n const index = parseInt(trigger.dataset.index);\n\n currentTrigger.setAttribute(\"aria-selected\", \"false\");\n trigger.setAttribute(\"aria-selected\", \"true\");\n\n swiper.slideTo(index - 1);\n activateSlide();\n }\n });\n });\n\n const activateSlide = () => {\n const activeSlide = swiper.slides[swiper.activeIndex];\n\n const video = activeSlide.querySelector(\"video\");\n const object = activeSlide.querySelector(\"object\");\n\n if (video) {\n video.load();\n video.play();\n }\n\n if (object) {\n const data = object.getAttribute(\"data\");\n object.setAttribute(\"data\", \"\");\n object.offsetHeight;\n object.setAttribute(\"data\", data);\n }\n };\n\n inView(\n el,\n () => {\n activateSlide();\n },\n {\n margin: \"0px 0px -25% 0px\",\n },\n );\n});\n"],"names":["thresholds","any","all","inView","elementOrSelector","onStart","root","margin","rootMargin","amount","IntersectionObserver","elements","activeIntersections","WeakMap","observer","entries","forEach","entry","onEnd","get","target","isIntersecting","Boolean","newOnEnd","set","unobserve","delete","threshold","element","observe","disconnect","resolveElements","selectorCache","_a","document","querySelectorAll","Element","Array","from","isFunction","value","el","slider","querySelector","swiper","Swiper","modules","A11y","Autoplay","EffectFade","effect","fadeEffect","crossFade","loop","speed","trigger","addEventListener","getAttribute","currentTrigger","index","parseInt","dataset","setAttribute","slideTo","activateSlide","activeSlide","slides","activeIndex","video","object","load","play","data","offsetHeight"],"sourceRoot":""}