{"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, readTask, h, Host } from '@stencil/core/internal/client';\nimport { a as findClosestIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index8.js';\nimport { b as getIonMode } from './ionic-global.js';\nconst infiniteScrollCss = \"ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}\";\nconst IonInfiniteScrollStyle0 = infiniteScrollCss;\nconst InfiniteScroll = /*@__PURE__*/proxyCustomElement(class InfiniteScroll extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInfinite = createEvent(this, \"ionInfinite\", 7);\n this.thrPx = 0;\n this.thrPc = 0;\n /**\n * didFire exists so that ionInfinite\n * does not fire multiple times if\n * users continue to scroll after\n * scrolling into the infinite\n * scroll threshold.\n */\n this.didFire = false;\n this.isBusy = false;\n this.onScroll = () => {\n const scrollEl = this.scrollEl;\n if (!scrollEl || !this.canStart()) {\n return 1;\n }\n const infiniteHeight = this.el.offsetHeight;\n if (infiniteHeight === 0) {\n // if there is no height of this element then do nothing\n return 2;\n }\n const scrollTop = scrollEl.scrollTop;\n const scrollHeight = scrollEl.scrollHeight;\n const height = scrollEl.offsetHeight;\n const threshold = this.thrPc !== 0 ? height * this.thrPc : this.thrPx;\n const distanceFromInfinite = this.position === 'bottom' ? scrollHeight - infiniteHeight - scrollTop - threshold - height : scrollTop - infiniteHeight - threshold;\n if (distanceFromInfinite < 0) {\n if (!this.didFire) {\n this.isLoading = true;\n this.didFire = true;\n this.ionInfinite.emit();\n return 3;\n }\n }\n return 4;\n };\n this.isLoading = false;\n this.threshold = '15%';\n this.disabled = false;\n this.position = 'bottom';\n }\n thresholdChanged() {\n const val = this.threshold;\n if (val.lastIndexOf('%') > -1) {\n this.thrPx = 0;\n this.thrPc = parseFloat(val) / 100;\n } else {\n this.thrPx = parseFloat(val);\n this.thrPc = 0;\n }\n }\n disabledChanged() {\n const disabled = this.disabled;\n if (disabled) {\n this.isLoading = false;\n this.isBusy = false;\n }\n this.enableScrollEvents(!disabled);\n }\n connectedCallback() {\n var _this = this;\n return _asyncToGenerator(function* () {\n const contentEl = findClosestIonContent(_this.el);\n if (!contentEl) {\n printIonContentErrorMsg(_this.el);\n return;\n }\n _this.scrollEl = yield getScrollElement(contentEl);\n _this.thresholdChanged();\n _this.disabledChanged();\n if (_this.position === 'top') {\n writeTask(() => {\n if (_this.scrollEl) {\n _this.scrollEl.scrollTop = _this.scrollEl.scrollHeight - _this.scrollEl.clientHeight;\n }\n });\n }\n })();\n }\n disconnectedCallback() {\n this.enableScrollEvents(false);\n this.scrollEl = undefined;\n }\n /**\n * Call `complete()` within the `ionInfinite` output event handler when\n * your async operation has completed. For example, the `loading`\n * state is while the app is performing an asynchronous operation,\n * such as receiving more data from an AJAX request to add more items\n * to a data list. Once the data has been received and UI updated, you\n * then call this method to signify that the loading has completed.\n * This method will change the infinite scroll's state from `loading`\n * to `enabled`.\n */\n complete() {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n const scrollEl = _this2.scrollEl;\n if (!_this2.isLoading || !scrollEl) {\n return;\n }\n _this2.isLoading = false;\n if (_this2.position === 'top') {\n /**\n * New content is being added at the top, but the scrollTop position stays the same,\n * which causes a scroll jump visually. This algorithm makes sure to prevent this.\n * (Frame 1)\n * - complete() is called, but the UI hasn't had time to update yet.\n * - Save the current content dimensions.\n * - Wait for the next frame using _dom.read, so the UI will be updated.\n * (Frame 2)\n * - Read the new content dimensions.\n * - Calculate the height difference and the new scroll position.\n * - Delay the scroll position change until other possible dom reads are done using _dom.write to be performant.\n * (Still frame 2, if I'm correct)\n * - Change the scroll position (= visually maintain the scroll position).\n * - Change the state to re-enable the InfiniteScroll.\n * - This should be after changing the scroll position, or it could\n * cause the InfiniteScroll to be triggered again immediately.\n * (Frame 3)\n * Done.\n */\n _this2.isBusy = true;\n // ******** DOM READ ****************\n // Save the current content dimensions before the UI updates\n const prev = scrollEl.scrollHeight - scrollEl.scrollTop;\n // ******** DOM READ ****************\n requestAnimationFrame(() => {\n readTask(() => {\n // UI has updated, save the new content dimensions\n const scrollHeight = scrollEl.scrollHeight;\n // New content was added on top, so the scroll position should be changed immediately to prevent it from jumping around\n const newScrollTop = scrollHeight - prev;\n // ******** DOM WRITE ****************\n requestAnimationFrame(() => {\n writeTask(() => {\n scrollEl.scrollTop = newScrollTop;\n _this2.isBusy = false;\n _this2.didFire = false;\n });\n });\n });\n });\n } else {\n _this2.didFire = false;\n }\n })();\n }\n canStart() {\n return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;\n }\n enableScrollEvents(shouldListen) {\n if (this.scrollEl) {\n if (shouldListen) {\n this.scrollEl.addEventListener('scroll', this.onScroll);\n } else {\n this.scrollEl.removeEventListener('scroll', this.onScroll);\n }\n }\n }\n render() {\n const mode = getIonMode(this);\n const disabled = this.disabled;\n return h(Host, {\n key: 'e844956795f69be33396ce4480aa7a54ad01b28c',\n class: {\n [mode]: true,\n 'infinite-scroll-loading': this.isLoading,\n 'infinite-scroll-enabled': !disabled\n }\n });\n }\n get el() {\n return this;\n }\n static get watchers() {\n return {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n };\n }\n static get style() {\n return IonInfiniteScrollStyle0;\n }\n}, [0, \"ion-infinite-scroll\", {\n \"threshold\": [1],\n \"disabled\": [4],\n \"position\": [1],\n \"isLoading\": [32],\n \"complete\": [64]\n}, undefined, {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n}]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-infinite-scroll\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-infinite-scroll\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, InfiniteScroll);\n }\n break;\n }\n });\n}\nconst IonInfiniteScroll = InfiniteScroll;\nconst defineCustomElement = defineCustomElement$1;\nexport { IonInfiniteScroll, defineCustomElement };","map":{"version":3,"names":["proxyCustomElement","HTMLElement","createEvent","writeTask","readTask","h","Host","a","findClosestIonContent","p","printIonContentErrorMsg","g","getScrollElement","b","getIonMode","infiniteScrollCss","IonInfiniteScrollStyle0","InfiniteScroll","constructor","__registerHost","ionInfinite","thrPx","thrPc","didFire","isBusy","onScroll","scrollEl","canStart","infiniteHeight","el","offsetHeight","scrollTop","scrollHeight","height","threshold","distanceFromInfinite","position","isLoading","emit","disabled","thresholdChanged","val","lastIndexOf","parseFloat","disabledChanged","enableScrollEvents","connectedCallback","_this","_asyncToGenerator","contentEl","clientHeight","disconnectedCallback","undefined","complete","_this2","prev","requestAnimationFrame","newScrollTop","shouldListen","addEventListener","removeEventListener","render","mode","key","class","watchers","style","defineCustomElement$1","customElements","components","forEach","tagName","get","define","IonInfiniteScroll","defineCustomElement"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@ionic/core/components/ion-infinite-scroll.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, readTask, h, Host } from '@stencil/core/internal/client';\nimport { a as findClosestIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index8.js';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst infiniteScrollCss = \"ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}\";\nconst IonInfiniteScrollStyle0 = infiniteScrollCss;\n\nconst InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class InfiniteScroll extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInfinite = createEvent(this, \"ionInfinite\", 7);\n this.thrPx = 0;\n this.thrPc = 0;\n /**\n * didFire exists so that ionInfinite\n * does not fire multiple times if\n * users continue to scroll after\n * scrolling into the infinite\n * scroll threshold.\n */\n this.didFire = false;\n this.isBusy = false;\n this.onScroll = () => {\n const scrollEl = this.scrollEl;\n if (!scrollEl || !this.canStart()) {\n return 1;\n }\n const infiniteHeight = this.el.offsetHeight;\n if (infiniteHeight === 0) {\n // if there is no height of this element then do nothing\n return 2;\n }\n const scrollTop = scrollEl.scrollTop;\n const scrollHeight = scrollEl.scrollHeight;\n const height = scrollEl.offsetHeight;\n const threshold = this.thrPc !== 0 ? height * this.thrPc : this.thrPx;\n const distanceFromInfinite = this.position === 'bottom'\n ? scrollHeight - infiniteHeight - scrollTop - threshold - height\n : scrollTop - infiniteHeight - threshold;\n if (distanceFromInfinite < 0) {\n if (!this.didFire) {\n this.isLoading = true;\n this.didFire = true;\n this.ionInfinite.emit();\n return 3;\n }\n }\n return 4;\n };\n this.isLoading = false;\n this.threshold = '15%';\n this.disabled = false;\n this.position = 'bottom';\n }\n thresholdChanged() {\n const val = this.threshold;\n if (val.lastIndexOf('%') > -1) {\n this.thrPx = 0;\n this.thrPc = parseFloat(val) / 100;\n }\n else {\n this.thrPx = parseFloat(val);\n this.thrPc = 0;\n }\n }\n disabledChanged() {\n const disabled = this.disabled;\n if (disabled) {\n this.isLoading = false;\n this.isBusy = false;\n }\n this.enableScrollEvents(!disabled);\n }\n async connectedCallback() {\n const contentEl = findClosestIonContent(this.el);\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n this.scrollEl = await getScrollElement(contentEl);\n this.thresholdChanged();\n this.disabledChanged();\n if (this.position === 'top') {\n writeTask(() => {\n if (this.scrollEl) {\n this.scrollEl.scrollTop = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;\n }\n });\n }\n }\n disconnectedCallback() {\n this.enableScrollEvents(false);\n this.scrollEl = undefined;\n }\n /**\n * Call `complete()` within the `ionInfinite` output event handler when\n * your async operation has completed. For example, the `loading`\n * state is while the app is performing an asynchronous operation,\n * such as receiving more data from an AJAX request to add more items\n * to a data list. Once the data has been received and UI updated, you\n * then call this method to signify that the loading has completed.\n * This method will change the infinite scroll's state from `loading`\n * to `enabled`.\n */\n async complete() {\n const scrollEl = this.scrollEl;\n if (!this.isLoading || !scrollEl) {\n return;\n }\n this.isLoading = false;\n if (this.position === 'top') {\n /**\n * New content is being added at the top, but the scrollTop position stays the same,\n * which causes a scroll jump visually. This algorithm makes sure to prevent this.\n * (Frame 1)\n * - complete() is called, but the UI hasn't had time to update yet.\n * - Save the current content dimensions.\n * - Wait for the next frame using _dom.read, so the UI will be updated.\n * (Frame 2)\n * - Read the new content dimensions.\n * - Calculate the height difference and the new scroll position.\n * - Delay the scroll position change until other possible dom reads are done using _dom.write to be performant.\n * (Still frame 2, if I'm correct)\n * - Change the scroll position (= visually maintain the scroll position).\n * - Change the state to re-enable the InfiniteScroll.\n * - This should be after changing the scroll position, or it could\n * cause the InfiniteScroll to be triggered again immediately.\n * (Frame 3)\n * Done.\n */\n this.isBusy = true;\n // ******** DOM READ ****************\n // Save the current content dimensions before the UI updates\n const prev = scrollEl.scrollHeight - scrollEl.scrollTop;\n // ******** DOM READ ****************\n requestAnimationFrame(() => {\n readTask(() => {\n // UI has updated, save the new content dimensions\n const scrollHeight = scrollEl.scrollHeight;\n // New content was added on top, so the scroll position should be changed immediately to prevent it from jumping around\n const newScrollTop = scrollHeight - prev;\n // ******** DOM WRITE ****************\n requestAnimationFrame(() => {\n writeTask(() => {\n scrollEl.scrollTop = newScrollTop;\n this.isBusy = false;\n this.didFire = false;\n });\n });\n });\n });\n }\n else {\n this.didFire = false;\n }\n }\n canStart() {\n return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;\n }\n enableScrollEvents(shouldListen) {\n if (this.scrollEl) {\n if (shouldListen) {\n this.scrollEl.addEventListener('scroll', this.onScroll);\n }\n else {\n this.scrollEl.removeEventListener('scroll', this.onScroll);\n }\n }\n }\n render() {\n const mode = getIonMode(this);\n const disabled = this.disabled;\n return (h(Host, { key: 'e844956795f69be33396ce4480aa7a54ad01b28c', class: {\n [mode]: true,\n 'infinite-scroll-loading': this.isLoading,\n 'infinite-scroll-enabled': !disabled,\n } }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return IonInfiniteScrollStyle0; }\n}, [0, \"ion-infinite-scroll\", {\n \"threshold\": [1],\n \"disabled\": [4],\n \"position\": [1],\n \"isLoading\": [32],\n \"complete\": [64]\n }, undefined, {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-infinite-scroll\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-infinite-scroll\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, InfiniteScroll);\n }\n break;\n } });\n}\n\nconst IonInfiniteScroll = InfiniteScroll;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonInfiniteScroll, defineCustomElement };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}