@aquera/nile-elements 1.8.0 → 1.8.2

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 (80) hide show
  1. package/README.md +6 -0
  2. package/dist/index-6faafdf4.cjs.js +2 -0
  3. package/dist/index-6faafdf4.cjs.js.map +1 -0
  4. package/dist/index-9931b440.esm.js +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +375 -226
  8. package/dist/nile-combobox/index.cjs.js +1 -1
  9. package/dist/nile-combobox/index.esm.js +1 -1
  10. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  11. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  12. package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
  13. package/dist/nile-context-menu/nile-context-menu.cjs.js.map +1 -1
  14. package/dist/nile-context-menu/nile-context-menu.esm.js +2 -2
  15. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js +1 -1
  16. package/dist/nile-context-menu-item/nile-context-menu-item.cjs.js.map +1 -1
  17. package/dist/nile-context-menu-item/nile-context-menu-item.esm.js +3 -3
  18. package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
  19. package/dist/nile-context-submenu/nile-context-submenu.cjs.js.map +1 -1
  20. package/dist/nile-context-submenu/nile-context-submenu.esm.js +2 -2
  21. package/dist/nile-detail/index.cjs.js +1 -1
  22. package/dist/nile-detail/index.esm.js +1 -1
  23. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  24. package/dist/nile-detail/nile-detail.esm.js +1 -1
  25. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  26. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  27. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  28. package/dist/nile-slider/nile-slider.cjs.js +1 -1
  29. package/dist/nile-slider/nile-slider.cjs.js.map +1 -1
  30. package/dist/nile-slider/nile-slider.css.cjs.js +1 -1
  31. package/dist/nile-slider/nile-slider.css.cjs.js.map +1 -1
  32. package/dist/nile-slider/nile-slider.css.esm.js +162 -41
  33. package/dist/nile-slider/nile-slider.esm.js +5 -3
  34. package/dist/nile-slider/nile-slider.template.cjs.js +1 -1
  35. package/dist/nile-slider/nile-slider.template.cjs.js.map +1 -1
  36. package/dist/nile-slider/nile-slider.template.esm.js +49 -23
  37. package/dist/nile-slider/utils/nile-slider.utils.cjs.js +1 -1
  38. package/dist/nile-slider/utils/nile-slider.utils.cjs.js.map +1 -1
  39. package/dist/nile-slider/utils/nile-slider.utils.esm.js +1 -1
  40. package/dist/src/nile-context-menu/nile-context-menu.d.ts +10 -1
  41. package/dist/src/nile-context-menu/nile-context-menu.js +85 -5
  42. package/dist/src/nile-context-menu/nile-context-menu.js.map +1 -1
  43. package/dist/src/nile-context-menu-item/nile-context-menu-item.d.ts +1 -0
  44. package/dist/src/nile-context-menu-item/nile-context-menu-item.js +5 -1
  45. package/dist/src/nile-context-menu-item/nile-context-menu-item.js.map +1 -1
  46. package/dist/src/nile-context-submenu/nile-context-submenu.d.ts +9 -0
  47. package/dist/src/nile-context-submenu/nile-context-submenu.js +100 -16
  48. package/dist/src/nile-context-submenu/nile-context-submenu.js.map +1 -1
  49. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +2 -0
  50. package/dist/src/nile-floating-panel/nile-floating-panel.js +4 -0
  51. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  52. package/dist/src/nile-slider/nile-slider.css.js +160 -39
  53. package/dist/src/nile-slider/nile-slider.css.js.map +1 -1
  54. package/dist/src/nile-slider/nile-slider.d.ts +5 -1
  55. package/dist/src/nile-slider/nile-slider.js +23 -1
  56. package/dist/src/nile-slider/nile-slider.js.map +1 -1
  57. package/dist/src/nile-slider/nile-slider.template.d.ts +2 -0
  58. package/dist/src/nile-slider/nile-slider.template.js +38 -1
  59. package/dist/src/nile-slider/nile-slider.template.js.map +1 -1
  60. package/dist/src/nile-slider/types/nile-slider.types.d.ts +1 -0
  61. package/dist/src/nile-slider/types/nile-slider.types.js.map +1 -1
  62. package/dist/src/nile-slider/utils/nile-slider.utils.js +4 -0
  63. package/dist/src/nile-slider/utils/nile-slider.utils.js.map +1 -1
  64. package/dist/src/version.js +1 -1
  65. package/dist/src/version.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
  68. package/src/nile-context-menu/nile-context-menu.ts +86 -8
  69. package/src/nile-context-menu-item/nile-context-menu-item.ts +3 -1
  70. package/src/nile-context-submenu/nile-context-submenu.ts +97 -12
  71. package/src/nile-floating-panel/nile-floating-panel.ts +5 -0
  72. package/src/nile-slider/nile-slider.css.ts +160 -39
  73. package/src/nile-slider/nile-slider.template.ts +45 -2
  74. package/src/nile-slider/nile-slider.ts +11 -3
  75. package/src/nile-slider/types/nile-slider.types.ts +2 -0
  76. package/src/nile-slider/utils/nile-slider.utils.ts +2 -0
  77. package/vscode-html-custom-data.json +51 -12
  78. package/dist/index-644974d4.esm.js +0 -1
  79. package/dist/index-dd2af8ec.cjs.js +0 -2
  80. package/dist/index-dd2af8ec.cjs.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-dd2af8ec.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, approxEqual, notUndefined, 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 (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 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 };\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 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 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 (anchor || followOnAppend) {\n this.pendingScrollAnchor = [\n (anchor == null ? void 0 : anchor[0]) ?? null,\n (anchor == null ? void 0 : anchor[1]) ?? 0,\n followOnAppend\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] = anchor;\n if (key !== null) {\n const { count, getItemKey } = this.options;\n let index = 0;\n while (index < count && getItemKey(index) !== key) {\n index++;\n }\n const item = index < count ? this.getMeasurements()[index] : void 0;\n if (item) {\n const delta = item.start + offset - this.getScrollOffset();\n if (!approxEqual(delta, 0)) {\n this.applyScrollAdjustment(delta);\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","l","newDeps","length","some","dep","index","onChange","skipInitialOnChange","updateDeps","notUndefined","value","msg","Error","concat","setters","execute","approxEqual","i","a","b","Math","abs","debounce","h","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","max","startIndex","overscan","len","min","endIndex","count","arr","Array","observeElementRect","instance","cb","scrollElement","handler","rect","round","ResizeObserver","observer","entries","run","entry","borderBoxSize","box","inlineSize","blockSize","options","useAnimationFrameWithResizeObserver","requestAnimationFrame","observe","unobserve","addEventListenerOptions","passive","supportsScrollend","window","observeElementOffset","readOffset","registerScrollendEvent","useScrollendEvent","offset","fallback","isScrollingResetDelay","createHandler","isScrolling","endHandler","addEventListener","removeEventListener","observeOffset","el","_t$options","horizontal","isRtl","scrollLeft","scrollTop","measureElement","f","elementScroll","v","adjustments","behavior","_a","_b","scrollTo","call","Virtualizer","unsubs","scrollState","measurementsCache","_flatMeasurements","itemSizeCache","Map","itemSizeCacheVersion","laneAssignments","pendingMin","prevLanes","lanesChangedFlag","lanesSettling","pendingScrollAnchor","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","_iosDeferredAdjustment","_iosTouching","_iosJustTouchEnded","_iosTouchEndTimerId","_intendedScrollOffset","elementsCache","now","_ref2","_c","performance","Date","_ro","get","forEach","s","node","target","indexFromElement","isConnected","shouldMeasureDuringScroll","resizeItem","_iterator","_createForOfIteratorHelper","_step","n","done","_step$value","_slicedToArray","cacheKey","cachedNode","err","e","disconnect","setOptions","opts2","merged","debug","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","initialRect","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","anchorTo","followOnAppend","scrollEndThreshold","enabled","laneAssignmentMode","key","prevOptions","anchor","_ref3","_ref4","prevCount","nextCount","measurements","getMeasurements","prevFirstKey","prevLastKey","_this2$getVirtualItem","item","getVirtualItemForOffset","getScrollOffset","isAtEnd","_ref5","_ref6","notify","sync","maybeNotify","calculateRange","cleanup","filter","Boolean","d","rafId","cancelAnimationFrame","_didMount","_willUpdate","getScrollElement","_ref7","ownerDocument","defaultView","cached","push","_flushIosDeferredIfReady","scheduleScrollReconcile","scrollEl","onTouchStart","onTouchEnd","_scrollToOffset","_h","_this2$options","delta","applyScrollAdjustment","scrollToEnd","cur","getMaxScrollOffset","getSize","_this2$scrollRect","_this2$scrollOffset","getFurthestMeasurement","furthestMeasurementsFound","furthestMeasurements","m","measurement","has","lane","previousFurthestMeasurement","end","set","size","from","values","sort","getMeasurementOptions","_ref8","_itemSizeCacheVersion","clear","keys","_iterator2","_step2","_this2$pendingMin","need","runningStart","flat","next","Float64Array","subarray","prevIdx","measuredSize","estimateSize","view","cache","Proxy","prop","receiver","c","charCodeAt","Number","isInteger","Reflect","createLazyMeasurementsView","slice","laneLastIndex","fill","cachedLane","shouldCacheLane","prevIndex","prevInLane","furthestMeasurement","outerSize","_ref9","lastIndex","getStart","getEnd","findNearestBinarySearch","endPerLane","pos","startPerLane","getVirtualIndexes","attributeName","indexStr","getAttribute","parseInt","console","warn","scrollIndex","_this2$scrollState$in","lastTargetOffset","bufferSize","ceil","minIndex","maxIndex","key2","prevNode","_this2$itemSizeCache$","cachedSize","itemStart","_this2$measurementsCa","wasAtEnd","getVirtualDistanceFromEnd","prevTotalSize","getTotalSize","shouldAdjustScroll","shouldAdjustScrollPositionOnItemSizeChange","getVirtualItems","indexes","virtualItems","k","useFlat","idx","scrollWidth","clientWidth","scrollHeight","clientHeight","doc","document","documentElement","innerWidth","innerHeight","getDistanceFromEnd","threshold","getOffsetForAlignment","toOffset","align","itemSize","maxOffset","getOffsetForIndex","scrollToOffset","_ref10","arguments","undefined","_ref10$align","_ref10$behavior","startedAt","stableFrames","scrollToIndex","initialAlign","_ref11$behavior","offsetInfo","_h6","scrollBy","_ref12","_ref12$behavior","_ref13$behavior","t","_ref14","lastIdx","endByLane","val","takeSnapshot","snapshot","_iterator3","_step3","scrollToFn","measure","_createClass","reconcileScroll","targetOffset","targetChanged","viewport","distance","keepSmooth","g","low","high","getCurrentValue","middle","currentValue","VirtualizerControllerBase","host","resolvedOptions","_objectSpread","updateComplete","then","requestUpdate","virtualizer","addController","getVirtualizer","hostConnected","hostUpdated","hostDisconnected","_export","VirtualizerController","M"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}