@fluentui/react-virtualizer 9.0.0-alpha.2 → 9.0.0-alpha.21

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 (139) hide show
  1. package/CHANGELOG.json +383 -1
  2. package/CHANGELOG.md +184 -2
  3. package/dist/index.d.ts +180 -34
  4. package/lib/Hooks.js.map +1 -1
  5. package/lib/Utilities.js +2 -0
  6. package/lib/Utilities.js.map +1 -0
  7. package/lib/Virtualizer.js.map +1 -1
  8. package/lib/VirtualizerScrollView.js +2 -0
  9. package/lib/VirtualizerScrollView.js.map +1 -0
  10. package/lib/VirtualizerScrollViewDynamic.js +2 -0
  11. package/lib/VirtualizerScrollViewDynamic.js.map +1 -0
  12. package/lib/components/Virtualizer/Virtualizer.js.map +1 -1
  13. package/lib/components/Virtualizer/Virtualizer.types.js +1 -1
  14. package/lib/components/Virtualizer/Virtualizer.types.js.map +1 -1
  15. package/lib/components/Virtualizer/index.js.map +1 -1
  16. package/lib/components/Virtualizer/renderVirtualizer.js +11 -12
  17. package/lib/components/Virtualizer/renderVirtualizer.js.map +1 -1
  18. package/lib/components/Virtualizer/useVirtualizer.js +46 -41
  19. package/lib/components/Virtualizer/useVirtualizer.js.map +1 -1
  20. package/lib/components/Virtualizer/useVirtualizerStyles.js.map +1 -1
  21. package/lib/components/VirtualizerScrollView/VirtualizerScrollView.js +14 -0
  22. package/lib/components/VirtualizerScrollView/VirtualizerScrollView.js.map +1 -0
  23. package/lib/components/VirtualizerScrollView/VirtualizerScrollView.types.js +2 -0
  24. package/lib/components/VirtualizerScrollView/VirtualizerScrollView.types.js.map +1 -0
  25. package/lib/components/VirtualizerScrollView/index.js +6 -0
  26. package/lib/components/VirtualizerScrollView/index.js.map +1 -0
  27. package/lib/components/VirtualizerScrollView/renderVirtualizerScrollView.js +11 -0
  28. package/lib/components/VirtualizerScrollView/renderVirtualizerScrollView.js.map +1 -0
  29. package/lib/components/VirtualizerScrollView/useVirtualizerScrollView.js +38 -0
  30. package/lib/components/VirtualizerScrollView/useVirtualizerScrollView.js.map +1 -0
  31. package/lib/components/VirtualizerScrollView/useVirtualizerScrollViewStyles.js +47 -0
  32. package/lib/components/VirtualizerScrollView/useVirtualizerScrollViewStyles.js.map +1 -0
  33. package/lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.js +14 -0
  34. package/lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.js.map +1 -0
  35. package/lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js +2 -0
  36. package/lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js.map +1 -0
  37. package/lib/components/VirtualizerScrollViewDynamic/index.js +6 -0
  38. package/lib/components/VirtualizerScrollViewDynamic/index.js.map +1 -0
  39. package/lib/components/VirtualizerScrollViewDynamic/renderVirtualizerScrollViewDynamic.js +11 -0
  40. package/lib/components/VirtualizerScrollViewDynamic/renderVirtualizerScrollViewDynamic.js.map +1 -0
  41. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js +44 -0
  42. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js.map +1 -0
  43. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamicStyles.js +46 -0
  44. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamicStyles.js.map +1 -0
  45. package/lib/hooks/hooks.types.js +2 -0
  46. package/lib/hooks/hooks.types.js.map +1 -0
  47. package/lib/hooks/index.js +4 -0
  48. package/lib/hooks/index.js.map +1 -1
  49. package/lib/hooks/useDynamicVirtualizerMeasure.js +99 -0
  50. package/lib/hooks/useDynamicVirtualizerMeasure.js.map +1 -0
  51. package/lib/hooks/useIntersectionObserver.js +2 -10
  52. package/lib/hooks/useIntersectionObserver.js.map +1 -1
  53. package/lib/hooks/useResizeObserverRef.js +40 -0
  54. package/lib/hooks/useResizeObserverRef.js.map +1 -0
  55. package/lib/hooks/useVirtualizerMeasure.js +53 -0
  56. package/lib/hooks/useVirtualizerMeasure.js.map +1 -0
  57. package/lib/index.js +4 -1
  58. package/lib/index.js.map +1 -1
  59. package/lib/utilities/VirtualizerContext/VirtualizerContext.js +27 -0
  60. package/lib/utilities/VirtualizerContext/VirtualizerContext.js.map +1 -0
  61. package/lib/utilities/VirtualizerContext/index.js +3 -0
  62. package/lib/utilities/VirtualizerContext/index.js.map +1 -0
  63. package/lib/utilities/VirtualizerContext/types.js +4 -0
  64. package/lib/utilities/VirtualizerContext/types.js.map +1 -0
  65. package/lib/utilities/debounce.js +20 -0
  66. package/lib/utilities/debounce.js.map +1 -0
  67. package/lib/utilities/index.js +2 -0
  68. package/lib/utilities/index.js.map +1 -0
  69. package/lib-commonjs/Hooks.js +5 -4
  70. package/lib-commonjs/Hooks.js.map +1 -1
  71. package/lib-commonjs/Utilities.js +9 -0
  72. package/lib-commonjs/Utilities.js.map +1 -0
  73. package/lib-commonjs/Virtualizer.js +5 -4
  74. package/lib-commonjs/Virtualizer.js.map +1 -1
  75. package/lib-commonjs/VirtualizerScrollView.js +9 -0
  76. package/lib-commonjs/VirtualizerScrollView.js.map +1 -0
  77. package/lib-commonjs/VirtualizerScrollViewDynamic.js +9 -0
  78. package/lib-commonjs/VirtualizerScrollViewDynamic.js.map +1 -0
  79. package/lib-commonjs/components/Virtualizer/Virtualizer.js +14 -17
  80. package/lib-commonjs/components/Virtualizer/Virtualizer.js.map +1 -1
  81. package/lib-commonjs/components/Virtualizer/Virtualizer.types.js +5 -2
  82. package/lib-commonjs/components/Virtualizer/Virtualizer.types.js.map +1 -1
  83. package/lib-commonjs/components/Virtualizer/index.js +9 -8
  84. package/lib-commonjs/components/Virtualizer/index.js.map +1 -1
  85. package/lib-commonjs/components/Virtualizer/renderVirtualizer.js +26 -21
  86. package/lib-commonjs/components/Virtualizer/renderVirtualizer.js.map +1 -1
  87. package/lib-commonjs/components/Virtualizer/useVirtualizer.js +363 -361
  88. package/lib-commonjs/components/Virtualizer/useVirtualizer.js.map +1 -1
  89. package/lib-commonjs/components/Virtualizer/useVirtualizerStyles.js +112 -107
  90. package/lib-commonjs/components/Virtualizer/useVirtualizerStyles.js.map +1 -1
  91. package/lib-commonjs/components/VirtualizerScrollView/VirtualizerScrollView.js +21 -0
  92. package/lib-commonjs/components/VirtualizerScrollView/VirtualizerScrollView.js.map +1 -0
  93. package/lib-commonjs/components/VirtualizerScrollView/VirtualizerScrollView.types.js +7 -0
  94. package/lib-commonjs/components/VirtualizerScrollView/VirtualizerScrollView.types.js.map +1 -0
  95. package/lib-commonjs/components/VirtualizerScrollView/index.js +13 -0
  96. package/lib-commonjs/components/VirtualizerScrollView/index.js.map +1 -0
  97. package/lib-commonjs/components/VirtualizerScrollView/renderVirtualizerScrollView.js +17 -0
  98. package/lib-commonjs/components/VirtualizerScrollView/renderVirtualizerScrollView.js.map +1 -0
  99. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollView.js +43 -0
  100. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollView.js.map +1 -0
  101. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollViewStyles.js +70 -0
  102. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollViewStyles.js.map +1 -0
  103. package/lib-commonjs/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.js +21 -0
  104. package/lib-commonjs/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.js.map +1 -0
  105. package/lib-commonjs/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js +7 -0
  106. package/lib-commonjs/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js.map +1 -0
  107. package/lib-commonjs/components/VirtualizerScrollViewDynamic/index.js +13 -0
  108. package/lib-commonjs/components/VirtualizerScrollViewDynamic/index.js.map +1 -0
  109. package/lib-commonjs/components/VirtualizerScrollViewDynamic/renderVirtualizerScrollViewDynamic.js +17 -0
  110. package/lib-commonjs/components/VirtualizerScrollViewDynamic/renderVirtualizerScrollViewDynamic.js.map +1 -0
  111. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js +49 -0
  112. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js.map +1 -0
  113. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamicStyles.js +69 -0
  114. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamicStyles.js.map +1 -0
  115. package/lib-commonjs/hooks/hooks.types.js +7 -0
  116. package/lib-commonjs/hooks/hooks.types.js.map +1 -0
  117. package/lib-commonjs/hooks/index.js +9 -4
  118. package/lib-commonjs/hooks/index.js.map +1 -1
  119. package/lib-commonjs/hooks/useDynamicVirtualizerMeasure.js +107 -0
  120. package/lib-commonjs/hooks/useDynamicVirtualizerMeasure.js.map +1 -0
  121. package/lib-commonjs/hooks/useIntersectionObserver.js +41 -54
  122. package/lib-commonjs/hooks/useIntersectionObserver.js.map +1 -1
  123. package/lib-commonjs/hooks/useResizeObserverRef.js +51 -0
  124. package/lib-commonjs/hooks/useResizeObserverRef.js.map +1 -0
  125. package/lib-commonjs/hooks/useVirtualizerMeasure.js +53 -0
  126. package/lib-commonjs/hooks/useVirtualizerMeasure.js.map +1 -0
  127. package/lib-commonjs/index.js +36 -40
  128. package/lib-commonjs/index.js.map +1 -1
  129. package/lib-commonjs/utilities/VirtualizerContext/VirtualizerContext.js +48 -0
  130. package/lib-commonjs/utilities/VirtualizerContext/VirtualizerContext.js.map +1 -0
  131. package/lib-commonjs/utilities/VirtualizerContext/index.js +10 -0
  132. package/lib-commonjs/utilities/VirtualizerContext/index.js.map +1 -0
  133. package/lib-commonjs/utilities/VirtualizerContext/types.js +9 -0
  134. package/lib-commonjs/utilities/VirtualizerContext/types.js.map +1 -0
  135. package/lib-commonjs/utilities/debounce.js +29 -0
  136. package/lib-commonjs/utilities/debounce.js.map +1 -0
  137. package/lib-commonjs/utilities/index.js +9 -0
  138. package/lib-commonjs/utilities/index.js.map +1 -0
  139. package/package.json +13 -10
@@ -0,0 +1,99 @@
1
+ import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';
2
+ import * as React from 'react';
3
+ import { useResizeObserverRef_unstable } from './useResizeObserverRef';
4
+ import { useRef } from 'react';
5
+ /**
6
+ * React hook that measures virtualized space dynamically to ensure optimized virtualization length.
7
+ */
8
+ export const useDynamicVirtualizerMeasure = virtualizerProps => {
9
+ const {
10
+ defaultItemSize,
11
+ direction = 'vertical',
12
+ numItems,
13
+ getItemSize,
14
+ currentIndex
15
+ } = virtualizerProps;
16
+ const indexRef = useRef(currentIndex);
17
+ indexRef.current = currentIndex;
18
+ const [state, setState] = React.useState({
19
+ virtualizerLength: 0,
20
+ virtualizerBufferItems: 0,
21
+ virtualizerBufferSize: 0
22
+ });
23
+ const {
24
+ virtualizerLength,
25
+ virtualizerBufferItems,
26
+ virtualizerBufferSize
27
+ } = state;
28
+ const container = React.useRef(null);
29
+ const handleScrollResize = React.useCallback(scrollRef => {
30
+ if (!(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
31
+ // Error? ignore?
32
+ return;
33
+ }
34
+ if (scrollRef.current !== container.current) {
35
+ container.current = scrollRef.current;
36
+ }
37
+ const containerSize = direction === 'vertical' ? scrollRef.current.getBoundingClientRect().height : scrollRef.current.getBoundingClientRect().width;
38
+ let indexSizer = 0;
39
+ let length = 0;
40
+ while (indexSizer <= containerSize && length < numItems) {
41
+ const iItemSize = getItemSize(indexRef.current + length);
42
+ // Increment
43
+ indexSizer += iItemSize;
44
+ length++;
45
+ }
46
+ /*
47
+ * Number of items to append at each end, i.e. 'preload' each side before entering view.
48
+ */
49
+ const bufferItems = Math.max(Math.floor(length / 4), 2);
50
+ /*
51
+ * This is how far we deviate into the bufferItems to detect a redraw.
52
+ */
53
+ const bufferSize = Math.max(Math.floor(length / 8 * defaultItemSize), 1);
54
+ const totalLength = length + bufferItems * 2 + 3;
55
+ setState({
56
+ virtualizerLength: totalLength,
57
+ virtualizerBufferSize: bufferSize,
58
+ virtualizerBufferItems: bufferItems
59
+ });
60
+ }, [defaultItemSize, direction, getItemSize, numItems]);
61
+ const resizeCallback = React.useCallback((_entries, _observer, scrollRef) => {
62
+ if (scrollRef) {
63
+ handleScrollResize(scrollRef);
64
+ }
65
+ }, [handleScrollResize]);
66
+ const scrollRef = useResizeObserverRef_unstable(resizeCallback);
67
+ useIsomorphicLayoutEffect(() => {
68
+ var _container_current, _container_current1;
69
+ if (!container.current) {
70
+ return;
71
+ }
72
+ const containerSize = direction === 'vertical' ? ((_container_current = container.current) === null || _container_current === void 0 ? void 0 : _container_current.getBoundingClientRect().height) * 1.5 : ((_container_current1 = container.current) === null || _container_current1 === void 0 ? void 0 : _container_current1.getBoundingClientRect().width) * 1.5;
73
+ let couldBeSmaller = false;
74
+ let recheckTotal = 0;
75
+ for (let i = currentIndex; i < currentIndex + virtualizerLength; i++) {
76
+ const newItemSize = getItemSize(i);
77
+ recheckTotal += newItemSize;
78
+ const newLength = i - currentIndex;
79
+ const bufferItems = Math.max(Math.floor(newLength / 4), 2);
80
+ const totalNewLength = newLength + bufferItems * 2 + 4;
81
+ const compareLengths = totalNewLength < virtualizerLength;
82
+ if (recheckTotal > containerSize && compareLengths) {
83
+ couldBeSmaller = true;
84
+ break;
85
+ }
86
+ }
87
+ // Check if the render has caused us to need a re-calc of virtualizer length
88
+ if (recheckTotal < containerSize || couldBeSmaller) {
89
+ handleScrollResize(container);
90
+ }
91
+ }, [getItemSize, currentIndex, direction, virtualizerLength, resizeCallback, handleScrollResize]);
92
+ return {
93
+ virtualizerLength,
94
+ bufferItems: virtualizerBufferItems,
95
+ bufferSize: virtualizerBufferSize,
96
+ scrollRef
97
+ };
98
+ };
99
+ //# sourceMappingURL=useDynamicVirtualizerMeasure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","React","useResizeObserverRef_unstable","useRef","useDynamicVirtualizerMeasure","virtualizerProps","defaultItemSize","direction","numItems","getItemSize","currentIndex","indexRef","current","state","setState","useState","virtualizerLength","virtualizerBufferItems","virtualizerBufferSize","container","handleScrollResize","useCallback","scrollRef","containerSize","getBoundingClientRect","height","width","indexSizer","length","iItemSize","bufferItems","Math","max","floor","bufferSize","totalLength","resizeCallback","_entries","_observer","_container_current","_container_current1","couldBeSmaller","recheckTotal","i","newItemSize","newLength","totalNewLength","compareLengths"],"sources":["../../src/hooks/useDynamicVirtualizerMeasure.ts"],"sourcesContent":["import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { VirtualizerMeasureDynamicProps } from './hooks.types';\nimport { useResizeObserverRef_unstable } from './useResizeObserverRef';\nimport { useRef } from 'react';\n\n/**\n * React hook that measures virtualized space dynamically to ensure optimized virtualization length.\n */\nexport const useDynamicVirtualizerMeasure = <TElement extends HTMLElement>(\n virtualizerProps: VirtualizerMeasureDynamicProps,\n): {\n virtualizerLength: number;\n bufferItems: number;\n bufferSize: number;\n scrollRef: (instance: TElement | null) => void;\n} => {\n const { defaultItemSize, direction = 'vertical', numItems, getItemSize, currentIndex } = virtualizerProps;\n const indexRef = useRef<number>(currentIndex);\n indexRef.current = currentIndex;\n\n const [state, setState] = React.useState({\n virtualizerLength: 0,\n virtualizerBufferItems: 0,\n virtualizerBufferSize: 0,\n });\n\n const { virtualizerLength, virtualizerBufferItems, virtualizerBufferSize } = state;\n\n const container = React.useRef<HTMLElement | null>(null);\n const handleScrollResize = React.useCallback(\n (scrollRef: React.MutableRefObject<HTMLElement | null>) => {\n if (!scrollRef?.current) {\n // Error? ignore?\n return;\n }\n\n if (scrollRef.current !== container.current) {\n container.current = scrollRef.current;\n }\n\n const containerSize =\n direction === 'vertical'\n ? scrollRef.current.getBoundingClientRect().height\n : scrollRef.current.getBoundingClientRect().width;\n\n let indexSizer = 0;\n let length = 0;\n\n while (indexSizer <= containerSize && length < numItems) {\n const iItemSize = getItemSize(indexRef.current + length);\n\n // Increment\n indexSizer += iItemSize;\n length++;\n }\n\n /*\n * Number of items to append at each end, i.e. 'preload' each side before entering view.\n */\n const bufferItems = Math.max(Math.floor(length / 4), 2);\n\n /*\n * This is how far we deviate into the bufferItems to detect a redraw.\n */\n const bufferSize = Math.max(Math.floor((length / 8) * defaultItemSize), 1);\n\n const totalLength = length + bufferItems * 2 + 3;\n setState({\n virtualizerLength: totalLength,\n virtualizerBufferSize: bufferSize,\n virtualizerBufferItems: bufferItems,\n });\n },\n [defaultItemSize, direction, getItemSize, numItems],\n );\n\n const resizeCallback = React.useCallback(\n (\n _entries: ResizeObserverEntry[],\n _observer: ResizeObserver,\n scrollRef?: React.MutableRefObject<HTMLElement | null>,\n ) => {\n if (scrollRef) {\n handleScrollResize(scrollRef);\n }\n },\n [handleScrollResize],\n );\n\n const scrollRef = useResizeObserverRef_unstable(resizeCallback);\n\n useIsomorphicLayoutEffect(() => {\n if (!container.current) {\n return;\n }\n\n const containerSize =\n direction === 'vertical'\n ? container.current?.getBoundingClientRect().height * 1.5\n : container.current?.getBoundingClientRect().width * 1.5;\n\n let couldBeSmaller = false;\n let recheckTotal = 0;\n for (let i = currentIndex; i < currentIndex + virtualizerLength; i++) {\n const newItemSize = getItemSize(i);\n recheckTotal += newItemSize;\n\n const newLength = i - currentIndex;\n\n const bufferItems = Math.max(Math.floor(newLength / 4), 2);\n const totalNewLength = newLength + bufferItems * 2 + 4;\n const compareLengths = totalNewLength < virtualizerLength;\n\n if (recheckTotal > containerSize && compareLengths) {\n couldBeSmaller = true;\n break;\n }\n }\n\n // Check if the render has caused us to need a re-calc of virtualizer length\n if (recheckTotal < containerSize || couldBeSmaller) {\n handleScrollResize(container);\n }\n }, [getItemSize, currentIndex, direction, virtualizerLength, resizeCallback, handleScrollResize]);\n\n return {\n virtualizerLength,\n bufferItems: virtualizerBufferItems,\n bufferSize: virtualizerBufferSize,\n scrollRef,\n };\n};\n"],"mappings":"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"}
@@ -14,14 +14,6 @@ const {
14
14
  * update the init options of the IntersectionObserver and a ref to the IntersectionObserver instance itself.
15
15
  */
16
16
  export const useIntersectionObserver = (callback, options) => {
17
- // export const useIntersectionObserver = (
18
- // callback: IntersectionObserverCallback,
19
- // options?: IntersectionObserverInit,
20
- // ): [
21
- // Dispatch<SetStateAction<Element[] | undefined>>,
22
- // Dispatch<SetStateAction<IntersectionObserverInit | undefined>>,
23
- // MutableRefObject<IntersectionObserver | undefined>,
24
- // ] => {
25
17
  const observer = useRef();
26
18
  const [observerList, setObserverList] = useState();
27
19
  const [observerInit, setObserverInit] = useState(options);
@@ -32,8 +24,8 @@ export const useIntersectionObserver = (callback, options) => {
32
24
  // If we have an instance of IO and a list with elements, observer the elements
33
25
  if (observer.current && observerList && observerList.length > 0) {
34
26
  observerList.forEach(element => {
35
- var _a;
36
- (_a = observer.current) === null || _a === void 0 ? void 0 : _a.observe(element);
27
+ var _observer_current;
28
+ (_observer_current = observer.current) === null || _observer_current === void 0 ? void 0 : _observer_current.observe(element);
37
29
  });
38
30
  }
39
31
  // clean up previous elements being listened to
@@ -1 +1 @@
1
- {"version":3,"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,yBAAyB,QAAQ,2BAA2B;AAErE,MAAM;EAAEC,QAAQ;EAAEC;AAAM,CAAE,GAAGH,KAAK;AAElC;;;;;;;;;AAUA,OAAO,MAAMI,uBAAuB,GAAG,CACrCC,QAAsC,EACtCC,OAAkC,KAKhC;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,QAAQ,GAAGJ,MAAM,EAAwB;EAC/C,MAAM,CAACK,YAAY,EAAEC,eAAe,CAAC,GAAGP,QAAQ,EAAa;EAC7D,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAGT,QAAQ,CAAuCI,OAAO,CAAC;EAE/F;EACA;EACAL,yBAAyB,CAAC,MAAK;IAC7BM,QAAQ,CAACK,OAAO,GAAG,IAAIC,oBAAoB,CAACR,QAAQ,EAAEK,YAAY,CAAC;IAEnE;IACA,IAAIH,QAAQ,CAACK,OAAO,IAAIJ,YAAY,IAAIA,YAAY,CAACM,MAAM,GAAG,CAAC,EAAE;MAC/DN,YAAY,CAACO,OAAO,CAACC,OAAO,IAAG;;QAC7B,cAAQ,CAACJ,OAAO,0CAAEK,OAAO,CAACD,OAAO,CAAC;MACpC,CAAC,CAAC;;IAGJ;IACA,OAAO,MAAK;MACV,IAAIT,QAAQ,CAACK,OAAO,EAAE;QACpBL,QAAQ,CAACK,OAAO,CAACM,UAAU,EAAE;;IAEjC,CAAC;EACH,CAAC,EAAE,CAACV,YAAY,EAAEE,YAAY,EAAEL,QAAQ,CAAC,CAAC;EAE1C,OAAO;IAAEI,eAAe;IAAEE,eAAe;IAAEJ;EAAQ,CAAE;AACvD,CAAC","names":["React","useIsomorphicLayoutEffect","useState","useRef","useIntersectionObserver","callback","options","observer","observerList","setObserverList","observerInit","setObserverInit","current","IntersectionObserver","length","forEach","element","observe","disconnect"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/hooks/useIntersectionObserver.ts"],"sourcesContent":["import type { Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\n\nconst { useState, useRef } = React;\n\n/**\n * React hook that allows easy usage of the browser API IntersectionObserver within React\n * @param callback - A function called when the percentage of the target element is visible crosses a threshold.\n * @param options - An optional object which customizes the observer. If options isn't specified, the observer uses the\n * document's viewport as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is\n * enough to trigger a callback).\n * @returns An array containing a callback to update the list of Elements the observer should listen to, a callback to\n * update the init options of the IntersectionObserver and a ref to the IntersectionObserver instance itself.\n */\n\nexport const useIntersectionObserver = (\n callback: IntersectionObserverCallback,\n options?: IntersectionObserverInit,\n): {\n setObserverList: Dispatch<SetStateAction<Element[] | undefined>>;\n setObserverInit: Dispatch<SetStateAction<IntersectionObserverInit | undefined>>;\n observer: MutableRefObject<IntersectionObserver | undefined>;\n} => {\n // export const useIntersectionObserver = (\n // callback: IntersectionObserverCallback,\n // options?: IntersectionObserverInit,\n // ): [\n // Dispatch<SetStateAction<Element[] | undefined>>,\n // Dispatch<SetStateAction<IntersectionObserverInit | undefined>>,\n // MutableRefObject<IntersectionObserver | undefined>,\n // ] => {\n const observer = useRef<IntersectionObserver>();\n const [observerList, setObserverList] = useState<Element[]>();\n const [observerInit, setObserverInit] = useState<IntersectionObserverInit | undefined>(options);\n\n // Observer elements in passed in list and clean up previous list\n // This effect is only triggered when observerList is updated\n useIsomorphicLayoutEffect(() => {\n observer.current = new IntersectionObserver(callback, observerInit);\n\n // If we have an instance of IO and a list with elements, observer the elements\n if (observer.current && observerList && observerList.length > 0) {\n observerList.forEach(element => {\n observer.current?.observe(element);\n });\n }\n\n // clean up previous elements being listened to\n return () => {\n if (observer.current) {\n observer.current.disconnect();\n }\n };\n }, [observerList, observerInit, callback]);\n\n return { setObserverList, setObserverInit, observer };\n};\n"]}
1
+ {"version":3,"names":["React","useIsomorphicLayoutEffect","useState","useRef","useIntersectionObserver","callback","options","observer","observerList","setObserverList","observerInit","setObserverInit","current","IntersectionObserver","length","forEach","element","_observer_current","observe","disconnect"],"sources":["../../src/hooks/useIntersectionObserver.ts"],"sourcesContent":["import type { Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\n\nconst { useState, useRef } = React;\n\n/**\n * React hook that allows easy usage of the browser API IntersectionObserver within React\n * @param callback - A function called when the percentage of the target element is visible crosses a threshold.\n * @param options - An optional object which customizes the observer. If options isn't specified, the observer uses the\n * document's viewport as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is\n * enough to trigger a callback).\n * @returns An array containing a callback to update the list of Elements the observer should listen to, a callback to\n * update the init options of the IntersectionObserver and a ref to the IntersectionObserver instance itself.\n */\n\nexport const useIntersectionObserver = (\n callback: IntersectionObserverCallback,\n options?: IntersectionObserverInit,\n): {\n setObserverList: Dispatch<SetStateAction<Element[] | undefined>>;\n setObserverInit: Dispatch<SetStateAction<IntersectionObserverInit | undefined>>;\n observer: MutableRefObject<IntersectionObserver | undefined>;\n} => {\n const observer = useRef<IntersectionObserver>();\n const [observerList, setObserverList] = useState<Element[]>();\n const [observerInit, setObserverInit] = useState<IntersectionObserverInit | undefined>(options);\n\n // Observer elements in passed in list and clean up previous list\n // This effect is only triggered when observerList is updated\n useIsomorphicLayoutEffect(() => {\n observer.current = new IntersectionObserver(callback, observerInit);\n\n // If we have an instance of IO and a list with elements, observer the elements\n if (observer.current && observerList && observerList.length > 0) {\n observerList.forEach(element => {\n observer.current?.observe(element);\n });\n }\n\n // clean up previous elements being listened to\n return () => {\n if (observer.current) {\n observer.current.disconnect();\n }\n };\n }, [observerList, observerInit, callback]);\n\n return { setObserverList, setObserverInit, observer };\n};\n"],"mappings":"AACA,YAAYA,KAAA,MAAW;AACvB,SAASC,yBAAyB,QAAQ;AAE1C,MAAM;EAAEC,QAAA;EAAUC;AAAM,CAAE,GAAGH,KAAA;AAE7B;;;;;;;;;AAUA,OAAO,MAAMI,uBAAA,GAA0BA,CACrCC,QAAA,EACAC,OAAA,KAKG;EACH,MAAMC,QAAA,GAAWJ,MAAA;EACjB,MAAM,CAACK,YAAA,EAAcC,eAAA,CAAgB,GAAGP,QAAA;EACxC,MAAM,CAACQ,YAAA,EAAcC,eAAA,CAAgB,GAAGT,QAAA,CAA+CI,OAAA;EAEvF;EACA;EACAL,yBAAA,CAA0B,MAAM;IAC9BM,QAAA,CAASK,OAAO,GAAG,IAAIC,oBAAA,CAAqBR,QAAA,EAAUK,YAAA;IAEtD;IACA,IAAIH,QAAA,CAASK,OAAO,IAAIJ,YAAA,IAAgBA,YAAA,CAAaM,MAAM,GAAG,GAAG;MAC/DN,YAAA,CAAaO,OAAO,CAACC,OAAA,IAAW;YAC9BC,iBAAA;QAAA,CAAAA,iBAAA,GAAAV,QAAA,CAASK,OAAO,cAAhBK,iBAAA,uBAAAA,iBAAA,CAAkBC,OAAA,CAAQF,OAAA;MAC5B;IACF;IAEA;IACA,OAAO,MAAM;MACX,IAAIT,QAAA,CAASK,OAAO,EAAE;QACpBL,QAAA,CAASK,OAAO,CAACO,UAAU;MAC7B;IACF;EACF,GAAG,CAACX,YAAA,EAAcE,YAAA,EAAcL,QAAA,CAAS;EAEzC,OAAO;IAAEI,eAAA;IAAiBE,eAAA;IAAiBJ;EAAS;AACtD"}
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { debounce } from '../utilities/debounce';
3
+ import { canUseDOM } from '@fluentui/react-utilities';
4
+ /**
5
+ * useResizeObserverRef_unstable simplifies resize observer connection and ensures debounce/cleanup
6
+ */
7
+ export const useResizeObserverRef_unstable = resizeCallback => {
8
+ const container = React.useRef(null);
9
+ // the handler for resize observer
10
+ const handleResize = debounce((entries, observer) => {
11
+ resizeCallback(entries, observer, container);
12
+ });
13
+ // Keep the reference of ResizeObserver in the state, as it should live through renders
14
+ const [resizeObserver, setResizeObserver] = React.useState(() => canUseDOM() ? new ResizeObserver(handleResize) : undefined);
15
+ React.useEffect(() => {
16
+ // Update our state when resizeCallback changes
17
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
18
+ setResizeObserver(canUseDOM() ? new ResizeObserver(handleResize) : undefined);
19
+ // eslint-disable-next-line react-hooks/exhaustive-deps
20
+ }, [resizeCallback]);
21
+ React.useEffect(() => {
22
+ return () => {
23
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
24
+ };
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ }, []);
27
+ const scrollRef = React.useCallback(instance => {
28
+ if (container.current !== instance) {
29
+ if (container.current) {
30
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(container.current);
31
+ }
32
+ container.current = instance;
33
+ if (container.current) {
34
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(container.current);
35
+ }
36
+ }
37
+ }, [resizeObserver]);
38
+ return scrollRef;
39
+ };
40
+ //# sourceMappingURL=useResizeObserverRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","debounce","canUseDOM","useResizeObserverRef_unstable","resizeCallback","container","useRef","handleResize","entries","observer","resizeObserver","setResizeObserver","useState","ResizeObserver","undefined","useEffect","disconnect","scrollRef","useCallback","instance","current","unobserve","observe"],"sources":["../../src/hooks/useResizeObserverRef.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce } from '../utilities/debounce';\nimport { canUseDOM } from '@fluentui/react-utilities';\nimport { ResizeCallbackWithRef } from './hooks.types';\n\n/**\n * useResizeObserverRef_unstable simplifies resize observer connection and ensures debounce/cleanup\n */\nexport const useResizeObserverRef_unstable = (resizeCallback: ResizeCallbackWithRef) => {\n const container = React.useRef<HTMLElement | null>(null);\n // the handler for resize observer\n const handleResize = debounce((entries: ResizeObserverEntry[], observer: ResizeObserver) => {\n resizeCallback(entries, observer, container);\n });\n\n // Keep the reference of ResizeObserver in the state, as it should live through renders\n const [resizeObserver, setResizeObserver] = React.useState(() =>\n canUseDOM() ? new ResizeObserver(handleResize) : undefined,\n );\n\n React.useEffect(() => {\n // Update our state when resizeCallback changes\n resizeObserver?.disconnect();\n setResizeObserver(canUseDOM() ? new ResizeObserver(handleResize) : undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [resizeCallback]);\n\n React.useEffect(() => {\n return () => {\n resizeObserver?.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const scrollRef = React.useCallback(\n (instance: HTMLElement | HTMLDivElement | null) => {\n if (container.current !== instance) {\n if (container.current) {\n resizeObserver?.unobserve(container.current);\n }\n\n container.current = instance;\n if (container.current) {\n resizeObserver?.observe(container.current);\n }\n }\n },\n [resizeObserver],\n );\n\n return scrollRef;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAG1B;;;AAGA,OAAO,MAAMC,6BAAA,GAAiCC,cAAA,IAA0C;EACtF,MAAMC,SAAA,GAAYL,KAAA,CAAMM,MAAM,CAAqB,IAAI;EACvD;EACA,MAAMC,YAAA,GAAeN,QAAA,CAAS,CAACO,OAAA,EAAgCC,QAAA,KAA6B;IAC1FL,cAAA,CAAeI,OAAA,EAASC,QAAA,EAAUJ,SAAA;EACpC;EAEA;EACA,MAAM,CAACK,cAAA,EAAgBC,iBAAA,CAAkB,GAAGX,KAAA,CAAMY,QAAQ,CAAC,MACzDV,SAAA,KAAc,IAAIW,cAAA,CAAeN,YAAA,IAAgBO,SAAS;EAG5Dd,KAAA,CAAMe,SAAS,CAAC,MAAM;IACpB;IACAL,cAAA,aAAAA,cAAA,uBAAAA,cAAA,CAAgBM,UAAU;IAC1BL,iBAAA,CAAkBT,SAAA,KAAc,IAAIW,cAAA,CAAeN,YAAA,IAAgBO,SAAS;IAC5E;EACF,GAAG,CAACV,cAAA,CAAe;EAEnBJ,KAAA,CAAMe,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACXL,cAAA,aAAAA,cAAA,uBAAAA,cAAA,CAAgBM,UAAU;IAC5B;IACA;EACF,GAAG,EAAE;EAEL,MAAMC,SAAA,GAAYjB,KAAA,CAAMkB,WAAW,CAChCC,QAAA,IAAkD;IACjD,IAAId,SAAA,CAAUe,OAAO,KAAKD,QAAA,EAAU;MAClC,IAAId,SAAA,CAAUe,OAAO,EAAE;QACrBV,cAAA,aAAAA,cAAA,uBAAAA,cAAA,CAAgBW,SAAS,CAAChB,SAAA,CAAUe,OAAO;MAC7C;MAEAf,SAAA,CAAUe,OAAO,GAAGD,QAAA;MACpB,IAAId,SAAA,CAAUe,OAAO,EAAE;QACrBV,cAAA,aAAAA,cAAA,uBAAAA,cAAA,CAAgBY,OAAO,CAACjB,SAAA,CAAUe,OAAO;MAC3C;IACF;EACF,GACA,CAACV,cAAA,CAAe;EAGlB,OAAOO,SAAA;AACT"}
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+ import { useResizeObserverRef_unstable } from './useResizeObserverRef';
3
+ /**
4
+ * React hook that measures virtualized space based on a static size to ensure optimized virtualization length.
5
+ */
6
+ export const useStaticVirtualizerMeasure = virtualizerProps => {
7
+ const {
8
+ defaultItemSize,
9
+ direction = 'vertical'
10
+ } = virtualizerProps;
11
+ const [state, setState] = React.useState({
12
+ virtualizerLength: 0,
13
+ bufferSize: 0,
14
+ bufferItems: 0
15
+ });
16
+ const {
17
+ virtualizerLength,
18
+ bufferItems,
19
+ bufferSize
20
+ } = state;
21
+ const resizeCallback = React.useCallback((_entries, _observer, scrollRef) => {
22
+ if (!(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
23
+ return;
24
+ }
25
+ const containerSize = direction === 'vertical' ? scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current.getBoundingClientRect().height : scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current.getBoundingClientRect().width;
26
+ /*
27
+ * Number of items required to cover viewport.
28
+ */
29
+ const length = Math.ceil(containerSize / defaultItemSize + 1);
30
+ /*
31
+ * Number of items to append at each end, i.e. 'preload' each side before entering view.
32
+ */
33
+ const newBufferItems = Math.max(Math.floor(length / 4), 2);
34
+ /*
35
+ * This is how far we deviate into the bufferItems to detect a redraw.
36
+ */
37
+ const newBufferSize = Math.max(Math.floor(length / 8 * defaultItemSize), 1);
38
+ const totalLength = length + newBufferItems * 2 + 1;
39
+ setState({
40
+ virtualizerLength: totalLength,
41
+ bufferItems: newBufferItems,
42
+ bufferSize: newBufferSize
43
+ });
44
+ }, [defaultItemSize, direction]);
45
+ const scrollRef = useResizeObserverRef_unstable(resizeCallback);
46
+ return {
47
+ virtualizerLength,
48
+ bufferItems,
49
+ bufferSize,
50
+ scrollRef
51
+ };
52
+ };
53
+ //# sourceMappingURL=useVirtualizerMeasure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useResizeObserverRef_unstable","useStaticVirtualizerMeasure","virtualizerProps","defaultItemSize","direction","state","setState","useState","virtualizerLength","bufferSize","bufferItems","resizeCallback","useCallback","_entries","_observer","scrollRef","current","containerSize","getBoundingClientRect","height","width","length","Math","ceil","newBufferItems","max","floor","newBufferSize","totalLength"],"sources":["../../src/hooks/useVirtualizerMeasure.ts"],"sourcesContent":["import * as React from 'react';\nimport { VirtualizerMeasureProps } from './hooks.types';\nimport { useResizeObserverRef_unstable } from './useResizeObserverRef';\n\n/**\n * React hook that measures virtualized space based on a static size to ensure optimized virtualization length.\n */\nexport const useStaticVirtualizerMeasure = <TElement extends HTMLElement>(\n virtualizerProps: VirtualizerMeasureProps,\n): {\n virtualizerLength: number;\n bufferItems: number;\n bufferSize: number;\n scrollRef: (instance: TElement | null) => void;\n} => {\n const { defaultItemSize, direction = 'vertical' } = virtualizerProps;\n\n const [state, setState] = React.useState({\n virtualizerLength: 0,\n bufferSize: 0,\n bufferItems: 0,\n });\n\n const { virtualizerLength, bufferItems, bufferSize } = state;\n\n const resizeCallback = React.useCallback(\n (\n _entries: ResizeObserverEntry[],\n _observer: ResizeObserver,\n scrollRef?: React.MutableRefObject<HTMLElement | null>,\n ) => {\n if (!scrollRef?.current) {\n return;\n }\n\n const containerSize =\n direction === 'vertical'\n ? scrollRef?.current.getBoundingClientRect().height\n : scrollRef?.current.getBoundingClientRect().width;\n\n /*\n * Number of items required to cover viewport.\n */\n const length = Math.ceil(containerSize / defaultItemSize + 1);\n\n /*\n * Number of items to append at each end, i.e. 'preload' each side before entering view.\n */\n const newBufferItems = Math.max(Math.floor(length / 4), 2);\n\n /*\n * This is how far we deviate into the bufferItems to detect a redraw.\n */\n const newBufferSize = Math.max(Math.floor((length / 8) * defaultItemSize), 1);\n\n const totalLength = length + newBufferItems * 2 + 1;\n\n setState({\n virtualizerLength: totalLength,\n bufferItems: newBufferItems,\n bufferSize: newBufferSize,\n });\n },\n [defaultItemSize, direction],\n );\n\n const scrollRef = useResizeObserverRef_unstable(resizeCallback);\n\n return {\n virtualizerLength,\n bufferItems,\n bufferSize,\n scrollRef,\n };\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,SAASC,6BAA6B,QAAQ;AAE9C;;;AAGA,OAAO,MAAMC,2BAAA,GACXC,gBAAA,IAMG;EACH,MAAM;IAAEC,eAAA;IAAiBC,SAAA,GAAY;EAAU,CAAE,GAAGF,gBAAA;EAEpD,MAAM,CAACG,KAAA,EAAOC,QAAA,CAAS,GAAGP,KAAA,CAAMQ,QAAQ,CAAC;IACvCC,iBAAA,EAAmB;IACnBC,UAAA,EAAY;IACZC,WAAA,EAAa;EACf;EAEA,MAAM;IAAEF,iBAAA;IAAmBE,WAAA;IAAaD;EAAU,CAAE,GAAGJ,KAAA;EAEvD,MAAMM,cAAA,GAAiBZ,KAAA,CAAMa,WAAW,CACtC,CACEC,QAAA,EACAC,SAAA,EACAC,SAAA,KACG;IACH,IAAI,EAACA,SAAA,aAAAA,SAAA,uBAAAA,SAAA,CAAWC,OAAO,CAAD,EAAG;MACvB;IACF;IAEA,MAAMC,aAAA,GACJb,SAAA,KAAc,aACVW,SAAA,aAAAA,SAAA,uBAAAA,SAAA,CAAWC,OAAO,CAACE,qBAAqB,GAAGC,MAAM,GACjDJ,SAAA,aAAAA,SAAA,uBAAAA,SAAA,CAAWC,OAAO,CAACE,qBAAqB,GAAGE,KAAK;IAEtD;;;IAGA,MAAMC,MAAA,GAASC,IAAA,CAAKC,IAAI,CAACN,aAAA,GAAgBd,eAAA,GAAkB;IAE3D;;;IAGA,MAAMqB,cAAA,GAAiBF,IAAA,CAAKG,GAAG,CAACH,IAAA,CAAKI,KAAK,CAACL,MAAA,GAAS,IAAI;IAExD;;;IAGA,MAAMM,aAAA,GAAgBL,IAAA,CAAKG,GAAG,CAACH,IAAA,CAAKI,KAAK,CAACL,MAAC,GAAS,IAAKlB,eAAA,GAAkB;IAE3E,MAAMyB,WAAA,GAAcP,MAAA,GAASG,cAAA,GAAiB,IAAI;IAElDlB,QAAA,CAAS;MACPE,iBAAA,EAAmBoB,WAAA;MACnBlB,WAAA,EAAac,cAAA;MACbf,UAAA,EAAYkB;IACd;EACF,GACA,CAACxB,eAAA,EAAiBC,SAAA,CAAU;EAG9B,MAAMW,SAAA,GAAYf,6BAAA,CAA8BW,cAAA;EAEhD,OAAO;IACLH,iBAAA;IACAE,WAAA;IACAD,UAAA;IACAM;EACF;AACF"}
package/lib/index.js CHANGED
@@ -1,3 +1,6 @@
1
1
  export { Virtualizer, virtualizerClassNames, useVirtualizer_unstable, renderVirtualizer_unstable, useVirtualizerStyles_unstable } from './Virtualizer';
2
- export { useIntersectionObserver } from './Hooks';
2
+ export { useIntersectionObserver, useStaticVirtualizerMeasure, useDynamicVirtualizerMeasure, useResizeObserverRef_unstable } from './Hooks';
3
+ export { VirtualizerContextProvider, useVirtualizerContext_unstable } from './Utilities';
4
+ export { VirtualizerScrollView, virtualizerScrollViewClassNames, useVirtualizerScrollView_unstable, renderVirtualizerScrollView_unstable, useVirtualizerScrollViewStyles_unstable } from './VirtualizerScrollView';
5
+ export { VirtualizerScrollViewDynamic, virtualizerScrollViewDynamicClassNames, useVirtualizerScrollViewDynamic_unstable, renderVirtualizerScrollViewDynamic_unstable, useVirtualizerScrollViewDynamicStyles_unstable } from './VirtualizerScrollViewDynamic';
3
6
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"mappings":"AAAA,SACEA,WAAW,EACXC,qBAAqB,EACrBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,6BAA6B,QACxB,eAAe;AAOtB,SAASC,uBAAuB,QAAQ,SAAS","names":["Virtualizer","virtualizerClassNames","useVirtualizer_unstable","renderVirtualizer_unstable","useVirtualizerStyles_unstable","useIntersectionObserver"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/index.ts"],"sourcesContent":["export {\n Virtualizer,\n virtualizerClassNames,\n useVirtualizer_unstable,\n renderVirtualizer_unstable,\n useVirtualizerStyles_unstable,\n} from './Virtualizer';\nexport type {\n VirtualizerProps,\n VirtualizerState,\n VirtualizerSlots,\n VirtualizerChildRenderFunction,\n} from './Virtualizer';\nexport { useIntersectionObserver } from './Hooks';\n"]}
1
+ {"version":3,"names":["Virtualizer","virtualizerClassNames","useVirtualizer_unstable","renderVirtualizer_unstable","useVirtualizerStyles_unstable","useIntersectionObserver","useStaticVirtualizerMeasure","useDynamicVirtualizerMeasure","useResizeObserverRef_unstable","VirtualizerContextProvider","useVirtualizerContext_unstable","VirtualizerScrollView","virtualizerScrollViewClassNames","useVirtualizerScrollView_unstable","renderVirtualizerScrollView_unstable","useVirtualizerScrollViewStyles_unstable","VirtualizerScrollViewDynamic","virtualizerScrollViewDynamicClassNames","useVirtualizerScrollViewDynamic_unstable","renderVirtualizerScrollViewDynamic_unstable","useVirtualizerScrollViewDynamicStyles_unstable"],"sources":["../src/index.ts"],"sourcesContent":["export {\n Virtualizer,\n virtualizerClassNames,\n useVirtualizer_unstable,\n renderVirtualizer_unstable,\n useVirtualizerStyles_unstable,\n} from './Virtualizer';\nexport type {\n VirtualizerProps,\n VirtualizerState,\n VirtualizerSlots,\n VirtualizerChildRenderFunction,\n} from './Virtualizer';\n\nexport {\n useIntersectionObserver,\n useStaticVirtualizerMeasure,\n useDynamicVirtualizerMeasure,\n useResizeObserverRef_unstable,\n} from './Hooks';\n\nexport type { ResizeCallbackWithRef, VirtualizerMeasureDynamicProps, VirtualizerMeasureProps } from './Hooks';\n\nexport { VirtualizerContextProvider, useVirtualizerContext_unstable } from './Utilities';\n\nexport type { VirtualizerContextProps } from './Utilities';\n\nexport {\n VirtualizerScrollView,\n virtualizerScrollViewClassNames,\n useVirtualizerScrollView_unstable,\n renderVirtualizerScrollView_unstable,\n useVirtualizerScrollViewStyles_unstable,\n} from './VirtualizerScrollView';\n\nexport type {\n VirtualizerScrollViewProps,\n VirtualizerScrollViewState,\n VirtualizerScrollViewSlots,\n} from './VirtualizerScrollView';\n\nexport {\n VirtualizerScrollViewDynamic,\n virtualizerScrollViewDynamicClassNames,\n useVirtualizerScrollViewDynamic_unstable,\n renderVirtualizerScrollViewDynamic_unstable,\n useVirtualizerScrollViewDynamicStyles_unstable,\n} from './VirtualizerScrollViewDynamic';\n\nexport type {\n VirtualizerScrollViewDynamicProps,\n VirtualizerScrollViewDynamicState,\n VirtualizerScrollViewDynamicSlots,\n} from './VirtualizerScrollViewDynamic';\n"],"mappings":"AAAA,SACEA,WAAW,EACXC,qBAAqB,EACrBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,6BAA6B,QACxB;AAQP,SACEC,uBAAuB,EACvBC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,6BAA6B,QACxB;AAIP,SAASC,0BAA0B,EAAEC,8BAA8B,QAAQ;AAI3E,SACEC,qBAAqB,EACrBC,+BAA+B,EAC/BC,iCAAiC,EACjCC,oCAAoC,EACpCC,uCAAuC,QAClC;AAQP,SACEC,4BAA4B,EAC5BC,sCAAsC,EACtCC,wCAAwC,EACxCC,2CAA2C,EAC3CC,8CAA8C,QACzC"}
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { useMemo, useState } from 'react';
3
+ const VirtualizerContext = /*#__PURE__*/React.createContext(undefined);
4
+ export const VirtualizerContextProvider = VirtualizerContext.Provider;
5
+ export const useVirtualizerContext_unstable = () => {
6
+ return React.useContext(VirtualizerContext);
7
+ };
8
+ export const useVirtualizerContextState_unstable = passedContext => {
9
+ const virtualizerContext = useVirtualizerContext_unstable();
10
+ const [_contextIndex, _setContextIndex] = useState(-1);
11
+ var _ref;
12
+ /* We respect any wrapped providers while also ensuring defaults or passed through
13
+ * Order of usage -> Passed Prop -> Provider Context -> Internal State default
14
+ */
15
+ const _context = useMemo(() => (_ref = passedContext !== null && passedContext !== void 0 ? passedContext : virtualizerContext) !== null && _ref !== void 0 ? _ref : {
16
+ contextIndex: _contextIndex,
17
+ setContextIndex: _setContextIndex
18
+ }, [_contextIndex, passedContext, virtualizerContext]);
19
+ const context = useMemo(() => {
20
+ return {
21
+ contextIndex: _context.contextIndex,
22
+ setContextIndex: _context.setContextIndex
23
+ };
24
+ }, [_context]);
25
+ return context;
26
+ };
27
+ //# sourceMappingURL=VirtualizerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","useState","VirtualizerContext","createContext","undefined","VirtualizerContextProvider","Provider","useVirtualizerContext_unstable","useContext","useVirtualizerContextState_unstable","passedContext","virtualizerContext","_contextIndex","_setContextIndex","_ref","_context","contextIndex","setContextIndex","context"],"sources":["../../../src/utilities/VirtualizerContext/VirtualizerContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { VirtualizerContextProps } from './types';\nimport { useMemo, useState } from 'react';\n\nconst VirtualizerContext = React.createContext<VirtualizerContextProps | undefined>(\n undefined,\n) as React.Context<VirtualizerContextProps>;\n\nexport const VirtualizerContextProvider = VirtualizerContext.Provider;\n\nexport const useVirtualizerContext_unstable = () => {\n return React.useContext(VirtualizerContext);\n};\n\nexport const useVirtualizerContextState_unstable = (\n passedContext?: VirtualizerContextProps,\n): VirtualizerContextProps => {\n const virtualizerContext = useVirtualizerContext_unstable();\n const [_contextIndex, _setContextIndex] = useState<number>(-1);\n\n /* We respect any wrapped providers while also ensuring defaults or passed through\n * Order of usage -> Passed Prop -> Provider Context -> Internal State default\n */\n const _context = useMemo(\n () => passedContext ?? virtualizerContext ?? { contextIndex: _contextIndex, setContextIndex: _setContextIndex },\n [_contextIndex, passedContext, virtualizerContext],\n );\n const context = useMemo(() => {\n return { contextIndex: _context.contextIndex, setContextIndex: _context.setContextIndex };\n }, [_context]);\n\n return context;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,SAASC,OAAO,EAAEC,QAAQ,QAAQ;AAElC,MAAMC,kBAAA,gBAAqBH,KAAA,CAAMI,aAAa,CAC5CC,SAAA;AAGF,OAAO,MAAMC,0BAAA,GAA6BH,kBAAA,CAAmBI,QAAQ;AAErE,OAAO,MAAMC,8BAAA,GAAiCA,CAAA,KAAM;EAClD,OAAOR,KAAA,CAAMS,UAAU,CAACN,kBAAA;AAC1B;AAEA,OAAO,MAAMO,mCAAA,GACXC,aAAA,IAC4B;EAC5B,MAAMC,kBAAA,GAAqBJ,8BAAA;EAC3B,MAAM,CAACK,aAAA,EAAeC,gBAAA,CAAiB,GAAGZ,QAAA,CAAiB,CAAC;MAMpDa,IAAA;EAJR;;;EAGA,MAAMC,QAAA,GAAWf,OAAA,CACf,MAAM,CAAAc,IAAA,GAAAJ,aAAA,aAAAA,aAAA,cAAAA,aAAA,GAAiBC,kBAAkB,cAAnCG,IAAA,cAAAA,IAAA,GAAuC;IAAEE,YAAA,EAAcJ,aAAA;IAAeK,eAAA,EAAiBJ;EAAiB,CAAC,EAC/G,CAACD,aAAA,EAAeF,aAAA,EAAeC,kBAAA,CAAmB;EAEpD,MAAMO,OAAA,GAAUlB,OAAA,CAAQ,MAAM;IAC5B,OAAO;MAAEgB,YAAA,EAAcD,QAAA,CAASC,YAAY;MAAEC,eAAA,EAAiBF,QAAA,CAASE;IAAgB;EAC1F,GAAG,CAACF,QAAA,CAAS;EAEb,OAAOG,OAAA;AACT"}
@@ -0,0 +1,3 @@
1
+ export * from './VirtualizerContext';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/utilities/VirtualizerContext/index.ts"],"sourcesContent":["export * from './VirtualizerContext';\nexport * from './types';\n"],"mappings":"AAAA,cAAc;AACd,cAAc"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * {@docCategory Virtualizer}
3
+ */export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/utilities/VirtualizerContext/types.ts"],"sourcesContent":["/**\n * {@docCategory Virtualizer}\n */\nexport type VirtualizerContextProps = {\n contextIndex: number;\n setContextIndex: (index: number) => void;\n};\n"],"mappings":"AAAA;;GAGA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Microtask debouncer
3
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide
4
+ * @param fn - Function to debounce
5
+ * @returns debounced function
6
+ */export function debounce(fn) {
7
+ let pending;
8
+ return () => {
9
+ if (!pending) {
10
+ pending = true;
11
+ queueMicrotask(() => {
12
+ // Need to set pending to `false` before the debounced function is run.
13
+ // React can actually interrupt the function while it's running!
14
+ pending = false;
15
+ fn();
16
+ });
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["debounce","fn","pending","queueMicrotask"],"sources":["../../src/utilities/debounce.ts"],"sourcesContent":["/**\n * Microtask debouncer\n * https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide\n * @param fn - Function to debounce\n * @returns debounced function\n */\nexport function debounce(fn: Function) {\n let pending: boolean;\n return () => {\n if (!pending) {\n pending = true;\n queueMicrotask(() => {\n // Need to set pending to `false` before the debounced function is run.\n // React can actually interrupt the function while it's running!\n pending = false;\n fn();\n });\n }\n };\n}\n"],"mappings":"AAAA;;;;;GAMA,OAAO,SAASA,SAASC,EAAY,EAAE;EACrC,IAAIC,OAAA;EACJ,OAAO,MAAM;IACX,IAAI,CAACA,OAAA,EAAS;MACZA,OAAA,GAAU,IAAI;MACdC,cAAA,CAAe,MAAM;QACnB;QACA;QACAD,OAAA,GAAU,KAAK;QACfD,EAAA;MACF;IACF;EACF;AACF"}
@@ -0,0 +1,2 @@
1
+ export * from './VirtualizerContext';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../src/utilities/index.ts"],"sourcesContent":["export * from './VirtualizerContext';\n"],"mappings":"AAAA,cAAc"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- const tslib_1 = /*#__PURE__*/require("tslib");
7
- tslib_1.__exportStar(require("./hooks/index"), exports);
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./hooks/index"), exports);
7
+ //# sourceMappingURL=Hooks.js.map
8
+
8
9
  //# sourceMappingURL=Hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AAAAA","names":["tslib_1"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/Hooks.ts"],"sourcesContent":["export * from './hooks/index';\n"]}
1
+ {"version":3,"sources":["../lib/Hooks.js"],"sourcesContent":["export * from './hooks/index';\n//# sourceMappingURL=Hooks.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,iCAAiC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./utilities/index"), exports);
7
+ //# sourceMappingURL=Utilities.js.map
8
+
9
+ //# sourceMappingURL=Utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/Utilities.js"],"sourcesContent":["export * from './utilities/index';\n//# sourceMappingURL=Utilities.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,qCAAqC"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- const tslib_1 = /*#__PURE__*/require("tslib");
7
- tslib_1.__exportStar(require("./components/Virtualizer/index"), exports);
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./components/Virtualizer/index"), exports);
7
+ //# sourceMappingURL=Virtualizer.js.map
8
+
8
9
  //# sourceMappingURL=Virtualizer.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AAAAA","names":["tslib_1"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/Virtualizer.ts"],"sourcesContent":["export * from './components/Virtualizer/index';\n"]}
1
+ {"version":3,"sources":["../lib/Virtualizer.js"],"sourcesContent":["export * from './components/Virtualizer/index';\n//# sourceMappingURL=Virtualizer.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,uCAAuC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./components/VirtualizerScrollView/index"), exports);
7
+ //# sourceMappingURL=VirtualizerScrollView.js.map
8
+
9
+ //# sourceMappingURL=VirtualizerScrollView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/VirtualizerScrollView.js"],"sourcesContent":["export * from './components/VirtualizerScrollView/index';\n//# sourceMappingURL=VirtualizerScrollView.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,iDAAiD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./components/VirtualizerScrollViewDynamic/index"), exports);
7
+ //# sourceMappingURL=VirtualizerScrollViewDynamic.js.map
8
+
9
+ //# sourceMappingURL=VirtualizerScrollViewDynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/VirtualizerScrollViewDynamic.js"],"sourcesContent":["export * from './components/VirtualizerScrollViewDynamic/index';\n//# sourceMappingURL=VirtualizerScrollViewDynamic.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,wDAAwD"}
@@ -1,22 +1,19 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Virtualizer", {
6
+ enumerable: true,
7
+ get: ()=>Virtualizer
5
8
  });
6
- exports.Virtualizer = void 0;
7
- const useVirtualizerStyles_1 = /*#__PURE__*/require("./useVirtualizerStyles");
8
- const useVirtualizer_1 = /*#__PURE__*/require("./useVirtualizer");
9
- const renderVirtualizer_1 = /*#__PURE__*/require("./renderVirtualizer");
10
- /**
11
- * Virtualizer pseudo-component, this functional wrapper
12
- * provides a simple interface for reducing the total number
13
- * of elements rendered at one time in large lists.
14
- */
15
- const Virtualizer = props => {
16
- const state = useVirtualizer_1.useVirtualizer_unstable(props);
17
- useVirtualizerStyles_1.useVirtualizerStyles_unstable(state);
18
- return renderVirtualizer_1.renderVirtualizer_unstable(state);
9
+ const _useVirtualizerStyles = require("./useVirtualizerStyles");
10
+ const _useVirtualizer = require("./useVirtualizer");
11
+ const _renderVirtualizer = require("./renderVirtualizer");
12
+ const Virtualizer = (props)=>{
13
+ const state = (0, _useVirtualizer.useVirtualizer_unstable)(props);
14
+ (0, _useVirtualizerStyles.useVirtualizerStyles_unstable)(state);
15
+ return (0, _renderVirtualizer.renderVirtualizer_unstable)(state);
19
16
  };
20
- exports.Virtualizer = Virtualizer;
21
- exports.Virtualizer.displayName = 'Virtualizer';
17
+ Virtualizer.displayName = 'Virtualizer'; //# sourceMappingURL=Virtualizer.js.map
18
+
22
19
  //# sourceMappingURL=Virtualizer.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AACA;AACA;AACA;AAGA;;;;;AAKO,MAAMA,WAAW,GAA0BC,KAAuB,IAAI;EAC3E,MAAMC,KAAK,GAAGC,wCAAuB,CAACF,KAAK,CAAC;EAC5CG,oDAA6B,CAACF,KAAK,CAAC;EAEpC,OAAOG,8CAA0B,CAACH,KAAK,CAAC;AAC1C,CAAC;AALYI,mBAAW;AAOxBA,mBAAW,CAACC,WAAW,GAAG,aAAa","names":["Virtualizer","props","state","useVirtualizer_1","useVirtualizerStyles_1","renderVirtualizer_1","exports","displayName"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/components/Virtualizer/Virtualizer.ts"],"sourcesContent":["import type { VirtualizerProps } from './Virtualizer.types';\nimport { useVirtualizerStyles_unstable } from './useVirtualizerStyles';\nimport { useVirtualizer_unstable } from './useVirtualizer';\nimport { renderVirtualizer_unstable } from './renderVirtualizer';\nimport type { FC } from 'react';\n\n/**\n * Virtualizer pseudo-component, this functional wrapper\n * provides a simple interface for reducing the total number\n * of elements rendered at one time in large lists.\n */\nexport const Virtualizer: FC<VirtualizerProps> = (props: VirtualizerProps) => {\n const state = useVirtualizer_unstable(props);\n useVirtualizerStyles_unstable(state);\n\n return renderVirtualizer_unstable(state);\n};\n\nVirtualizer.displayName = 'Virtualizer';\n"]}
1
+ {"version":3,"sources":["../../../lib/components/Virtualizer/Virtualizer.js"],"sourcesContent":["import { useVirtualizerStyles_unstable } from './useVirtualizerStyles';\nimport { useVirtualizer_unstable } from './useVirtualizer';\nimport { renderVirtualizer_unstable } from './renderVirtualizer';\n/**\n * Virtualizer pseudo-component, this functional wrapper\n * provides a simple interface for reducing the total number\n * of elements rendered at one time in large lists.\n */\nexport const Virtualizer = props => {\n const state = useVirtualizer_unstable(props);\n useVirtualizerStyles_unstable(state);\n return renderVirtualizer_unstable(state);\n};\nVirtualizer.displayName = 'Virtualizer';\n//# sourceMappingURL=Virtualizer.js.map"],"names":["Virtualizer","props","state","useVirtualizer_unstable","useVirtualizerStyles_unstable","renderVirtualizer_unstable","displayName"],"mappings":";;;;+BAQaA;;aAAAA;;sCARiC;gCACN;mCACG;AAMpC,MAAMA,cAAcC,CAAAA,QAAS;IAClC,MAAMC,QAAQC,IAAAA,uCAAuB,EAACF;IACtCG,IAAAA,mDAA6B,EAACF;IAC9B,OAAOG,IAAAA,6CAA0B,EAACH;AACpC;AACAF,YAAYM,WAAW,GAAG,eAC1B,uCAAuC"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
5
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
6
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
7
+ //# sourceMappingURL=Virtualizer.types.js.map
8
+
6
9
  //# sourceMappingURL=Virtualizer.types.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"","names":[],"sourceRoot":"../src/","sources":[],"sourcesContent":[]}
1
+ {"version":3,"sources":["../../../lib/components/Virtualizer/Virtualizer.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=Virtualizer.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,6CAA6C"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- const tslib_1 = /*#__PURE__*/require("tslib");
7
- tslib_1.__exportStar(require("./Virtualizer"), exports);
8
- tslib_1.__exportStar(require("./Virtualizer.types"), exports);
9
- tslib_1.__exportStar(require("./useVirtualizer"), exports);
10
- tslib_1.__exportStar(require("./renderVirtualizer"), exports);
11
- tslib_1.__exportStar(require("./useVirtualizerStyles"), exports);
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./Virtualizer"), exports);
7
+ _exportStar(require("./Virtualizer.types"), exports);
8
+ _exportStar(require("./useVirtualizer"), exports);
9
+ _exportStar(require("./renderVirtualizer"), exports);
10
+ _exportStar(require("./useVirtualizerStyles"), exports);
11
+ //# sourceMappingURL=index.js.map
12
+
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AAAAA;AACAA;AACAA;AACAA;AACAA","names":["tslib_1"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/components/Virtualizer/index.ts"],"sourcesContent":["export * from './Virtualizer';\nexport * from './Virtualizer.types';\nexport * from './useVirtualizer';\nexport * from './renderVirtualizer';\nexport * from './useVirtualizerStyles';\n"]}
1
+ {"version":3,"sources":["../../../lib/components/Virtualizer/index.js"],"sourcesContent":["export * from './Virtualizer';\nexport * from './Virtualizer.types';\nexport * from './useVirtualizer';\nexport * from './renderVirtualizer';\nexport * from './useVirtualizerStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}