{ "version": 3, "sources": ["../../../Vettvangur.Frontend/src/scripts/blocks/calculator-block.ts"], "sourcesContent": ["import gsap from 'gsap'\nimport ScrollTrigger from 'gsap/ScrollTrigger'\nimport { lenisScroll } from 'helpers/smooth-scroll'\n\nconst calculatorBlock = {\n init(): void {\n gsap.registerPlugin(ScrollTrigger)\n\n document.querySelectorAll('.calculator-block').forEach((target: HTMLElement) => {\n this.handleCalculatorBlock(target)\n })\n },\n\n handleCalculatorBlock(target): void {\n const allowedDomains = [/^https?:\\/\\/localhost:(3000|3001)$/, /^https?:\\/\\/(?:.*\\.)?lsr\\.is$/]\n\n const el = {\n iframeContainer: target.querySelector('iframe').parentElement,\n }\n\n const method = {\n init(): void {\n window.addEventListener('message', (event) => {\n const originAllowed = allowedDomains.some((pattern) =>\n typeof pattern === 'string' ? pattern === event.origin : pattern.test(event.origin)\n )\n\n if (originAllowed) {\n if (event.data.source === 'react-devtools-content-script') {\n return\n }\n\n if (event.data.iframeHeight) {\n method.setHeight(event.data)\n }\n\n if (event.data.scrollIntoView) {\n method.scrollIntoView(event.data)\n }\n }\n })\n },\n\n scrollIntoView(data): void {\n const scrollModifier = window.innerWidth < 1024 ? 30 : 120\n const scrollTo = window.scrollY + target.getBoundingClientRect().top + data.scrollAmount - scrollModifier\n\n setTimeout(() => {\n lenisScroll.scrollTo(scrollTo, {\n duration: 1.234,\n easing: (t) => (t < 0.5 ? 8 * t ** 4 : 1 - (-2 * t + 2) ** 4 / 2),\n force: true,\n })\n }, 12)\n },\n\n setHeight(data): void {\n el.iframeContainer.style.height = `${data.iframeHeight}px`\n setTimeout(ScrollTrigger.refresh, 12)\n // setTimeout(method.updateScrollTriggers, 12) // ! This function fires to often and causes performance issues\n },\n\n updateScrollTriggers(): void {\n let previousBodyHeight = document.body.getBoundingClientRect().height\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.contentRect.height !== previousBodyHeight) {\n previousBodyHeight = entry.contentRect.height\n console.log(previousBodyHeight, entry.contentRect.height)\n ScrollTrigger.refresh()\n console.log('update scroll')\n }\n }\n })\n\n observer.observe(document.body)\n },\n }\n\n method.init()\n },\n}\n\nexport default calculatorBlock\n"], "mappings": "oKAIA,IAAMA,EAAkB,CACtB,MAAa,CACXC,EAAK,eAAeC,CAAa,EAEjC,SAAS,iBAA8B,mBAAmB,EAAE,QAASC,GAAwB,CAC3F,KAAK,sBAAsBA,CAAM,CACnC,CAAC,CACH,EAEA,sBAAsBA,EAAc,CAClC,IAAMC,EAAiB,CAAC,qCAAsC,+BAA+B,EAEvFC,EAAK,CACT,gBAAiBF,EAAO,cAAc,QAAQ,EAAE,aAClD,EAEMG,EAAS,CACb,MAAa,CACX,OAAO,iBAAiB,UAAYC,GAAU,CAK5C,GAJsBH,EAAe,KAAMI,GACzC,OAAOA,GAAY,SAAWA,IAAYD,EAAM,OAASC,EAAQ,KAAKD,EAAM,MAAM,CACpF,EAEmB,CACjB,GAAIA,EAAM,KAAK,SAAW,gCACxB,OAGEA,EAAM,KAAK,cACbD,EAAO,UAAUC,EAAM,IAAI,EAGzBA,EAAM,KAAK,gBACbD,EAAO,eAAeC,EAAM,IAAI,CAEpC,CACF,CAAC,CACH,EAEA,eAAeE,EAAY,CACzB,IAAMC,EAAiB,OAAO,WAAa,KAAO,GAAK,IACjDC,EAAW,OAAO,QAAUR,EAAO,sBAAsB,EAAE,IAAMM,EAAK,aAAeC,EAE3F,WAAW,IAAM,CACfE,EAAY,SAASD,EAAU,CAC7B,SAAU,MACV,OAAS,GAAO,EAAI,GAAM,EAAI,GAAK,EAAI,GAAK,GAAK,EAAI,IAAM,EAAI,EAC/D,MAAO,EACT,CAAC,CACH,EAAG,EAAE,CACP,EAEA,UAAUF,EAAY,CACpBJ,EAAG,gBAAgB,MAAM,OAAS,GAAGI,EAAK,YAAY,KACtD,WAAWP,EAAc,QAAS,EAAE,CAEtC,EAEA,sBAA6B,CAC3B,IAAIW,EAAqB,SAAS,KAAK,sBAAsB,EAAE,OAE9C,IAAI,eAAgBC,GAAY,CAC/C,QAAWC,KAASD,EACdC,EAAM,YAAY,SAAWF,IAC/BA,EAAqBE,EAAM,YAAY,OACvC,QAAQ,IAAIF,EAAoBE,EAAM,YAAY,MAAM,EACxDb,EAAc,QAAQ,EACtB,QAAQ,IAAI,eAAe,EAGjC,CAAC,EAEQ,QAAQ,SAAS,IAAI,CAChC,CACF,EAEAI,EAAO,KAAK,CACd,CACF,EAEOU,EAAQhB", "names": ["calculatorBlock", "gsapWithCSS", "ScrollTrigger", "target", "allowedDomains", "el", "method", "event", "pattern", "data", "scrollModifier", "scrollTo", "lenisScroll", "previousBodyHeight", "entries", "entry", "calculator_block_default"] }