{ "version": 3, "sources": ["../../../Vettvangur.Heilsuvera/src/scripts/components/sugar-banner.ts"], "sourcesContent": ["import { gsap, ScrollTrigger } from \"gsap/all\";\nimport { throttle } from \"throttle-debounce-ts\";\n\nconst sugarBanner = {\n\telContainer: document.querySelector(\".sugarBanner\"),\n\telBackground: document.querySelector(\".sugarBanner__background\"),\n\telImage: document.querySelector(\".sugarBanner__image\"),\n\telItems: document.querySelectorAll(\".sugarBanner__image svg g\"),\n\n\tinit: (): void => {\n\t\tif (!sugarBanner.elContainer) {\n\t\t\treturn;\n\t\t}\n\t\tconst throttledMouseMove = throttle(123, sugarBanner.moveItems);\n\n\t\tgsap.registerPlugin(ScrollTrigger);\n\n\t\tsugarBanner.parallaxImage();\n\t\tsugarBanner.resetItems();\n\t\tsugarBanner.elContainer.addEventListener(\"mouseenter\", sugarBanner.blink);\n\t\twindow.addEventListener(\"mousemove\", throttledMouseMove);\n\t},\n\n\tblink: (): void => {\n\t\tgsap.fromTo(\n\t\t\tsugarBanner.elBackground,\n\t\t\t{\n\t\t\t\tfilter: \"brightness(1.03)\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tclearProps: \"all\",\n\t\t\t\tduration: 2,\n\t\t\t\tease: \"power3.out\",\n\t\t\t\tfilter: \"brightness(1)\",\n\t\t\t},\n\t\t);\n\t},\n\n\tmoveItems: (event: MouseEvent): void => {\n\t\tconst globalX = event.clientX; // event ? event.touches ? event.touches[0].clientX : event.clientX : 0;\n\t\tconst globalY = event.clientY; // event ? event.touches ? event.touches[0].clientY : event.clientY : 0;\n\n\t\tsugarBanner.elItems.forEach((item) => {\n\t\t\tif (!item) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst localX =\n\t\t\t\titem.getBoundingClientRect().left +\n\t\t\t\titem.getBoundingClientRect().width / 2;\n\t\t\tconst localY =\n\t\t\t\titem.getBoundingClientRect().top +\n\t\t\t\titem.getBoundingClientRect().height / 2;\n\n\t\t\tconst distance = Math.hypot(localX - globalX, localY - globalY);\n\t\t\tconst distanceMax = 212;\n\t\t\tconst distanceMod = 21;\n\t\t\tconst distanceX = Math.hypot(localX - globalX);\n\t\t\tconst distanceY = Math.hypot(localY - globalY);\n\t\t\tconst rotationMod = 12;\n\t\t\tlet x;\n\t\t\tlet y;\n\n\t\t\tif (distance < distanceMax) {\n\t\t\t\tif (globalX < localX) {\n\t\t\t\t\tx =\n\t\t\t\t\t\tdistanceX < distanceMax / 2\n\t\t\t\t\t\t\t? localX - globalX\n\t\t\t\t\t\t\t: distanceMax - (localX - globalX);\n\t\t\t\t} else {\n\t\t\t\t\tx =\n\t\t\t\t\t\tdistanceX < distanceMax / 2\n\t\t\t\t\t\t\t? localX - globalX\n\t\t\t\t\t\t\t: globalX - localX - distanceMax;\n\t\t\t\t}\n\n\t\t\t\tif (globalY < localY) {\n\t\t\t\t\ty =\n\t\t\t\t\t\tdistanceY < distanceMax / 2\n\t\t\t\t\t\t\t? localY - globalY\n\t\t\t\t\t\t\t: distanceMax - (localY - globalY);\n\t\t\t\t} else {\n\t\t\t\t\ty =\n\t\t\t\t\t\tdistanceY < distanceMax / 2\n\t\t\t\t\t\t\t? localY - globalY\n\t\t\t\t\t\t\t: globalY - localY - distanceMax;\n\t\t\t\t}\n\n\t\t\t\tgsap.to(item, {\n\t\t\t\t\tduration: 1.23,\n\t\t\t\t\tease: \"power3.out\",\n\t\t\t\t\trotation: -x / rotationMod,\n\t\t\t\t\t// x: (localX - globalX) / distanceMod,\n\t\t\t\t\t// y: (localY - globalY) / distanceMod,\n\t\t\t\t\t// x: localX - globalX,\n\t\t\t\t\t// y: localY - globalY,\n\t\t\t\t\tx: x / distanceMod,\n\t\t\t\t\ty: y / distanceMod,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgsap.to(item, {\n\t\t\t\t\tduration: 2.34,\n\t\t\t\t\tease: \"power4.out\",\n\t\t\t\t\trotation: 0,\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t},\n\n\tparallaxImage: (): void => {\n\t\tScrollTrigger.matchMedia({\n\t\t\t// desktop\n\t\t\t\"(min-width: 576px)\": () => {\n\t\t\t\tgsap.set(sugarBanner.elImage, { clearProps: \"all\" });\n\t\t\t\tgsap.to(sugarBanner.elImage, {\n\t\t\t\t\ty: -63,\n\t\t\t\t\tscrollTrigger: {\n\t\t\t\t\t\tend: \"100% 0\",\n\t\t\t\t\t\tscrub: 0.654,\n\t\t\t\t\t\tstart: \"0 100%\",\n\t\t\t\t\t\ttrigger: sugarBanner.elContainer,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t\t// mobile\n\t\t\t\"(max-width: 575px)\": () => {\n\t\t\t\tgsap.set(sugarBanner.elImage, { clearProps: \"all\" });\n\t\t\t\tgsap.set(sugarBanner.elImage, { rotate: -90, scaleY: -1 });\n\t\t\t\tgsap.to(sugarBanner.elImage, {\n\t\t\t\t\ty: -42,\n\t\t\t\t\tscrollTrigger: {\n\t\t\t\t\t\tend: \"100% 0\",\n\t\t\t\t\t\tscrub: 0.654,\n\t\t\t\t\t\tstart: \"0 100%\",\n\t\t\t\t\t\ttrigger: sugarBanner.elContainer,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t},\n\n\tresetItems: (): void => {\n\t\tsugarBanner.elItems.forEach((item) => {\n\t\t\tgsap.set(item, {\n\t\t\t\ttransformOrigin: \"50% 50%\",\n\t\t\t});\n\t\t});\n\t},\n};\n\nexport default sugarBanner;\n"], "mappings": "+JAGA,IAAMA,EAAc,CACnB,YAAa,SAAS,cAAc,cAAc,EAClD,aAAc,SAAS,cAAc,0BAA0B,EAC/D,QAAS,SAAS,cAAc,qBAAqB,EACrD,QAAS,SAAS,iBAAiB,2BAA2B,EAE9D,KAAM,IAAY,CACjB,GAAI,CAACA,EAAY,YAChB,OAED,IAAMC,EAAqBC,EAAS,IAAKF,EAAY,SAAS,EAE9DG,EAAK,eAAeC,CAAa,EAEjCJ,EAAY,cAAc,EAC1BA,EAAY,WAAW,EACvBA,EAAY,YAAY,iBAAiB,aAAcA,EAAY,KAAK,EACxE,OAAO,iBAAiB,YAAaC,CAAkB,CACxD,EAEA,MAAO,IAAY,CAClBE,EAAK,OACJH,EAAY,aACZ,CACC,OAAQ,kBACT,EACA,CACC,WAAY,MACZ,SAAU,EACV,KAAM,aACN,OAAQ,eACT,CACD,CACD,EAEA,UAAYK,GAA4B,CACvC,IAAMC,EAAUD,EAAM,QAChBE,EAAUF,EAAM,QAEtBL,EAAY,QAAQ,QAASQ,GAAS,CACrC,GAAI,CAACA,EACJ,OAED,IAAMC,EACLD,EAAK,sBAAsB,EAAE,KAC7BA,EAAK,sBAAsB,EAAE,MAAQ,EAChCE,EACLF,EAAK,sBAAsB,EAAE,IAC7BA,EAAK,sBAAsB,EAAE,OAAS,EAEjCG,EAAW,KAAK,MAAMF,EAASH,EAASI,EAASH,CAAO,EACxDK,EAAc,IACdC,EAAc,GACdC,EAAY,KAAK,MAAML,EAASH,CAAO,EACvCS,EAAY,KAAK,MAAML,EAASH,CAAO,EACvCS,EAAc,GAChBC,EACAC,EAEAP,EAAWC,GACVN,EAAUG,EACbQ,EACCH,EAAYF,EAAc,EACvBH,EAASH,EACTM,GAAeH,EAASH,GAE5BW,EACCH,EAAYF,EAAc,EACvBH,EAASH,EACTA,EAAUG,EAASG,EAGpBL,EAAUG,EACbQ,EACCH,EAAYH,EAAc,EACvBF,EAASH,EACTK,GAAeF,EAASH,GAE5BW,EACCH,EAAYH,EAAc,EACvBF,EAASH,EACTA,EAAUG,EAASE,EAGxBT,EAAK,GAAGK,EAAM,CACb,SAAU,KACV,KAAM,aACN,SAAU,CAACS,EAAID,EAKf,EAAGC,EAAIJ,EACP,EAAGK,EAAIL,CACR,CAAC,GAEDV,EAAK,GAAGK,EAAM,CACb,SAAU,KACV,KAAM,aACN,SAAU,EACV,EAAG,EACH,EAAG,CACJ,CAAC,CAEH,CAAC,CACF,EAEA,cAAe,IAAY,CAC1BJ,EAAc,WAAW,CAExB,qBAAsB,IAAM,CAC3BD,EAAK,IAAIH,EAAY,QAAS,CAAE,WAAY,KAAM,CAAC,EACnDG,EAAK,GAAGH,EAAY,QAAS,CAC5B,EAAG,IACH,cAAe,CACd,IAAK,SACL,MAAO,KACP,MAAO,SACP,QAASA,EAAY,WACtB,CACD,CAAC,CACF,EAEA,qBAAsB,IAAM,CAC3BG,EAAK,IAAIH,EAAY,QAAS,CAAE,WAAY,KAAM,CAAC,EACnDG,EAAK,IAAIH,EAAY,QAAS,CAAE,OAAQ,IAAK,OAAQ,EAAG,CAAC,EACzDG,EAAK,GAAGH,EAAY,QAAS,CAC5B,EAAG,IACH,cAAe,CACd,IAAK,SACL,MAAO,KACP,MAAO,SACP,QAASA,EAAY,WACtB,CACD,CAAC,CACF,CACD,CAAC,CACF,EAEA,WAAY,IAAY,CACvBA,EAAY,QAAQ,QAASQ,GAAS,CACrCL,EAAK,IAAIK,EAAM,CACd,gBAAiB,SAClB,CAAC,CACF,CAAC,CACF,CACD,EAEOW,EAAQnB", "names": ["sugarBanner", "throttledMouseMove", "n", "gsapWithCSS", "ScrollTrigger", "event", "globalX", "globalY", "item", "localX", "localY", "distance", "distanceMax", "distanceMod", "distanceX", "distanceY", "rotationMod", "x", "y", "sugar_banner_default"] }