bitboss-ui 2.0.22 → 2.0.23

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 (234) hide show
  1. package/dist/index107.js +5 -5
  2. package/dist/index115.js +1 -1
  3. package/dist/index117.js +5 -5
  4. package/dist/index119.js +1 -1
  5. package/dist/index123.js +1 -1
  6. package/dist/index124.js +1 -1
  7. package/dist/index125.js +1 -1
  8. package/dist/index127.js +1 -1
  9. package/dist/index129.js +2 -2
  10. package/dist/index130.js +1 -1
  11. package/dist/index14.js +1 -1
  12. package/dist/index16.js +3 -3
  13. package/dist/index18.js +2 -2
  14. package/dist/index199.js +2 -81
  15. package/dist/index199.js.map +1 -1
  16. package/dist/index20.js +12 -12
  17. package/dist/index200.js +80 -7
  18. package/dist/index200.js.map +1 -1
  19. package/dist/index201.js +44 -3
  20. package/dist/index201.js.map +1 -1
  21. package/dist/index203.js +12 -43
  22. package/dist/index203.js.map +1 -1
  23. package/dist/index204.js +6 -0
  24. package/dist/index204.js.map +1 -0
  25. package/dist/index205.js +3 -13
  26. package/dist/index205.js.map +1 -1
  27. package/dist/index206.js +33 -156
  28. package/dist/index206.js.map +1 -1
  29. package/dist/index207.js +5 -83
  30. package/dist/index207.js.map +1 -1
  31. package/dist/index208.js +10 -0
  32. package/dist/index208.js.map +1 -0
  33. package/dist/index209.js +8 -3
  34. package/dist/index209.js.map +1 -1
  35. package/dist/index210.js +123 -32
  36. package/dist/index210.js.map +1 -1
  37. package/dist/index211.js +5 -6
  38. package/dist/index211.js.map +1 -1
  39. package/dist/index212.js +123 -7
  40. package/dist/index212.js.map +1 -1
  41. package/dist/index213.js +18 -280
  42. package/dist/index213.js.map +1 -1
  43. package/dist/index214.js +2 -2
  44. package/dist/index215.js +2 -2
  45. package/dist/index216.js +2 -19
  46. package/dist/index216.js.map +1 -1
  47. package/dist/index217.js +2 -19
  48. package/dist/index217.js.map +1 -1
  49. package/dist/index218.js +172 -25
  50. package/dist/index218.js.map +1 -1
  51. package/dist/index219.js +5 -3
  52. package/dist/index219.js.map +1 -1
  53. package/dist/index22.js +13 -13
  54. package/dist/index220.js +369 -2
  55. package/dist/index220.js.map +1 -1
  56. package/dist/index221.js +17 -247
  57. package/dist/index221.js.map +1 -1
  58. package/dist/index222.js +26 -51
  59. package/dist/index222.js.map +1 -1
  60. package/dist/index223.js +3 -44
  61. package/dist/index223.js.map +1 -1
  62. package/dist/index224.js +249 -5
  63. package/dist/index224.js.map +1 -1
  64. package/dist/index225.js +43 -40
  65. package/dist/index225.js.map +1 -1
  66. package/dist/index226.js +44 -2
  67. package/dist/index226.js.map +1 -1
  68. package/dist/index227.js +5 -4
  69. package/dist/index227.js.map +1 -1
  70. package/dist/index228.js +49 -2
  71. package/dist/index228.js.map +1 -1
  72. package/dist/index229.js +151 -119
  73. package/dist/index229.js.map +1 -1
  74. package/dist/index230.js +84 -123
  75. package/dist/index230.js.map +1 -1
  76. package/dist/index232.js +2 -174
  77. package/dist/index232.js.map +1 -1
  78. package/dist/index233.js +4 -5
  79. package/dist/index233.js.map +1 -1
  80. package/dist/index234.js +2 -369
  81. package/dist/index234.js.map +1 -1
  82. package/dist/index235.js +2 -2
  83. package/dist/index235.js.map +1 -1
  84. package/dist/index236.js +18 -2
  85. package/dist/index236.js.map +1 -1
  86. package/dist/index237.js +105 -17
  87. package/dist/index237.js.map +1 -1
  88. package/dist/{index240.js → index239.js} +2 -2
  89. package/dist/{index240.js.map → index239.js.map} +1 -1
  90. package/dist/index24.js +5 -5
  91. package/dist/index241.js +5 -0
  92. package/dist/index241.js.map +1 -0
  93. package/dist/index244.js +3 -6
  94. package/dist/index244.js.map +1 -1
  95. package/dist/index245.js +8 -15
  96. package/dist/index245.js.map +1 -1
  97. package/dist/index246.js +23 -9
  98. package/dist/index246.js.map +1 -1
  99. package/dist/index247.js +9 -3
  100. package/dist/index247.js.map +1 -1
  101. package/dist/index248.js +6 -9
  102. package/dist/index248.js.map +1 -1
  103. package/dist/index249.js +16 -23
  104. package/dist/index249.js.map +1 -1
  105. package/dist/index250.js +1 -1
  106. package/dist/index251.js +1 -1
  107. package/dist/index254.js +431 -3
  108. package/dist/index254.js.map +1 -1
  109. package/dist/index255.js +88 -11
  110. package/dist/index255.js.map +1 -1
  111. package/dist/index256.js +280 -8
  112. package/dist/index256.js.map +1 -1
  113. package/dist/index257.js +6 -9
  114. package/dist/index257.js.map +1 -1
  115. package/dist/index258.js +2 -17
  116. package/dist/index258.js.map +1 -1
  117. package/dist/index259.js +2 -2
  118. package/dist/index259.js.map +1 -1
  119. package/dist/index26.js +1 -1
  120. package/dist/index260.js +2 -66
  121. package/dist/index260.js.map +1 -1
  122. package/dist/index261.js +2 -5
  123. package/dist/index261.js.map +1 -1
  124. package/dist/index262.js +2 -431
  125. package/dist/index262.js.map +1 -1
  126. package/dist/index263.js +119 -82
  127. package/dist/index263.js.map +1 -1
  128. package/dist/index264.js +22 -6
  129. package/dist/index264.js.map +1 -1
  130. package/dist/index266.js +200 -2
  131. package/dist/index266.js.map +1 -1
  132. package/dist/index269.js +2 -2
  133. package/dist/index270.js +2 -2
  134. package/dist/index271.js +1 -1
  135. package/dist/index272.js +1 -1
  136. package/dist/index273.js +28 -2
  137. package/dist/index273.js.map +1 -1
  138. package/dist/index274.js +21 -1
  139. package/dist/index274.js.map +1 -1
  140. package/dist/index276.js +435 -21
  141. package/dist/index276.js.map +1 -1
  142. package/dist/index277.js +130 -0
  143. package/dist/index277.js.map +1 -0
  144. package/dist/index278.js +2 -200
  145. package/dist/index278.js.map +1 -1
  146. package/dist/index279.js +9 -4
  147. package/dist/index279.js.map +1 -1
  148. package/dist/index28.js +3 -3
  149. package/dist/index280.js +3 -2
  150. package/dist/index280.js.map +1 -1
  151. package/dist/index281.js +12 -126
  152. package/dist/index281.js.map +1 -1
  153. package/dist/index282.js +8 -21
  154. package/dist/index282.js.map +1 -1
  155. package/dist/index283.js +20 -0
  156. package/dist/index283.js.map +1 -0
  157. package/dist/index284.js +64 -434
  158. package/dist/index284.js.map +1 -1
  159. package/dist/index285.js +5 -127
  160. package/dist/index285.js.map +1 -1
  161. package/dist/index286.js +4 -3
  162. package/dist/index286.js.map +1 -1
  163. package/dist/index287.js +1 -1
  164. package/dist/index288.js +3 -211
  165. package/dist/index288.js.map +1 -1
  166. package/dist/index289.js +211 -15
  167. package/dist/index289.js.map +1 -1
  168. package/dist/index290.js +15 -4
  169. package/dist/index290.js.map +1 -1
  170. package/dist/index291.js +79 -4
  171. package/dist/index291.js.map +1 -1
  172. package/dist/index293.js +4 -79
  173. package/dist/index293.js.map +1 -1
  174. package/dist/index294.js +7 -0
  175. package/dist/index294.js.map +1 -0
  176. package/dist/index295.js +59 -2
  177. package/dist/index295.js.map +1 -1
  178. package/dist/index296.js +34 -10
  179. package/dist/index296.js.map +1 -1
  180. package/dist/index297.js +2 -35
  181. package/dist/index297.js.map +1 -1
  182. package/dist/index298.js +10 -6
  183. package/dist/index298.js.map +1 -1
  184. package/dist/index299.js +5 -17
  185. package/dist/index299.js.map +1 -1
  186. package/dist/index30.js +2 -2
  187. package/dist/index300.js +6 -46
  188. package/dist/index300.js.map +1 -1
  189. package/dist/index301.js +17 -5
  190. package/dist/index301.js.map +1 -1
  191. package/dist/index302.js +47 -480
  192. package/dist/index302.js.map +1 -1
  193. package/dist/index303.js +483 -0
  194. package/dist/index303.js.map +1 -0
  195. package/dist/index305.js +416 -42
  196. package/dist/index305.js.map +1 -1
  197. package/dist/index306.js +47 -2
  198. package/dist/index306.js.map +1 -1
  199. package/dist/index307.js +5 -0
  200. package/dist/index307.js.map +1 -0
  201. package/dist/index32.js +2 -2
  202. package/dist/index34.js +3 -3
  203. package/dist/index36.js +13 -13
  204. package/dist/index38.js +4 -4
  205. package/dist/index40.js +2 -2
  206. package/dist/index42.js +2 -2
  207. package/dist/index44.js +6 -6
  208. package/dist/index46.js +2 -2
  209. package/dist/index48.js +2 -2
  210. package/dist/index54.js +1 -1
  211. package/dist/index56.js +1 -1
  212. package/dist/index72.js +3 -3
  213. package/dist/index76.js +2 -2
  214. package/dist/index78.js +1 -1
  215. package/dist/index81.js +2 -2
  216. package/dist/index83.js +1 -1
  217. package/dist/index85.js +3 -3
  218. package/dist/index87.js +1 -1
  219. package/dist/style.css +1 -1
  220. package/package.json +2 -2
  221. package/dist/index202.js +0 -5
  222. package/dist/index202.js.map +0 -1
  223. package/dist/index231.js +0 -5
  224. package/dist/index231.js.map +0 -1
  225. package/dist/index238.js +0 -109
  226. package/dist/index238.js.map +0 -1
  227. package/dist/index265.js +0 -5
  228. package/dist/index265.js.map +0 -1
  229. package/dist/index275.js +0 -31
  230. package/dist/index275.js.map +0 -1
  231. package/dist/index292.js +0 -62
  232. package/dist/index292.js.map +0 -1
  233. package/dist/index304.js +0 -424
  234. package/dist/index304.js.map +0 -1
package/dist/index292.js DELETED
@@ -1,62 +0,0 @@
1
- var o = function(a, e, s, t) {
2
- if (s === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof e == "function" ? a !== e || !t : !e.has(a)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return s === "m" ? t : s === "a" ? t.call(a) : t ? t.value : e.get(a);
5
- }, r, l, i;
6
- class d {
7
- constructor(...e) {
8
- r.set(this, /* @__PURE__ */ new Map()), l.set(this, /* @__PURE__ */ new Map()), i.set(this, /* @__PURE__ */ new Map());
9
- for (const s of e)
10
- this.define(s);
11
- }
12
- define(e, s = !1) {
13
- for (let [t, f] of Object.entries(e)) {
14
- t = t.toLowerCase(), f = f.map((n) => n.toLowerCase()), o(this, i, "f").has(t) || o(this, i, "f").set(t, /* @__PURE__ */ new Set());
15
- const h = o(this, i, "f").get(t);
16
- let u = !0;
17
- for (let n of f) {
18
- const w = n.startsWith("*");
19
- if (n = w ? n.slice(1) : n, h == null || h.add(n), u && o(this, l, "f").set(t, n), u = !1, w)
20
- continue;
21
- const c = o(this, r, "f").get(n);
22
- if (c && c != t && !s)
23
- throw new Error(`"${t} -> ${n}" conflicts with "${c} -> ${n}". Pass \`force=true\` to override this definition.`);
24
- o(this, r, "f").set(n, t);
25
- }
26
- }
27
- return this;
28
- }
29
- getType(e) {
30
- if (typeof e != "string")
31
- return null;
32
- const s = e.replace(/^.*[/\\]/, "").toLowerCase(), t = s.replace(/^.*\./, "").toLowerCase(), f = s.length < e.length;
33
- return !(t.length < s.length - 1) && f ? null : o(this, r, "f").get(t) ?? null;
34
- }
35
- getExtension(e) {
36
- var s;
37
- return typeof e != "string" ? null : (e = (s = e == null ? void 0 : e.split) == null ? void 0 : s.call(e, ";")[0], (e && o(this, l, "f").get(e.trim().toLowerCase())) ?? null);
38
- }
39
- getAllExtensions(e) {
40
- return typeof e != "string" ? null : o(this, i, "f").get(e.toLowerCase()) ?? null;
41
- }
42
- _freeze() {
43
- this.define = () => {
44
- throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances");
45
- }, Object.freeze(this);
46
- for (const e of o(this, i, "f").values())
47
- Object.freeze(e);
48
- return this;
49
- }
50
- _getTestState() {
51
- return {
52
- types: o(this, r, "f"),
53
- extensions: o(this, l, "f")
54
- };
55
- }
56
- }
57
- r = /* @__PURE__ */ new WeakMap(), l = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap();
58
- const g = d;
59
- export {
60
- g as default
61
- };
62
- //# sourceMappingURL=index292.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index292.js","sources":["../node_modules/mime/dist/src/Mime.js"],"sourcesContent":["var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions;\nclass Mime {\n constructor(...args) {\n _Mime_extensionToType.set(this, new Map());\n _Mime_typeToExtension.set(this, new Map());\n _Mime_typeToExtensions.set(this, new Map());\n for (const arg of args) {\n this.define(arg);\n }\n }\n define(typeMap, force = false) {\n for (let [type, extensions] of Object.entries(typeMap)) {\n type = type.toLowerCase();\n extensions = extensions.map((ext) => ext.toLowerCase());\n if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").has(type)) {\n __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").set(type, new Set());\n }\n const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type);\n let first = true;\n for (let extension of extensions) {\n const starred = extension.startsWith('*');\n extension = starred ? extension.slice(1) : extension;\n allExtensions?.add(extension);\n if (first) {\n __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").set(type, extension);\n }\n first = false;\n if (starred)\n continue;\n const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(extension);\n if (currentType && currentType != type && !force) {\n throw new Error(`\"${type} -> ${extension}\" conflicts with \"${currentType} -> ${extension}\". Pass \\`force=true\\` to override this definition.`);\n }\n __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").set(extension, type);\n }\n }\n return this;\n }\n getType(path) {\n if (typeof path !== 'string')\n return null;\n const last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n const ext = last.replace(/^.*\\./, '').toLowerCase();\n const hasPath = last.length < path.length;\n const hasDot = ext.length < last.length - 1;\n if (!hasDot && hasPath)\n return null;\n return __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(ext) ?? null;\n }\n getExtension(type) {\n if (typeof type !== 'string')\n return null;\n type = type?.split?.(';')[0];\n return ((type && __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").get(type.trim().toLowerCase())) ?? null);\n }\n getAllExtensions(type) {\n if (typeof type !== 'string')\n return null;\n return __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type.toLowerCase()) ?? null;\n }\n _freeze() {\n this.define = () => {\n throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');\n };\n Object.freeze(this);\n for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").values()) {\n Object.freeze(extensions);\n }\n return this;\n }\n _getTestState() {\n return {\n types: __classPrivateFieldGet(this, _Mime_extensionToType, \"f\"),\n extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\"),\n };\n }\n}\n_Mime_extensionToType = new WeakMap(), _Mime_typeToExtension = new WeakMap(), _Mime_typeToExtensions = new WeakMap();\nexport default Mime;\n//# sourceMappingURL=Mime.js.map"],"names":["__classPrivateFieldGet","receiver","state","kind","f","_Mime_extensionToType","_Mime_typeToExtension","_Mime_typeToExtensions","Mime","args","arg","typeMap","force","type","extensions","ext","allExtensions","first","extension","starred","currentType","path","last","hasPath","_a","Mime$1"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index304.js DELETED
@@ -1,424 +0,0 @@
1
- import { debounce as C, memo as f, notUndefined as b, approxEqual as y } from "./index305.js";
2
- const T = (r) => r, _ = (r) => {
3
- const h = Math.max(r.startIndex - r.overscan, 0), e = Math.min(r.endIndex + r.overscan, r.count - 1), s = [];
4
- for (let t = h; t <= e; t++)
5
- s.push(t);
6
- return s;
7
- }, A = (r, h) => {
8
- const e = r.scrollElement;
9
- if (!e)
10
- return;
11
- const s = r.targetWindow;
12
- if (!s)
13
- return;
14
- const t = (n) => {
15
- const { width: o, height: l } = n;
16
- h({ width: Math.round(o), height: Math.round(l) });
17
- };
18
- if (t(e.getBoundingClientRect()), !s.ResizeObserver)
19
- return () => {
20
- };
21
- const i = new s.ResizeObserver((n) => {
22
- const o = n[0];
23
- if (o != null && o.borderBoxSize) {
24
- const l = o.borderBoxSize[0];
25
- if (l) {
26
- t({ width: l.inlineSize, height: l.blockSize });
27
- return;
28
- }
29
- }
30
- t(e.getBoundingClientRect());
31
- });
32
- return i.observe(e, { box: "border-box" }), () => {
33
- i.unobserve(e);
34
- };
35
- }, M = {
36
- passive: !0
37
- }, R = typeof window > "u" ? !0 : "onscrollend" in window, F = (r, h) => {
38
- const e = r.scrollElement;
39
- if (!e)
40
- return;
41
- const s = r.targetWindow;
42
- if (!s)
43
- return;
44
- let t = 0;
45
- const i = R ? () => {
46
- } : C(
47
- s,
48
- () => {
49
- h(t, !1);
50
- },
51
- r.options.isScrollingResetDelay
52
- ), n = (c) => () => {
53
- t = e[r.options.horizontal ? "scrollLeft" : "scrollTop"], i(), h(t, c);
54
- }, o = n(!0), l = n(!1);
55
- return l(), e.addEventListener("scroll", o, M), e.addEventListener("scrollend", l, M), () => {
56
- e.removeEventListener("scroll", o), e.removeEventListener("scrollend", l);
57
- };
58
- }, k = (r, h, e) => {
59
- if (h != null && h.borderBoxSize) {
60
- const s = h.borderBoxSize[0];
61
- if (s)
62
- return Math.round(
63
- s[e.options.horizontal ? "inlineSize" : "blockSize"]
64
- );
65
- }
66
- return Math.round(
67
- r.getBoundingClientRect()[e.options.horizontal ? "width" : "height"]
68
- );
69
- }, N = (r, {
70
- adjustments: h = 0,
71
- behavior: e
72
- }, s) => {
73
- var t, i;
74
- const n = r + h;
75
- (i = (t = s.scrollElement) == null ? void 0 : t.scrollTo) == null || i.call(t, {
76
- [s.options.horizontal ? "left" : "top"]: n,
77
- behavior: e
78
- });
79
- };
80
- class j {
81
- constructor(h) {
82
- this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollToIndexTimeoutId = null, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.observer = /* @__PURE__ */ (() => {
83
- let e = null;
84
- const s = () => e || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : e = new this.targetWindow.ResizeObserver((t) => {
85
- t.forEach((i) => {
86
- this._measureElement(i.target, i);
87
- });
88
- }));
89
- return {
90
- disconnect: () => {
91
- var t;
92
- return (t = s()) == null ? void 0 : t.disconnect();
93
- },
94
- observe: (t) => {
95
- var i;
96
- return (i = s()) == null ? void 0 : i.observe(t, { box: "border-box" });
97
- },
98
- unobserve: (t) => {
99
- var i;
100
- return (i = s()) == null ? void 0 : i.unobserve(t);
101
- }
102
- };
103
- })(), this.range = null, this.setOptions = (e) => {
104
- Object.entries(e).forEach(([s, t]) => {
105
- typeof t > "u" && delete e[s];
106
- }), this.options = {
107
- debug: !1,
108
- initialOffset: 0,
109
- overscan: 1,
110
- paddingStart: 0,
111
- paddingEnd: 0,
112
- scrollPaddingStart: 0,
113
- scrollPaddingEnd: 0,
114
- horizontal: !1,
115
- getItemKey: T,
116
- rangeExtractor: _,
117
- onChange: () => {
118
- },
119
- measureElement: k,
120
- initialRect: { width: 0, height: 0 },
121
- scrollMargin: 0,
122
- gap: 0,
123
- indexAttribute: "data-index",
124
- initialMeasurementsCache: [],
125
- lanes: 1,
126
- isScrollingResetDelay: 150,
127
- enabled: !0,
128
- ...e
129
- };
130
- }, this.notify = (e, s) => {
131
- var t, i;
132
- const { startIndex: n, endIndex: o } = this.range ?? {
133
- startIndex: void 0,
134
- endIndex: void 0
135
- }, l = this.calculateRange();
136
- (e || n !== (l == null ? void 0 : l.startIndex) || o !== (l == null ? void 0 : l.endIndex)) && ((i = (t = this.options).onChange) == null || i.call(t, this, s));
137
- }, this.cleanup = () => {
138
- this.unsubs.filter(Boolean).forEach((e) => e()), this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.observer.disconnect(), this.elementsCache.clear();
139
- }, this._didMount = () => () => {
140
- this.cleanup();
141
- }, this._willUpdate = () => {
142
- var e;
143
- const s = this.options.enabled ? this.options.getScrollElement() : null;
144
- if (this.scrollElement !== s) {
145
- if (this.cleanup(), !s) {
146
- this.notify(!1, !1);
147
- return;
148
- }
149
- this.scrollElement = s, this.scrollElement && "ownerDocument" in this.scrollElement ? this.targetWindow = this.scrollElement.ownerDocument.defaultView : this.targetWindow = ((e = this.scrollElement) == null ? void 0 : e.window) ?? null, this._scrollToOffset(this.getScrollOffset(), {
150
- adjustments: void 0,
151
- behavior: void 0
152
- }), this.unsubs.push(
153
- this.options.observeElementRect(this, (t) => {
154
- this.scrollRect = t, this.notify(!1, !1);
155
- })
156
- ), this.unsubs.push(
157
- this.options.observeElementOffset(this, (t, i) => {
158
- this.scrollAdjustments = 0, this.scrollDirection = i ? this.getScrollOffset() < t ? "forward" : "backward" : null, this.scrollOffset = t;
159
- const n = this.isScrolling;
160
- this.isScrolling = i, this.notify(n !== i, i);
161
- })
162
- );
163
- }
164
- }, 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 ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getFurthestMeasurement = (e, s) => {
165
- const t = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
166
- for (let n = s - 1; n >= 0; n--) {
167
- const o = e[n];
168
- if (t.has(o.lane))
169
- continue;
170
- const l = i.get(
171
- o.lane
172
- );
173
- if (l == null || o.end > l.end ? i.set(o.lane, o) : o.end < l.end && t.set(o.lane, !0), t.size === this.options.lanes)
174
- break;
175
- }
176
- return i.size === this.options.lanes ? Array.from(i.values()).sort((n, o) => n.end === o.end ? n.index - o.index : n.end - o.end)[0] : void 0;
177
- }, this.getMeasurementOptions = f(
178
- () => [
179
- this.options.count,
180
- this.options.paddingStart,
181
- this.options.scrollMargin,
182
- this.options.getItemKey,
183
- this.options.enabled
184
- ],
185
- (e, s, t, i, n) => (this.pendingMeasuredCacheIndexes = [], {
186
- count: e,
187
- paddingStart: s,
188
- scrollMargin: t,
189
- getItemKey: i,
190
- enabled: n
191
- }),
192
- {
193
- key: !1
194
- }
195
- ), this.getMeasurements = f(
196
- () => [this.getMeasurementOptions(), this.itemSizeCache],
197
- ({ count: e, paddingStart: s, scrollMargin: t, getItemKey: i, enabled: n }, o) => {
198
- var l;
199
- if (!n)
200
- return this.measurementsCache = [], this.itemSizeCache.clear(), [];
201
- this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((a) => {
202
- this.itemSizeCache.set(a.key, a.size);
203
- }));
204
- const c = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
205
- this.pendingMeasuredCacheIndexes = [];
206
- const d = this.measurementsCache.slice(0, c);
207
- for (let a = c; a < e; a++) {
208
- let p = (l = this.measurementsCache[a]) == null ? void 0 : l.measureElement;
209
- p || (p = (u) => {
210
- const v = i(a), m = this.elementsCache.get(v);
211
- if (!u) {
212
- m && (this.observer.unobserve(m), this.elementsCache.delete(v));
213
- return;
214
- }
215
- m !== u && (m && this.observer.unobserve(m), this.observer.observe(u), this.elementsCache.set(v, u)), u.isConnected && this.resizeItem(
216
- a,
217
- this.options.measureElement(u, void 0, this)
218
- );
219
- });
220
- const x = i(a), g = this.options.lanes === 1 ? d[a - 1] : this.getFurthestMeasurement(d, a), E = g ? g.end + this.options.gap : s + t, I = o.get(x), S = typeof I == "number" ? I : this.options.estimateSize(a), O = E + S, w = g ? g.lane : a % this.options.lanes;
221
- d[a] = {
222
- index: a,
223
- start: E,
224
- size: S,
225
- end: O,
226
- key: x,
227
- lane: w,
228
- measureElement: p
229
- };
230
- }
231
- return this.measurementsCache = d, d;
232
- },
233
- {
234
- key: process.env.NODE_ENV !== "production" && "getMeasurements",
235
- debug: () => this.options.debug
236
- }
237
- ), this.calculateRange = f(
238
- () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
239
- (e, s, t) => this.range = e.length > 0 && s > 0 ? D({
240
- measurements: e,
241
- outerSize: s,
242
- scrollOffset: t
243
- }) : null,
244
- {
245
- key: process.env.NODE_ENV !== "production" && "calculateRange",
246
- debug: () => this.options.debug
247
- }
248
- ), this.getIndexes = f(
249
- () => [
250
- this.options.rangeExtractor,
251
- this.calculateRange(),
252
- this.options.overscan,
253
- this.options.count
254
- ],
255
- (e, s, t, i) => s === null ? [] : e({
256
- startIndex: s.startIndex,
257
- endIndex: s.endIndex,
258
- overscan: t,
259
- count: i
260
- }),
261
- {
262
- key: process.env.NODE_ENV !== "production" && "getIndexes",
263
- debug: () => this.options.debug
264
- }
265
- ), this.indexFromElement = (e) => {
266
- const s = this.options.indexAttribute, t = e.getAttribute(s);
267
- return t ? parseInt(t, 10) : (console.warn(
268
- `Missing attribute name '${s}={index}' on measured element.`
269
- ), -1);
270
- }, this._measureElement = (e, s) => {
271
- const t = this.indexFromElement(e), i = this.getMeasurements()[t];
272
- if (!i || !e.isConnected) {
273
- this.elementsCache.forEach((o, l) => {
274
- o === e && (this.observer.unobserve(e), this.elementsCache.delete(l));
275
- });
276
- return;
277
- }
278
- const n = this.elementsCache.get(i.key);
279
- n !== e && (n && this.observer.unobserve(n), this.observer.observe(e), this.elementsCache.set(i.key, e)), this.resizeItem(t, this.options.measureElement(e, s, this));
280
- }, this.resizeItem = (e, s) => {
281
- const t = this.getMeasurements()[e];
282
- if (!t)
283
- return;
284
- const i = this.itemSizeCache.get(t.key) ?? t.size, n = s - i;
285
- n !== 0 && ((this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(t, n, this) : t.start < this.getScrollOffset() + this.scrollAdjustments) && (process.env.NODE_ENV !== "production" && this.options.debug && console.info("correction", n), this._scrollToOffset(this.getScrollOffset(), {
286
- adjustments: this.scrollAdjustments += n,
287
- behavior: void 0
288
- })), this.pendingMeasuredCacheIndexes.push(t.index), this.itemSizeCache = new Map(this.itemSizeCache.set(t.key, s)), this.notify(!0, !1));
289
- }, this.measureElement = (e) => {
290
- e && this._measureElement(e, void 0);
291
- }, this.getVirtualItems = f(
292
- () => [this.getIndexes(), this.getMeasurements()],
293
- (e, s) => {
294
- const t = [];
295
- for (let i = 0, n = e.length; i < n; i++) {
296
- const o = e[i], l = s[o];
297
- t.push(l);
298
- }
299
- return t;
300
- },
301
- {
302
- key: process.env.NODE_ENV !== "production" && "getIndexes",
303
- debug: () => this.options.debug
304
- }
305
- ), this.getVirtualItemForOffset = (e) => {
306
- const s = this.getMeasurements();
307
- if (s.length !== 0)
308
- return b(
309
- s[z(
310
- 0,
311
- s.length - 1,
312
- (t) => b(s[t]).start,
313
- e
314
- )]
315
- );
316
- }, this.getOffsetForAlignment = (e, s) => {
317
- const t = this.getSize(), i = this.getScrollOffset();
318
- s === "auto" && (e <= i ? s = "start" : e >= i + t ? s = "end" : s = "start"), s === "start" ? e = e : s === "end" ? e = e - t : s === "center" && (e = e - t / 2);
319
- const n = this.options.horizontal ? "scrollWidth" : "scrollHeight", l = (this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[n] : this.scrollElement[n] : 0) - t;
320
- return Math.max(Math.min(l, e), 0);
321
- }, this.getOffsetForIndex = (e, s = "auto") => {
322
- e = Math.max(0, Math.min(e, this.options.count - 1));
323
- const t = this.getMeasurements()[e];
324
- if (!t)
325
- return;
326
- const i = this.getSize(), n = this.getScrollOffset();
327
- if (s === "auto")
328
- if (t.end >= n + i - this.options.scrollPaddingEnd)
329
- s = "end";
330
- else if (t.start <= n + this.options.scrollPaddingStart)
331
- s = "start";
332
- else
333
- return [n, s];
334
- const o = s === "end" ? t.end + this.options.scrollPaddingEnd : t.start - this.options.scrollPaddingStart;
335
- return [this.getOffsetForAlignment(o, s), s];
336
- }, this.isDynamicMode = () => this.elementsCache.size > 0, this.cancelScrollToIndex = () => {
337
- this.scrollToIndexTimeoutId !== null && this.targetWindow && (this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId), this.scrollToIndexTimeoutId = null);
338
- }, this.scrollToOffset = (e, { align: s = "start", behavior: t } = {}) => {
339
- this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
340
- "The `smooth` scroll behavior is not fully supported with dynamic size."
341
- ), this._scrollToOffset(this.getOffsetForAlignment(e, s), {
342
- adjustments: void 0,
343
- behavior: t
344
- });
345
- }, this.scrollToIndex = (e, { align: s = "auto", behavior: t } = {}) => {
346
- e = Math.max(0, Math.min(e, this.options.count - 1)), this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
347
- "The `smooth` scroll behavior is not fully supported with dynamic size."
348
- );
349
- const i = this.getOffsetForIndex(e, s);
350
- if (!i) return;
351
- const [n, o] = i;
352
- this._scrollToOffset(n, { adjustments: void 0, behavior: t }), t !== "smooth" && this.isDynamicMode() && this.targetWindow && (this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
353
- if (this.scrollToIndexTimeoutId = null, this.elementsCache.has(
354
- this.options.getItemKey(e)
355
- )) {
356
- const [c] = b(
357
- this.getOffsetForIndex(e, o)
358
- );
359
- y(c, this.getScrollOffset()) || this.scrollToIndex(e, { align: o, behavior: t });
360
- } else
361
- this.scrollToIndex(e, { align: o, behavior: t });
362
- }));
363
- }, this.scrollBy = (e, { behavior: s } = {}) => {
364
- this.cancelScrollToIndex(), s === "smooth" && this.isDynamicMode() && console.warn(
365
- "The `smooth` scroll behavior is not fully supported with dynamic size."
366
- ), this._scrollToOffset(this.getScrollOffset() + e, {
367
- adjustments: void 0,
368
- behavior: s
369
- });
370
- }, this.getTotalSize = () => {
371
- var e;
372
- const s = this.getMeasurements();
373
- let t;
374
- return s.length === 0 ? t = this.options.paddingStart : t = this.options.lanes === 1 ? ((e = s[s.length - 1]) == null ? void 0 : e.end) ?? 0 : Math.max(
375
- ...s.slice(-this.options.lanes).map((i) => i.end)
376
- ), t - this.options.scrollMargin + this.options.paddingEnd;
377
- }, this._scrollToOffset = (e, {
378
- adjustments: s,
379
- behavior: t
380
- }) => {
381
- this.options.scrollToFn(e, { behavior: t, adjustments: s }, this);
382
- }, this.measure = () => {
383
- var e, s;
384
- this.itemSizeCache = /* @__PURE__ */ new Map(), (s = (e = this.options).onChange) == null || s.call(e, this, !1);
385
- }, this.setOptions(h);
386
- }
387
- }
388
- const z = (r, h, e, s) => {
389
- for (; r <= h; ) {
390
- const t = (r + h) / 2 | 0, i = e(t);
391
- if (i < s)
392
- r = t + 1;
393
- else if (i > s)
394
- h = t - 1;
395
- else
396
- return t;
397
- }
398
- return r > 0 ? r - 1 : 0;
399
- };
400
- function D({
401
- measurements: r,
402
- outerSize: h,
403
- scrollOffset: e
404
- }) {
405
- const s = r.length - 1, i = z(0, s, (o) => r[o].start, e);
406
- let n = i;
407
- for (; n < s && r[n].end < e + h; )
408
- n++;
409
- return { startIndex: i, endIndex: n };
410
- }
411
- export {
412
- j as Virtualizer,
413
- y as approxEqual,
414
- C as debounce,
415
- T as defaultKeyExtractor,
416
- _ as defaultRangeExtractor,
417
- N as elementScroll,
418
- k as measureElement,
419
- f as memo,
420
- b as notUndefined,
421
- F as observeElementOffset,
422
- A as observeElementRect
423
- };
424
- //# sourceMappingURL=index304.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index304.js","sources":["../node_modules/@tanstack/virtual-core/dist/esm/index.js"],"sourcesContent":["import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\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 arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(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(element.getBoundingClientRect());\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\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(element.getBoundingClientRect());\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 observeElementOffset = (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 let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollLeft\" : \"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst observeWindowOffset = (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 let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\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 Math.round(\n element.getBoundingClientRect()[instance.options.horizontal ? \"width\" : \"height\"]\n );\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollToIndexTimeoutId = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\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 this._measureElement(entry.target, entry);\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.disconnect();\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 Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\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 isScrollingResetDelay: 150,\n enabled: true,\n ...opts2\n };\n };\n this.notify = (force, sync) => {\n var _a, _b;\n const { startIndex, endIndex } = this.range ?? {\n startIndex: void 0,\n endIndex: void 0\n };\n const range = this.calculateRange();\n if (force || startIndex !== (range == null ? void 0 : range.startIndex) || endIndex !== (range == null ? void 0 : range.endIndex)) {\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n }\n };\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.observer.disconnect();\n this.elementsCache.clear();\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.notify(false, false);\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._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.notify(false, false);\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n const prevIsScrolling = this.isScrolling;\n this.isScrolling = isScrolling;\n this.notify(prevIsScrolling !== isScrolling, isScrolling);\n })\n );\n }\n };\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 ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n var _a;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\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.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;\n if (!measureElement2) {\n measureElement2 = (node) => {\n const key2 = getItemKey(i);\n const prevNode = this.elementsCache.get(key2);\n if (!node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n this.elementsCache.delete(key2);\n }\n return;\n }\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key2, node);\n }\n if (node.isConnected) {\n this.resizeItem(\n i,\n this.options.measureElement(node, void 0, this)\n );\n }\n };\n }\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane,\n measureElement: measureElement2\n };\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 () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],\n (measurements, outerSize, scrollOffset) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getIndexes = memo(\n () => [\n this.options.rangeExtractor,\n this.calculateRange(),\n this.options.overscan,\n this.options.count\n ],\n (rangeExtractor, range, overscan, count) => {\n return range === null ? [] : rangeExtractor({\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getIndexes\",\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._measureElement = (node, entry) => {\n const i = this.indexFromElement(node);\n const item = this.getMeasurements()[i];\n if (!item || !node.isConnected) {\n this.elementsCache.forEach((cached, key) => {\n if (cached === node) {\n this.observer.unobserve(node);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n const prevNode = this.elementsCache.get(item.key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(item.key, node);\n }\n this.resizeItem(i, this.options.measureElement(node, entry, this));\n };\n this.resizeItem = (index, size) => {\n const item = this.getMeasurements()[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(true, false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getIndexes(), 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\" && \"getIndexes\",\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 return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (toOffset <= scrollOffset) {\n align = \"start\";\n } else if (toOffset >= scrollOffset + size) {\n align = \"end\";\n } else {\n align = \"start\";\n }\n }\n if (align === \"start\") {\n toOffset = toOffset;\n } else if (align === \"end\") {\n toOffset = toOffset - size;\n } else if (align === \"center\") {\n toOffset = toOffset - size / 2;\n }\n const scrollSizeProp = this.options.horizontal ? \"scrollWidth\" : \"scrollHeight\";\n const scrollSize = this.scrollElement ? \"document\" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;\n const maxOffset = scrollSize - size;\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 item = this.getMeasurements()[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\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 const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [this.getOffsetForAlignment(toOffset, align), align];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.cancelScrollToIndex = () => {\n if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {\n this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);\n this.scrollToIndexTimeoutId = null;\n }\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);\n if (!offsetAndAlign) return;\n const [offset, align] = offsetAndAlign;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n if (behavior !== \"smooth\" && this.isDynamicMode() && this.targetWindow) {\n this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {\n this.scrollToIndexTimeoutId = null;\n const elementInDOM = this.elementsCache.has(\n this.options.getItemKey(index)\n );\n if (elementInDOM) {\n const [latestOffset] = notUndefined(\n this.getOffsetForIndex(index, align)\n );\n if (!approxEqual(latestOffset, this.getScrollOffset())) {\n this.scrollToIndex(index, { align, behavior });\n }\n } else {\n this.scrollToIndex(index, { align, behavior });\n }\n });\n }\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 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 {\n end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(\n ...measurements.slice(-this.options.lanes).map((m) => m.end)\n );\n }\n return end - this.options.scrollMargin + this.options.paddingEnd;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n var _a, _b;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);\n };\n this.setOptions(opts);\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}) {\n const count = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\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"],"names":["defaultKeyExtractor","index","defaultRangeExtractor","range","start","end","arr","i","observeElementRect","instance","cb","element","targetWindow","handler","rect","width","height","observer","entries","entry","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","fallback","debounce","createHandler","isScrolling","endHandler","measureElement","elementScroll","adjustments","behavior","_a","_b","toOffset","Virtualizer","opts","_ro","get","target","opts2","key","value","force","sync","startIndex","endIndex","d","scrollElement","prevIsScrolling","measurements","furthestMeasurementsFound","furthestMeasurements","m","measurement","previousFurthestMeasurement","a","b","memo","count","paddingStart","scrollMargin","getItemKey","enabled","itemSizeCache","item","min","measureElement2","node","key2","prevNode","furthestMeasurement","measuredSize","size","lane","outerSize","scrollOffset","calculateRange","rangeExtractor","overscan","attributeName","indexStr","cached","itemSize","delta","indexes","virtualItems","k","len","notUndefined","findNearestBinarySearch","align","scrollSizeProp","maxOffset","initialAlign","offsetAndAlign","latestOffset","approxEqual","low","high","getCurrentValue","middle","currentValue"],"mappings":"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","x_google_ignoreList":[0]}