1 line
30 KiB
JSON
1 line
30 KiB
JSON
{"ast":null,"code":"import _asyncToGenerator from \"D:/MobileDev/WRB/WrenchBoard2023a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\n\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, e as createEvent, c as writeTask, f as readTask, h, i as getElement, H as Host } from './index-1a99aeb7.js';\nimport { b as getIonMode, c as config } from './ionic-global-04e268e7.js';\nimport { f as findClosestIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-3413f7be.js';\nimport { s as sanitizeDOMString } from './index-dff497fb.js';\nimport './helpers-4d272360.js';\nimport './index-c4b11676.js';\nconst infiniteScrollCss = \"ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}\";\nconst InfiniteScroll = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionInfinite = createEvent(this, \"ionInfinite\", 7);\n this.thrPx = 0;\n this.thrPc = 0;\n this.didFire = false;\n this.isBusy = false;\n this.isLoading = false;\n /**\n * The threshold distance from the bottom\n * of the content to call the `infinite` output event when scrolled.\n * The threshold value can be either a percent, or\n * in pixels. For example, use the value of `10%` for the `infinite`\n * output event to get called when the user has scrolled 10%\n * from the bottom of the page. Use the value `100px` when the\n * scroll is within 100 pixels from the bottom of the page.\n */\n\n this.threshold = '15%';\n /**\n * If `true`, the infinite scroll will be hidden and scroll event listeners\n * will be removed.\n *\n * Set this to true to disable the infinite scroll from actively\n * trying to receive new data while scrolling. This is useful\n * when it is known that there is no more data that can be added, and\n * the infinite scroll is no longer needed.\n */\n\n this.disabled = false;\n /**\n * The position of the infinite scroll element.\n * The value can be either `top` or `bottom`.\n */\n\n this.position = 'bottom';\n\n this.onScroll = () => {\n const scrollEl = this.scrollEl;\n\n if (!scrollEl || !this.canStart()) {\n return 1;\n }\n\n const infiniteHeight = this.el.offsetHeight;\n\n if (infiniteHeight === 0) {\n // if there is no height of this element then do nothing\n return 2;\n }\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\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 } else {\n this.didFire = false;\n }\n\n return 4;\n };\n }\n\n thresholdChanged() {\n const val = this.threshold;\n\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\n disabledChanged() {\n const disabled = this.disabled;\n\n if (disabled) {\n this.isLoading = false;\n this.isBusy = false;\n }\n\n this.enableScrollEvents(!disabled);\n }\n\n connectedCallback() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n const contentEl = findClosestIonContent(_this.el);\n\n if (!contentEl) {\n printIonContentErrorMsg(_this.el);\n return;\n }\n\n _this.scrollEl = yield getScrollElement(contentEl);\n\n _this.thresholdChanged();\n\n _this.disabledChanged();\n\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\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\n\n complete() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n const scrollEl = _this2.scrollEl;\n\n if (!_this2.isLoading || !scrollEl) {\n return;\n }\n\n _this2.isLoading = false;\n\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; // ******** DOM READ ****************\n // Save the current content dimensions before the UI updates\n\n const prev = scrollEl.scrollHeight - scrollEl.scrollTop; // ******** DOM READ ****************\n\n requestAnimationFrame(() => {\n readTask(() => {\n // UI has updated, save the new content dimensions\n const scrollHeight = scrollEl.scrollHeight; // New content was added on top, so the scroll position should be changed immediately to prevent it from jumping around\n\n const newScrollTop = scrollHeight - prev; // ******** DOM WRITE ****************\n\n requestAnimationFrame(() => {\n writeTask(() => {\n scrollEl.scrollTop = newScrollTop;\n _this2.isBusy = false;\n });\n });\n });\n });\n }\n })();\n }\n\n canStart() {\n return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;\n }\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\n render() {\n const mode = getIonMode(this);\n const disabled = this.disabled;\n return h(Host, {\n class: {\n [mode]: true,\n 'infinite-scroll-loading': this.isLoading,\n 'infinite-scroll-enabled': !disabled\n }\n });\n }\n\n get el() {\n return getElement(this);\n }\n\n static get watchers() {\n return {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n };\n }\n\n};\nInfiniteScroll.style = infiniteScrollCss;\nconst infiniteScrollContentIosCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-ios .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-small-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\nconst infiniteScrollContentMdCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\nconst InfiniteScrollContent = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n\n componentDidLoad() {\n if (this.loadingSpinner === undefined) {\n const mode = getIonMode(this);\n this.loadingSpinner = config.get('infiniteLoadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent'));\n }\n }\n\n render() {\n const mode = getIonMode(this);\n return h(Host, {\n class: {\n [mode]: true,\n // Used internally for styling\n [`infinite-scroll-content-${mode}`]: true\n }\n }, h(\"div\", {\n class: \"infinite-loading\"\n }, this.loadingSpinner && h(\"div\", {\n class: \"infinite-loading-spinner\"\n }, h(\"ion-spinner\", {\n name: this.loadingSpinner\n })), this.loadingText && h(\"div\", {\n class: \"infinite-loading-text\",\n innerHTML: sanitizeDOMString(this.loadingText)\n })));\n }\n\n};\nInfiniteScrollContent.style = {\n ios: infiniteScrollContentIosCss,\n md: infiniteScrollContentMdCss\n};\nexport { InfiniteScroll as ion_infinite_scroll, InfiniteScrollContent as ion_infinite_scroll_content };","map":{"version":3,"names":["r","registerInstance","e","createEvent","c","writeTask","f","readTask","h","i","getElement","H","Host","b","getIonMode","config","findClosestIonContent","p","printIonContentErrorMsg","g","getScrollElement","s","sanitizeDOMString","infiniteScrollCss","InfiniteScroll","constructor","hostRef","ionInfinite","thrPx","thrPc","didFire","isBusy","isLoading","threshold","disabled","position","onScroll","scrollEl","canStart","infiniteHeight","el","offsetHeight","scrollTop","scrollHeight","height","distanceFromInfinite","emit","thresholdChanged","val","lastIndexOf","parseFloat","disabledChanged","enableScrollEvents","connectedCallback","contentEl","clientHeight","disconnectedCallback","undefined","complete","prev","requestAnimationFrame","newScrollTop","shouldListen","addEventListener","removeEventListener","render","mode","class","watchers","style","infiniteScrollContentIosCss","infiniteScrollContentMdCss","InfiniteScrollContent","componentDidLoad","loadingSpinner","get","name","loadingText","innerHTML","ios","md","ion_infinite_scroll","ion_infinite_scroll_content"],"sources":["D:/MobileDev/WRB/WrenchBoard2023a/node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, e as createEvent, c as writeTask, f as readTask, h, i as getElement, H as Host } from './index-1a99aeb7.js';\nimport { b as getIonMode, c as config } from './ionic-global-04e268e7.js';\nimport { f as findClosestIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-3413f7be.js';\nimport { s as sanitizeDOMString } from './index-dff497fb.js';\nimport './helpers-4d272360.js';\nimport './index-c4b11676.js';\n\nconst infiniteScrollCss = \"ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}\";\n\nconst InfiniteScroll = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionInfinite = createEvent(this, \"ionInfinite\", 7);\n this.thrPx = 0;\n this.thrPc = 0;\n this.didFire = false;\n this.isBusy = false;\n this.isLoading = false;\n /**\n * The threshold distance from the bottom\n * of the content to call the `infinite` output event when scrolled.\n * The threshold value can be either a percent, or\n * in pixels. For example, use the value of `10%` for the `infinite`\n * output event to get called when the user has scrolled 10%\n * from the bottom of the page. Use the value `100px` when the\n * scroll is within 100 pixels from the bottom of the page.\n */\n this.threshold = '15%';\n /**\n * If `true`, the infinite scroll will be hidden and scroll event listeners\n * will be removed.\n *\n * Set this to true to disable the infinite scroll from actively\n * trying to receive new data while scrolling. This is useful\n * when it is known that there is no more data that can be added, and\n * the infinite scroll is no longer needed.\n */\n this.disabled = false;\n /**\n * The position of the infinite scroll element.\n * The value can be either `top` or `bottom`.\n */\n this.position = 'bottom';\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 else {\n this.didFire = false;\n }\n return 4;\n };\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 });\n });\n });\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 }\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, { class: {\n [mode]: true,\n 'infinite-scroll-loading': this.isLoading,\n 'infinite-scroll-enabled': !disabled,\n } }));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n};\nInfiniteScroll.style = infiniteScrollCss;\n\nconst infiniteScrollContentIosCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-ios .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-small-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\n\nconst infiniteScrollContentMdCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\n\nconst InfiniteScrollContent = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n componentDidLoad() {\n if (this.loadingSpinner === undefined) {\n const mode = getIonMode(this);\n this.loadingSpinner = config.get('infiniteLoadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent'));\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`infinite-scroll-content-${mode}`]: true,\n } }, h(\"div\", { class: \"infinite-loading\" }, this.loadingSpinner && (h(\"div\", { class: \"infinite-loading-spinner\" }, h(\"ion-spinner\", { name: this.loadingSpinner }))), this.loadingText && h(\"div\", { class: \"infinite-loading-text\", innerHTML: sanitizeDOMString(this.loadingText) }))));\n }\n};\nInfiniteScrollContent.style = {\n ios: infiniteScrollContentIosCss,\n md: infiniteScrollContentMdCss\n};\n\nexport { InfiniteScroll as ion_infinite_scroll, InfiniteScrollContent as ion_infinite_scroll_content };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |