{"version":3,"sources":["webpack://umbro-global/./src/assets/scripts/components/parallax.js"],"names":["selectors","timelines","alreadyBound","viewport","width","height","killSlides","Promise","resolve","forEach","timeline","i","$slide","tl","kill","ScrollTrigger","id","slide","selector","querySelectorAll","$element","gsap","clearProps","recordTimeline","trigger","object","push","animateFirstSlide","slideIn","scaleIn","$colours","$paragraphs","add","to","querySelector","$colour","$paragraph","animateOtherSlides","bindCompetition","$competition","$capture","$prompt","headerHeight","$button","addEventListener","e","window","scrollTo","y","offsetY","tween","autoAlpha","duration","ease","paused","reversed","play","reverse","animatePrompt","bindBanner","$parent","portraitViewport","setCSSVar","bannerHeight","getElementHeight","competitionTl","landscapeViewport","aboveBreakpoint","timelineId","$pin","getClosest","document","startPoint","endPoint","scrollTrigger","scrub","pin","pinSpacing","start","endTrigger","end","onToggle","classList","toggle","pinCompetition","bindSlides","getViewportDimensions","transform","$slides","getCSSVar","triggerId","firstSlide","lastSlide","length","$block","toggleClass","set","position","top","left","lockLastSlide","fadeAtSlideEnd","desktopParallax","$images","slideTl","mobileParallax","init","registerPlugins","ScrollToPlugin","then","reset","debounce","innerWidth","delay"],"mappings":"42BAKA,IAAMA,EAAY,CAAC,mBAAoB,kBAAmB,KAAM,eAAgB,qBAAsB,mBAAoB,IAAK,+BAAgC,SAC3JC,EAAY,GACZC,GAAe,EACfC,EAAW,CACbC,MAAO,EACPC,OAAQ,GAiBJC,EAAa,WAEjB,OAAO,IAAIC,SAAQ,SAACC,GAElBP,EAAUQ,SAAQ,SAACC,EAAUC,GAlBb,IAACC,EAoBXF,EAASG,GAAGC,MAAMJ,EAASG,GAAGC,MAAK,GACnCC,YAAsBL,EAASM,KAAKD,YAAsBL,EAASM,IAAIF,MAAK,GArBjEF,EAuBHF,EAASO,MArBzBjB,EAAUS,SAAQ,SAACS,EAAUP,GAETC,EAAOO,iBAAiBD,GAEhCT,SAAQ,SAACW,EAAUT,GAAX,OAAiBU,SAASD,EAAU,CAAEE,WAAY,0CAuBpEd,EAFAP,EAAY,QAQVsB,EAAiB,SAACb,EAAUc,EAASZ,GAEzC,IAAMa,EAAS,CACbZ,GAAIH,EACJM,GAAIQ,EACJP,MAAOL,GAKT,OAFAX,EAAUyB,KAAKD,GAERA,GAIHE,EAAoB,SAACd,EAAID,EAAQgB,EAASC,GAE9C,IAAMC,EAAWlB,EAAOO,iBAAiB,oBACnCY,EAAcnB,EAAOO,iBAAiB,KACtCT,EAAWW,gBAgBjB,OAdAX,EACGsB,IAAI,YAAa,GACjBC,GAAGrB,EAAOsB,cAAc,MAAO,GAFlC,KAE4CN,GAAW,kBACpDK,GAAGrB,EAAOsB,cAAc,gBAAiB,GAH5C,KAGsDN,GAAW,kBAC9DK,GAAGrB,EAAOsB,cAAc,sBAAuB,GAJlD,KAI4DL,GAAW,kBACpEI,GAAGrB,EAAOsB,cAAc,gCAAiC,GAL5D,KAKsEN,GAAW,mBAC9EK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,GAN3C,KAMqDS,GAAW,mBAC7DK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,GAP3C,KAOqDS,GAAW,mBAC7DK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,GAR3C,KAQqDS,GAAW,mBAE5DE,GAAUA,EAASrB,SAAQ,SAAC0B,EAASxB,GAAV,OAAgBD,EAASuB,GAAGE,EAAS,GAArB,KAA+BP,GAA/B,qBAAwDjB,EAAI,OAEvGoB,GAAaA,EAAYtB,SAAQ,SAAC2B,EAAYzB,GAAb,OAAmBD,EAASuB,GAAGG,EAAY,GAAxB,KAAkCR,GAAlC,qBAA2DjB,EAAI,QAEhHE,GAIHwB,EAAqB,SAACxB,EAAID,EAAQgB,EAASC,GAE/C,IAAME,EAAcnB,EAAOO,iBAAiB,KAc5C,OAXAN,EACGoB,GAAGrB,EAAOsB,cAAc,MAAO,EADlC,KAC0CN,GAAW,gBAClDK,GAAGrB,EAAOsB,cAAc,sBAAuB,EAFlD,KAE0DL,GAAW,gBAClEI,GAAGrB,EAAOsB,cAAc,gBAAiB,EAH5C,KAGoDN,GAAW,aAC5DK,GAAGrB,EAAOsB,cAAc,gCAAiC,EAJ5D,KAIoEN,GAAW,kBAC5EK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,EAL3C,KAKmDS,GAAW,kBAC3DK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,EAN3C,KAMmDS,GAAW,gBAC3DK,GAAGrB,EAAOO,iBAAiB,SAAS,GAAI,EAP3C,KAOmDS,GAAW,kBAE1DG,GAAaA,EAAYtB,SAAQ,SAAC2B,EAAYzB,GAAb,OAAmBE,EAAGoB,GAAGG,EAAY,EAAlB,KAA0BR,GAA1B,qBAAoDjB,EAAI,GAAM,OAE/GE,GA+GHyB,EAAkB,SAACC,EAAcC,EAAUC,EAASC,GAExD,IAAMC,EAAUJ,EAAaL,cAAc,qCAE3C,SAAKS,GAAWzC,KAEhBA,GAAe,EAEfyC,EAAQC,iBAAiB,SAAS,SAACC,GAAD,OAAOxB,QAAQyB,OAAQ,CAAEC,SAAU,CAAEC,EAAGR,EAAUS,QAASP,QAzBzE,SAACD,GAErB,IAAMS,EAAQ7B,QAAQoB,EAAS,CAC7BU,UAAW,EACXC,SAAU,GACVC,KAAM,SACNC,QAAQ,EACRC,UAAU,IAGZxC,qBAA+B,eAAe,kBAAMmC,EAAMM,UAC1DzC,qBAA+B,aAAa,kBAAMmC,EAAMO,aAgBxDC,CAAcjB,GAEPE,IAqDHgB,EAAa,SAACC,EAASlB,EAAcmB,GAEzC,IAAMtB,EAAeqB,EAAQ1B,cAAc,8BAI3C,IAFA4B,QAAU,SAAU,IAEfvB,EAAc,OAAO,EAE1B,IAAMwB,GAAeC,QAAiBzB,GAMtC,OAJAuB,QAAU,SAAUC,GA3DC,SAACxB,EAAcG,EAAcmB,GAElD,IAAII,EAAgB,KAEdC,GAAoBC,QAAgB,aACpCC,EAAa,cACbC,GAAOC,QAAW/B,EAAc,2BAChCC,EAAW+B,SAASrC,cAAc,kBAClCO,EAAU8B,SAASrC,cAAc,yBACjCsC,IAAcX,GAAoB,sBAClCY,EAAYP,EAAqB,mBAAqB,mBAExDL,EAEFI,EAAgB5C,cAAc,CAC5BqD,cAAe,CACb1D,GAAIoD,EACJ5C,QAASe,EACToC,OAAO,EACPC,IAAKrC,EACLsC,YAAY,EACZC,MAAON,EACPO,WAAYvC,EACZwC,IAAKP,EACLQ,SAAU,kBAAMxC,EAAQyC,UAAUC,OAAO,gCAM7C9D,SAASkB,EAAc,CAAEjB,WAAY,QAEjC+C,GAAMhD,SAASgD,EAAM,CAAE/C,WAAY,QAEnC2C,GAAeA,EAAcnD,MAAK,GAClCC,YAAsBqD,IAAarD,YAAsBqD,GAAYtD,MAAK,GAE9EmD,EAAgB,KAEhBxB,EAAQyC,UAAUlD,IAAI,4BAIxBM,EAAgBC,EAAcC,EAAUC,EAASC,GAkBjD0C,CAAe7C,EAAcG,EAAcmB,GAEpCtB,GAIH8C,EAAa,WAEjBlF,GAAWmF,UAEX,IAAMzB,GAAmBM,QAAgB,YACnCvC,EAAU,CAAE2D,UAAW,kBAAmBpC,UAAW,EAAGE,KAAM,UAC9DxB,EAAU,CAAE0D,UAAW,YACvB3B,EAAUW,SAASrC,cAAc,kBACjCsD,EAAU5B,EAAQzC,iBAAiB,wBACnCuB,GAAe+C,QAAU,UAgB/B,OAdA9B,EAAWC,EAASlB,EAAcmB,GAElC2B,EAAQ/E,SAAQ,SAACG,EAAQD,GAEvB,IAAM+E,EAAY,WAAH,OAAc/E,GACvBgF,EAAoB,IAANhF,EACdiF,EAAajF,IAAM6E,EAAQK,OAAS,EAEzChC,EAjKmB,SAACjD,EAAQgD,EAAS8B,EAAWC,EAAYC,EAAWhE,EAASC,EAASa,GAE5F,IAAMoD,EAASlF,EAAOsB,cAAc,mBAC9BsC,EAAcmB,EAAD,cAAsBjD,GAAiB,UACpDqC,EAAca,EAAahC,EAAUhD,EACvC6D,EAAYkB,EAAc,QAAU,QAEpCC,IAAWnB,EAAW,iBAE1B,IAAI5D,EAAKQ,cAAc,CACrBqD,cAAe,CACb1D,GAAI0E,EACJlE,QAASZ,EACT+D,OAAO,EACPC,IAAKkB,EACLjB,YAAY,EACZC,MAAON,EACPO,WAAYA,EACZC,IAAKP,EACLsB,YAAa,2BAIjBlF,EACGmB,IAAI,YAAa,GACjBA,IAAI,YAAa,OACjBA,IAAI,YAAa,OAEpB,IAAItB,EAAYiF,EACZhE,EAAkBd,EAAID,EAAQgB,EAASC,GACvCQ,EAAmBxB,EAAID,EAAQgB,EAASC,GAGxCnB,EADHkF,EAtEmB,SAAC/E,EAAID,GAEzB,IAAMkF,EAASlF,EAAOsB,cAAc,mBAIpC,OAFArB,EAAGmF,IAAIF,EAAQ,CAAE3C,UAAW,EAAG8C,SAAU,WAAYC,IAAK,EAAGC,KAAM,GAAK,aAEjEtF,EAiEQuF,CAAcvF,EAAID,GAjFZ,SAACC,EAAID,GAE1B,IAAMkF,EAASlF,EAAOsB,cAAc,mBAIpC,OAFArB,EAAGoB,GAAG6D,EAAQ,EAAG,CAAE3C,UAAW,GAAK,aAE5BtC,EA4EQwF,CAAexF,EAAID,GAElCW,EAAeb,EAAUgF,EAAW9E,GA8H9B0F,CAAgB1F,EAAQgD,EAAS8B,EAAWC,EAAYC,EAAWhE,EAASC,EAASa,GA9LtE,SAAC9B,EAAQgD,EAAS8B,EAAWC,EAAY/D,EAASC,EAASa,GAEhF,IAAM6D,EAAU3F,EAAOsB,cAAc,oBAC/BsC,EAAemB,EAAc,UAAf,cAAkCjD,GAChD+B,EAAW,KAAH,QAAQT,QAAiBuC,IAEnCC,EAAUnF,cAAc,CAC1BqD,cAAe,CACb1D,GAAI0E,EACJlE,QAASZ,EACT+D,OAAO,EACPC,IAAK2B,EACL1B,YAAY,EACZC,MAAON,EACPQ,IAAKP,KAIH/D,EAAYiF,EACdhE,EAAkB6E,EAAS5F,EAAQgB,EAASC,GAC5CQ,EAAmBmE,EAAS5F,EAAQgB,EAASC,GAEjDN,EAAeb,EAAUgF,EAAW9E,GAyK9B6F,CAAe7F,EAAQgD,EAAS8B,EAAWC,EAAY/D,EAASC,EAASa,MAIxE8C,GAuBHkB,EAAO,YAEXC,QAAgB,CAACC,IAAgB7F,MAAgB8F,MAAK,WArBrC,IAEXC,EAqBJzB,IArBIyB,GAAQC,SAAS,SAAClE,GAItB,KAFyBsB,QAAgB,aAEfrB,OAAOkE,aAAe7G,EAASC,MAAQ,OAAO,EAExEE,IAAauG,MAAKI,OAAM,KAAKJ,MAAK,kBAAMxB,UAEvC,KAEHvC,OAAOF,iBAAiB,SAAUkE,GAClChE,OAAOF,iBAAiB,oBAAqBkE","file":"scripts/chunks/280.12d360b784b673785ee2.js","sourcesContent":["import { gsap } from 'gsap';\r\nimport { ScrollTrigger, ScrollToPlugin } from 'gsap/all';\r\nimport { debounce, aboveBreakpoint, getClosest, getCSSVar, setCSSVar, getElementHeight, getViewportDimensions, registerPlugins } from './../global/utils';\r\nimport delay from './../global/delay';\r\n\r\nconst selectors = ['.product__images', '.product__block', 'h3', '.h1--article', '.h1--article__line', '.product__colour', 'p', '.block-button--outline-black', '.icon'];\r\nlet timelines = [];\r\nlet alreadyBound = false;\r\nlet viewport = {\r\n width: 0,\r\n height: 0\r\n};\r\n\r\nconst clearStyles = ($slide) => {\r\n\r\n selectors.forEach((selector, i) => {\r\n\r\n const $elements = $slide.querySelectorAll(selector);\r\n\r\n $elements.forEach(($element, i) => gsap.set($element, { clearProps: 'transform,opacity,visibility' }));\r\n\r\n });\r\n\r\n return selectors;\r\n\r\n}\r\n\r\nconst killSlides = () => {\r\n\r\n return new Promise((resolve) => {\r\n\r\n timelines.forEach((timeline, i) => {\r\n\r\n if (timeline.tl.kill) timeline.tl.kill(true);\r\n if (ScrollTrigger.getById(timeline.id)) ScrollTrigger.getById(timeline.id).kill(true);\r\n\r\n clearStyles(timeline.slide);\r\n\r\n });\r\n\r\n timelines = [];\r\n\r\n resolve(timelines);\r\n\r\n });\r\n\r\n}\r\n\r\nconst recordTimeline = (timeline, trigger, $slide) => {\r\n\r\n const object = {\r\n tl: timeline,\r\n id: trigger,\r\n slide: $slide\r\n };\r\n\r\n timelines.push(object);\r\n\r\n return object;\r\n\r\n}\r\n\r\nconst animateFirstSlide = (tl, $slide, slideIn, scaleIn) => {\r\n\r\n const $colours = $slide.querySelectorAll('.product__colour');\r\n const $paragraphs = $slide.querySelectorAll('p');\r\n const timeline = gsap.timeline();\r\n\r\n timeline\r\n .add('showStart', 0)\r\n .to($slide.querySelector('h3'), 0.5, { ...slideIn }, 'showStart+=0.3')\r\n .to($slide.querySelector('.h1--article'), 0.5, { ...slideIn }, 'showStart+=0.2')\r\n .to($slide.querySelector('.h1--article__line'), 0.5, { ...scaleIn }, 'showStart+=0.4')\r\n .to($slide.querySelector('.block-button--outline-black'), 0.5, { ...slideIn }, 'showStart+=0.25')\r\n .to($slide.querySelectorAll('.icon')[0], 0.5, { ...slideIn }, 'showStart+=0.55')\r\n .to($slide.querySelectorAll('.icon')[1], 0.5, { ...slideIn }, 'showStart+=0.35')\r\n .to($slide.querySelectorAll('.icon')[2], 0.5, { ...slideIn }, 'showStart+=0.15');\r\n\r\n if ($colours) $colours.forEach(($colour, i) => timeline.to($colour, 0.5, { ...slideIn }, `showStart+=${i / 5}`));\r\n\r\n if ($paragraphs) $paragraphs.forEach(($paragraph, i) => timeline.to($paragraph, 0.5, { ...slideIn }, `showStart+=${i / 10}`));\r\n\r\n return tl;\r\n\r\n}\r\n\r\nconst animateOtherSlides = (tl, $slide, slideIn, scaleIn) => {\r\n\r\n const $paragraphs = $slide.querySelectorAll('p');\r\n\r\n // tl syntax = tl.to($element, duration, tweenObject, position);\r\n tl\r\n .to($slide.querySelector('h3'), 1, { ...slideIn }, 'showStart+=2')\r\n .to($slide.querySelector('.h1--article__line'), 1, { ...scaleIn }, 'showStart+=1')\r\n .to($slide.querySelector('.h1--article'), 1, { ...slideIn }, 'showStart')\r\n .to($slide.querySelector('.block-button--outline-black'), 1, { ...slideIn }, 'showStart+=1.5')\r\n .to($slide.querySelectorAll('.icon')[0], 1, { ...slideIn }, 'showStart+=1.5')\r\n .to($slide.querySelectorAll('.icon')[1], 1, { ...slideIn }, 'showStart+=1')\r\n .to($slide.querySelectorAll('.icon')[2], 1, { ...slideIn }, 'showStart+=0.5');\r\n\r\n if ($paragraphs) $paragraphs.forEach(($paragraph, i) => tl.to($paragraph, 1, { ...slideIn }, `showStart+=${(i / 10) + 1}`));\r\n\r\n return tl;\r\n\r\n}\r\n\r\nconst fadeAtSlideEnd = (tl, $slide) => {\r\n\r\n const $block = $slide.querySelector('.product__block');\r\n\r\n tl.to($block, 1, { autoAlpha: 0 }, 'hideStart');\r\n\r\n return tl;\r\n\r\n}\r\n\r\nconst lockLastSlide = (tl, $slide) => {\r\n\r\n const $block = $slide.querySelector('.product__block');\r\n\r\n tl.set($block, { autoAlpha: 1, position: 'relative', top: 0, left: 0 }, 'lockStart');\r\n\r\n return tl;\r\n\r\n}\r\n\r\nconst mobileParallax = ($slide, $parent, triggerId, firstSlide, slideIn, scaleIn, headerHeight) => {\r\n\r\n const $images = $slide.querySelector('.product__images');\r\n const startPoint = (firstSlide) ? 'top top' : `top ${headerHeight}`;\r\n const endPoint = `+=${getElementHeight($images)}`;\r\n\r\n let slideTl = gsap.timeline({\r\n scrollTrigger: {\r\n id: triggerId,\r\n trigger: $slide,\r\n scrub: true,\r\n pin: $images,\r\n pinSpacing: false,\r\n start: startPoint,\r\n end: endPoint\r\n }\r\n });\r\n\r\n const timeline = (firstSlide)\r\n ? animateFirstSlide(slideTl, $slide, slideIn, scaleIn)\r\n : animateOtherSlides(slideTl, $slide, slideIn, scaleIn);\r\n\r\n recordTimeline(timeline, triggerId, $slide);\r\n\r\n return timeline;\r\n\r\n}\r\n\r\nconst desktopParallax = ($slide, $parent, triggerId, firstSlide, lastSlide, slideIn, scaleIn, headerHeight) => {\r\n\r\n const $block = $slide.querySelector('.product__block');\r\n const startPoint = (firstSlide) ? `top ${headerHeight}` : 'top 40%';\r\n const endTrigger = (lastSlide) ? $parent : $slide;\r\n let endPoint = (firstSlide) ? '+=60%' : '+=90%';\r\n\r\n if (lastSlide) endPoint = 'bottom bottom';\r\n\r\n let tl = gsap.timeline({\r\n scrollTrigger: {\r\n id: triggerId,\r\n trigger: $slide,\r\n scrub: true,\r\n pin: $block,\r\n pinSpacing: false,\r\n start: startPoint,\r\n endTrigger: endTrigger,\r\n end: endPoint,\r\n toggleClass: 'product-slide--active'\r\n }\r\n });\r\n\r\n tl\r\n .add('showStart', 0)\r\n .add('lockStart', '+=5')\r\n .add('hideStart', '+=8');\r\n\r\n let timeline = (firstSlide)\r\n ? animateFirstSlide(tl, $slide, slideIn, scaleIn)\r\n : animateOtherSlides(tl, $slide, slideIn, scaleIn);\r\n\r\n (lastSlide)\r\n ? timeline = lockLastSlide(tl, $slide)\r\n : timeline = fadeAtSlideEnd(tl, $slide);\r\n\r\n recordTimeline(timeline, triggerId, $slide);\r\n\r\n return timeline;\r\n\r\n}\r\n\r\nconst animatePrompt = ($prompt) => {\r\n\r\n const tween = gsap.to($prompt, {\r\n autoAlpha: 0,\r\n duration: 0.3,\r\n ease: 'power2',\r\n paused: true,\r\n reversed: true\r\n });\r\n\r\n ScrollTrigger.addEventListener('scrollStart', () => tween.play());\r\n ScrollTrigger.addEventListener('scrollEnd', () => tween.reverse());\r\n\r\n return tween;\r\n\r\n}\r\n\r\nconst bindCompetition = ($competition, $capture, $prompt, headerHeight) => {\r\n\r\n const $button = $competition.querySelector('[data-product-competition-button]');\r\n\r\n if (!$button || alreadyBound) return false;\r\n\r\n alreadyBound = true;\r\n\r\n $button.addEventListener('click', (e) => gsap.to(window, { scrollTo: { y: $capture, offsetY: headerHeight } }));\r\n\r\n animatePrompt($prompt);\r\n\r\n return $button;\r\n\r\n}\r\n\r\nconst pinCompetition = ($competition, headerHeight, portraitViewport) => {\r\n\r\n let competitionTl = null;\r\n\r\n const landscapeViewport = aboveBreakpoint('landscape');\r\n const timelineId = 'competition';\r\n const $pin = getClosest($competition, '.pin-spacer-competition');\r\n const $capture = document.querySelector('[data-capture]');\r\n const $prompt = document.querySelector('[data-product-prompt]');\r\n const startPoint = (portraitViewport) ? 'bottom bottom-=20px' : false;\r\n const endPoint = (landscapeViewport) ? 'top bottom+=80px' : 'top bottom+=40px';\r\n\r\n if (portraitViewport) {\r\n\r\n competitionTl = gsap.timeline({\r\n scrollTrigger: {\r\n id: timelineId,\r\n trigger: $competition,\r\n scrub: true,\r\n pin: $competition,\r\n pinSpacing: false,\r\n start: startPoint,\r\n endTrigger: $capture,\r\n end: endPoint,\r\n onToggle: () => $prompt.classList.toggle('product__prompt--active')\r\n }\r\n });\r\n\r\n } else {\r\n\r\n gsap.set($competition, { clearProps: 'all' });\r\n\r\n if ($pin) gsap.set($pin, { clearProps: 'all' });\r\n\r\n if (competitionTl) competitionTl.kill(true);\r\n if (ScrollTrigger.getById(timelineId)) ScrollTrigger.getById(timelineId).kill(true);\r\n\r\n competitionTl = null;\r\n\r\n $prompt.classList.add('product__prompt--active')\r\n\r\n }\r\n\r\n bindCompetition($competition, $capture, $prompt, headerHeight);\r\n\r\n return competitionTl;\r\n\r\n}\r\n\r\nconst bindBanner = ($parent, headerHeight, portraitViewport) => {\r\n\r\n const $competition = $parent.querySelector('[data-product-competition]');\r\n\r\n setCSSVar('banner', 0);\r\n\r\n if (!$competition) return false;\r\n\r\n const bannerHeight = getElementHeight($competition);\r\n\r\n setCSSVar('banner', bannerHeight);\r\n\r\n pinCompetition($competition, headerHeight, portraitViewport);\r\n\r\n return $competition;\r\n\r\n}\r\n\r\nconst bindSlides = () => {\r\n\r\n viewport = getViewportDimensions();\r\n\r\n const portraitViewport = aboveBreakpoint('portrait');\r\n const slideIn = { transform: 'translateY(0px)', autoAlpha: 1, ease: 'power2' };\r\n const scaleIn = { transform: 'scale(1)' };\r\n const $parent = document.querySelector('[data-product]');\r\n const $slides = $parent.querySelectorAll('[data-product-slide]');\r\n const headerHeight = getCSSVar('header');\r\n\r\n bindBanner($parent, headerHeight, portraitViewport);\r\n\r\n $slides.forEach(($slide, i) => {\r\n\r\n const triggerId = `trigger-${i}`;\r\n const firstSlide = (i === 0);\r\n const lastSlide = (i === $slides.length - 1);\r\n\r\n (portraitViewport)\r\n ? desktopParallax($slide, $parent, triggerId, firstSlide, lastSlide, slideIn, scaleIn, headerHeight)\r\n : mobileParallax($slide, $parent, triggerId, firstSlide, slideIn, scaleIn, headerHeight);\r\n\r\n });\r\n\r\n return $slides;\r\n\r\n}\r\n\r\nconst bindResize = () => {\r\n\r\n const reset = debounce((e) => {\r\n\r\n const portraitViewport = aboveBreakpoint('portrait');\r\n\r\n if (!portraitViewport && (window.innerWidth === viewport.width)) return false;\r\n\r\n killSlides().then(delay(150).then(() => bindSlides()));\r\n\r\n }, 100);\r\n\r\n window.addEventListener('resize', reset);\r\n window.addEventListener('orientationchange', reset);\r\n\r\n return reset;\r\n\r\n}\r\n\r\nconst init = () => {\r\n\r\n registerPlugins([ScrollToPlugin, ScrollTrigger]).then(() => {\r\n\r\n bindSlides();\r\n bindResize();\r\n\r\n });\r\n\r\n}\r\n\r\nexport {\r\n init\r\n};\r\n"],"sourceRoot":""}