{"version":3,"file":"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js.js","mappings":"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","sources":["./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, f as readTask, c as writeTask, j as forceUpdate, h, H as Host, i as getElement } from './index-8e692445.js';\nimport { c as componentOnReady } from './helpers-3b390e48.js';\n\nconst CELL_TYPE_ITEM = 'item';\nconst CELL_TYPE_HEADER = 'header';\nconst CELL_TYPE_FOOTER = 'footer';\nconst NODE_CHANGE_NONE = 0;\nconst NODE_CHANGE_POSITION = 1;\nconst NODE_CHANGE_CELL = 2;\n\nconst MIN_READS = 2;\nconst updateVDom = (dom, heightIndex, cells, range) => {\n // reset dom\n for (const node of dom) {\n node.change = NODE_CHANGE_NONE;\n node.d = true;\n }\n // try to match into exisiting dom\n const toMutate = [];\n const end = range.offset + range.length;\n for (let i = range.offset; i < end; i++) {\n const cell = cells[i];\n const node = dom.find((n) => n.d && n.cell === cell);\n if (node) {\n const top = heightIndex[i];\n if (top !== node.top) {\n node.top = top;\n node.change = NODE_CHANGE_POSITION;\n }\n node.d = false;\n }\n else {\n toMutate.push(cell);\n }\n }\n // needs to append\n const pool = dom.filter((n) => n.d);\n for (const cell of toMutate) {\n const node = pool.find((n) => n.d && n.cell.type === cell.type);\n const index = cell.i;\n if (node) {\n node.d = false;\n node.change = NODE_CHANGE_CELL;\n node.cell = cell;\n node.top = heightIndex[index];\n }\n else {\n dom.push({\n d: false,\n cell,\n visible: true,\n change: NODE_CHANGE_CELL,\n top: heightIndex[index],\n });\n }\n }\n dom\n .filter((n) => n.d && n.top !== -9999)\n .forEach((n) => {\n n.change = NODE_CHANGE_POSITION;\n n.top = -9999;\n });\n};\nconst doRender = (el, nodeRender, dom, updateCellHeight) => {\n var _a;\n const children = Array.from(el.children).filter((n) => n.tagName !== 'TEMPLATE');\n const childrenNu = children.length;\n let child;\n for (let i = 0; i < dom.length; i++) {\n const node = dom[i];\n const cell = node.cell;\n // the cell change, the content must be updated\n if (node.change === NODE_CHANGE_CELL) {\n if (i < childrenNu) {\n child = children[i];\n nodeRender(child, cell, i);\n }\n else {\n const newChild = createNode(el, cell.type);\n child = (_a = nodeRender(newChild, cell, i)) !== null && _a !== void 0 ? _a : newChild;\n child.classList.add('virtual-item');\n el.appendChild(child);\n }\n child['$ionCell'] = cell;\n }\n else {\n child = children[i];\n }\n // only update position when it changes\n if (node.change !== NODE_CHANGE_NONE) {\n child.style.transform = `translate3d(0,${node.top}px,0)`;\n }\n // update visibility\n const visible = cell.visible;\n if (node.visible !== visible) {\n if (visible) {\n child.classList.remove('virtual-loading');\n }\n else {\n child.classList.add('virtual-loading');\n }\n node.visible = visible;\n }\n // dynamic height\n if (cell.reads > 0) {\n updateCellHeight(cell, child);\n cell.reads--;\n }\n }\n};\nconst createNode = (el, type) => {\n const template = getTemplate(el, type);\n if (template && el.ownerDocument !== null) {\n return el.ownerDocument.importNode(template.content, true).children[0];\n }\n return null;\n};\nconst getTemplate = (el, type) => {\n switch (type) {\n case CELL_TYPE_ITEM:\n return el.querySelector('template:not([name])');\n case CELL_TYPE_HEADER:\n return el.querySelector('template[name=header]');\n case CELL_TYPE_FOOTER:\n return el.querySelector('template[name=footer]');\n }\n};\nconst getViewport = (scrollTop, vierportHeight, margin) => {\n return {\n top: Math.max(scrollTop - margin, 0),\n bottom: scrollTop + vierportHeight + margin,\n };\n};\nconst getRange = (heightIndex, viewport, buffer) => {\n const topPos = viewport.top;\n const bottomPos = viewport.bottom;\n // find top index\n let i = 0;\n for (; i < heightIndex.length; i++) {\n if (heightIndex[i] > topPos) {\n break;\n }\n }\n const offset = Math.max(i - buffer - 1, 0);\n // find bottom index\n for (; i < heightIndex.length; i++) {\n if (heightIndex[i] >= bottomPos) {\n break;\n }\n }\n const end = Math.min(i + buffer, heightIndex.length);\n const length = end - offset;\n return { offset, length };\n};\nconst getShouldUpdate = (dirtyIndex, currentRange, range) => {\n const end = range.offset + range.length;\n return dirtyIndex <= end || currentRange.offset !== range.offset || currentRange.length !== range.length;\n};\nconst findCellIndex = (cells, index) => {\n const max = cells.length > 0 ? cells[cells.length - 1].index : 0;\n if (index === 0) {\n return 0;\n }\n else if (index === max + 1) {\n return cells.length;\n }\n else {\n return cells.findIndex((c) => c.index === index);\n }\n};\nconst inplaceUpdate = (dst, src, offset) => {\n if (offset === 0 && src.length >= dst.length) {\n return src;\n }\n for (let i = 0; i < src.length; i++) {\n dst[i + offset] = src[i];\n }\n return dst;\n};\nconst calcCells = (items, itemHeight, headerHeight, footerHeight, headerFn, footerFn, approxHeaderHeight, approxFooterHeight, approxItemHeight, j, offset, len) => {\n const cells = [];\n const end = len + offset;\n for (let i = offset; i < end; i++) {\n const item = items[i];\n if (headerFn) {\n const value = headerFn(item, i, items);\n if (value != null) {\n cells.push({\n i: j++,\n type: CELL_TYPE_HEADER,\n value,\n index: i,\n height: headerHeight ? headerHeight(value, i) : approxHeaderHeight,\n reads: headerHeight ? 0 : MIN_READS,\n visible: !!headerHeight,\n });\n }\n }\n cells.push({\n i: j++,\n type: CELL_TYPE_ITEM,\n value: item,\n index: i,\n height: itemHeight ? itemHeight(item, i) : approxItemHeight,\n reads: itemHeight ? 0 : MIN_READS,\n visible: !!itemHeight,\n });\n if (footerFn) {\n const value = footerFn(item, i, items);\n if (value != null) {\n cells.push({\n i: j++,\n type: CELL_TYPE_FOOTER,\n value,\n index: i,\n height: footerHeight ? footerHeight(value, i) : approxFooterHeight,\n reads: footerHeight ? 0 : MIN_READS,\n visible: !!footerHeight,\n });\n }\n }\n }\n return cells;\n};\nconst calcHeightIndex = (buf, cells, index) => {\n let acum = buf[index];\n for (let i = index; i < buf.length; i++) {\n buf[i] = acum;\n acum += cells[i].height;\n }\n return acum;\n};\nconst resizeBuffer = (buf, len) => {\n if (!buf) {\n return new Uint32Array(len);\n }\n if (buf.length === len) {\n return buf;\n }\n else if (len > buf.length) {\n const newBuf = new Uint32Array(len);\n newBuf.set(buf);\n return newBuf;\n }\n else {\n return buf.subarray(0, len);\n }\n};\nconst positionForIndex = (index, cells, heightIndex) => {\n const cell = cells.find((c) => c.type === CELL_TYPE_ITEM && c.index === index);\n if (cell) {\n return heightIndex[cell.i];\n }\n return -1;\n};\n\nconst virtualScrollCss = \"ion-virtual-scroll{display:block;position:relative;width:100%;contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-virtual-scroll>.virtual-loading{opacity:0}ion-virtual-scroll>.virtual-item{position:absolute !important;top:0 !important;right:0 !important;left:0 !important;-webkit-transition-duration:0ms;transition-duration:0ms;will-change:transform}\";\n\nconst VirtualScroll = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.range = { offset: 0, length: 0 };\n this.viewportHeight = 0;\n this.cells = [];\n this.virtualDom = [];\n this.isEnabled = false;\n this.viewportOffset = 0;\n this.currentScrollTop = 0;\n this.indexDirty = 0;\n this.lastItemLen = 0;\n this.totalHeight = 0;\n /**\n * It is important to provide this\n * if virtual item height will be significantly larger than the default\n * The approximate height of each virtual item template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxItemHeight = 45;\n /**\n * The approximate height of each header template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxHeaderHeight = 30;\n /**\n * The approximate width of each footer template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxFooterHeight = 30;\n this.onScroll = () => {\n this.updateVirtualScroll();\n };\n }\n itemsChanged() {\n this.calcCells();\n this.updateVirtualScroll();\n }\n componentWillLoad() {\n console.warn(`[Deprecation Warning]: ion-virtual-scroll has been deprecated and will be removed in Ionic Framework v7.0. See https://ionicframework.com/docs/angular/virtual-scroll for migration steps.`);\n }\n async connectedCallback() {\n const contentEl = this.el.closest('ion-content');\n if (!contentEl) {\n console.error(' must be used inside an ');\n return;\n }\n this.scrollEl = await contentEl.getScrollElement();\n this.contentEl = contentEl;\n this.calcCells();\n this.updateState();\n }\n componentDidUpdate() {\n this.updateState();\n }\n disconnectedCallback() {\n this.scrollEl = undefined;\n }\n onResize() {\n this.calcCells();\n this.updateVirtualScroll();\n }\n /**\n * Returns the position of the virtual item at the given index.\n */\n positionForItem(index) {\n return Promise.resolve(positionForIndex(index, this.cells, this.getHeightIndex()));\n }\n /**\n * This method marks a subset of items as dirty, so they can be re-rendered. Items should be marked as\n * dirty any time the content or their style changes.\n *\n * The subset of items to be updated can are specifying by an offset and a length.\n */\n async checkRange(offset, len = -1) {\n // TODO: kind of hacky how we do in-place updated of the cells\n // array. this part needs a complete refactor\n if (!this.items) {\n return;\n }\n const length = len === -1 ? this.items.length - offset : len;\n const cellIndex = findCellIndex(this.cells, offset);\n const cells = calcCells(this.items, this.itemHeight, this.headerHeight, this.footerHeight, this.headerFn, this.footerFn, this.approxHeaderHeight, this.approxFooterHeight, this.approxItemHeight, cellIndex, offset, length);\n this.cells = inplaceUpdate(this.cells, cells, cellIndex);\n this.lastItemLen = this.items.length;\n this.indexDirty = Math.max(offset - 1, 0);\n this.scheduleUpdate();\n }\n /**\n * This method marks the tail the items array as dirty, so they can be re-rendered.\n *\n * It's equivalent to calling:\n *\n * ```js\n * virtualScroll.checkRange(lastItemLen);\n * ```\n */\n async checkEnd() {\n if (this.items) {\n this.checkRange(this.lastItemLen);\n }\n }\n updateVirtualScroll() {\n // do nothing if virtual-scroll is disabled\n if (!this.isEnabled || !this.scrollEl) {\n return;\n }\n // unschedule future updates\n if (this.timerUpdate) {\n clearTimeout(this.timerUpdate);\n this.timerUpdate = undefined;\n }\n // schedule DOM operations into the stencil queue\n readTask(this.readVS.bind(this));\n writeTask(this.writeVS.bind(this));\n }\n readVS() {\n const { contentEl, scrollEl, el } = this;\n let topOffset = 0;\n let node = el;\n while (node !== null && node !== contentEl) {\n topOffset += node.offsetTop;\n node = node.offsetParent;\n }\n this.viewportOffset = topOffset;\n if (scrollEl) {\n this.viewportHeight = scrollEl.offsetHeight;\n this.currentScrollTop = scrollEl.scrollTop;\n }\n }\n writeVS() {\n const dirtyIndex = this.indexDirty;\n // get visible viewport\n const scrollTop = this.currentScrollTop - this.viewportOffset;\n const viewport = getViewport(scrollTop, this.viewportHeight, 100);\n // compute lazily the height index\n const heightIndex = this.getHeightIndex();\n // get array bounds of visible cells base in the viewport\n const range = getRange(heightIndex, viewport, 2);\n // fast path, do nothing\n const shouldUpdate = getShouldUpdate(dirtyIndex, this.range, range);\n if (!shouldUpdate) {\n return;\n }\n this.range = range;\n // in place mutation of the virtual DOM\n updateVDom(this.virtualDom, heightIndex, this.cells, range);\n // Write DOM\n // Different code paths taken depending of the render API used\n if (this.nodeRender) {\n doRender(this.el, this.nodeRender, this.virtualDom, this.updateCellHeight.bind(this));\n }\n else if (this.domRender) {\n this.domRender(this.virtualDom);\n }\n else if (this.renderItem) {\n forceUpdate(this);\n }\n }\n updateCellHeight(cell, node) {\n const update = () => {\n if (node['$ionCell'] === cell) {\n const style = window.getComputedStyle(node);\n const height = node.offsetHeight + parseFloat(style.getPropertyValue('margin-bottom'));\n this.setCellHeight(cell, height);\n }\n };\n if (node) {\n componentOnReady(node, update);\n }\n else {\n update();\n }\n }\n setCellHeight(cell, height) {\n const index = cell.i;\n // the cell might changed since the height update was scheduled\n if (cell !== this.cells[index]) {\n return;\n }\n if (cell.height !== height || cell.visible !== true) {\n cell.visible = true;\n cell.height = height;\n this.indexDirty = Math.min(this.indexDirty, index);\n this.scheduleUpdate();\n }\n }\n scheduleUpdate() {\n clearTimeout(this.timerUpdate);\n this.timerUpdate = setTimeout(() => this.updateVirtualScroll(), 100);\n }\n updateState() {\n const shouldEnable = !!(this.scrollEl && this.cells.length > 0);\n if (shouldEnable !== this.isEnabled) {\n this.enableScrollEvents(shouldEnable);\n if (shouldEnable) {\n this.updateVirtualScroll();\n }\n }\n }\n calcCells() {\n if (!this.items) {\n return;\n }\n this.lastItemLen = this.items.length;\n this.cells = calcCells(this.items, this.itemHeight, this.headerHeight, this.footerHeight, this.headerFn, this.footerFn, this.approxHeaderHeight, this.approxFooterHeight, this.approxItemHeight, 0, 0, this.lastItemLen);\n this.indexDirty = 0;\n }\n getHeightIndex() {\n if (this.indexDirty !== Infinity) {\n this.calcHeightIndex(this.indexDirty);\n }\n return this.heightIndex;\n }\n calcHeightIndex(index = 0) {\n // TODO: optimize, we don't need to calculate all the cells\n this.heightIndex = resizeBuffer(this.heightIndex, this.cells.length);\n this.totalHeight = calcHeightIndex(this.heightIndex, this.cells, index);\n this.indexDirty = Infinity;\n }\n enableScrollEvents(shouldListen) {\n if (this.rmEvent) {\n this.rmEvent();\n this.rmEvent = undefined;\n }\n const scrollEl = this.scrollEl;\n if (scrollEl) {\n this.isEnabled = shouldListen;\n scrollEl.addEventListener('scroll', this.onScroll);\n this.rmEvent = () => {\n scrollEl.removeEventListener('scroll', this.onScroll);\n };\n }\n }\n renderVirtualNode(node) {\n const { type, value, index } = node.cell;\n switch (type) {\n case CELL_TYPE_ITEM:\n return this.renderItem(value, index);\n case CELL_TYPE_HEADER:\n return this.renderHeader(value, index);\n case CELL_TYPE_FOOTER:\n return this.renderFooter(value, index);\n }\n }\n render() {\n return (h(Host, { style: {\n height: `${this.totalHeight}px`,\n } }, this.renderItem && (h(VirtualProxy, { dom: this.virtualDom }, this.virtualDom.map((node) => this.renderVirtualNode(node))))));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"itemHeight\": [\"itemsChanged\"],\n \"headerHeight\": [\"itemsChanged\"],\n \"footerHeight\": [\"itemsChanged\"],\n \"items\": [\"itemsChanged\"]\n }; }\n};\nconst VirtualProxy = ({ dom }, children, utils) => {\n return utils.map(children, (child, i) => {\n const node = dom[i];\n const vattrs = child.vattrs || {};\n let classes = vattrs.class || '';\n classes += 'virtual-item ';\n if (!node.visible) {\n classes += 'virtual-loading';\n }\n return Object.assign(Object.assign({}, child), { vattrs: Object.assign(Object.assign({}, vattrs), { class: classes, style: Object.assign(Object.assign({}, vattrs.style), { transform: `translate3d(0,${node.top}px,0)` }) }) });\n });\n};\nVirtualScroll.style = virtualScrollCss;\n\nexport { VirtualScroll as ion_virtual_scroll };\n"],"names":["r","registerInstance","f","readTask","c","writeTask","j","forceUpdate","h","H","Host","i","getElement","componentOnReady","CELL_TYPE_ITEM","CELL_TYPE_HEADER","CELL_TYPE_FOOTER","NODE_CHANGE_NONE","NODE_CHANGE_POSITION","NODE_CHANGE_CELL","MIN_READS","updateVDom","dom","heightIndex","cells","range","node","change","d","toMutate","end","offset","length","cell","find","n","top","push","pool","filter","type","index","visible","forEach","doRender","el","nodeRender","updateCellHeight","_a","children","Array","from","tagName","childrenNu","child","newChild","createNode","classList","add","appendChild","style","transform","remove","reads","template","getTemplate","ownerDocument","importNode","content","querySelector","getViewport","scrollTop","vierportHeight","margin","Math","max","bottom","getRange","viewport","buffer","topPos","bottomPos","min","getShouldUpdate","dirtyIndex","currentRange","findCellIndex","findIndex","inplaceUpdate","dst","src","calcCells","items","itemHeight","headerHeight","footerHeight","headerFn","footerFn","approxHeaderHeight","approxFooterHeight","approxItemHeight","len","item","value","height","calcHeightIndex","buf","acum","resizeBuffer","Uint32Array","newBuf","set","subarray","positionForIndex","virtualScrollCss","VirtualScroll","constructor","hostRef","viewportHeight","virtualDom","isEnabled","viewportOffset","currentScrollTop","indexDirty","lastItemLen","totalHeight","onScroll","updateVirtualScroll","itemsChanged","componentWillLoad","console","warn","connectedCallback","_this","_asyncToGenerator","contentEl","closest","error","scrollEl","getScrollElement","updateState","componentDidUpdate","disconnectedCallback","undefined","onResize","positionForItem","Promise","resolve","getHeightIndex","checkRange","_this2","cellIndex","scheduleUpdate","checkEnd","_this3","timerUpdate","clearTimeout","readVS","bind","writeVS","topOffset","offsetTop","offsetParent","offsetHeight","shouldUpdate","domRender","renderItem","update","window","getComputedStyle","parseFloat","getPropertyValue","setCellHeight","setTimeout","shouldEnable","enableScrollEvents","Infinity","shouldListen","rmEvent","addEventListener","removeEventListener","renderVirtualNode","renderHeader","renderFooter","render","VirtualProxy","map","watchers","utils","vattrs","classes","class","Object","assign","ion_virtual_scroll"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]}