{"version":3,"file":"js/7711.4014b5da3d182ec2.js","mappings":"gHAOM,SAAUA,EAAiDC,EAAgBC,EAAY,IACzF,OAAO,IAAIC,SAASC,IAChB,GAAmC,oBAAxBC,qBAAqC,CAC5C,MAAMC,EAAU,CACZJ,UAAWA,GAGTK,EAAW,IAAIF,sBAAqB,CAACG,EAASD,KAChDC,EACKC,QAAQC,GAAUA,EAAMC,gBAAkBD,EAAME,mBAAqBV,IACrEW,SAASH,IACNN,EAAIM,GACJH,EAASO,UAAUJ,EAAMK,OAAO,GAClC,GACPT,GAEHC,EAASS,QAAQf,EACrB,MACIG,EAAI,KACR,GAER,C,+GCpBA,SAA4Ba,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,wBACRC,KAAAA,CAAMC,GCFR,MAAMC,GAAsBC,EAAAA,EAAAA,KAAI,GAE1BC,EAAcC,SAASC,eAAe,sCAEtCC,EAAaA,KACVH,GAKLI,EAAAA,EAAAA,KAAS,MACL3B,EAAAA,EAAAA,GAAgBuB,EAAa,GAAGK,MAAK,KACjCP,EAAoBQ,OAAQ,CAAI,GAClC,IAPFR,EAAoBQ,OAAQ,CAQ9B,EDSN,OCNAH,IDMO,CAACI,EAAUC,IACRV,EAAoBQ,QACvBG,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,WAAc,CAAEC,IAAK,MACjDC,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IEjCMC,EAAc,EAEpB,G","sources":["webpack://@sazka/web/../../libs/utils/viewport-enter.ts","webpack://@sazka/web/./js/app/tickets/widgets/random-recommendation/_promo-content-widget.vue?20af","webpack://@sazka/web/./js/app/tickets/widgets/random-recommendation/_promo-content-widget.vue","webpack://@sazka/web/./js/app/tickets/widgets/random-recommendation/_promo-content-widget.vue?7d75"],"sourcesContent":["/**\r\n * Returns a Promise that resolves when the given HTML element enters the viewport.\r\n *\r\n * @param {HTMLElement | Element} htmlElement - The HTML element to observe.\r\n * @param {number} [threshold=0.7] - The threshold for intersection.\r\n * @return {Promise<IntersectionObserverEntry | null>} A Promise that resolves with the intersection entry or null if IntersectionObserver is not supported.\r\n */\r\nexport function onViewportEnter<T extends HTMLElement | Element>(htmlElement: T, threshold = 0.7) {\r\n    return new Promise((res) => {\r\n        if (typeof IntersectionObserver != \"undefined\") {\r\n            const options = {\r\n                threshold: threshold,\r\n            };\r\n\r\n            const observer = new IntersectionObserver((entries, observer) => {\r\n                entries\r\n                    .filter((entry) => entry.isIntersecting && entry.intersectionRatio >= threshold)\r\n                    .forEach((entry) => {\r\n                        res(entry);\r\n                        observer.unobserve(entry.target);\r\n                    });\r\n            }, options);\r\n\r\n            observer.observe(htmlElement as HTMLElement);\r\n        } else {\r\n            res(null);\r\n        }\r\n    });\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { nextTick, ref } from \"vue\";\r\nimport PromoContent from \"./_promo-content.vue\";\r\nimport { onViewportEnter } from \"@sazka/utils/viewport-enter\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: '_promo-content-widget',\n  setup(__props) {\n\r\nconst contentIsInViewport = ref(false);\r\n\r\nconst wrapperElem = document.getElementById(\"random-recommendation-card-wrapper\");\r\n\r\nconst initSlider = () => {\r\n    if (!wrapperElem) {\r\n        contentIsInViewport.value = true;\r\n        return;\r\n    }\r\n\r\n    nextTick(() => {\r\n        onViewportEnter(wrapperElem, 0).then(() => {\r\n            contentIsInViewport.value = true;\r\n        });\r\n    });\r\n};\r\n\r\ninitSlider();\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (contentIsInViewport.value)\n    ? (_openBlock(), _createBlock(PromoContent, { key: 0 }))\n    : _createCommentVNode(\"\", true)\n}\n}\n\n})","<template>\r\n    <PromoContent v-if=\"contentIsInViewport\" />\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { nextTick, ref } from \"vue\";\r\nimport PromoContent from \"./_promo-content.vue\";\r\nimport { onViewportEnter } from \"@sazka/utils/viewport-enter\";\r\n\r\nconst contentIsInViewport = ref(false);\r\n\r\nconst wrapperElem = document.getElementById(\"random-recommendation-card-wrapper\");\r\n\r\nconst initSlider = () => {\r\n    if (!wrapperElem) {\r\n        contentIsInViewport.value = true;\r\n        return;\r\n    }\r\n\r\n    nextTick(() => {\r\n        onViewportEnter(wrapperElem, 0).then(() => {\r\n            contentIsInViewport.value = true;\r\n        });\r\n    });\r\n};\r\n\r\ninitSlider();\r\n</script>\r\n","import script from \"./_promo-content-widget.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./_promo-content-widget.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["onViewportEnter","htmlElement","threshold","Promise","res","IntersectionObserver","options","observer","entries","filter","entry","isIntersecting","intersectionRatio","forEach","unobserve","target","observe","_defineComponent","__name","setup","__props","contentIsInViewport","ref","wrapperElem","document","getElementById","initSlider","nextTick","then","value","_ctx","_cache","_openBlock","_createBlock","PromoContent","key","_createCommentVNode","__exports__"],"sourceRoot":""}