{"version":3,"file":"Loader.qRkPTPVG.js","sources":["../../../../../../src/lib/components/common/Loader.svelte"],"sourcesContent":["<script lang=\"ts\">\n\timport { createEventDispatcher, onDestroy, onMount } from 'svelte';\n\tconst dispatch = createEventDispatcher();\n\n\tlet loaderElement: HTMLElement;\n\n\tlet observer;\n\tlet intervalId;\n\n\tonMount(() => {\n\t\tobserver = new IntersectionObserver(\n\t\t\t(entries, observer) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\tintervalId = setInterval(() => {\n\t\t\t\t\t\t\tdispatch('visible');\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t// dispatch('visible');\n\t\t\t\t\t\t// observer.unobserve(loaderElement); // Stop observing until content is loaded\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: null, // viewport\n\t\t\t\trootMargin: '0px',\n\t\t\t\tthreshold: 0.1 // When 10% of the loader is visible\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(loaderElement);\n\t});\n\n\tonDestroy(() => {\n\t\tobserver.disconnect();\n\n\t\tif (intervalId) {\n\t\t\tclearInterval(intervalId);\n\t\t}\n\t});\n</script>\n\n<div bind:this={loaderElement}>\n\t<slot />\n</div>\n"],"names":["insert_hydration","target","div","anchor","dispatch","createEventDispatcher","loaderElement","observer","intervalId","onMount","entries","entry","onDestroy","$$value"],"mappings":"iWA2CAA,EAEKC,EAAAC,EAAAC,CAAA,6OA3CEC,EAAWC,IAEb,IAAAC,EAEAC,EACAC,EAEJC,EAAA,IAAA,CACCF,EAAA,IAAe,sBACbG,EAASH,IAAAA,CACTG,EAAQ,QAASC,GAAA,CACZA,EAAM,eACTH,EAAa,iBACZJ,EAAS,SAAS,GAChB,KAIH,cAAcI,CAAU,MAK1B,KAAM,KACN,WAAY,MACZ,UAAW,KAIbD,EAAS,QAAQD,CAAa,IAG/BM,EAAA,IAAA,CACCL,EAAS,WAAA,EAELC,GACH,cAAcA,CAAU,6CAKXF,EAAaO"} |