bitboss-ui 2.0.41 → 2.0.42

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 (140) hide show
  1. package/dist/index110.js +4 -4
  2. package/dist/index118.js +1 -1
  3. package/dist/index120.js +5 -5
  4. package/dist/index122.js +1 -1
  5. package/dist/index126.js +1 -1
  6. package/dist/index127.js +1 -1
  7. package/dist/index128.js +1 -1
  8. package/dist/index133.js +2 -2
  9. package/dist/index15.js +4 -4
  10. package/dist/index17.js +3 -3
  11. package/dist/index19.js +2 -2
  12. package/dist/index206.js +158 -3
  13. package/dist/index207.js +84 -41
  14. package/dist/index209.js +3 -7
  15. package/dist/index21.js +13 -13
  16. package/dist/index211.js +3 -126
  17. package/dist/index212.js +40 -280
  18. package/dist/index213.js +6 -125
  19. package/dist/index214.js +7 -19
  20. package/dist/index215.js +52 -15
  21. package/dist/index217.js +13 -2
  22. package/dist/index218.js +2 -2
  23. package/dist/index219.js +4 -20
  24. package/dist/index220.js +2 -53
  25. package/dist/index221.js +22 -0
  26. package/dist/index222.js +3 -12
  27. package/dist/index223.js +126 -5
  28. package/dist/index224.js +5 -369
  29. package/dist/index225.js +122 -16
  30. package/dist/index226.js +18 -26
  31. package/dist/index227.js +16 -3
  32. package/dist/index228.js +14 -247
  33. package/dist/index229.js +2 -52
  34. package/dist/index23.js +15 -15
  35. package/dist/index230.js +2 -44
  36. package/dist/index231.js +4 -4
  37. package/dist/index232.js +369 -49
  38. package/dist/index233.js +19 -4
  39. package/dist/index234.js +27 -3
  40. package/dist/index235.js +3 -158
  41. package/dist/index236.js +242 -77
  42. package/dist/index237.js +54 -0
  43. package/dist/index238.js +44 -2
  44. package/dist/index239.js +5 -4
  45. package/dist/index240.js +49 -2
  46. package/dist/index241.js +1 -1
  47. package/dist/index243.js +1 -1
  48. package/dist/index245.js +1 -1
  49. package/dist/index25.js +4 -4
  50. package/dist/index250.js +3 -431
  51. package/dist/index251.js +11 -88
  52. package/dist/index252.js +8 -5
  53. package/dist/index253.js +9 -2
  54. package/dist/index254.js +17 -2
  55. package/dist/index255.js +224 -2
  56. package/dist/index256.js +431 -2
  57. package/dist/index257.js +89 -2
  58. package/dist/index258.js +3 -126
  59. package/dist/index260.js +7 -3
  60. package/dist/index261.js +6 -0
  61. package/dist/index262.js +175 -6
  62. package/dist/index263.js +199 -21
  63. package/dist/index264.js +8 -0
  64. package/dist/index265.js +15 -199
  65. package/dist/index266.js +3 -2
  66. package/dist/index267.js +9 -2
  67. package/dist/index268.js +23 -2
  68. package/dist/index269.js +9 -2
  69. package/dist/index27.js +1 -1
  70. package/dist/index270.js +281 -2
  71. package/dist/index271.js +6 -2
  72. package/dist/index272.js +2 -28
  73. package/dist/index273.js +2 -22
  74. package/dist/index274.js +4 -0
  75. package/dist/index275.js +2 -436
  76. package/dist/index276.js +2 -127
  77. package/dist/index277.js +2 -224
  78. package/dist/index278.js +1 -5
  79. package/dist/index279.js +2 -16
  80. package/dist/index280.js +2 -9
  81. package/dist/index281.js +2 -3
  82. package/dist/index282.js +28 -12
  83. package/dist/index283.js +21 -8
  84. package/dist/index285.js +2 -17
  85. package/dist/index286.js +126 -3
  86. package/dist/index287.js +21 -8
  87. package/dist/index289.js +435 -3
  88. package/dist/index29.js +2 -2
  89. package/dist/index290.js +127 -3
  90. package/dist/index291.js +1 -1
  91. package/dist/index292.js +3 -211
  92. package/dist/index293.js +211 -2
  93. package/dist/index294.js +2 -66
  94. package/dist/index295.js +66 -5
  95. package/dist/index296.js +5 -7
  96. package/dist/index297.js +4 -18
  97. package/dist/index298.js +7 -34
  98. package/dist/index299.js +10 -6
  99. package/dist/index300.js +3 -4
  100. package/dist/index301.js +4 -8
  101. package/dist/index302.js +4 -4
  102. package/dist/index303.js +59 -4
  103. package/dist/index304.js +77 -57
  104. package/dist/index306.js +35 -79
  105. package/dist/index307.js +9 -0
  106. package/dist/index308.js +17 -45
  107. package/dist/index309.js +46 -10
  108. package/dist/index31.js +2 -2
  109. package/dist/index310.js +7 -2
  110. package/dist/index311.js +4 -0
  111. package/dist/index312.js +2 -2
  112. package/dist/index314.js +420 -43
  113. package/dist/index315.js +47 -2
  114. package/dist/index316.js +4 -0
  115. package/dist/index33.js +2 -2
  116. package/dist/index35.js +3 -3
  117. package/dist/index37.js +8 -8
  118. package/dist/index39.js +2 -2
  119. package/dist/index41.js +2 -2
  120. package/dist/index43.js +2 -2
  121. package/dist/index45.js +4 -4
  122. package/dist/index47.js +2 -2
  123. package/dist/index49.js +2 -2
  124. package/dist/index55.js +1 -1
  125. package/dist/index57.js +1 -1
  126. package/dist/index75.js +3 -3
  127. package/dist/index79.js +2 -2
  128. package/dist/index81.js +1 -1
  129. package/dist/index84.js +2 -2
  130. package/dist/index86.js +1 -1
  131. package/dist/index88.js +3 -3
  132. package/dist/style.css +1 -1
  133. package/package.json +1 -1
  134. package/dist/index208.js +0 -8
  135. package/dist/index216.js +0 -18
  136. package/dist/index259.js +0 -178
  137. package/dist/index284.js +0 -11
  138. package/dist/index288.js +0 -25
  139. package/dist/index305.js +0 -6
  140. package/dist/index313.js +0 -426
package/dist/index259.js DELETED
@@ -1,178 +0,0 @@
1
- var P = Object.defineProperty, T = (a, t, e) => t in a ? P(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e, A = (a, t, e) => T(a, typeof t != "symbol" ? t + "" : t, e);
2
- const R = {
3
- "#": { pattern: /[0-9]/ },
4
- "@": { pattern: /[a-zA-Z]/ },
5
- "*": { pattern: /[a-zA-Z0-9]/ }
6
- }, I = (a, t, e) => a.replaceAll(t, "").replace(e, ".").replace("..", ".").replace(/[^.\d]/g, ""), N = (a, t, e) => {
7
- var s;
8
- return new Intl.NumberFormat(((s = e.number) == null ? void 0 : s.locale) ?? "en", {
9
- minimumFractionDigits: a,
10
- maximumFractionDigits: t,
11
- roundingMode: "trunc"
12
- });
13
- }, F = (a, t = !0, e) => {
14
- var s, n, r, h;
15
- const u = ((s = e.number) == null ? void 0 : s.unsigned) == null && a.startsWith("-") ? "-" : "", l = ((n = e.number) == null ? void 0 : n.fraction) ?? 0;
16
- let o = N(0, l, e);
17
- const k = o.formatToParts(1000.12), c = ((r = k.find((i) => i.type === "group")) == null ? void 0 : r.value) ?? " ", y = ((h = k.find((i) => i.type === "decimal")) == null ? void 0 : h.value) ?? ".", f = I(a, c, y);
18
- if (Number.isNaN(parseFloat(f))) return u;
19
- const g = f.split(".");
20
- if (g[1] != null && g[1].length >= 1) {
21
- const i = g[1].length <= l ? g[1].length : l;
22
- o = N(i, l, e);
23
- }
24
- let m = o.format(parseFloat(f));
25
- return t ? l > 0 && f.endsWith(".") && !f.slice(0, -1).includes(".") && (m += y) : m = I(m, c, y), u + m;
26
- };
27
- class O {
28
- constructor(t = {}) {
29
- A(this, "opts", {}), A(this, "memo", /* @__PURE__ */ new Map());
30
- const e = { ...t };
31
- if (e.tokens != null) {
32
- e.tokens = e.tokensReplace ? { ...e.tokens } : { ...R, ...e.tokens };
33
- for (const s of Object.values(e.tokens))
34
- typeof s.pattern == "string" && (s.pattern = new RegExp(s.pattern));
35
- } else
36
- e.tokens = R;
37
- Array.isArray(e.mask) && (e.mask.length > 1 ? e.mask = [...e.mask].sort((s, n) => s.length - n.length) : e.mask = e.mask[0] ?? ""), e.mask === "" && (e.mask = null), this.opts = e;
38
- }
39
- masked(t) {
40
- return this.process(t, this.findMask(t));
41
- }
42
- unmasked(t) {
43
- return this.process(t, this.findMask(t), !1);
44
- }
45
- isEager() {
46
- return this.opts.eager === !0;
47
- }
48
- isReversed() {
49
- return this.opts.reversed === !0;
50
- }
51
- completed(t) {
52
- const e = this.findMask(t);
53
- if (this.opts.mask == null || e == null) return !1;
54
- const s = this.process(t, e).length;
55
- return typeof this.opts.mask == "string" ? s >= this.opts.mask.length : s >= e.length;
56
- }
57
- findMask(t) {
58
- const e = this.opts.mask;
59
- if (e == null)
60
- return null;
61
- if (typeof e == "string")
62
- return e;
63
- if (typeof e == "function")
64
- return e(t);
65
- const s = this.process(t, e.slice(-1).pop() ?? "", !1);
66
- return e.find((n) => this.process(t, n, !1).length >= s.length) ?? "";
67
- }
68
- escapeMask(t) {
69
- const e = [], s = [];
70
- return t.split("").forEach((n, r) => {
71
- n === "!" && t[r - 1] !== "!" ? s.push(r - s.length) : e.push(n);
72
- }), { mask: e.join(""), escaped: s };
73
- }
74
- process(t, e, s = !0) {
75
- if (this.opts.number != null) return F(t, s, this.opts);
76
- if (e == null) return t;
77
- const n = `v=${t},mr=${e},m=${s ? 1 : 0}`;
78
- if (this.memo.has(n)) return this.memo.get(n);
79
- const { mask: r, escaped: h } = this.escapeMask(e), u = [], l = this.opts.tokens != null ? this.opts.tokens : {}, o = this.isReversed() ? -1 : 1, k = this.isReversed() ? "unshift" : "push", c = this.isReversed() ? 0 : r.length - 1, y = this.isReversed() ? () => i > -1 && p > -1 : () => i < r.length && p < t.length, f = (v) => !this.isReversed() && v <= c || this.isReversed() && v >= c;
80
- let g, m = -1, i = this.isReversed() ? r.length - 1 : 0, p = this.isReversed() ? t.length - 1 : 0, M = !1;
81
- for (; y(); ) {
82
- const v = r.charAt(i), d = l[v], E = (d == null ? void 0 : d.transform) != null ? d.transform(t.charAt(p)) : t.charAt(p);
83
- if (!h.includes(i) && d != null ? (E.match(d.pattern) != null ? (u[k](E), d.repeated ? (m === -1 ? m = i : i === c && i !== m && (i = m - o), c === m && (i -= o)) : d.multiple && (M = !0, i -= o), i += o) : d.multiple ? M && (i += o, p -= o, M = !1) : E === g ? g = void 0 : d.optional && (i += o, p -= o), p += o) : (s && !this.isEager() && u[k](v), E === v && !this.isEager() ? p += o : g = v, this.isEager() || (i += o)), this.isEager())
84
- for (; f(i) && (l[r.charAt(i)] == null || h.includes(i)); ) {
85
- if (s) {
86
- if (u[k](r.charAt(i)), t.charAt(p) === r.charAt(i)) {
87
- i += o, p += o;
88
- continue;
89
- }
90
- } else r.charAt(i) === t.charAt(p) && (p += o);
91
- i += o;
92
- }
93
- }
94
- return this.memo.set(n, u.join("")), this.memo.get(n);
95
- }
96
- }
97
- const w = (a) => JSON.parse(a.replaceAll("'", '"')), W = (a, t = {}) => {
98
- const e = { ...t };
99
- a.dataset.maska != null && a.dataset.maska !== "" && (e.mask = x(a.dataset.maska)), a.dataset.maskaEager != null && (e.eager = b(a.dataset.maskaEager)), a.dataset.maskaReversed != null && (e.reversed = b(a.dataset.maskaReversed)), a.dataset.maskaTokensReplace != null && (e.tokensReplace = b(a.dataset.maskaTokensReplace)), a.dataset.maskaTokens != null && (e.tokens = C(a.dataset.maskaTokens));
100
- const s = {};
101
- return a.dataset.maskaNumberLocale != null && (s.locale = a.dataset.maskaNumberLocale), a.dataset.maskaNumberFraction != null && (s.fraction = parseInt(a.dataset.maskaNumberFraction)), a.dataset.maskaNumberUnsigned != null && (s.unsigned = b(a.dataset.maskaNumberUnsigned)), (a.dataset.maskaNumber != null || Object.values(s).length > 0) && (e.number = s), e;
102
- }, b = (a) => a !== "" ? !!JSON.parse(a) : !0, x = (a) => a.startsWith("[") && a.endsWith("]") ? w(a) : a, C = (a) => {
103
- if (a.startsWith("{") && a.endsWith("}"))
104
- return w(a);
105
- const t = {};
106
- return a.split("|").forEach((e) => {
107
- const s = e.split(":");
108
- t[s[0]] = {
109
- pattern: new RegExp(s[1]),
110
- optional: s[2] === "optional",
111
- multiple: s[2] === "multiple",
112
- repeated: s[2] === "repeated"
113
- };
114
- }), t;
115
- };
116
- class S {
117
- constructor(t, e = {}) {
118
- A(this, "items", /* @__PURE__ */ new Map()), A(this, "onInput", (s) => {
119
- if (s instanceof CustomEvent && s.type === "input" && !s.isTrusted)
120
- return;
121
- const n = s.target, r = this.items.get(n), h = "inputType" in s && s.inputType.startsWith("delete"), u = r.isEager(), l = h && u && r.unmasked(n.value) === "" ? "" : n.value;
122
- this.fixCursor(n, h, () => this.setValue(n, l));
123
- }), this.options = e, this.init(this.getInputs(t));
124
- }
125
- update(t = {}) {
126
- this.options = { ...t }, this.init(Array.from(this.items.keys()));
127
- }
128
- updateValue(t) {
129
- t.value !== "" && t.value !== this.processInput(t).masked && this.setValue(t, t.value);
130
- }
131
- destroy() {
132
- for (const t of this.items.keys())
133
- t.removeEventListener("input", this.onInput);
134
- this.items.clear();
135
- }
136
- init(t) {
137
- const e = this.getOptions(this.options);
138
- for (const s of t) {
139
- this.items.has(s) || s.addEventListener("input", this.onInput, { capture: !0 });
140
- const n = new O(W(s, e));
141
- this.items.set(s, n), queueMicrotask(() => this.updateValue(s)), s.selectionStart === null && n.isEager() && console.warn("Maska: input of `%s` type is not supported", s.type);
142
- }
143
- }
144
- getInputs(t) {
145
- return typeof t == "string" ? Array.from(document.querySelectorAll(t)) : "length" in t ? Array.from(t) : [t];
146
- }
147
- getOptions(t) {
148
- const { onMaska: e, preProcess: s, postProcess: n, ...r } = t;
149
- return r;
150
- }
151
- fixCursor(t, e, s) {
152
- const n = t.selectionStart, r = t.value;
153
- if (s(), n === null || n === r.length && !e) return;
154
- const h = t.value, u = r.slice(0, n), l = h.slice(0, n), o = this.processInput(t, u).unmasked, k = this.processInput(t, l).unmasked;
155
- let c = n;
156
- u !== l && (c += e ? h.length - r.length : o.length - k.length), t.setSelectionRange(c, c);
157
- }
158
- setValue(t, e) {
159
- const s = this.processInput(t, e);
160
- t.value = s.masked, this.options.onMaska != null && (Array.isArray(this.options.onMaska) ? this.options.onMaska.forEach((n) => n(s)) : this.options.onMaska(s)), t.dispatchEvent(new CustomEvent("maska", { detail: s })), t.dispatchEvent(new CustomEvent("input", { detail: s.masked }));
161
- }
162
- processInput(t, e) {
163
- const s = this.items.get(t);
164
- let n = e ?? t.value;
165
- this.options.preProcess != null && (n = this.options.preProcess(n));
166
- let r = s.masked(n);
167
- return this.options.postProcess != null && (r = this.options.postProcess(r)), {
168
- masked: r,
169
- unmasked: s.unmasked(n),
170
- completed: s.completed(n)
171
- };
172
- }
173
- }
174
- export {
175
- O as Mask,
176
- S as MaskInput,
177
- R as tokens
178
- };
package/dist/index284.js DELETED
@@ -1,11 +0,0 @@
1
- import { get as o } from "./index309.js";
2
- const e = () => ({
3
- getItemValue(n, f) {
4
- if (typeof f > "u") return n;
5
- if (typeof f == "function") return f(n);
6
- if (typeof f == "string") return o(n, f);
7
- }
8
- });
9
- export {
10
- e as useItemValue
11
- };
package/dist/index288.js DELETED
@@ -1,25 +0,0 @@
1
- const e = {
2
- inert: ":not([inert]):not([inert] *)",
3
- negTabIndex: ':not([tabindex^="-"])',
4
- disabled: ":not(:disabled)"
5
- }, n = [
6
- `a[href]${e.inert}${e.negTabIndex}`,
7
- `area[href]${e.inert}${e.negTabIndex}`,
8
- `input:not([type="hidden"]):not([type="radio"])${e.inert}${e.negTabIndex}${e.disabled}`,
9
- `input[type="radio"]${e.inert}${e.negTabIndex}${e.disabled}`,
10
- `select${e.inert}${e.negTabIndex}${e.disabled}`,
11
- `textarea${e.inert}${e.negTabIndex}${e.disabled}`,
12
- `button${e.inert}${e.negTabIndex}${e.disabled}`,
13
- `details${e.inert} > summary:first-of-type${e.negTabIndex}`,
14
- // Discard until Firefox supports `:has()`
15
- // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12
16
- // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,
17
- `iframe${e.inert}${e.negTabIndex}`,
18
- `audio[controls]${e.inert}${e.negTabIndex}`,
19
- `video[controls]${e.inert}${e.negTabIndex}`,
20
- `[contenteditable]${e.inert}${e.negTabIndex}`,
21
- `[tabindex]${e.inert}${e.negTabIndex}`
22
- ];
23
- export {
24
- n as default
25
- };
package/dist/index305.js DELETED
@@ -1,6 +0,0 @@
1
- function e(t) {
2
- return Object.prototype.toString.call(t).slice(8, -1);
3
- }
4
- export {
5
- e as getType
6
- };
package/dist/index313.js DELETED
@@ -1,426 +0,0 @@
1
- import { debounce as I, memo as u, notUndefined as f, approxEqual as O } from "./index314.js";
2
- const z = (r) => r, M = (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
- }, R = (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
- }, v = {
36
- passive: !0
37
- }, y = typeof window > "u" ? !0 : "onscrollend" in window, _ = (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 = y ? () => {
46
- } : I(
47
- s,
48
- () => {
49
- h(t, !1);
50
- },
51
- r.options.isScrollingResetDelay
52
- ), n = (c) => () => {
53
- const { horizontal: a, isRtl: d } = r.options;
54
- t = a ? e.scrollLeft * (d && -1 || 1) : e.scrollTop, i(), h(t, c);
55
- }, o = n(!0), l = n(!1);
56
- return l(), e.addEventListener("scroll", o, v), e.addEventListener("scrollend", l, v), () => {
57
- e.removeEventListener("scroll", o), e.removeEventListener("scrollend", l);
58
- };
59
- }, w = (r, h, e) => {
60
- if (h != null && h.borderBoxSize) {
61
- const s = h.borderBoxSize[0];
62
- if (s)
63
- return Math.round(
64
- s[e.options.horizontal ? "inlineSize" : "blockSize"]
65
- );
66
- }
67
- return Math.round(
68
- r.getBoundingClientRect()[e.options.horizontal ? "width" : "height"]
69
- );
70
- }, D = (r, {
71
- adjustments: h = 0,
72
- behavior: e
73
- }, s) => {
74
- var t, i;
75
- const n = r + h;
76
- (i = (t = s.scrollElement) == null ? void 0 : t.scrollTo) == null || i.call(t, {
77
- [s.options.horizontal ? "left" : "top"]: n,
78
- behavior: e
79
- });
80
- };
81
- class N {
82
- constructor(h) {
83
- 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__ */ (() => {
84
- let e = null;
85
- const s = () => e || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : e = new this.targetWindow.ResizeObserver((t) => {
86
- t.forEach((i) => {
87
- this._measureElement(i.target, i);
88
- });
89
- }));
90
- return {
91
- disconnect: () => {
92
- var t;
93
- (t = s()) == null || t.disconnect(), e = null;
94
- },
95
- observe: (t) => {
96
- var i;
97
- return (i = s()) == null ? void 0 : i.observe(t, { box: "border-box" });
98
- },
99
- unobserve: (t) => {
100
- var i;
101
- return (i = s()) == null ? void 0 : i.unobserve(t);
102
- }
103
- };
104
- })(), this.range = null, this.setOptions = (e) => {
105
- Object.entries(e).forEach(([s, t]) => {
106
- typeof t > "u" && delete e[s];
107
- }), this.options = {
108
- debug: !1,
109
- initialOffset: 0,
110
- overscan: 1,
111
- paddingStart: 0,
112
- paddingEnd: 0,
113
- scrollPaddingStart: 0,
114
- scrollPaddingEnd: 0,
115
- horizontal: !1,
116
- getItemKey: z,
117
- rangeExtractor: M,
118
- onChange: () => {
119
- },
120
- measureElement: w,
121
- initialRect: { width: 0, height: 0 },
122
- scrollMargin: 0,
123
- gap: 0,
124
- indexAttribute: "data-index",
125
- initialMeasurementsCache: [],
126
- lanes: 1,
127
- isScrollingResetDelay: 150,
128
- enabled: !0,
129
- isRtl: !1,
130
- ...e
131
- };
132
- }, this.notify = (e) => {
133
- var s, t;
134
- (t = (s = this.options).onChange) == null || t.call(s, this, e);
135
- }, this.maybeNotify = u(
136
- () => (this.calculateRange(), [
137
- this.isScrolling,
138
- this.range ? this.range.startIndex : null,
139
- this.range ? this.range.endIndex : null
140
- ]),
141
- (e) => {
142
- this.notify(e);
143
- },
144
- {
145
- key: process.env.NODE_ENV !== "production" && "maybeNotify",
146
- debug: () => this.options.debug,
147
- initialDeps: [
148
- this.isScrolling,
149
- this.range ? this.range.startIndex : null,
150
- this.range ? this.range.endIndex : null
151
- ]
152
- }
153
- ), this.cleanup = () => {
154
- this.unsubs.filter(Boolean).forEach((e) => e()), this.unsubs = [], this.observer.disconnect(), this.scrollElement = null, this.targetWindow = null;
155
- }, this._didMount = () => () => {
156
- this.cleanup();
157
- }, this._willUpdate = () => {
158
- var e;
159
- const s = this.options.enabled ? this.options.getScrollElement() : null;
160
- if (this.scrollElement !== s) {
161
- if (this.cleanup(), !s) {
162
- this.maybeNotify();
163
- return;
164
- }
165
- 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.elementsCache.forEach((t) => {
166
- this.observer.observe(t);
167
- }), this._scrollToOffset(this.getScrollOffset(), {
168
- adjustments: void 0,
169
- behavior: void 0
170
- }), this.unsubs.push(
171
- this.options.observeElementRect(this, (t) => {
172
- this.scrollRect = t, this.maybeNotify();
173
- })
174
- ), this.unsubs.push(
175
- this.options.observeElementOffset(this, (t, i) => {
176
- this.scrollAdjustments = 0, this.scrollDirection = i ? this.getScrollOffset() < t ? "forward" : "backward" : null, this.scrollOffset = t, this.isScrolling = i, this.maybeNotify();
177
- })
178
- );
179
- }
180
- }, 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) => {
181
- const t = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
182
- for (let n = s - 1; n >= 0; n--) {
183
- const o = e[n];
184
- if (t.has(o.lane))
185
- continue;
186
- const l = i.get(
187
- o.lane
188
- );
189
- 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)
190
- break;
191
- }
192
- 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;
193
- }, this.getMeasurementOptions = u(
194
- () => [
195
- this.options.count,
196
- this.options.paddingStart,
197
- this.options.scrollMargin,
198
- this.options.getItemKey,
199
- this.options.enabled
200
- ],
201
- (e, s, t, i, n) => (this.pendingMeasuredCacheIndexes = [], {
202
- count: e,
203
- paddingStart: s,
204
- scrollMargin: t,
205
- getItemKey: i,
206
- enabled: n
207
- }),
208
- {
209
- key: !1
210
- }
211
- ), this.getMeasurements = u(
212
- () => [this.getMeasurementOptions(), this.itemSizeCache],
213
- ({ count: e, paddingStart: s, scrollMargin: t, getItemKey: i, enabled: n }, o) => {
214
- if (!n)
215
- return this.measurementsCache = [], this.itemSizeCache.clear(), [];
216
- this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((a) => {
217
- this.itemSizeCache.set(a.key, a.size);
218
- }));
219
- const l = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
220
- this.pendingMeasuredCacheIndexes = [];
221
- const c = this.measurementsCache.slice(0, l);
222
- for (let a = l; a < e; a++) {
223
- const d = i(a), m = this.options.lanes === 1 ? c[a - 1] : this.getFurthestMeasurement(c, a), g = m ? m.end + this.options.gap : s + t, p = o.get(d), b = typeof p == "number" ? p : this.options.estimateSize(a), x = g + b, S = m ? m.lane : a % this.options.lanes;
224
- c[a] = {
225
- index: a,
226
- start: g,
227
- size: b,
228
- end: x,
229
- key: d,
230
- lane: S
231
- };
232
- }
233
- return this.measurementsCache = c, c;
234
- },
235
- {
236
- key: process.env.NODE_ENV !== "production" && "getMeasurements",
237
- debug: () => this.options.debug
238
- }
239
- ), this.calculateRange = u(
240
- () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
241
- (e, s, t) => this.range = e.length > 0 && s > 0 ? C({
242
- measurements: e,
243
- outerSize: s,
244
- scrollOffset: t
245
- }) : null,
246
- {
247
- key: process.env.NODE_ENV !== "production" && "calculateRange",
248
- debug: () => this.options.debug
249
- }
250
- ), this.getIndexes = u(
251
- () => [
252
- this.options.rangeExtractor,
253
- this.calculateRange(),
254
- this.options.overscan,
255
- this.options.count
256
- ],
257
- (e, s, t, i) => s === null ? [] : e({
258
- startIndex: s.startIndex,
259
- endIndex: s.endIndex,
260
- overscan: t,
261
- count: i
262
- }),
263
- {
264
- key: process.env.NODE_ENV !== "production" && "getIndexes",
265
- debug: () => this.options.debug
266
- }
267
- ), this.indexFromElement = (e) => {
268
- const s = this.options.indexAttribute, t = e.getAttribute(s);
269
- return t ? parseInt(t, 10) : (console.warn(
270
- `Missing attribute name '${s}={index}' on measured element.`
271
- ), -1);
272
- }, this._measureElement = (e, s) => {
273
- const t = this.indexFromElement(e), i = this.measurementsCache[t];
274
- if (!i)
275
- return;
276
- const n = i.key, o = this.elementsCache.get(n);
277
- o !== e && (o && this.observer.unobserve(o), this.observer.observe(e), this.elementsCache.set(n, e)), e.isConnected && this.resizeItem(t, this.options.measureElement(e, s, this));
278
- }, this.resizeItem = (e, s) => {
279
- const t = this.measurementsCache[e];
280
- if (!t)
281
- return;
282
- const i = this.itemSizeCache.get(t.key) ?? t.size, n = s - i;
283
- 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(), {
284
- adjustments: this.scrollAdjustments += n,
285
- behavior: void 0
286
- })), this.pendingMeasuredCacheIndexes.push(t.index), this.itemSizeCache = new Map(this.itemSizeCache.set(t.key, s)), this.notify(!1));
287
- }, this.measureElement = (e) => {
288
- if (!e) {
289
- this.elementsCache.forEach((s, t) => {
290
- s.isConnected || (this.observer.unobserve(s), this.elementsCache.delete(t));
291
- });
292
- return;
293
- }
294
- this._measureElement(e, void 0);
295
- }, this.getVirtualItems = u(
296
- () => [this.getIndexes(), this.getMeasurements()],
297
- (e, s) => {
298
- const t = [];
299
- for (let i = 0, n = e.length; i < n; i++) {
300
- const o = e[i], l = s[o];
301
- t.push(l);
302
- }
303
- return t;
304
- },
305
- {
306
- key: process.env.NODE_ENV !== "production" && "getVirtualItems",
307
- debug: () => this.options.debug
308
- }
309
- ), this.getVirtualItemForOffset = (e) => {
310
- const s = this.getMeasurements();
311
- if (s.length !== 0)
312
- return f(
313
- s[E(
314
- 0,
315
- s.length - 1,
316
- (t) => f(s[t]).start,
317
- e
318
- )]
319
- );
320
- }, this.getOffsetForAlignment = (e, s) => {
321
- const t = this.getSize(), i = this.getScrollOffset();
322
- 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);
323
- const n = this.options.horizontal ? "scrollWidth" : "scrollHeight", l = (this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[n] : this.scrollElement[n] : 0) - t;
324
- return Math.max(Math.min(l, e), 0);
325
- }, this.getOffsetForIndex = (e, s = "auto") => {
326
- e = Math.max(0, Math.min(e, this.options.count - 1));
327
- const t = this.measurementsCache[e];
328
- if (!t)
329
- return;
330
- const i = this.getSize(), n = this.getScrollOffset();
331
- if (s === "auto")
332
- if (t.end >= n + i - this.options.scrollPaddingEnd)
333
- s = "end";
334
- else if (t.start <= n + this.options.scrollPaddingStart)
335
- s = "start";
336
- else
337
- return [n, s];
338
- const o = s === "end" ? t.end + this.options.scrollPaddingEnd : t.start - this.options.scrollPaddingStart;
339
- return [this.getOffsetForAlignment(o, s), s];
340
- }, this.isDynamicMode = () => this.elementsCache.size > 0, this.cancelScrollToIndex = () => {
341
- this.scrollToIndexTimeoutId !== null && this.targetWindow && (this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId), this.scrollToIndexTimeoutId = null);
342
- }, this.scrollToOffset = (e, { align: s = "start", behavior: t } = {}) => {
343
- this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
344
- "The `smooth` scroll behavior is not fully supported with dynamic size."
345
- ), this._scrollToOffset(this.getOffsetForAlignment(e, s), {
346
- adjustments: void 0,
347
- behavior: t
348
- });
349
- }, this.scrollToIndex = (e, { align: s = "auto", behavior: t } = {}) => {
350
- e = Math.max(0, Math.min(e, this.options.count - 1)), this.cancelScrollToIndex(), t === "smooth" && this.isDynamicMode() && console.warn(
351
- "The `smooth` scroll behavior is not fully supported with dynamic size."
352
- );
353
- const i = this.getOffsetForIndex(e, s);
354
- if (!i) return;
355
- const [n, o] = i;
356
- this._scrollToOffset(n, { adjustments: void 0, behavior: t }), t !== "smooth" && this.isDynamicMode() && this.targetWindow && (this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
357
- if (this.scrollToIndexTimeoutId = null, this.elementsCache.has(
358
- this.options.getItemKey(e)
359
- )) {
360
- const [c] = f(
361
- this.getOffsetForIndex(e, o)
362
- );
363
- O(c, this.getScrollOffset()) || this.scrollToIndex(e, { align: o, behavior: t });
364
- } else
365
- this.scrollToIndex(e, { align: o, behavior: t });
366
- }));
367
- }, this.scrollBy = (e, { behavior: s } = {}) => {
368
- this.cancelScrollToIndex(), s === "smooth" && this.isDynamicMode() && console.warn(
369
- "The `smooth` scroll behavior is not fully supported with dynamic size."
370
- ), this._scrollToOffset(this.getScrollOffset() + e, {
371
- adjustments: void 0,
372
- behavior: s
373
- });
374
- }, this.getTotalSize = () => {
375
- var e;
376
- const s = this.getMeasurements();
377
- let t;
378
- 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(
379
- ...s.slice(-this.options.lanes).map((i) => i.end)
380
- ), t - this.options.scrollMargin + this.options.paddingEnd;
381
- }, this._scrollToOffset = (e, {
382
- adjustments: s,
383
- behavior: t
384
- }) => {
385
- this.options.scrollToFn(e, { behavior: t, adjustments: s }, this);
386
- }, this.measure = () => {
387
- this.itemSizeCache = /* @__PURE__ */ new Map(), this.notify(!1);
388
- }, this.setOptions(h);
389
- }
390
- }
391
- const E = (r, h, e, s) => {
392
- for (; r <= h; ) {
393
- const t = (r + h) / 2 | 0, i = e(t);
394
- if (i < s)
395
- r = t + 1;
396
- else if (i > s)
397
- h = t - 1;
398
- else
399
- return t;
400
- }
401
- return r > 0 ? r - 1 : 0;
402
- };
403
- function C({
404
- measurements: r,
405
- outerSize: h,
406
- scrollOffset: e
407
- }) {
408
- const s = r.length - 1, i = E(0, s, (o) => r[o].start, e);
409
- let n = i;
410
- for (; n < s && r[n].end < e + h; )
411
- n++;
412
- return { startIndex: i, endIndex: n };
413
- }
414
- export {
415
- N as Virtualizer,
416
- O as approxEqual,
417
- I as debounce,
418
- z as defaultKeyExtractor,
419
- M as defaultRangeExtractor,
420
- D as elementScroll,
421
- w as measureElement,
422
- u as memo,
423
- f as notUndefined,
424
- _ as observeElementOffset,
425
- R as observeElementRect
426
- };