{"version":3,"file":"infinite-loading-vue3-ts.esm-B7UIVmWA.js","sources":["../../node_modules/.pnpm/infinite-loading-vue3-ts@1.0.5_vue@3.5.11_typescript@5.3.3_/node_modules/infinite-loading-vue3-ts/dist/infinite-loading-vue3-ts.esm.js"],"sourcesContent":["import { defineComponent, ref, openBlock, createBlock, withDirectives, createVNode, renderSlot, vShow, createTextVNode } from 'vue';\n\nconst STATUS = {\n READY: 0,\n LOADING: 1,\n COMPLETE: 2,\n ERROR: 3\n};\nvar script = defineComponent({\n name: 'InfiniteLoading',\n\n setup() {\n const stateChanger = ref();\n const scrollParent = ref();\n const isFirstLoad = ref(false);\n const status = ref(STATUS.READY);\n return {\n stateChanger,\n scrollParent,\n isFirstLoad,\n status\n };\n },\n\n computed: {\n isShowSpinner() {\n return this.status === STATUS.LOADING;\n },\n\n isShowError() {\n return this.status === STATUS.ERROR;\n },\n\n isShowNoResults() {\n return this.status === STATUS.COMPLETE && this.isFirstLoad;\n },\n\n isShowNoMore() {\n return this.status === STATUS.COMPLETE && !this.isFirstLoad;\n }\n\n },\n\n mounted() {\n this.scrollParent = this.getScrollParent(); // object pass to emit event\n\n this.stateChanger = {\n loaded: () => {\n this.isFirstLoad = false;\n this.infinityLoad();\n },\n complete: () => {\n this.status = STATUS.COMPLETE;\n this.removeEventListener();\n },\n reset: () => {\n this.status = STATUS.READY;\n this.isFirstLoad = true;\n this.addEventListener();\n setTimeout(() => {\n this.infinityLoad();\n }, 1);\n },\n error: () => {\n this.status = STATUS.ERROR;\n }\n };\n setTimeout(() => {\n this.infinityLoad();\n this.addEventListener();\n });\n },\n\n beforeUnmount() {\n this.removeEventListener();\n },\n\n methods: {\n addEventListener() {\n if (this.scrollParent) {\n this.scrollParent.addEventListener('scroll', this.scrollHandler);\n }\n },\n\n removeEventListener() {\n if (this.scrollParent) {\n this.scrollParent.removeEventListener('scroll', this.scrollHandler);\n }\n },\n\n getCurrentDistance() {\n var _this$scrollParent;\n\n const infiniteElmOffsetTopFromBottom = this.$el.getBoundingClientRect().top;\n const scrollElmOffsetTopFromBottom = this.scrollParent === window ? window.innerHeight : (_this$scrollParent = this.scrollParent) === null || _this$scrollParent === void 0 ? void 0 : _this$scrollParent.getBoundingClientRect().bottom;\n return infiniteElmOffsetTopFromBottom - (scrollElmOffsetTopFromBottom || 0);\n },\n\n isVisible(elm) {\n return elm.offsetWidth + elm.offsetHeight > 0;\n },\n\n getScrollParent(elm) {\n if (!elm) {\n elm = this.$el;\n }\n\n let result;\n\n if (elm.tagName === 'BODY') {\n result = window;\n } else if (elm.hasAttribute('infinite-wrapper') || elm.hasAttribute('data-infinite-wrapper')) {\n result = elm;\n }\n\n return result || this.getScrollParent(elm.parentNode);\n },\n\n infinityLoad() {\n if (this.status !== STATUS.COMPLETE && this.isVisible(this.$el) && this.getCurrentDistance() <= 100) {\n this.status = STATUS.LOADING;\n this.$emit('infinite', this.stateChanger);\n } else {\n if (this.status === STATUS.LOADING) {\n this.status = STATUS.READY;\n }\n }\n },\n\n scrollHandler() {\n if (this.status === STATUS.READY) {\n this.infinityLoad();\n }\n }\n\n }\n});\n\nconst _hoisted_1 = {\n class: \"infinite-loading-container\"\n};\nconst _hoisted_2 = {\n class: \"infinite-status-prompt\"\n};\n\nconst _hoisted_3 = /*#__PURE__*/createTextVNode(\" Loading... \");\n\nconst _hoisted_4 = {\n class: \"infinite-status-prompt\"\n};\n\nconst _hoisted_5 = /*#__PURE__*/createTextVNode(\" No results :( \");\n\nconst _hoisted_6 = {\n class: \"infinite-status-prompt\"\n};\n\nconst _hoisted_7 = /*#__PURE__*/createTextVNode(\" No more data :) \");\n\nconst _hoisted_8 = {\n class: \"infinite-status-prompt\"\n};\n\nconst _hoisted_9 = /*#__PURE__*/createTextVNode(\" Opps, something went wrong :( \");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(\"div\", _hoisted_1, [withDirectives(createVNode(\"div\", _hoisted_2, [renderSlot(_ctx.$slots, \"spinner\", {}, () => [_hoisted_3])], 512), [[vShow, _ctx.isShowSpinner]]), withDirectives(createVNode(\"div\", _hoisted_4, [renderSlot(_ctx.$slots, \"no-results\", {}, () => [_hoisted_5])], 512), [[vShow, _ctx.isShowNoResults]]), withDirectives(createVNode(\"div\", _hoisted_6, [renderSlot(_ctx.$slots, \"no-more\", {}, () => [_hoisted_7])], 512), [[vShow, _ctx.isShowNoMore]]), withDirectives(createVNode(\"div\", _hoisted_8, [renderSlot(_ctx.$slots, \"error\", {}, () => [_hoisted_9, createVNode(\"button\", {\n class: \"btn-try-infinite\",\n onClick: _cache[1] || (_cache[1] = (...args) => _ctx.infinityLoad && _ctx.infinityLoad(...args))\n }, \"Retry\")])], 512), [[vShow, _ctx.isShowError]])]);\n}\n\nscript.render = render;\n\n// Import vue component\n\n// Default export is installable instance of component.\n// IIFE injects install function into component, allowing component\n// to be registered via Vue.use() as well as Vue.component(),\nvar entry_esm = /*#__PURE__*/(() => {\n // Assign InstallableComponent type\n const installable = script; // Attach install function executed by Vue.use()\n\n installable.install = app => {\n app.component('InfiniteLoadingVue3Ts', installable);\n };\n\n return installable;\n})(); // It's possible to expose named exports when writing components that can\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\n\nconst InfiniteLoading = script;\n\nexport default entry_esm;\nexport { InfiniteLoading };\n"],"names":["STATUS","script","defineComponent","stateChanger","ref","scrollParent","isFirstLoad","status","_this$scrollParent","infiniteElmOffsetTopFromBottom","scrollElmOffsetTopFromBottom","elm","result","_hoisted_1","_hoisted_2","_hoisted_3","createTextVNode","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createBlock","withDirectives","createVNode","renderSlot","vShow","args","entry_esm","installable","app"],"mappings":"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","x_google_ignoreList":[0]}