@aquera/nile-elements 1.8.9 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +8 -0
  2. package/dist/{index-6faafdf4.cjs.js → index-2f006498.cjs.js} +2 -2
  3. package/dist/index-2f006498.cjs.js.map +1 -0
  4. package/dist/{index-9931b440.esm.js → index-646474e8.esm.js} +1 -1
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +545 -519
  8. package/dist/nile-card/nile-card.css.cjs.js +1 -1
  9. package/dist/nile-card/nile-card.css.cjs.js.map +1 -1
  10. package/dist/nile-card/nile-card.css.esm.js +2 -4
  11. package/dist/nile-combobox/index.cjs.js +1 -1
  12. package/dist/nile-combobox/index.esm.js +1 -1
  13. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  14. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  15. package/dist/nile-detail/index.cjs.js +1 -1
  16. package/dist/nile-detail/index.esm.js +1 -1
  17. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  18. package/dist/nile-detail/nile-detail.esm.js +1 -1
  19. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  20. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  21. package/dist/nile-file-preview/nile-file-preview.css.esm.js +89 -89
  22. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  23. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  24. package/dist/nile-file-preview/nile-file-preview.template.esm.js +42 -42
  25. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  26. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  27. package/dist/nile-file-upload/nile-file-upload.css.esm.js +126 -105
  28. package/dist/nile-grid/nile-grid.css.cjs.js +1 -1
  29. package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -1
  30. package/dist/nile-grid/nile-grid.css.esm.js +1 -1
  31. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +1 -1
  32. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -1
  33. package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +4 -0
  34. package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
  35. package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
  36. package/dist/nile-pagination/nile-pagination.esm.js +7 -4
  37. package/dist/src/nile-card/nile-card.css.js +0 -2
  38. package/dist/src/nile-card/nile-card.css.js.map +1 -1
  39. package/dist/src/nile-file-preview/nile-file-preview.css.js +87 -87
  40. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  41. package/dist/src/nile-file-preview/nile-file-preview.template.js +4 -4
  42. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  43. package/dist/src/nile-file-upload/nile-file-upload.css.js +124 -103
  44. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  45. package/dist/src/nile-grid/nile-grid.css.js +1 -1
  46. package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
  47. package/dist/src/nile-nav-tab/nile-nav-tab.css.js +4 -0
  48. package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -1
  49. package/dist/src/nile-pagination/nile-pagination.d.ts +1 -0
  50. package/dist/src/nile-pagination/nile-pagination.js +9 -2
  51. package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
  52. package/dist/src/version.js +1 -1
  53. package/dist/src/version.js.map +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/src/nile-card/nile-card.css.ts +0 -2
  57. package/src/nile-file-preview/nile-file-preview.css.ts +87 -87
  58. package/src/nile-file-preview/nile-file-preview.template.ts +4 -4
  59. package/src/nile-file-upload/nile-file-upload.css.ts +124 -103
  60. package/src/nile-grid/nile-grid.css.ts +1 -1
  61. package/src/nile-nav-tab/nile-nav-tab.css.ts +4 -0
  62. package/src/nile-pagination/nile-pagination.ts +6 -2
  63. package/vscode-html-custom-data.json +6 -1
  64. package/dist/index-6faafdf4.cjs.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-6faafdf4.cjs.js","sources":["../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../../node_modules/@tanstack/lit-virtual/dist/esm/index.js"],"sourcesContent":["function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const gap = this.options.gap;\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can\n // read start/end directly from Float64Array, skipping the\n // Proxy traps that materialize a full VirtualItem per probe.\n flat: lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust scrollTop only when the resize is an above-\n // viewport item AND we're not actively scrolling backward.\n // Adjusting during backward scroll fights the user's scroll\n // direction and produces the \"items jump while scrolling up\"\n // jank reported across many issues. Users who want the old\n // behavior can pass shouldAdjustScrollPositionOnItemSizeChange.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && this.scrollDirection !== \"backward\"\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n flat\n}) {\n const lastIndex = measurements.length - 1;\n const getStart = flat ? (index) => flat[index * 2] : (index) => measurements[index].start;\n const getEnd = flat ? (index) => flat[index * 2] + flat[index * 2 + 1] : (index) => measurements[index].end;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && getEnd(endIndex) < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","import { elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect, Virtualizer } from \"@tanstack/virtual-core\";\nclass VirtualizerControllerBase {\n constructor(host, options) {\n this.cleanup = () => {\n };\n const resolvedOptions = {\n ...options,\n onChange: (instance, sync) => {\n var _a;\n this.host.updateComplete.then(() => this.host.requestUpdate());\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance, sync);\n }\n };\n this.virtualizer = new Virtualizer(resolvedOptions);\n (this.host = host).addController(this);\n }\n getVirtualizer() {\n return this.virtualizer;\n }\n hostConnected() {\n this.cleanup = this.virtualizer._didMount();\n }\n hostUpdated() {\n this.virtualizer._willUpdate();\n }\n hostDisconnected() {\n this.cleanup();\n }\n}\nclass VirtualizerController extends VirtualizerControllerBase {\n constructor(host, options) {\n super(host, {\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n }\n}\nclass WindowVirtualizerController extends VirtualizerControllerBase {\n constructor(host, options) {\n super(host, {\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n }\n}\nexport {\n VirtualizerController,\n WindowVirtualizerController\n};\n//# sourceMappingURL=index.js.map\n"],"names":["memo","getDeps","fn","opts","_i$initialDeps","result","deps","initialDeps","isInitial","memoizedFunction","newDeps","length","some","dep","index","onChange","skipInitialOnChange","updateDeps","notUndefined","value","msg","Error","concat","setters","execute","debounce","targetWindow","ms","timeoutId","args","clearTimeout","setTimeout","apply","this","isIOSWebKit","_isIOSResult","navigator","test","userAgent","mtp","maxTouchPoints","platform","getRect","element","offsetWidth","offsetHeight","width","height","defaultKeyExtractor","defaultRangeExtractor","range","start","Math","max","startIndex","overscan","len","min","endIndex","count","arr","Array","i","observeElementRect","instance","cb","scrollElement","handler","rect","round","ResizeObserver","observer","entries","run","h","entry","borderBoxSize","box","inlineSize","blockSize","options","useAnimationFrameWithResizeObserver","requestAnimationFrame","observe","unobserve","addEventListenerOptions","passive","supportsScrollend","window","observeElementOffset","c","readOffset","registerScrollendEvent","useScrollendEvent","offset","fallback","isScrollingResetDelay","createHandler","isScrolling","endHandler","addEventListener","removeEventListener","observeOffset","el","_t$options","horizontal","isRtl","scrollLeft","scrollTop","measureElement","d","useCachedMeasurements","_i$itemSizeCache$get","indexFromElement","key","getItemKey","itemSizeCache","get","estimateSize","cachedSize","elementScroll","adjustments","s","_ref$adjustments","behavior","_a","_b","scrollTo","call","Virtualizer","v","unsubs","scrollState","measurementsCache","_flatMeasurements","Map","itemSizeCacheVersion","laneAssignments","pendingMin","prevLanes","lanesChangedFlag","lanesSettling","pendingScrollAnchor","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","_iosDeferredAdjustment","_iosTouching","_iosJustTouchEnded","_iosTouchEndTimerId","_intendedScrollOffset","elementsCache","now","_ref2","_c","performance","Date","_ro","forEach","node","target","isConnected","shouldMeasureDuringScroll","resizeItem","_iterator","_createForOfIteratorHelper","_step","n","done","_step$value","_slicedToArray","cacheKey","cachedNode","err","e","f","disconnect","setOptions","opts2","merged","debug","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","rangeExtractor","initialRect","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","anchorTo","followOnAppend","scrollEndThreshold","enabled","laneAssignmentMode","prevOptions","anchor","edgeKeysChanged","_ref3","_ref4","prevCount","nextCount","measurements","getMeasurements","prevFirstKey","prevLastKey","_this2$getVirtualItem","item","getVirtualItemForOffset","getScrollOffset","isAtEnd","anchorResolved","anchorDelta","_e","newMeasurements","anchorKey","anchorOffset","idx","anchorItem","newOffset","notify","sync","maybeNotify","calculateRange","cleanup","filter","Boolean","rafId","cancelAnimationFrame","_didMount","_willUpdate","getScrollElement","_ref5","ownerDocument","defaultView","cached","push","abs","_flushIosDeferredIfReady","scheduleScrollReconcile","scrollEl","onTouchStart","onTouchEnd","_scrollToOffset","_i8","_offset","scrollToEnd","cur","getMaxScrollOffset","delta","getSize","_this2$scrollRect","_this2$scrollOffset","getFurthestMeasurement","furthestMeasurementsFound","furthestMeasurements","m","measurement","has","lane","previousFurthestMeasurement","end","set","size","from","values","sort","a","b","getMeasurementOptions","_ref6","_itemSizeCacheVersion","clear","keys","_iterator2","_step2","_this2$pendingMin","need","runningStart","flat","next","Float64Array","subarray","prevIdx","measuredSize","view","cache","Proxy","prop","receiver","charCodeAt","Number","isInteger","Reflect","createLazyMeasurementsView","slice","laneLastIndex","fill","cachedLane","shouldCacheLane","prevIndex","prevInLane","furthestMeasurement","outerSize","_ref7","lastIndex","getStart","getEnd","findNearestBinarySearch","endPerLane","pos","startPerLane","getVirtualIndexes","attributeName","indexStr","getAttribute","parseInt","console","warn","_this2$scrollState$in","scrollIndex","lastTargetOffset","bufferSize","ceil","minIndex","maxIndex","key2","delete","prevNode","itemStart","_this2$measurementsCa","wasAtEnd","getVirtualDistanceFromEnd","prevTotalSize","getTotalSize","shouldAdjustScroll","shouldAdjustScrollPositionOnItemSizeChange","applyScrollAdjustment","getVirtualItems","indexes","virtualItems","k","useFlat","scrollWidth","clientWidth","scrollHeight","clientHeight","doc","document","documentElement","innerWidth","innerHeight","getDistanceFromEnd","threshold","getOffsetForAlignment","toOffset","align","itemSize","maxOffset","getOffsetForIndex","arguments","undefined","scrollToOffset","_ref8$align","_ref8$behavior","_ref8","startedAt","stableFrames","scrollToIndex","initialAlign","_ref9$align","_ref9$behavior","_ref9","offsetInfo","_h8","scrollBy","_ref10$behavior","_ref11$behavior","_ref12","lastIdx","endByLane","val","takeSnapshot","snapshot","_iterator3","_step3","scrollToFn","measure","_createClass","reconcileScroll","targetOffset","targetChanged","viewport","distance","keepSmooth","low","high","getCurrentValue","middle","currentValue","VirtualizerControllerBase","host","resolvedOptions","updateComplete","then","requestUpdate","virtualizer","addController","getVirtualizer","hostConnected","hostUpdated","hostDisconnected","_export","VirtualizerController","g"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}