react-window 2.0.0 → 2.0.2-alpha.0

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 (90) hide show
  1. package/README.md +29 -3
  2. package/dist/react-window.cjs +1 -1
  3. package/dist/react-window.cjs.map +1 -1
  4. package/dist/react-window.d.ts +10 -1
  5. package/dist/react-window.js +406 -373
  6. package/dist/react-window.js.map +1 -1
  7. package/docs/assets/AriaRolesRoute-BQ4l2o71.js +2 -0
  8. package/docs/assets/AriaRolesRoute-BQ4l2o71.js.map +1 -0
  9. package/docs/assets/AriaRolesRoute-BXnUEUK2.js +2 -0
  10. package/docs/assets/AriaRolesRoute-BXnUEUK2.js.map +1 -0
  11. package/docs/assets/AriaRolesRoute-ahe1aw6k.js +2 -0
  12. package/docs/assets/AriaRolesRoute-ahe1aw6k.js.map +1 -0
  13. package/docs/assets/CellComponent.example-dKVH8ZYc.js +2 -0
  14. package/docs/assets/CellComponent.example-dKVH8ZYc.js.map +1 -0
  15. package/docs/assets/ComponentProps-BA6jJCAT.js +2 -0
  16. package/docs/assets/ComponentProps-BA6jJCAT.js.map +1 -0
  17. package/docs/assets/ContinueLink-DN1_wnU9.js +2 -0
  18. package/docs/assets/ContinueLink-DN1_wnU9.js.map +1 -0
  19. package/docs/assets/FixedHeightList-HNBwl6P8.js +2 -0
  20. package/docs/assets/FixedHeightList-HNBwl6P8.js.map +1 -0
  21. package/docs/assets/FixedRowHeightsRoute-iwoWadtD.js +2 -0
  22. package/docs/assets/FixedRowHeightsRoute-iwoWadtD.js.map +1 -0
  23. package/docs/assets/FormattedCode-CDzGfhdX.js +2 -0
  24. package/docs/assets/FormattedCode-CDzGfhdX.js.map +1 -0
  25. package/docs/assets/FormattedCode-nwWF-WcI.css +1 -0
  26. package/docs/assets/GettingStartedRoute-6onVm0dP.js +2 -0
  27. package/docs/assets/GettingStartedRoute-6onVm0dP.js.map +1 -0
  28. package/docs/assets/Grid-BnGy9pmI.js +2 -0
  29. package/docs/assets/Grid-BnGy9pmI.js.map +1 -0
  30. package/docs/assets/Header-DyQVANF3.js +2 -0
  31. package/docs/assets/Header-DyQVANF3.js.map +1 -0
  32. package/docs/assets/HorizontalListsRoute-BQxNRT_F.js +2 -0
  33. package/docs/assets/HorizontalListsRoute-BQxNRT_F.js.map +1 -0
  34. package/docs/assets/ImperativeApiRoute-DN4crA5x.js +2 -0
  35. package/docs/assets/ImperativeApiRoute-DN4crA5x.js.map +1 -0
  36. package/docs/assets/ImperativeApiRoute-ZdLgDzyA.js +2 -0
  37. package/docs/assets/ImperativeApiRoute-ZdLgDzyA.js.map +1 -0
  38. package/docs/assets/List-CsalXuo6.js +2 -0
  39. package/docs/assets/List-CsalXuo6.js.map +1 -0
  40. package/docs/assets/LoadingSpinner-DXcA8wXA.js +2 -0
  41. package/docs/assets/LoadingSpinner-DXcA8wXA.js.map +1 -0
  42. package/docs/assets/PageNotFound-I9Ugq07H.js +2 -0
  43. package/docs/assets/PageNotFound-I9Ugq07H.js.map +1 -0
  44. package/docs/assets/PlatformRequirementsRoute-Mn45V_j9.js +2 -0
  45. package/docs/assets/PlatformRequirementsRoute-Mn45V_j9.js.map +1 -0
  46. package/docs/assets/PropsRoute-BzcsHp2c.js +2 -0
  47. package/docs/assets/PropsRoute-BzcsHp2c.js.map +1 -0
  48. package/docs/assets/PropsRoute-CHeNkGKQ.js +2 -0
  49. package/docs/assets/PropsRoute-CHeNkGKQ.js.map +1 -0
  50. package/docs/assets/RTLGridsRoute-RdjRBOG7.js +2 -0
  51. package/docs/assets/RTLGridsRoute-RdjRBOG7.js.map +1 -0
  52. package/docs/assets/RenderingGridRoute-bkYAfFEg.js +2 -0
  53. package/docs/assets/RenderingGridRoute-bkYAfFEg.js.map +1 -0
  54. package/docs/assets/ScratchpadRoute-B8OO7yyx.js +2 -0
  55. package/docs/assets/ScratchpadRoute-B8OO7yyx.js.map +1 -0
  56. package/docs/assets/Select-Dtoy3zH8.js +2 -0
  57. package/docs/assets/Select-Dtoy3zH8.js.map +1 -0
  58. package/docs/assets/SupportRoute-Cy6JXaox.js +2 -0
  59. package/docs/assets/SupportRoute-Cy6JXaox.js.map +1 -0
  60. package/docs/assets/TabularDataRoute-EbsuxYEq.js +2 -0
  61. package/docs/assets/TabularDataRoute-EbsuxYEq.js.map +1 -0
  62. package/docs/assets/VariableRowHeightsRoute-Bmh2fNYt.js +2 -0
  63. package/docs/assets/VariableRowHeightsRoute-Bmh2fNYt.js.map +1 -0
  64. package/docs/assets/addresses-CDQyd4n9.js +2 -0
  65. package/docs/assets/addresses-CDQyd4n9.js.map +1 -0
  66. package/docs/assets/arePropsEqual-Bhv0L31F.js +2 -0
  67. package/docs/assets/arePropsEqual-Bhv0L31F.js.map +1 -0
  68. package/docs/assets/contacts-Bxrk2JS2.js +2 -0
  69. package/docs/assets/contacts-Bxrk2JS2.js.map +1 -0
  70. package/docs/assets/index-DEYagqsv.css +1 -0
  71. package/docs/assets/index-Dfhz9Ad4.js +3 -0
  72. package/docs/assets/index-Dfhz9Ad4.js.map +1 -0
  73. package/docs/assets/useCitiesByState-_PN38xmv.js +2 -0
  74. package/docs/assets/useCitiesByState-_PN38xmv.js.map +1 -0
  75. package/docs/assets/useContacts-CDDyJV-g.js +2 -0
  76. package/docs/assets/useContacts-CDDyJV-g.js.map +1 -0
  77. package/docs/generated/code-snippets/CellComponentAriaRoles.json +4 -0
  78. package/docs/generated/code-snippets/GridAriaRoles.json +3 -0
  79. package/docs/generated/code-snippets/ListAriaRoles.json +3 -0
  80. package/docs/generated/code-snippets/RowComponentAriaRoles.json +4 -0
  81. package/docs/generated/code-snippets/TableAriaAttributes.json +3 -0
  82. package/docs/generated/code-snippets/TableAriaOverrideProps.json +4 -0
  83. package/docs/generated/js-docs/Grid.json +1 -1
  84. package/docs/generated/js-docs/List.json +1 -1
  85. package/docs/index.html +9 -3
  86. package/docs/robots.txt +2 -0
  87. package/docs/stats.html +1 -1
  88. package/package.json +4 -1
  89. package/docs/assets/index-AW1og9rz.css +0 -1
  90. package/docs/assets/index-LE94V_KA.js +0 -68
@@ -1,6 +1,6 @@
1
- import { jsx as D } from "react/jsx-runtime";
2
- import { useState as E, useLayoutEffect as J, useEffect as K, useMemo as W, useRef as q, useCallback as V, memo as _, useImperativeHandle as N, createElement as ee } from "react";
3
- function ie(e) {
1
+ import { jsx as J, jsxs as C } from "react/jsx-runtime";
2
+ import { useState as j, useLayoutEffect as Q, useEffect as X, useMemo as A, useRef as Y, useCallback as V, memo as ee, useImperativeHandle as te, createElement as se } from "react";
3
+ function ce(e) {
4
4
  let t = e;
5
5
  for (; t; ) {
6
6
  if (t.dir)
@@ -9,14 +9,14 @@ function ie(e) {
9
9
  }
10
10
  return !1;
11
11
  }
12
- function le(e, t) {
13
- const [s, r] = E(t === "rtl");
14
- return J(() => {
15
- e && (t || r(ie(e)));
16
- }, [t, e]), s;
12
+ function fe(e, t) {
13
+ const [r, s] = j(t === "rtl");
14
+ return Q(() => {
15
+ e && (t || s(ce(e)));
16
+ }, [t, e]), r;
17
17
  }
18
- const Y = typeof window < "u" ? J : K;
19
- function Q(e) {
18
+ const D = typeof window < "u" ? Q : X;
19
+ function Z(e) {
20
20
  if (e !== void 0)
21
21
  switch (typeof e) {
22
22
  case "number":
@@ -28,686 +28,716 @@ function Q(e) {
28
28
  }
29
29
  }
30
30
  }
31
- function ne({
31
+ function ue({
32
32
  box: e,
33
33
  defaultHeight: t,
34
- defaultWidth: s,
35
- disabled: r,
34
+ defaultWidth: r,
35
+ disabled: s,
36
36
  element: o,
37
37
  mode: i,
38
- style: n
38
+ style: l
39
39
  }) {
40
- const { styleHeight: c, styleWidth: l } = W(
40
+ const { styleHeight: c, styleWidth: n } = A(
41
41
  () => ({
42
- styleHeight: Q(n?.height),
43
- styleWidth: Q(n?.width)
42
+ styleHeight: Z(l?.height),
43
+ styleWidth: Z(l?.width)
44
44
  }),
45
- [n?.height, n?.width]
46
- ), [f, a] = E({
45
+ [l?.height, l?.width]
46
+ ), [f, g] = j({
47
47
  height: t,
48
- width: s
49
- }), I = r || i === "only-height" && c !== void 0 || i === "only-width" && l !== void 0 || c !== void 0 && l !== void 0;
50
- return Y(() => {
48
+ width: r
49
+ }), I = s || i === "only-height" && c !== void 0 || i === "only-width" && n !== void 0 || c !== void 0 && n !== void 0;
50
+ return D(() => {
51
51
  if (o === null || I)
52
52
  return;
53
- const v = new ResizeObserver((k) => {
54
- for (const x of k) {
55
- const { contentRect: w, target: z } = x;
56
- o === z && a((g) => g.height === w.height && g.width === w.width ? g : {
53
+ const x = new ResizeObserver((S) => {
54
+ for (const h of S) {
55
+ const { contentRect: w, target: z } = h;
56
+ o === z && g((v) => v.height === w.height && v.width === w.width ? v : {
57
57
  height: w.height,
58
58
  width: w.width
59
59
  });
60
60
  }
61
61
  });
62
- return v.observe(o, { box: e }), () => {
63
- v?.unobserve(o);
62
+ return x.observe(o, { box: e }), () => {
63
+ x?.unobserve(o);
64
64
  };
65
- }, [e, I, o, c, l]), W(
65
+ }, [e, I, o, c, n]), A(
66
66
  () => ({
67
67
  height: c ?? f.height,
68
- width: l ?? f.width
68
+ width: n ?? f.width
69
69
  }),
70
- [f, c, l]
70
+ [f, c, n]
71
71
  );
72
72
  }
73
- function ce(e) {
74
- const t = q(() => {
73
+ function de(e) {
74
+ const t = Y(() => {
75
75
  throw new Error("Cannot call an event handler while rendering.");
76
76
  });
77
- return Y(() => {
77
+ return D(() => {
78
78
  t.current = e;
79
- }, [e]), V((s) => t.current?.(s), [t]);
79
+ }, [e]), V((r) => t.current?.(r), [t]);
80
80
  }
81
- let j = null;
82
- function fe(e = !1) {
83
- if (j === null || e) {
84
- const t = document.createElement("div"), s = t.style;
85
- s.width = "50px", s.height = "50px", s.overflow = "scroll", s.direction = "rtl";
86
- const r = document.createElement("div"), o = r.style;
87
- return o.width = "100px", o.height = "100px", t.appendChild(r), document.body.appendChild(t), t.scrollLeft > 0 ? j = "positive-descending" : (t.scrollLeft = 1, t.scrollLeft === 0 ? j = "negative" : j = "positive-ascending"), document.body.removeChild(t), j;
81
+ let G = null;
82
+ function ae(e = !1) {
83
+ if (G === null || e) {
84
+ const t = document.createElement("div"), r = t.style;
85
+ r.width = "50px", r.height = "50px", r.overflow = "scroll", r.direction = "rtl";
86
+ const s = document.createElement("div"), o = s.style;
87
+ return o.width = "100px", o.height = "100px", t.appendChild(s), document.body.appendChild(t), t.scrollLeft > 0 ? G = "positive-descending" : (t.scrollLeft = 1, t.scrollLeft === 0 ? G = "negative" : G = "positive-ascending"), document.body.removeChild(t), G;
88
88
  }
89
- return j;
89
+ return G;
90
90
  }
91
- function A({
91
+ function q({
92
92
  containerElement: e,
93
93
  direction: t,
94
- isRtl: s,
95
- scrollOffset: r
94
+ isRtl: r,
95
+ scrollOffset: s
96
96
  }) {
97
- if (t === "horizontal" && s)
98
- switch (fe()) {
97
+ if (t === "horizontal" && r)
98
+ switch (ae()) {
99
99
  case "negative":
100
- return -r;
100
+ return -s;
101
101
  case "positive-descending": {
102
102
  if (e) {
103
- const { clientWidth: o, scrollLeft: i, scrollWidth: n } = e;
104
- return n - o - i;
103
+ const { clientWidth: o, scrollLeft: i, scrollWidth: l } = e;
104
+ return l - o - i;
105
105
  }
106
106
  break;
107
107
  }
108
108
  }
109
- return r;
109
+ return s;
110
110
  }
111
- function R(e, t = "Assertion error") {
111
+ function W(e, t = "Assertion error") {
112
112
  if (!e)
113
113
  throw console.error(t), Error(t);
114
114
  }
115
- function te({
115
+ function re({
116
116
  cachedBounds: e,
117
117
  itemCount: t,
118
- itemSize: s
118
+ itemSize: r
119
119
  }) {
120
120
  if (t === 0)
121
121
  return 0;
122
- if (typeof s == "number")
123
- return t * s;
122
+ if (typeof r == "number")
123
+ return t * r;
124
124
  {
125
- const r = e.get(
125
+ const s = e.get(
126
126
  e.size === 0 ? 0 : e.size - 1
127
127
  );
128
- R(r !== void 0, "Unexpected bounds cache miss");
129
- const o = (r.scrollOffset + r.size) / e.size;
128
+ W(s !== void 0, "Unexpected bounds cache miss");
129
+ const o = (s.scrollOffset + s.size) / e.size;
130
130
  return t * o;
131
131
  }
132
132
  }
133
- function de({
133
+ function he({
134
134
  align: e,
135
135
  cachedBounds: t,
136
- index: s,
137
- itemCount: r,
136
+ index: r,
137
+ itemCount: s,
138
138
  itemSize: o,
139
139
  containerScrollOffset: i,
140
- containerSize: n
140
+ containerSize: l
141
141
  }) {
142
- const c = te({
142
+ const c = re({
143
143
  cachedBounds: t,
144
- itemCount: r,
144
+ itemCount: s,
145
145
  itemSize: o
146
- }), l = t.get(s), f = Math.max(
146
+ }), n = t.get(r), f = Math.max(
147
147
  0,
148
- Math.min(c - n, l.scrollOffset)
149
- ), a = Math.max(
148
+ Math.min(c - l, n.scrollOffset)
149
+ ), g = Math.max(
150
150
  0,
151
- l.scrollOffset - n + l.size
151
+ n.scrollOffset - l + n.size
152
152
  );
153
- switch (e === "smart" && (i >= a && i <= f ? e = "auto" : e = "center"), e) {
153
+ switch (e === "smart" && (i >= g && i <= f ? e = "auto" : e = "center"), e) {
154
154
  case "start":
155
155
  return f;
156
156
  case "end":
157
- return a;
157
+ return g;
158
158
  case "center":
159
- return l.scrollOffset <= n / 2 ? 0 : l.scrollOffset + l.size / 2 >= c - n / 2 ? c - n : l.scrollOffset + l.size / 2 - n / 2;
159
+ return n.scrollOffset <= l / 2 ? 0 : n.scrollOffset + n.size / 2 >= c - l / 2 ? c - l : n.scrollOffset + n.size / 2 - l / 2;
160
160
  case "auto":
161
161
  default:
162
- return i >= a && i <= f ? i : i < a ? a : f;
162
+ return i >= g && i <= f ? i : i < g ? g : f;
163
163
  }
164
164
  }
165
- function X({
165
+ function _({
166
166
  cachedBounds: e,
167
167
  containerScrollOffset: t,
168
- containerSize: s,
169
- itemCount: r,
168
+ containerSize: r,
169
+ itemCount: s,
170
170
  overscanCount: o
171
171
  }) {
172
- const i = r - 1;
173
- let n = 0, c = -1, l = 0;
174
- for (; l < i; ) {
175
- const f = e.get(l);
172
+ const i = s - 1;
173
+ let l = 0, c = -1, n = 0;
174
+ for (; n < i; ) {
175
+ const f = e.get(n);
176
176
  if (f.scrollOffset + f.size > t)
177
177
  break;
178
- l++;
178
+ n++;
179
179
  }
180
- for (n = l, n = Math.max(0, n - o); l < i; ) {
181
- const f = e.get(l);
182
- if (f.scrollOffset + f.size >= t + s)
180
+ for (l = n, l = Math.max(0, l - o); n < i; ) {
181
+ const f = e.get(n);
182
+ if (f.scrollOffset + f.size >= t + r)
183
183
  break;
184
- l++;
184
+ n++;
185
185
  }
186
- return c = Math.min(i, l), c = Math.min(r - 1, c + o), n < 0 ? [0, -1] : [n, c];
186
+ return c = Math.min(i, n), c = Math.min(s - 1, c + o), l < 0 ? [0, -1] : [l, c];
187
187
  }
188
- function ue({
188
+ function pe({
189
189
  itemCount: e,
190
190
  itemProps: t,
191
- itemSize: s
191
+ itemSize: r
192
192
  }) {
193
- const r = /* @__PURE__ */ new Map();
193
+ const s = /* @__PURE__ */ new Map();
194
194
  return {
195
195
  get(o) {
196
- for (R(o < e, `Invalid index ${o}`); r.size - 1 < o; ) {
197
- const n = r.size;
196
+ for (W(o < e, `Invalid index ${o}`); s.size - 1 < o; ) {
197
+ const l = s.size;
198
198
  let c;
199
- switch (typeof s) {
199
+ switch (typeof r) {
200
200
  case "function": {
201
- c = s(n, t);
201
+ c = r(l, t);
202
202
  break;
203
203
  }
204
204
  case "number": {
205
- c = s;
205
+ c = r;
206
206
  break;
207
207
  }
208
208
  }
209
- if (n === 0)
210
- r.set(n, {
209
+ if (l === 0)
210
+ s.set(l, {
211
211
  size: c,
212
212
  scrollOffset: 0
213
213
  });
214
214
  else {
215
- const l = r.get(n - 1);
216
- R(
217
- l !== void 0,
215
+ const n = s.get(l - 1);
216
+ W(
217
+ n !== void 0,
218
218
  `Unexpected bounds cache miss for index ${o}`
219
- ), r.set(n, {
220
- scrollOffset: l.scrollOffset + l.size,
219
+ ), s.set(l, {
220
+ scrollOffset: n.scrollOffset + n.size,
221
221
  size: c
222
222
  });
223
223
  }
224
224
  }
225
- const i = r.get(o);
226
- return R(
225
+ const i = s.get(o);
226
+ return W(
227
227
  i !== void 0,
228
228
  `Unexpected bounds cache miss for index ${o}`
229
229
  ), i;
230
230
  },
231
231
  set(o, i) {
232
- r.set(o, i);
232
+ s.set(o, i);
233
233
  },
234
234
  get size() {
235
- return r.size;
235
+ return s.size;
236
236
  }
237
237
  };
238
238
  }
239
- function he({
239
+ function ge({
240
240
  itemCount: e,
241
241
  itemProps: t,
242
- itemSize: s
242
+ itemSize: r
243
243
  }) {
244
- return W(
245
- () => ue({
244
+ return A(
245
+ () => pe({
246
246
  itemCount: e,
247
247
  itemProps: t,
248
- itemSize: s
248
+ itemSize: r
249
249
  }),
250
- [e, t, s]
250
+ [e, t, r]
251
251
  );
252
252
  }
253
- function ae({
253
+ function xe({
254
254
  containerSize: e,
255
255
  itemSize: t
256
256
  }) {
257
- let s;
257
+ let r;
258
258
  switch (typeof t) {
259
259
  case "string": {
260
- R(
260
+ W(
261
261
  t.endsWith("%"),
262
262
  `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`
263
- ), R(
263
+ ), W(
264
264
  e !== void 0,
265
265
  "Container size must be defined if a percentage item size is specified"
266
- ), s = e * parseInt(t) / 100;
266
+ ), r = e * parseInt(t) / 100;
267
267
  break;
268
268
  }
269
269
  default: {
270
- s = t;
270
+ r = t;
271
271
  break;
272
272
  }
273
273
  }
274
- return s;
274
+ return r;
275
275
  }
276
- function C({
276
+ function K({
277
277
  containerElement: e,
278
278
  containerStyle: t,
279
- defaultContainerSize: s = 0,
280
- direction: r,
279
+ defaultContainerSize: r = 0,
280
+ direction: s,
281
281
  isRtl: o = !1,
282
282
  itemCount: i,
283
- itemProps: n,
283
+ itemProps: l,
284
284
  itemSize: c,
285
- onResize: l,
285
+ onResize: n,
286
286
  overscanCount: f
287
287
  }) {
288
- const [a, I] = E([0, -1]), [v, k] = [
289
- Math.min(i - 1, a[0]),
290
- Math.min(i - 1, a[1])
291
- ], { height: x = s, width: w = s } = ne({
292
- defaultHeight: r === "vertical" ? s : void 0,
293
- defaultWidth: r === "horizontal" ? s : void 0,
288
+ const [g, I] = j([0, -1]), [x, S] = [
289
+ Math.min(i - 1, g[0]),
290
+ Math.min(i - 1, g[1])
291
+ ], { height: h = r, width: w = r } = ue({
292
+ defaultHeight: s === "vertical" ? r : void 0,
293
+ defaultWidth: s === "horizontal" ? r : void 0,
294
294
  element: e,
295
- mode: r === "vertical" ? "only-height" : "only-width",
295
+ mode: s === "vertical" ? "only-height" : "only-width",
296
296
  style: t
297
- }), z = q({
297
+ }), z = Y({
298
298
  height: 0,
299
299
  width: 0
300
- }), g = r === "vertical" ? x : w, u = ae({ containerSize: g, itemSize: c });
301
- J(() => {
302
- if (typeof l == "function") {
303
- const d = z.current;
304
- (d.height !== x || d.width !== w) && (l({ height: x, width: w }, { ...d }), d.height = x, d.width = w);
300
+ }), v = s === "vertical" ? h : w, d = xe({ containerSize: v, itemSize: c });
301
+ Q(() => {
302
+ if (typeof n == "function") {
303
+ const u = z.current;
304
+ (u.height !== h || u.width !== w) && (n({ height: h, width: w }, { ...u }), u.height = h, u.width = w);
305
305
  }
306
- }, [x, l, w]);
307
- const h = he({
306
+ }, [h, n, w]);
307
+ const a = ge({
308
308
  itemCount: i,
309
- itemProps: n,
310
- itemSize: u
309
+ itemProps: l,
310
+ itemSize: d
311
311
  }), y = V(
312
- (d) => h.get(d),
313
- [h]
312
+ (u) => a.get(u),
313
+ [a]
314
314
  ), B = V(
315
- () => te({
316
- cachedBounds: h,
315
+ () => re({
316
+ cachedBounds: a,
317
317
  itemCount: i,
318
- itemSize: u
318
+ itemSize: d
319
319
  }),
320
- [h, i, u]
320
+ [a, i, d]
321
321
  ), T = V(
322
- (d) => {
323
- const m = A({
322
+ (u) => {
323
+ const m = q({
324
324
  containerElement: e,
325
- direction: r,
325
+ direction: s,
326
326
  isRtl: o,
327
- scrollOffset: d
327
+ scrollOffset: u
328
328
  });
329
- return X({
330
- cachedBounds: h,
329
+ return _({
330
+ cachedBounds: a,
331
331
  containerScrollOffset: m,
332
- containerSize: g,
332
+ containerSize: v,
333
333
  itemCount: i,
334
334
  overscanCount: f
335
335
  });
336
336
  },
337
337
  [
338
- h,
338
+ a,
339
339
  e,
340
- g,
341
- r,
340
+ v,
341
+ s,
342
342
  o,
343
343
  i,
344
344
  f
345
345
  ]
346
346
  );
347
- Y(() => {
348
- const d = (r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0;
349
- I(T(d));
350
- }, [e, r, T]), Y(() => {
347
+ D(() => {
348
+ const u = (s === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0;
349
+ I(T(u));
350
+ }, [e, s, T]), D(() => {
351
351
  if (!e)
352
352
  return;
353
- const d = () => {
353
+ const u = () => {
354
354
  I((m) => {
355
- const { scrollLeft: H, scrollTop: G } = e, b = A({
355
+ const { scrollLeft: H, scrollTop: k } = e, O = q({
356
356
  containerElement: e,
357
- direction: r,
357
+ direction: s,
358
358
  isRtl: o,
359
- scrollOffset: r === "vertical" ? G : H
360
- }), O = X({
361
- cachedBounds: h,
362
- containerScrollOffset: b,
363
- containerSize: g,
359
+ scrollOffset: s === "vertical" ? k : H
360
+ }), $ = _({
361
+ cachedBounds: a,
362
+ containerScrollOffset: O,
363
+ containerSize: v,
364
364
  itemCount: i,
365
365
  overscanCount: f
366
366
  });
367
- return O[0] === m[0] && O[1] === m[1] ? m : O;
367
+ return $[0] === m[0] && $[1] === m[1] ? m : $;
368
368
  });
369
369
  };
370
- return e.addEventListener("scroll", d), () => {
371
- e.removeEventListener("scroll", d);
370
+ return e.addEventListener("scroll", u), () => {
371
+ e.removeEventListener("scroll", u);
372
372
  };
373
373
  }, [
374
- h,
374
+ a,
375
375
  e,
376
- g,
377
- r,
376
+ v,
377
+ s,
378
378
  i,
379
379
  f
380
380
  ]);
381
- const p = ce(
381
+ const p = de(
382
382
  ({
383
- align: d = "auto",
384
- behavior: m = "auto",
385
- containerScrollOffset: H,
386
- index: G
383
+ align: u = "auto",
384
+ containerScrollOffset: m,
385
+ index: H
387
386
  }) => {
388
- let b = de({
389
- align: d,
390
- cachedBounds: h,
391
- containerScrollOffset: H,
392
- containerSize: g,
393
- index: G,
387
+ let k = he({
388
+ align: u,
389
+ cachedBounds: a,
390
+ containerScrollOffset: m,
391
+ containerSize: v,
392
+ index: H,
394
393
  itemCount: i,
395
- itemSize: u
394
+ itemSize: d
396
395
  });
397
- if (e)
398
- if (b = A({
396
+ if (e) {
397
+ if (k = q({
399
398
  containerElement: e,
400
- direction: r,
399
+ direction: s,
401
400
  isRtl: o,
402
- scrollOffset: b
403
- }), typeof e.scrollTo == "function")
404
- r === "horizontal" ? e.scrollTo({
405
- left: b,
406
- behavior: m || void 0
407
- }) : e.scrollTo({
408
- behavior: m || void 0,
409
- top: b
410
- });
411
- else {
412
- const O = T(b);
413
- (O[0] !== v || O[1] !== k) && I(O);
401
+ scrollOffset: k
402
+ }), typeof e.scrollTo != "function") {
403
+ const O = T(k);
404
+ (O[0] !== x || O[1] !== S) && I(O);
414
405
  }
406
+ return k;
407
+ }
415
408
  }
416
409
  );
417
410
  return {
418
411
  getCellBounds: y,
419
412
  getEstimatedSize: B,
420
413
  scrollToIndex: p,
421
- startIndex: v,
422
- stopIndex: k
414
+ startIndex: x,
415
+ stopIndex: S
423
416
  };
424
417
  }
425
- function se(e) {
426
- return W(() => e, Object.values(e));
418
+ function oe(e) {
419
+ return A(() => e, Object.values(e));
427
420
  }
428
- function Z(e, t) {
421
+ function N(e, t) {
429
422
  if (e === t)
430
423
  return !0;
431
- if (!!e != !!t || (R(e !== void 0), R(t !== void 0), Object.keys(e).length !== Object.keys(t).length))
424
+ if (!!e != !!t || (W(e !== void 0), W(t !== void 0), Object.keys(e).length !== Object.keys(t).length))
432
425
  return !1;
433
- for (const s in e)
434
- if (!Object.is(t[s], e[s]))
426
+ for (const r in e)
427
+ if (!Object.is(t[r], e[r]))
435
428
  return !1;
436
429
  return !0;
437
430
  }
438
- function re(e, t) {
439
- const { style: s, ...r } = e, { style: o, ...i } = t;
440
- return Z(s, o) && Z(r, i);
431
+ function ie(e, t) {
432
+ const {
433
+ ariaAttributes: r,
434
+ style: s,
435
+ ...o
436
+ } = e, {
437
+ ariaAttributes: i,
438
+ style: l,
439
+ ...c
440
+ } = t;
441
+ return N(r, i) && N(s, l) && N(o, c);
441
442
  }
442
- function ve({
443
+ function we({
443
444
  cellComponent: e,
444
445
  cellProps: t,
445
- className: s,
446
- columnCount: r,
446
+ className: r,
447
+ columnCount: s,
447
448
  columnWidth: o,
448
449
  defaultHeight: i = 0,
449
- defaultWidth: n = 0,
450
+ defaultWidth: l = 0,
450
451
  dir: c,
451
- gridRef: l,
452
+ gridRef: n,
452
453
  onCellsRendered: f,
453
- onResize: a,
454
+ onResize: g,
454
455
  overscanCount: I = 3,
455
- rowCount: v,
456
- rowHeight: k,
457
- style: x,
456
+ rowCount: x,
457
+ rowHeight: S,
458
+ style: h,
458
459
  ...w
459
460
  }) {
460
- const z = se(t), g = W(
461
- () => _(e, re),
461
+ const z = oe(t), v = A(
462
+ () => ee(e, ie),
462
463
  [e]
463
- ), [u, h] = E(null), y = le(u, c), {
464
+ ), [d, a] = j(null), y = fe(d, c), {
464
465
  getCellBounds: B,
465
466
  getEstimatedSize: T,
466
467
  startIndex: p,
467
- scrollToIndex: d,
468
+ scrollToIndex: u,
468
469
  stopIndex: m
469
- } = C({
470
- containerElement: u,
471
- defaultContainerSize: n,
470
+ } = K({
471
+ containerElement: d,
472
+ defaultContainerSize: l,
472
473
  direction: "horizontal",
473
474
  isRtl: y,
474
- itemCount: r,
475
+ itemCount: s,
475
476
  itemProps: z,
476
477
  itemSize: o,
477
- onResize: a,
478
+ onResize: g,
478
479
  overscanCount: I
479
480
  }), {
480
481
  getCellBounds: H,
481
- getEstimatedSize: G,
482
- startIndex: b,
483
- scrollToIndex: O,
482
+ getEstimatedSize: k,
483
+ startIndex: O,
484
+ scrollToIndex: $,
484
485
  stopIndex: F
485
- } = C({
486
- containerElement: u,
486
+ } = K({
487
+ containerElement: d,
487
488
  defaultContainerSize: i,
488
489
  direction: "vertical",
489
- itemCount: v,
490
+ itemCount: x,
490
491
  itemProps: z,
491
- itemSize: k,
492
- onResize: a,
492
+ itemSize: S,
493
+ onResize: g,
493
494
  overscanCount: I
494
495
  });
495
- N(
496
- l,
496
+ te(
497
+ n,
497
498
  () => ({
498
499
  get element() {
499
- return u;
500
+ return d;
500
501
  },
501
502
  scrollToCell({
502
503
  behavior: L = "auto",
503
- columnAlign: S = "auto",
504
- columnIndex: M,
505
- rowAlign: $ = "auto",
506
- rowIndex: U
504
+ columnAlign: b = "auto",
505
+ columnIndex: E,
506
+ rowAlign: M = "auto",
507
+ rowIndex: R
507
508
  }) {
508
- O({
509
- align: $,
510
- behavior: L,
511
- containerScrollOffset: u?.scrollTop ?? 0,
512
- index: U
513
- }), d({
514
- align: S,
509
+ const U = u({
510
+ align: b,
511
+ containerScrollOffset: d?.scrollLeft ?? 0,
512
+ index: E
513
+ }), le = $({
514
+ align: M,
515
+ containerScrollOffset: d?.scrollTop ?? 0,
516
+ index: R
517
+ });
518
+ typeof d?.scrollTo == "function" && d.scrollTo({
515
519
  behavior: L,
516
- containerScrollOffset: u?.scrollLeft ?? 0,
517
- index: M
520
+ left: U,
521
+ top: le
518
522
  });
519
523
  },
520
524
  scrollToColumn({
521
525
  align: L = "auto",
522
- behavior: S = "auto",
523
- index: M
526
+ behavior: b = "auto",
527
+ index: E
524
528
  }) {
525
- d({
529
+ const M = u({
526
530
  align: L,
527
- behavior: S,
528
- containerScrollOffset: u?.scrollLeft ?? 0,
529
- index: M
531
+ containerScrollOffset: d?.scrollLeft ?? 0,
532
+ index: E
533
+ });
534
+ typeof d?.scrollTo == "function" && d.scrollTo({
535
+ behavior: b,
536
+ left: M
530
537
  });
531
538
  },
532
539
  scrollToRow({
533
540
  align: L = "auto",
534
- behavior: S = "auto",
535
- index: M
541
+ behavior: b = "auto",
542
+ index: E
536
543
  }) {
537
- O({
544
+ const M = $({
538
545
  align: L,
539
- behavior: S,
540
- containerScrollOffset: u?.scrollTop ?? 0,
541
- index: M
546
+ containerScrollOffset: d?.scrollTop ?? 0,
547
+ index: E
548
+ });
549
+ typeof d?.scrollTo == "function" && d.scrollTo({
550
+ behavior: b,
551
+ top: M
542
552
  });
543
553
  }
544
554
  }),
545
- [u, d, O]
546
- ), K(() => {
547
- p >= 0 && m >= 0 && b >= 0 && F >= 0 && f && f({
555
+ [d, u, $]
556
+ ), X(() => {
557
+ p >= 0 && m >= 0 && O >= 0 && F >= 0 && f && f({
548
558
  columnStartIndex: p,
549
559
  columnStopIndex: m,
550
- rowStartIndex: b,
560
+ rowStartIndex: O,
551
561
  rowStopIndex: F
552
562
  });
553
563
  }, [
554
564
  f,
555
565
  p,
556
566
  m,
557
- b,
567
+ O,
558
568
  F
559
569
  ]);
560
- const oe = W(() => {
570
+ const ne = A(() => {
561
571
  const L = [];
562
- if (r > 0 && v > 0)
563
- for (let S = b; S <= F; S++) {
564
- const M = H(S);
565
- for (let $ = p; $ <= m; $++) {
566
- const U = B($);
567
- L.push(
568
- /* @__PURE__ */ ee(
569
- g,
572
+ if (s > 0 && x > 0)
573
+ for (let b = O; b <= F; b++) {
574
+ const E = H(b), M = [];
575
+ for (let R = p; R <= m; R++) {
576
+ const U = B(R);
577
+ M.push(
578
+ /* @__PURE__ */ se(
579
+ v,
570
580
  {
571
581
  ...z,
572
- columnIndex: $,
573
- key: `${S}-${$}`,
574
- rowIndex: S,
582
+ ariaAttributes: {
583
+ "aria-colindex": R + 1,
584
+ role: "gridcell"
585
+ },
586
+ columnIndex: R,
587
+ key: R,
588
+ rowIndex: b,
575
589
  style: {
576
590
  position: "absolute",
577
591
  left: y ? void 0 : 0,
578
592
  right: y ? 0 : void 0,
579
- transform: `translate(${y ? -U.scrollOffset : U.scrollOffset}px, ${M.scrollOffset}px)`,
580
- height: v > 1 ? M.size : "100%",
593
+ transform: `translate(${y ? -U.scrollOffset : U.scrollOffset}px, ${E.scrollOffset}px)`,
594
+ height: x > 1 ? E.size : "100%",
581
595
  width: U.size
582
596
  }
583
597
  }
584
598
  )
585
599
  );
586
600
  }
601
+ L.push(
602
+ /* @__PURE__ */ J("div", { role: "row", "aria-rowindex": b + 1, children: M }, b)
603
+ );
587
604
  }
588
605
  return L;
589
606
  }, [
590
- g,
607
+ v,
591
608
  z,
592
- r,
609
+ s,
593
610
  p,
594
611
  m,
595
612
  B,
596
613
  H,
597
614
  y,
598
- v,
599
- b,
615
+ x,
616
+ O,
600
617
  F
601
618
  ]);
602
- return /* @__PURE__ */ D(
619
+ return /* @__PURE__ */ C(
603
620
  "div",
604
621
  {
622
+ "aria-colcount": s,
623
+ "aria-rowcount": x,
605
624
  role: "grid",
606
625
  ...w,
607
- className: s,
626
+ className: r,
608
627
  dir: c,
609
- ref: h,
628
+ ref: a,
610
629
  style: {
630
+ position: "relative",
611
631
  width: "100%",
612
632
  height: "100%",
613
- ...x,
614
633
  maxHeight: "100%",
615
634
  maxWidth: "100%",
616
635
  flexGrow: 1,
617
- overflow: "auto"
636
+ overflow: "auto",
637
+ ...h
618
638
  },
619
- children: /* @__PURE__ */ D(
620
- "div",
621
- {
622
- className: s,
623
- style: {
624
- position: "relative",
625
- height: G(),
626
- width: T()
627
- },
628
- children: oe
629
- }
630
- )
639
+ children: [
640
+ ne,
641
+ /* @__PURE__ */ J(
642
+ "div",
643
+ {
644
+ "aria-hidden": !0,
645
+ style: {
646
+ height: k(),
647
+ width: T(),
648
+ zIndex: -1
649
+ }
650
+ }
651
+ )
652
+ ]
631
653
  }
632
654
  );
633
655
  }
634
- const xe = E, we = q;
635
- function me({
656
+ const ye = j, be = Y;
657
+ function Ie({
636
658
  className: e,
637
659
  defaultHeight: t = 0,
638
- listRef: s,
639
- onResize: r,
660
+ listRef: r,
661
+ onResize: s,
640
662
  onRowsRendered: o,
641
663
  overscanCount: i = 3,
642
- rowComponent: n,
664
+ rowComponent: l,
643
665
  rowCount: c,
644
- rowHeight: l,
666
+ rowHeight: n,
645
667
  rowProps: f,
646
- style: a,
668
+ style: g,
647
669
  ...I
648
670
  }) {
649
- const v = se(f), k = W(
650
- () => _(n, re),
651
- [n]
652
- ), [x, w] = E(null), {
671
+ const x = oe(f), S = A(
672
+ () => ee(l, ie),
673
+ [l]
674
+ ), [h, w] = j(null), {
653
675
  getCellBounds: z,
654
- getEstimatedSize: g,
655
- scrollToIndex: u,
656
- startIndex: h,
676
+ getEstimatedSize: v,
677
+ scrollToIndex: d,
678
+ startIndex: a,
657
679
  stopIndex: y
658
- } = C({
659
- containerElement: x,
680
+ } = K({
681
+ containerElement: h,
660
682
  defaultContainerSize: t,
661
683
  direction: "vertical",
662
684
  itemCount: c,
663
- itemProps: v,
664
- itemSize: l,
665
- onResize: r,
685
+ itemProps: x,
686
+ itemSize: n,
687
+ onResize: s,
666
688
  overscanCount: i
667
689
  });
668
- N(
669
- s,
690
+ te(
691
+ r,
670
692
  () => ({
671
693
  get element() {
672
- return x;
694
+ return h;
673
695
  },
674
696
  scrollToRow({
675
697
  align: T = "auto",
676
698
  behavior: p = "auto",
677
- index: d
699
+ index: u
678
700
  }) {
679
- u({
701
+ const m = d({
680
702
  align: T,
703
+ containerScrollOffset: h?.scrollTop ?? 0,
704
+ index: u
705
+ });
706
+ typeof h?.scrollTo == "function" && h.scrollTo({
681
707
  behavior: p,
682
- containerScrollOffset: x?.scrollTop ?? 0,
683
- index: d
708
+ top: m
684
709
  });
685
710
  }
686
711
  }),
687
- [x, u]
688
- ), K(() => {
689
- h >= 0 && y >= 0 && o && o({
690
- startIndex: h,
712
+ [h, d]
713
+ ), X(() => {
714
+ a >= 0 && y >= 0 && o && o({
715
+ startIndex: a,
691
716
  stopIndex: y
692
717
  });
693
- }, [o, h, y]);
694
- const B = W(() => {
718
+ }, [o, a, y]);
719
+ const B = A(() => {
695
720
  const T = [];
696
721
  if (c > 0)
697
- for (let p = h; p <= y; p++) {
698
- const d = z(p);
722
+ for (let p = a; p <= y; p++) {
723
+ const u = z(p);
699
724
  T.push(
700
- /* @__PURE__ */ ee(
701
- k,
725
+ /* @__PURE__ */ se(
726
+ S,
702
727
  {
703
- ...v,
728
+ ...x,
729
+ ariaAttributes: {
730
+ "aria-posinset": p + 1,
731
+ "aria-setsize": c,
732
+ role: "listitem"
733
+ },
704
734
  key: p,
705
735
  index: p,
706
736
  style: {
707
737
  position: "absolute",
708
738
  left: 0,
709
- transform: `translateY(${d.scrollOffset}px)`,
710
- height: d.size,
739
+ transform: `translateY(${u.scrollOffset}px)`,
740
+ height: u.size,
711
741
  width: "100%"
712
742
  }
713
743
  }
@@ -715,8 +745,8 @@ function me({
715
745
  );
716
746
  }
717
747
  return T;
718
- }, [k, z, c, v, h, y]);
719
- return /* @__PURE__ */ D(
748
+ }, [S, z, c, x, a, y]);
749
+ return /* @__PURE__ */ C(
720
750
  "div",
721
751
  {
722
752
  role: "list",
@@ -724,42 +754,45 @@ function me({
724
754
  className: e,
725
755
  ref: w,
726
756
  style: {
727
- ...a,
757
+ position: "relative",
728
758
  maxHeight: "100%",
729
759
  flexGrow: 1,
730
- overflowY: "auto"
760
+ overflowY: "auto",
761
+ ...g
731
762
  },
732
- children: /* @__PURE__ */ D(
733
- "div",
734
- {
735
- className: e,
736
- style: {
737
- height: g(),
738
- position: "relative",
739
- width: "100%"
740
- },
741
- children: B
742
- }
743
- )
763
+ children: [
764
+ B,
765
+ /* @__PURE__ */ J(
766
+ "div",
767
+ {
768
+ "aria-hidden": !0,
769
+ style: {
770
+ height: v(),
771
+ width: "100%",
772
+ zIndex: -1
773
+ }
774
+ }
775
+ )
776
+ ]
744
777
  }
745
778
  );
746
779
  }
747
- const ye = E, be = q;
780
+ const ze = j, Oe = Y;
748
781
  let P = -1;
749
- function Ie(e = !1) {
782
+ function Te(e = !1) {
750
783
  if (P === -1 || e) {
751
- const t = document.createElement("div"), s = t.style;
752
- s.width = "50px", s.height = "50px", s.overflow = "scroll", document.body.appendChild(t), P = t.offsetWidth - t.clientWidth, document.body.removeChild(t);
784
+ const t = document.createElement("div"), r = t.style;
785
+ r.width = "50px", r.height = "50px", r.overflow = "scroll", document.body.appendChild(t), P = t.offsetWidth - t.clientWidth, document.body.removeChild(t);
753
786
  }
754
787
  return P;
755
788
  }
756
789
  export {
757
- ve as Grid,
758
- me as List,
759
- Ie as getScrollbarSize,
760
- xe as useGridCallbackRef,
761
- we as useGridRef,
762
- ye as useListCallbackRef,
763
- be as useListRef
790
+ we as Grid,
791
+ Ie as List,
792
+ Te as getScrollbarSize,
793
+ ye as useGridCallbackRef,
794
+ be as useGridRef,
795
+ ze as useListCallbackRef,
796
+ Oe as useListRef
764
797
  };
765
798
  //# sourceMappingURL=react-window.js.map