{"version":3,"sources":["webpack:///./src/js/modules/solutionsGrid.js"],"names":["gsap","registerPlugin","ScrollTrigger","Module","this","dom","body","document","querySelector","decorator","el","jumpLinks","querySelectorAll","matchMedia","initShapeAnimationMobile","initShapeAnimationDesktop","forEach","link","addEventListener","handleJumpLinkClick","bind","e","preventDefault","console","log","currentTarget","getAttribute","targetId","jumpToAnchor","push","target","getElementById","replace","to","window","duration","scrollTo","offsetTop","history","pushState","from","scrollTrigger","trigger","end","scrub","opacity","scale","rotation","set","top","rotate","start","Component"],"mappings":"4vEAIAA,IAAKC,eAAeC,K,IAEdC,E,iXACY,WACdC,KAAKC,IAAM,CACTC,KAAMC,SAASC,cAAc,QAC7BC,UAAWL,KAAKM,GAAGF,cAAc,kCACjCG,UAAW,EAAIP,KAAKM,GAAGE,iBAAiB,kBAG1CV,IAAcW,WAAW,CACvB,sBAAuB,WACrB,EAAKC,4BAEP,sBAAuB,WACrB,EAAKC,iC,qCAKI,WACbX,KAAKC,IAAIM,UAAUK,SAAQ,SAAAC,GACzBA,EAAKC,iBAAiB,QAAS,EAAKC,oBAAoBC,KAAK,S,0CAI7CC,GAClBA,EAAEC,iBACFC,QAAQC,IAAIH,EAAEI,cAAcC,aAAa,SAEzC,IAAMC,EAAWN,EAAEI,cAAcC,aAAa,QAC9CtB,KAAKwB,aAAaD,GAAU,K,mCAGjBA,EAAUE,GACrB,IAAMC,EAASvB,SAASwB,eAAeJ,EAASK,QAAQ,IAAK,KAEzDF,IACF9B,IAAKiC,GAAGC,OAAQ,CAAEC,SAAU,EAAGC,SAAUN,EAAOO,UAAY,MAExDR,GACFS,QAAQC,UAAU,KAAM,KAAMZ,M,kDAMlC3B,IAAKwC,KAAKpC,KAAKC,IAAII,UAAW,CAC5BgC,cAAe,CACbC,QAAStC,KAAKM,GACdiC,IAAK,aACLC,OAAO,GAETC,QAAS,EACTC,MAAO,IACPC,UAAW,O,iDAKb/C,IAAKgD,IAAI5C,KAAKC,IAAII,UAAW,CAAEwC,IAAK,EAAGJ,QAAS,EAAGK,OAAQ,EAAGJ,MAAO,IACrE9C,IAAKiC,GAAG7B,KAAKC,IAAII,UAAW,CAC1BwC,IAAK,IACLR,cAAe,CACbC,QAAStC,KAAKM,GACdyC,MAAO,UACPR,IAAK,aACLC,OAAO,U,8BAjEMQ,aAuENjD","file":"58.f2d05e13225532ef5a7a.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport { gsap } from 'gsap';\r\nimport ScrollTrigger from 'gsap/ScrollTrigger';\r\n\r\ngsap.registerPlugin(ScrollTrigger);\r\n\r\nclass Module extends Component {\r\n setupDefaults() {\r\n this.dom = {\r\n body: document.querySelector('body'),\r\n decorator: this.el.querySelector('.solutions-grid__decorator img'),\r\n jumpLinks: [...this.el.querySelectorAll('a[href^=\"#\"]')]\r\n };\r\n\r\n ScrollTrigger.matchMedia({\r\n '(max-width: 1024px)': () => {\r\n this.initShapeAnimationMobile();\r\n },\r\n '(min-width: 1025px)': () => {\r\n this.initShapeAnimationDesktop();\r\n }\r\n });\r\n }\r\n\r\n addListeners() {\r\n this.dom.jumpLinks.forEach(link => {\r\n link.addEventListener('click', this.handleJumpLinkClick.bind(this))\r\n })\r\n }\r\n\r\n handleJumpLinkClick(e) {\r\n e.preventDefault();\r\n console.log(e.currentTarget.getAttribute('href'))\r\n\r\n const targetId = e.currentTarget.getAttribute('href');\r\n this.jumpToAnchor(targetId, true);\r\n }\r\n\r\n jumpToAnchor(targetId, push) {\r\n const target = document.getElementById(targetId.replace('#', ''));\r\n\r\n if (target) {\r\n gsap.to(window, { duration: 1, scrollTo: target.offsetTop - 180 });\r\n\r\n if (push) {\r\n history.pushState(null, null, targetId);\r\n }\r\n }\r\n }\r\n\r\n initShapeAnimationDesktop() {\r\n gsap.from(this.dom.decorator, {\r\n scrollTrigger: {\r\n trigger: this.el,\r\n end: 'center 25%',\r\n scrub: true\r\n },\r\n opacity: 0,\r\n scale: 0.65,\r\n rotation: -20\r\n });\r\n }\r\n\r\n initShapeAnimationMobile() {\r\n gsap.set(this.dom.decorator, { top: 0, opacity: 1, rotate: 0, scale: 1 });\r\n gsap.to(this.dom.decorator, {\r\n top: 500,\r\n scrollTrigger: {\r\n trigger: this.el,\r\n start: 'top 25%',\r\n end: 'bottom 75%',\r\n scrub: true\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}