{"version":3,"sources":["webpack:///./src/js/modules/ms-scroll-triggered-animator.ts","webpack:///./src/js/utils/animations.ts","webpack:///./src/js/modules/ms-animator.ts"],"names":["MSScrollTriggeredAnimator","this","el","animatedElements","dom","dataset","inView","margin","element","play","overrideAnimationDuration","parseFloat","overrideAnimationDelay","computedAnimationDuration","getComputedStyle","computedAnimationDelay","animationDuration","animationDelay","startNumber","parseInt","endNumber","animation","animate","progress","a","Math","finalString","duration","delay","counter","Module","Component"],"mappings":"soCAGMA,E,WAIJ,e,4FAAqB,SACnBC,KAAA,IAAW,CACTC,GADS,EAETC,iBAAkB,CAACD,GAAH,SAAUA,mBAAV,4BAGlBD,KAAA,UAAiBA,KAAKG,IAAIF,GAAGG,QAA7B,U,2CAGF,WAAO,WACLC,YACEL,KAAKG,IADD,IAEJ,WACE,cAEF,CAAEG,OAAQ,uB,qBAId,WACEN,KAAA,8BAAkC,YAChC,OAAQO,UAAR,WACA,WACEA,2BACAA,2BACA,MACF,eACEA,+BACAA,4BACA,MACF,iBACEA,iCACAA,4BACA,MACF,kBACEA,kCACAA,4BACA,MACF,eCXiB,SAAC,GAMlB,IALJA,EAKI,EALJA,QACAC,EAII,EAJJA,KAKMC,EAA4BF,4BAC9BG,WAAWH,UAAXG,mBAD8BH,IAAlC,KAIMI,EAAyBJ,yBAC3BG,WAAWH,UAAXG,gBAD2BH,IAA/B,KAIMK,EACJC,8CACIH,WAAWG,oBADfA,oBAhDJ,EAoDQC,EACJD,2CACIH,WAAWG,oBADfA,iBApDJ,EAwDQE,EACJN,GADF,EAEMO,EAAiBL,GAAvB,EAEMM,EAAcC,SAASX,UAA7B,aACMY,EAAYD,SAASX,UAA3B,WACMa,EAAYC,aAChB,SAAAC,GACE,IAAMC,EAAIJ,EACNF,EACAO,WACEF,GACGH,KACGA,EADHA,EAEGF,EANO,IAAnB,EAUIQ,EAAcD,cAAlB,WACA,YAAIjB,+BACF,OAAQA,UAAR,mBACA,YACEkB,EAAcD,6BAAdC,SACA,MACF,UACEA,EAAcD,6BAAdC,SACA,MACF,YACEA,EAAcD,mDAAdC,KAGA,MACF,QACEA,EAAcD,6BAAdC,SAKJlB,gBAEF,CACEmB,SADF,EAEEC,MAAOX,IAGX,EAAUI,EAAV,OACKA,SD3DCQ,CAAQ,CAAErB,QAAF,EAAWC,MAAM,a,mFAOjC,O,yhDElDMqB,E,yZACJ,WACE7B,KAAA,IAAW,CACTC,GAAID,KAAKC,IAGXD,KAAA,SAAgB,IAAI,EAAJ,EAA8BA,KAAKG,IAAnD,IACAH,KAAA,qB,iFAPiB8B,aAWrB","file":"61.bundle.js?v=06aed941821e4643b6b5","sourcesContent":["import { inView } from 'motion';\nimport { counter } from '../utils/animations';\n\nclass MSScrollTriggeredAnimator {\n dom: { el: any; animatedElements: any[] };\n animation: any;\n\n constructor(el: any) {\n this.dom = {\n el,\n animatedElements: [el, ...el.querySelectorAll('[data-animate=\"true\"]')]\n };\n\n this.animation = this.dom.el.dataset.animation;\n }\n\n init() {\n inView(\n this.dom.el,\n () => {\n this.animate();\n },\n { margin: '0px 0px -20% 0px' }\n );\n }\n\n animate() {\n this.dom.animatedElements.forEach((element: HTMLElement) => {\n switch (element.dataset.animation) {\n case 'fade':\n element.classList.remove('fade');\n element.classList.add('fade-in');\n break;\n case 'slide-up':\n element.classList.remove('slide-up');\n element.classList.add('slide-in');\n break;\n case 'slide-left':\n element.classList.remove('slide-left');\n element.classList.add('slide-in');\n break;\n case 'slide-right':\n element.classList.remove('slide-right');\n element.classList.add('slide-in');\n break;\n case 'counter':\n counter({ element, play: true });\n break;\n }\n });\n }\n}\n\nexport default MSScrollTriggeredAnimator;\n","import { animate } from 'motion';\n\nconst defaultAnimationDuration = 1;\nconst defaultAnimationDelay = 0;\n\n// export const slideUp = ({\n// element,\n// play\n// }: {\n// element: HTMLElement;\n// play?: boolean;\n// }) => {\n// const animation = animate(\n// element,\n// {\n// opacity: [0, 1],\n// top: 0\n// },\n// {\n// duration:\n// getComputedStyle(element).transitionDuration !== '0s'\n// ? parseFloat(getComputedStyle(element).transitionDuration)\n// : defaultAnimationDuration,\n// delay:\n// getComputedStyle(element).transitionDelay !== '0s'\n// ? parseFloat(getComputedStyle(element).transitionDelay)\n// : defaultAnimationDelay\n// }\n// );\n\n// if (play) animation.play();\n// else animation.stop();\n// };\n\nexport const counter = ({\n element,\n play\n}: {\n element: HTMLElement;\n play?: boolean;\n}) => {\n const overrideAnimationDuration = element.dataset.animationDuration\n ? parseFloat(element.dataset.animationDuration) / 1000\n : null;\n\n const overrideAnimationDelay = element.dataset.animationDelay\n ? parseFloat(element.dataset.animationDelay) / 1000\n : null;\n\n const computedAnimationDuration =\n getComputedStyle(element).transitionDuration !== '0s'\n ? parseFloat(getComputedStyle(element).transitionDuration)\n : defaultAnimationDuration;\n\n const computedAnimationDelay =\n getComputedStyle(element).transitionDelay !== '0s'\n ? parseFloat(getComputedStyle(element).transitionDelay)\n : defaultAnimationDelay;\n\n const animationDuration =\n overrideAnimationDuration || computedAnimationDuration;\n const animationDelay = overrideAnimationDelay || computedAnimationDelay;\n\n const startNumber = parseInt(element.dataset.startNumber);\n const endNumber = parseInt(element.dataset.endNumber);\n const animation = animate(\n progress => {\n const a = endNumber\n ? startNumber +\n Math.round(\n progress *\n (endNumber >= startNumber\n ? endNumber - startNumber\n : startNumber - endNumber)\n )\n : startNumber;\n\n let finalString = Math.round(a).toString();\n if (element.dataset.useThousandSeparator === 'true') {\n switch (element.dataset.thousandSeparator) {\n case 'comma':\n finalString = Math.round(a).toLocaleString('en-US');\n break;\n case 'dot':\n finalString = Math.round(a).toLocaleString('de-DE');\n break;\n case 'space':\n finalString = Math.round(a)\n .toLocaleString('en-US')\n .replace(/,/g, ' ');\n break;\n default:\n finalString = Math.round(a).toLocaleString('en-US');\n break;\n }\n }\n\n element.innerText = finalString;\n },\n {\n duration: animationDuration,\n delay: animationDelay\n }\n );\n if (play) animation.play();\n else animation.stop();\n};\n","import { Component } from '@verndale/core';\nimport MSScrollTriggeredAnimator from './ms-scroll-triggered-animator';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n el: this.el\n };\n\n this.animator = new MSScrollTriggeredAnimator(this.dom.el);\n this.animator.init();\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}