{"version":3,"file":"elements-media-scrollable-content.js","mappings":"yJAGAA,EAAAA,GAAKC,eAAeC,EAAAA,GAEpBC,SAASC,iBAAiB,iDAAiDC,SAASC,IAClF,MAAMC,EAAsBD,EAAGE,cAAc,gCACvCC,EAAsBH,EAAGF,iBAAiB,+BAC1CM,EAAWJ,EAAGF,iBAAiB,mBAC/BO,EAAWL,EAAGF,iBAAiB,mBAErCO,EAASN,SAASO,IAChB,MAAMC,EAASD,EAAQE,aACjBC,EAASC,OAAOC,iBAAiBL,GACjCM,EAASC,WAAWJ,EAAOK,WAAaD,WAAWJ,EAAOM,cAEhET,EAAQU,aAAa,cAAeT,EAASK,EAAO,IAGtDlB,EAAAA,GAAKuB,IAAIb,EAAU,CAAEc,QAAS,KAC9BxB,EAAAA,GAAKuB,IAAIZ,EAAU,CAAEE,OAAQ,IAE7B,MAAMY,EAAWzB,EAAAA,GAAKyB,SAAS,CAC7BC,QAAQ,EACRC,cAAe,CACbC,QAAStB,EAAGE,cAAc,oBAC1BqB,MAAO,aACPC,IAAKA,IACI,GAAGvB,EAAoBO,wBAEhCiB,OAAO,EACPC,SAAS,KAIbrB,EAASN,SAASO,IAChBa,EAASQ,GAAGrB,EAAS,CAAEC,OAAQD,EAAQsB,QAAQrB,QAAS,IAG1DJ,EAAoBJ,SAAS8B,IAC3B,MAAMC,EAASC,MAAMC,KAAK5B,GAAU6B,QAAQjC,GAAOA,EAAG4B,QAAQM,QAAUL,EAAQD,QAAQM,QAExFtC,EAAAA,EAAcuC,OAAO,CACnBb,QAASO,EACTN,MAAO,aACPC,IAAK,aACLC,OAAO,EACPC,SAAS,EACTU,QAASA,KACP1C,EAAAA,GAAKiC,GAAGG,EAAQ,CAAEZ,QAAS,GAAI,EAEjCmB,YAAaA,KACX3C,EAAAA,GAAKiC,GAAGG,EAAQ,CAAEZ,QAAS,IAAM,GAEnC,IAGJtB,EAAAA,EAAc0C,SAAS,IAGzBzC,SAASC,iBAAiB,kDAAkDC,SAASC,IACnF,MAAMC,EAAsBD,EAAGE,cAAc,gCACvCC,EAAsBH,EAAGF,iBAAiB,+BAC1CM,EAAWJ,EAAGF,iBAAiB,mBAC/BO,EAAWL,EAAGF,iBAAiB,mBAErCO,EAASN,SAASO,IAChB,MAAMC,EAASD,EAAQE,aACjBC,EAASC,OAAOC,iBAAiBL,GACjCM,EAASC,WAAWJ,EAAOK,WAAaD,WAAWJ,EAAOM,cAEhET,EAAQU,aAAa,cAAeT,EAASK,EAAO,IAGtDlB,EAAAA,GAAKuB,IAAIb,EAAU,CAAEc,QAAS,KAC9BxB,EAAAA,GAAKuB,IAAIZ,EAAU,CAAEE,OAAQ,IAE7B,MAAMY,EAAWzB,EAAAA,GAAKyB,SAAS,CAC7BC,QAAQ,EACRC,cAAe,CACbC,QAAStB,EAAGE,cAAc,oBAC1BqB,MAAO,aACPC,IAAKA,IACI,GAAGvB,EAAoBO,wBAEhCiB,OAAO,EACPC,SAAS,KAIbrB,EAASN,SAASO,IAChBa,EAASQ,GAAGrB,EAAS,CAAEC,OAAQD,EAAQsB,QAAQrB,QAAS,IAG1DJ,EAAoBJ,SAAS8B,IAC3B,MAAMC,EAASC,MAAMC,KAAK5B,GAAU6B,QAAQjC,GAAOA,EAAG4B,QAAQM,QAAUL,EAAQD,QAAQM,QAExFtC,EAAAA,EAAcuC,OAAO,CACnBb,QAASO,EACTN,MAAO,aACPC,IAAK,aACLC,OAAO,EACPC,SAAS,EACTU,QAASA,KACP1C,EAAAA,GAAKiC,GAAGG,EAAQ,CAAEZ,QAAS,GAAI,EAEjCmB,YAAaA,KACX3C,EAAAA,GAAKiC,GAAGG,EAAQ,CAAEZ,QAAS,IAAM,GAEnC,IAGJtB,EAAAA,EAAc0C,SAAS,G","sources":["webpack://silverstripe-base/./themes/app/src/elements/media-scrollable-content.js"],"sourcesContent":["import { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\ngsap.registerPlugin(ScrollTrigger);\n\ndocument.querySelectorAll(\".element-mediascrollablecontent.as-media-left\").forEach((el) => {\n const sectionsPlaceholder = el.querySelector(\".scroll-sections-placeholder\");\n const sectionPlaceholders = el.querySelectorAll(\".scroll-section-placeholder\");\n const sections = el.querySelectorAll(\".scroll-section\");\n const contents = el.querySelectorAll(\".scroll-content\");\n\n contents.forEach((content) => {\n const height = content.offsetHeight;\n const styles = window.getComputedStyle(content);\n const margin = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n\n content.setAttribute(\"data-height\", height + margin);\n });\n\n gsap.set(sections, { opacity: 0.4 });\n gsap.set(contents, { height: 0 });\n\n const timeline = gsap.timeline({\n paused: true,\n scrollTrigger: {\n trigger: el.querySelector(\".scroll-sections\"),\n start: \"top center\",\n end: () => {\n return `${sectionsPlaceholder.offsetHeight}px center`;\n },\n scrub: true,\n markers: false,\n },\n });\n\n contents.forEach((content) => {\n timeline.to(content, { height: content.dataset.height });\n });\n\n sectionPlaceholders.forEach((section) => {\n const target = Array.from(sections).filter((el) => el.dataset.index === section.dataset.index);\n\n ScrollTrigger.create({\n trigger: section,\n start: \"top center\",\n end: \"top center\",\n scrub: true,\n markers: false,\n onEnter: () => {\n gsap.to(target, { opacity: 1 });\n },\n onEnterBack: () => {\n gsap.to(target, { opacity: 0.4 });\n },\n });\n });\n\n ScrollTrigger.refresh();\n});\n\ndocument.querySelectorAll(\".element-mediascrollablecontent.as-media-right\").forEach((el) => {\n const sectionsPlaceholder = el.querySelector(\".scroll-sections-placeholder\");\n const sectionPlaceholders = el.querySelectorAll(\".scroll-section-placeholder\");\n const sections = el.querySelectorAll(\".scroll-section\");\n const contents = el.querySelectorAll(\".scroll-content\");\n\n contents.forEach((content) => {\n const height = content.offsetHeight;\n const styles = window.getComputedStyle(content);\n const margin = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n\n content.setAttribute(\"data-height\", height + margin);\n });\n\n gsap.set(sections, { opacity: 0.4 });\n gsap.set(contents, { height: 0 });\n\n const timeline = gsap.timeline({\n paused: true,\n scrollTrigger: {\n trigger: el.querySelector(\".scroll-sections\"),\n start: \"top center\",\n end: () => {\n return `${sectionsPlaceholder.offsetHeight}px center`;\n },\n scrub: true,\n markers: false,\n },\n });\n\n contents.forEach((content) => {\n timeline.to(content, { height: content.dataset.height });\n });\n\n sectionPlaceholders.forEach((section) => {\n const target = Array.from(sections).filter((el) => el.dataset.index === section.dataset.index);\n\n ScrollTrigger.create({\n trigger: section,\n start: \"top center\",\n end: \"top center\",\n scrub: true,\n markers: false,\n onEnter: () => {\n gsap.to(target, { opacity: 1 });\n },\n onEnterBack: () => {\n gsap.to(target, { opacity: 0.4 });\n },\n });\n });\n\n ScrollTrigger.refresh();\n});\n"],"names":["gsap","registerPlugin","ScrollTrigger","document","querySelectorAll","forEach","el","sectionsPlaceholder","querySelector","sectionPlaceholders","sections","contents","content","height","offsetHeight","styles","window","getComputedStyle","margin","parseFloat","marginTop","marginBottom","setAttribute","set","opacity","timeline","paused","scrollTrigger","trigger","start","end","scrub","markers","to","dataset","section","target","Array","from","filter","index","create","onEnter","onEnterBack","refresh"],"sourceRoot":""}