@aquera/nile-elements 1.9.4 → 1.9.5
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.
- package/README.md +7 -0
- package/dist/index-5fef1a0d.esm.js +1 -0
- package/dist/index-8f38fae3.cjs.js +2 -0
- package/dist/index-8f38fae3.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1287 -736
- package/dist/nile-combobox/index.cjs.js +1 -1
- package/dist/nile-combobox/index.esm.js +1 -1
- package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.esm.js +1 -1
- package/dist/nile-command-menu/index.cjs.js +2 -0
- package/dist/nile-command-menu/index.cjs.js.map +1 -0
- package/dist/nile-command-menu/index.esm.js +1 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.esm.js +182 -0
- package/dist/nile-command-menu/nile-command-menu.esm.js +97 -0
- package/dist/nile-command-menu-group/index.cjs.js +2 -0
- package/dist/nile-command-menu-group/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/index.esm.js +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.esm.js +33 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.esm.js +11 -0
- package/dist/nile-command-menu-item/index.cjs.js +2 -0
- package/dist/nile-command-menu-item/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/index.esm.js +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.esm.js +115 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.esm.js +21 -0
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-dot-stepper/index.cjs.js +2 -0
- package/dist/nile-dot-stepper/index.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/index.esm.js +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.esm.js +77 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.esm.js +24 -0
- package/dist/nile-section-message/nile-section-message.css.cjs.js +1 -1
- package/dist/nile-section-message/nile-section-message.css.cjs.js.map +1 -1
- package/dist/nile-section-message/nile-section-message.css.esm.js +7 -8
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-command-menu/index.d.ts +1 -0
- package/dist/src/nile-command-menu/index.js +2 -0
- package/dist/src/nile-command-menu/index.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.d.ts +12 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js +194 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.d.ts +137 -0
- package/dist/src/nile-command-menu/nile-command-menu.js +557 -0
- package/dist/src/nile-command-menu/nile-command-menu.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.d.ts +3 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js +268 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js.map +1 -0
- package/dist/src/nile-command-menu-group/index.d.ts +1 -0
- package/dist/src/nile-command-menu-group/index.js +2 -0
- package/dist/src/nile-command-menu-group/index.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.d.ts +12 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js +45 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.d.ts +38 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js +68 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.d.ts +2 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js +22 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js.map +1 -0
- package/dist/src/nile-command-menu-item/index.d.ts +1 -0
- package/dist/src/nile-command-menu-item/index.js +2 -0
- package/dist/src/nile-command-menu-item/index.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.d.ts +12 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js +127 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.d.ts +73 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js +174 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.d.ts +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js +35 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js.map +1 -0
- package/dist/src/nile-dialog/nile-dialog.js +1 -1
- package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
- package/dist/src/nile-dot-stepper/index.d.ts +1 -0
- package/dist/src/nile-dot-stepper/index.js +2 -0
- package/dist/src/nile-dot-stepper/index.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.d.ts +12 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js +89 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.d.ts +48 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js +153 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.d.ts +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js +319 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js.map +1 -0
- package/dist/src/nile-section-message/nile-section-message.css.js +7 -8
- package/dist/src/nile-section-message/nile-section-message.css.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/index.ts +4 -0
- package/src/nile-command-menu/index.ts +1 -0
- package/src/nile-command-menu/nile-command-menu.css.ts +196 -0
- package/src/nile-command-menu/nile-command-menu.test.ts +289 -0
- package/src/nile-command-menu/nile-command-menu.ts +601 -0
- package/src/nile-command-menu-group/index.ts +1 -0
- package/src/nile-command-menu-group/nile-command-menu-group.css.ts +47 -0
- package/src/nile-command-menu-group/nile-command-menu-group.test.ts +23 -0
- package/src/nile-command-menu-group/nile-command-menu-group.ts +72 -0
- package/src/nile-command-menu-item/index.ts +1 -0
- package/src/nile-command-menu-item/nile-command-menu-item.css.ts +129 -0
- package/src/nile-command-menu-item/nile-command-menu-item.test.ts +36 -0
- package/src/nile-command-menu-item/nile-command-menu-item.ts +172 -0
- package/src/nile-dialog/nile-dialog.ts +1 -1
- package/src/nile-dot-stepper/index.ts +1 -0
- package/src/nile-dot-stepper/nile-dot-stepper.css.ts +90 -0
- package/src/nile-dot-stepper/nile-dot-stepper.test.ts +493 -0
- package/src/nile-dot-stepper/nile-dot-stepper.ts +159 -0
- package/src/nile-section-message/nile-section-message.css.ts +7 -8
- package/stories/dot-stepper.stories.ts +67 -0
- package/vscode-html-custom-data.json +179 -0
- package/dist/index-c0b5232c.cjs.js +0 -2
- package/dist/index-c0b5232c.cjs.js.map +0 -1
- package/dist/index-e43a18eb.esm.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-c0b5232c.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 (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\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 when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || 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 if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\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","o","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","el","_t$options","horizontal","isRtl","scrollLeft","scrollTop","measureElement","d","useCachedMeasurements","_i$itemSizeCache$get","indexFromElement","key","getItemKey","itemSizeCache","get","estimateSize","cachedSize","elementScroll","f","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","delete","err","e","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","anchorKey","anchorOffset","newMeasurements","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","l","_ref6","_itemSizeCacheVersion","_this2$pendingMin","clear","_iterator2","keys","_step2","need","runningStart","flat","next","Float64Array","subarray","prevIdx","measuredSize","view","cache","Proxy","prop","receiver","c","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","scrollIndex","lastTargetOffset","bufferSize","ceil","minIndex","maxIndex","key2","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","arguments","undefined","maxOffset","getOffsetForIndex","scrollToOffset","_ref8$behavior","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]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function t(t,s,i){let h,n=i.initialDeps??[],e=!0;function l(){const l=t();return l.length!==n.length||l.some(((t,s)=>n[s]!==t))?(n=l,h=s(...l),!(null==i?void 0:i.onChange)||e&&i.skipInitialOnChange||i.onChange(h),e=!1,h):h}return l.updateDeps=t=>{n=t},l}function s(t,s){if(void 0===t)throw new Error("Unexpected undefined"+(s?`: ${s}`:""));return t}const i=(t,s,i)=>{let h;return function(...n){t.clearTimeout(h),h=t.setTimeout((()=>s.apply(this,n)),i)}};let h;const n=()=>{if(void 0!==h)return h;if("undefined"==typeof navigator)return h=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return h=!0;const t=navigator.maxTouchPoints;return h="MacIntel"===navigator.platform&&void 0!==t&&t>0},e=t=>{const{offsetWidth:s,offsetHeight:i}=t;return{width:s,height:i}},l=t=>t,r=t=>{const s=Math.max(t.startIndex-t.overscan,0),i=Math.min(t.endIndex+t.overscan,t.count-1)-s+1,h=new Array(i);for(let t=0;t<i;t++)h[t]=s+t;return h},o=(t,s)=>{const i=t.scrollElement;if(!i)return;const h=t.targetWindow;if(!h)return;const n=t=>{const{width:i,height:h}=t;s({width:Math.round(i),height:Math.round(h)})};if(n(e(i)),!h.ResizeObserver)return()=>{};const l=new h.ResizeObserver((s=>{const h=()=>{const t=s[0];if(null==t?void 0:t.borderBoxSize){const s=t.borderBoxSize[0];if(s)return void n({width:s.inlineSize,height:s.blockSize})}n(e(i))};t.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(h):h()}));return l.observe(i,{box:"border-box"}),()=>{l.unobserve(i)}},u={passive:!0},a="undefined"==typeof window||"onscrollend"in window,c=(t,s)=>((t,s,h)=>{const n=t.scrollElement;if(!n)return;const e=t.targetWindow;if(!e)return;const l=t.options.useScrollendEvent&&a;let r=0;const o=l?null:i(e,(()=>s(r,!1)),t.options.isScrollingResetDelay),c=t=>()=>{r=h(n),null==o||o(),s(r,t)},d=c(!0),f=c(!1);return n.addEventListener("scroll",d,u),l&&n.addEventListener("scrollend",f,u),()=>{n.removeEventListener("scroll",d),l&&n.removeEventListener("scrollend",f)}})(t,s,(s=>{const{horizontal:i,isRtl:h}=t.options;return i?s.scrollLeft*(h?-1:1):s.scrollTop})),d=(t,s,i)=>{if(i.options.useCachedMeasurements){const s=i.indexFromElement(t),h=i.options.getItemKey(s);return i.itemSizeCache.get(h)??i.options.estimateSize(s)}if(null==s?void 0:s.borderBoxSize){const t=s.borderBoxSize[0];if(t){return Math.round(t[i.options.horizontal?"inlineSize":"blockSize"])}}if(!s){const s=i.indexFromElement(t),h=i.options.getItemKey(s),n=i.itemSizeCache.get(h);if(void 0!==n)return n}return t[i.options.horizontal?"offsetWidth":"offsetHeight"]},f=(t,{adjustments:s=0,behavior:i},h)=>{var n,e;null==(e=null==(n=h.scrollElement)?void 0:n.scrollTo)||e.call(n,{[h.options.horizontal?"left":"top"]:t+s,behavior:i})};class v{constructor(i){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,s,i;return(null==(i=null==(s=null==(t=this.targetWindow)?void 0:t.performance)?void 0:s.now)?void 0:i.call(s))??Date.now()},this.observer=(()=>{let t=null;const s=()=>t||(this.targetWindow&&this.targetWindow.ResizeObserver?t=new this.targetWindow.ResizeObserver((t=>{t.forEach((t=>{const s=()=>{const s=t.target,i=this.indexFromElement(s);if(s.isConnected)this.shouldMeasureDuringScroll(i)&&this.resizeItem(i,this.options.measureElement(s,t,this));else{this.observer.unobserve(s);for(const[t,i]of this.elementsCache)if(i===s){this.elementsCache.delete(t);break}}};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(s):s()}))})):null);return{disconnect:()=>{var i;null==(i=s())||i.disconnect(),t=null},observe:t=>{var i;return null==(i=s())?void 0:i.observe(t,{box:"border-box"})},unobserve:t=>{var i;return null==(i=s())?void 0:i.unobserve(t)}}})(),this.range=null,this.setOptions=t=>{var s,i;const h={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:l,rangeExtractor:r,onChange:()=>{},measureElement:d,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const s in t){const i=t[s];void 0!==i&&(h[s]=i)}const n=this.options;let e=null,o=null,u=!1;if(void 0!==n&&n.enabled&&h.enabled&&"end"===h.anchorTo&&null!==this.scrollElement){const t=n.count,l=h.count,r=this.getMeasurements(),a=t>0?(null==(s=r[0])?void 0:s.key)??n.getItemKey(0):null,c=t>0?(null==(i=r[t-1])?void 0:i.key)??n.getItemKey(t-1):null;if(l!==t||t>0&&l>0&&(h.getItemKey(0)!==a||h.getItemKey(l-1)!==c)){u=!0;const s=t>0?this.getVirtualItemForOffset(this.getScrollOffset())??r[0]:null;s&&(e=[s.key,this.getScrollOffset()-s.start]);const i=!0===h.followOnAppend?"auto":h.followOnAppend||null;i&&l>t&&this.isAtEnd(n.scrollEndThreshold)&&(0===t||h.getItemKey(l-1)!==c)&&(o=i)}}this.options=h,u&&(this.pendingMin=0,this.itemSizeCacheVersion++);let a=!1,c=0;if(e&&null!==this.scrollOffset){const[t,s]=e,i=this.getMeasurements(),{count:h,getItemKey:n}=this.options;let l=0;for(;l<h&&n(l)!==t;)l++;if(l<h){const t=i[l];if(t){const i=t.start+s;i!==this.scrollOffset&&(c=i-this.scrollOffset,this.scrollOffset=i,a=!0)}}}(a||o)&&(this.pendingScrollAnchor=[a?e[0]:null,a?e[1]:0,o,c])},this.notify=t=>{var s,i;null==(i=(s=this.options).onChange)||i.call(s,this,t)},this.maybeNotify=t((()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null])),(t=>{this.notify(t)}),{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((t=>t())),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s)return void this.maybeNotify();if(this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(t=this.scrollElement)?void 0:t.window)??null,this.elementsCache.forEach((t=>{this.observer.observe(t)})),this.unsubs.push(this.options.observeElementRect(this,(t=>{this.scrollRect=t,this.maybeNotify()}))),this.unsubs.push(this.options.observeElementOffset(this,((t,s)=>{s&&null===this._intendedScrollOffset&&t===this.scrollOffset||(null!==this._intendedScrollOffset&&Math.abs(t-this._intendedScrollOffset)<1.5&&(t=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=s?this.getScrollOffset()<t?"forward":"backward":null,this.scrollOffset=t,this.isScrolling=s,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify())}))),"addEventListener"in this.scrollElement){const t=this.scrollElement,s=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,null!==this._iosTouchEndTimerId&&null!=this.targetWindow&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},i=()=>{this._iosTouching=!1,n()&&null!=this.targetWindow&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout((()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()}),150))};t.addEventListener("touchstart",s,u),t.addEventListener("touchend",i,u),this.unsubs.push((()=>{t.removeEventListener("touchstart",s),t.removeEventListener("touchend",i),null!==this._iosTouchEndTimerId&&null!=this.targetWindow&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)}))}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const i=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,i&&this.scrollElement&&this.options.enabled){const[t,s,h,e]=i;null===t||h||(n()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?0!==e&&(this._iosDeferredAdjustment+=e):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),h&&this.scrollToEnd({behavior:h})}},this._flushIosDeferredIfReady=()=>{if(0===this._iosDeferredAdjustment)return;if(this.isScrolling)return;if(this._iosTouching)return;if(this._iosJustTouchEnded)return;const t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;const i=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=i,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,s)=>{const i=new Map,h=new Map;for(let n=s-1;n>=0;n--){const s=t[n];if(i.has(s.lane))continue;const e=h.get(s.lane);if(null==e||s.end>e.end?h.set(s.lane,s):s.end<e.end&&i.set(s.lane,!0),i.size===this.options.lanes)break}return h.size===this.options.lanes?Array.from(h.values()).sort(((t,s)=>t.end===s.end?t.index-s.index:t.end-s.end))[0]:void 0},this.getMeasurementOptions=t((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode]),((t,s,i,h,n,e,l)=>(void 0!==this.prevLanes&&this.prevLanes!==e&&(this.lanesChangedFlag=!0),this.prevLanes=e,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:i,getItemKey:h,enabled:n,lanes:e,laneAssignmentMode:l})),{key:!1}),this.getMeasurements=t((()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion]),(({count:t,paddingStart:s,scrollMargin:i,getItemKey:h,enabled:n,lanes:e,laneAssignmentMode:l},r)=>{const o=this.itemSizeCache;if(!n)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const s of this.laneAssignments.keys())s>=t&&this.laneAssignments.delete(s);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach((t=>{this.itemSizeCache.set(t.key,t.size)})));const u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),1===e){const n=this.options.gap,e=2*t;let l,r=this._flatMeasurements;if(!r||r.length<e){const t=new Float64Array(e);r&&u>0&&t.set(r.subarray(0,2*u)),r=t,this._flatMeasurements=r}if(0===u)l=s+i;else{const t=u-1;l=r[2*t]+r[2*t+1]+n}for(let s=u;s<t;s++){const t=h(s),i=o.get(t),e="number"==typeof i?i:this.options.estimateSize(s);r[2*s]=l,r[2*s+1]=e,l+=e+n}const a=function(t,s,i){const h=new Array(t);return new Proxy(h,{get(h,n,e){if("string"==typeof n){const e=n.charCodeAt(0);if(e>=48&&e<=57){const e=+n;if(Number.isInteger(e)&&e>=0&&e<t){let t=h[e];if(!t){const n=s[2*e];t=h[e]={index:e,key:i(e),start:n,size:s[2*e+1],end:n+s[2*e+1],lane:0}}return t}}if("length"===n)return t}return Reflect.get(h,n,e)}})}(t,r,h);return this.measurementsCache=a,a}const a=this.measurementsCache.slice(0,u),c=new Array(e).fill(void 0);for(let t=0;t<u;t++){const s=a[t];s&&(c[s.lane]=t)}for(let n=u;n<t;n++){const t=h(n),e=this.laneAssignments.get(n);let r,u;const d="estimate"===l||o.has(t);if(void 0!==e&&this.options.lanes>1){r=e;const t=c[r],h=void 0!==t?a[t]:void 0;u=h?h.end+this.options.gap:s+i}else{const t=1===this.options.lanes?a[n-1]:this.getFurthestMeasurement(a,n);u=t?t.end+this.options.gap:s+i,r=t?t.lane:n%this.options.lanes,this.options.lanes>1&&d&&this.laneAssignments.set(n,r)}const f=o.get(t),v="number"==typeof f?f:this.options.estimateSize(n),b=u+v;a[n]={index:n,start:u,size:v,end:b,key:t,lane:r},c[r]=n}return this.measurementsCache=a,a}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=t((()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes]),((t,s,i,h)=>this.range=t.length>0&&s>0?function({measurements:t,outerSize:s,scrollOffset:i,lanes:h,flat:n}){const e=t.length-1,l=n?t=>n[2*t]:s=>t[s].start,r=n?t=>n[2*t]+n[2*t+1]:s=>t[s].end;if(t.length<=h)return{startIndex:0,endIndex:e};let o=b(0,e,l,i),u=o;if(1===h)for(;u<e&&r(u)<i+s;)u++;else if(h>1){const n=Array(h).fill(0);for(;u<e&&n.some((t=>t<i+s));){const s=t[u];n[s.lane]=s.end,u++}const l=Array(h).fill(i+s);for(;o>=0&&l.some((t=>t>=i));){const s=t[o];l[s.lane]=s.start,o--}o=Math.max(0,o-o%h),u=Math.min(e,u+(h-1-u%h))}return{startIndex:o,endIndex:u}}({measurements:t,outerSize:s,scrollOffset:i,lanes:h,flat:1===h&&null!=this._flatMeasurements?this._flatMeasurements:null}):null),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=t((()=>{let t=null,s=null;const i=this.calculateRange();return i&&(t=i.startIndex,s=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]}),((t,s,i,h,n)=>null===h||null===n?[]:t({startIndex:h,endIndex:n,overscan:s,count:i})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,i=t.getAttribute(s);return i?parseInt(i,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;const i=this.scrollState.index??(null==(s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:s.index);if(void 0!==i&&this.range){const s=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),h=Math.max(0,i-s),n=Math.min(this.options.count-1,i+s);return t>=h&&t<=n}return!0},this.measureElement=t=>{if(!t)return void this.elementsCache.forEach(((t,s)=>{t.isConnected||(this.observer.unobserve(t),this.elementsCache.delete(s))}));const s=this.indexFromElement(t),i=this.options.getItemKey(s),h=this.elementsCache.get(i);h!==t&&(h&&this.observer.unobserve(h),this.observer.observe(t),this.elementsCache.set(i,t)),this.isScrolling&&!this.scrollState||!this.shouldMeasureDuringScroll(s)||this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var i,h;if(t<0||t>=this.options.count)return;let n,e,l;const r=this._flatMeasurements;if(1===this.options.lanes&&null!==r)l=this.options.getItemKey(t),e=r[2*t],n=r[2*t+1];else{const s=this.measurementsCache[t];if(!s)return;l=s.key,e=s.start,n=s.size}const o=s-(this.itemSizeCache.get(l)??n);if(0!==o){const r="end"===this.options.anchorTo&&"smooth"!==(null==(i=this.scrollState)?void 0:i.behavior)&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,u=r?this.getTotalSize():0,a="smooth"!==(null==(h=this.scrollState)?void 0:h.behavior)&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:l,start:e,size:n,end:e+n,lane:0},o,this):e<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(l)||"backward"!==this.scrollDirection));(null===this.pendingMin||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(l,s),this.itemSizeCacheVersion++,r?this.applyScrollAdjustment(this.getTotalSize()-u):a&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=t((()=>[this.getVirtualIndexes(),this.getMeasurements()]),((t,s)=>{const i=[];for(let h=0,n=t.length;h<n;h++){const n=s[t[h]];i.push(n)}return i}),{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const i=this.getMeasurements();if(0===i.length)return;const h=this._flatMeasurements,n=1===this.options.lanes&&null!=h,e=b(0,i.length-1,n?t=>h[2*t]:t=>s(i[t]).start,t);return s(i[e])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,i=0)=>{if(!this.scrollElement)return 0;const h=this.getSize(),n=this.getScrollOffset();"auto"===s&&(s=t>=n+h?"end":"start"),"center"===s?t+=(i-h)/2:"end"===s&&(t-=h);const e=this.getMaxScrollOffset();return Math.max(Math.min(e,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getSize(),h=this.getScrollOffset(),n=this.measurementsCache[t];if(!n)return;if("auto"===s)if(n.end>=h+i-this.options.scrollPaddingEnd)s="end";else{if(!(n.start<=h+this.options.scrollPaddingStart))return[h,s];s="start"}if("end"===s&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];const e="end"===s?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(e,s,n.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:i="auto"}={})=>{const h=this.getOffsetForAlignment(t,s),n=this.now();this.scrollState={index:null,align:s,behavior:i,startedAt:n,lastTargetOffset:h,stableFrames:0},this._scrollToOffset(h,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:i="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const h=this.getOffsetForIndex(t,s);if(!h)return;const[n,e]=h,l=this.now();this.scrollState={index:t,align:e,behavior:i,startedAt:l,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{const i=this.getScrollOffset()+t,h=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:h,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{this.options.count>0?this.scrollToIndex(this.options.count-1,{align:"end",behavior:t}):this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const s=this.getMeasurements();let i;if(0===s.length)i=this.options.paddingStart;else if(1===this.options.lanes){const h=s.length-1,n=this._flatMeasurements;i=null!=n?n[2*h]+n[2*h+1]:(null==(t=s[h])?void 0:t.end)??0}else{const t=Array(this.options.lanes).fill(null);let h=s.length-1;for(;h>=0&&t.some((t=>null===t));){const i=s[h];null===t[i.lane]&&(t[i.lane]=i.end),h--}i=Math.max(...t.filter((t=>null!==t)))}return Math.max(i-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(0===this.itemSizeCache.size)return t;const s=this.getMeasurements();for(const i of s)i&&this.itemSizeCache.has(i.key)&&t.push({index:i.index,key:i.key,start:i.start,size:i.size,end:i.end,lane:i.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:i})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:i,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(i)}applyScrollAdjustment(t,s){0!==t&&(n()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=t:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=t,behavior:s}),null!==this.scrollOffset&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){this.targetWindow?null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame((()=>{this.rafId=null,this.reconcileScroll()}))):this.scrollState=null}reconcileScroll(){if(!this.scrollState)return;if(!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3)return void(this.scrollState=null);const t=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=t?t[0]:this.scrollState.lastTargetOffset,i=s!==this.scrollState.lastTargetOffset;if(!i&&(h=s,n=this.getScrollOffset(),Math.abs(h-n)<1.01)){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1)return this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),void(this.scrollState=null)}else if(this.scrollState.stableFrames=0,i){const t=this.getSize()||600,i=Math.abs(s-this.getScrollOffset()),h="smooth"===this.scrollState.behavior&&i>t;this.scrollState.lastTargetOffset=s,h||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:h?"smooth":"auto"})}var h,n;this.scheduleScrollReconcile()}}const b=(t,s,i,h)=>{for(;t<=s;){const n=(t+s)/2|0,e=i(n);if(e<h)t=n+1;else{if(!(e>h))return n;s=n-1}}return t>0?t-1:0};class m{constructor(t,s){this.cleanup=()=>{};const i={...s,onChange:(t,i)=>{var h;this.host.updateComplete.then((()=>this.host.requestUpdate())),null==(h=s.onChange)||h.call(s,t,i)}};this.virtualizer=new v(i),(this.host=t).addController(this)}getVirtualizer(){return this.virtualizer}hostConnected(){this.cleanup=this.virtualizer._didMount()}hostUpdated(){this.virtualizer._willUpdate()}hostDisconnected(){this.cleanup()}}class g extends m{constructor(t,s){super(t,{observeElementRect:o,observeElementOffset:c,scrollToFn:f,...s})}}export{g as V};
|