@fluentui/react-virtualizer 9.0.0-alpha.84 → 9.0.0-alpha.85

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 (53) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/dist/index.d.ts +78 -5
  3. package/lib/components/Virtualizer/Virtualizer.types.js.map +1 -1
  4. package/lib/components/Virtualizer/useVirtualizer.js +208 -143
  5. package/lib/components/Virtualizer/useVirtualizer.js.map +1 -1
  6. package/lib/components/VirtualizerScrollView/useVirtualizerScrollView.js +3 -3
  7. package/lib/components/VirtualizerScrollView/useVirtualizerScrollView.js.map +1 -1
  8. package/lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js.map +1 -1
  9. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js +11 -9
  10. package/lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js.map +1 -1
  11. package/lib/hooks/hooks.types.js.map +1 -1
  12. package/lib/hooks/index.js +1 -0
  13. package/lib/hooks/index.js.map +1 -1
  14. package/lib/hooks/useDynamicVirtualizerMeasure.js +63 -45
  15. package/lib/hooks/useDynamicVirtualizerMeasure.js.map +1 -1
  16. package/lib/hooks/useMeasureList.js +14 -2
  17. package/lib/hooks/useMeasureList.js.map +1 -1
  18. package/lib/hooks/useResizeObserverRef.js +11 -1
  19. package/lib/hooks/useResizeObserverRef.js.map +1 -1
  20. package/lib/hooks/useVirtualizerMeasure.js +31 -15
  21. package/lib/hooks/useVirtualizerMeasure.js.map +1 -1
  22. package/lib/index.js +1 -1
  23. package/lib/index.js.map +1 -1
  24. package/lib/utilities/VirtualizerContext/VirtualizerContext.js +12 -14
  25. package/lib/utilities/VirtualizerContext/VirtualizerContext.js.map +1 -1
  26. package/lib/utilities/VirtualizerContext/types.js +1 -3
  27. package/lib/utilities/VirtualizerContext/types.js.map +1 -1
  28. package/lib-commonjs/components/Virtualizer/Virtualizer.types.js.map +1 -1
  29. package/lib-commonjs/components/Virtualizer/useVirtualizer.js +206 -141
  30. package/lib-commonjs/components/Virtualizer/useVirtualizer.js.map +1 -1
  31. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollView.js +3 -3
  32. package/lib-commonjs/components/VirtualizerScrollView/useVirtualizerScrollView.js.map +1 -1
  33. package/lib-commonjs/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js.map +1 -1
  34. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js +11 -9
  35. package/lib-commonjs/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js.map +1 -1
  36. package/lib-commonjs/hooks/hooks.types.js.map +1 -1
  37. package/lib-commonjs/hooks/index.js +1 -0
  38. package/lib-commonjs/hooks/index.js.map +1 -1
  39. package/lib-commonjs/hooks/useDynamicVirtualizerMeasure.js +62 -44
  40. package/lib-commonjs/hooks/useDynamicVirtualizerMeasure.js.map +1 -1
  41. package/lib-commonjs/hooks/useMeasureList.js +14 -2
  42. package/lib-commonjs/hooks/useMeasureList.js.map +1 -1
  43. package/lib-commonjs/hooks/useResizeObserverRef.js +11 -1
  44. package/lib-commonjs/hooks/useResizeObserverRef.js.map +1 -1
  45. package/lib-commonjs/hooks/useVirtualizerMeasure.js +31 -15
  46. package/lib-commonjs/hooks/useVirtualizerMeasure.js.map +1 -1
  47. package/lib-commonjs/index.js +3 -0
  48. package/lib-commonjs/index.js.map +1 -1
  49. package/lib-commonjs/utilities/VirtualizerContext/VirtualizerContext.js +11 -13
  50. package/lib-commonjs/utilities/VirtualizerContext/VirtualizerContext.js.map +1 -1
  51. package/lib-commonjs/utilities/VirtualizerContext/types.js +3 -3
  52. package/lib-commonjs/utilities/VirtualizerContext/types.js.map +1 -1
  53. package/package.json +1 -1
@@ -11,44 +11,60 @@ Object.defineProperty(exports, "useStaticVirtualizerMeasure", {
11
11
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
12
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _useResizeObserverRef = require("./useResizeObserverRef");
14
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
14
15
  const useStaticVirtualizerMeasure = (virtualizerProps)=>{
15
- const { defaultItemSize, direction = 'vertical' } = virtualizerProps;
16
+ const { defaultItemSize, direction = 'vertical', bufferItems, bufferSize } = virtualizerProps;
16
17
  const [state, setState] = _react.useState({
17
18
  virtualizerLength: 0,
18
- bufferSize: 0,
19
- bufferItems: 0
19
+ _bufferSize: 0,
20
+ _bufferItems: 0
20
21
  });
21
- const { virtualizerLength, bufferItems, bufferSize } = state;
22
+ const containerSizeRef = _react.useRef(0);
23
+ const { targetDocument } = (0, _reactsharedcontexts.useFluent_unstable)();
24
+ const { virtualizerLength, _bufferItems, _bufferSize } = state;
22
25
  const resizeCallback = _react.useCallback((_entries, // eslint-disable-next-line no-restricted-globals
23
26
  _observer, scrollRef)=>{
24
27
  if (!(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
25
28
  return;
26
29
  }
27
- 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;
30
+ if (scrollRef.current !== (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.body)) {
31
+ // We have a local scroll container
32
+ containerSizeRef.current = direction === 'vertical' ? scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current.getBoundingClientRect().height : scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current.getBoundingClientRect().width;
33
+ } else if (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) {
34
+ var _targetDocument_defaultView, _targetDocument_defaultView1;
35
+ // If our scroll ref is the document body, we should check window height
36
+ containerSizeRef.current = direction === 'vertical' ? targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.innerHeight : targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.innerWidth;
37
+ }
28
38
  /*
29
39
  * Number of items required to cover viewport.
30
- */ const length = Math.ceil(containerSize / defaultItemSize + 1);
40
+ */ const length = Math.ceil(containerSizeRef.current / defaultItemSize + 1);
31
41
  /*
32
42
  * Number of items to append at each end, i.e. 'preload' each side before entering view.
33
- */ const newBufferItems = Math.max(Math.floor(length / 4), 2);
43
+ * Minimum: 1
44
+ */ const newBufferItems = bufferItems !== null && bufferItems !== void 0 ? bufferItems : Math.max(Math.ceil(length / 4), 1);
34
45
  /*
35
46
  * This is how far we deviate into the bufferItems to detect a redraw.
36
- */ const newBufferSize = Math.max(Math.floor(length / 8 * defaultItemSize), 1);
37
- const totalLength = length + newBufferItems * 2 + 1;
47
+ */ const newBufferSize = bufferSize !== null && bufferSize !== void 0 ? bufferSize : Math.max(defaultItemSize / 2.0, 1);
48
+ const totalLength = length + newBufferItems * 2;
38
49
  setState({
39
50
  virtualizerLength: totalLength,
40
- bufferItems: newBufferItems,
41
- bufferSize: newBufferSize
51
+ _bufferItems: newBufferItems,
52
+ _bufferSize: newBufferSize
42
53
  });
43
54
  }, [
55
+ bufferItems,
56
+ bufferSize,
44
57
  defaultItemSize,
45
- direction
58
+ direction,
59
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.body,
60
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView
46
61
  ]);
47
62
  const scrollRef = (0, _useResizeObserverRef.useResizeObserverRef_unstable)(resizeCallback);
48
63
  return {
49
64
  virtualizerLength,
50
- bufferItems,
51
- bufferSize,
52
- scrollRef
65
+ bufferItems: _bufferItems,
66
+ bufferSize: _bufferSize,
67
+ scrollRef,
68
+ containerSizeRef
53
69
  };
54
70
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["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 // TODO: exclude types from this lint rule: https://github.com/microsoft/fluentui/issues/31286\n // eslint-disable-next-line no-restricted-globals\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"],"names":["useStaticVirtualizerMeasure","virtualizerProps","defaultItemSize","direction","state","setState","React","useState","virtualizerLength","bufferSize","bufferItems","resizeCallback","useCallback","_entries","_observer","scrollRef","current","containerSize","getBoundingClientRect","height","width","length","Math","ceil","newBufferItems","max","floor","newBufferSize","totalLength","useResizeObserverRef_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAOaA;;;eAAAA;;;;iEAPU;sCAEuB;AAKvC,MAAMA,8BAA8B,CACzCC;IAOA,MAAM,EAAEC,eAAe,EAAEC,YAAY,UAAU,EAAE,GAAGF;IAEpD,MAAM,CAACG,OAAOC,SAAS,GAAGC,OAAMC,QAAQ,CAAC;QACvCC,mBAAmB;QACnBC,YAAY;QACZC,aAAa;IACf;IAEA,MAAM,EAAEF,iBAAiB,EAAEE,WAAW,EAAED,UAAU,EAAE,GAAGL;IAEvD,MAAMO,iBAAiBL,OAAMM,WAAW,CACtC,CACEC,UAEA,iDAAiD;IACjDC,WACAC;QAEA,IAAI,CAACA,CAAAA,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,AAAPA,GAAS;YACvB;QACF;QAEA,MAAMC,gBACJd,cAAc,aACVY,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,CAACE,qBAAqB,GAAGC,MAAM,GACjDJ,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,CAACE,qBAAqB,GAAGE,KAAK;QAEtD;;OAEC,GACD,MAAMC,SAASC,KAAKC,IAAI,CAACN,gBAAgBf,kBAAkB;QAE3D;;OAEC,GACD,MAAMsB,iBAAiBF,KAAKG,GAAG,CAACH,KAAKI,KAAK,CAACL,SAAS,IAAI;QAExD;;OAEC,GACD,MAAMM,gBAAgBL,KAAKG,GAAG,CAACH,KAAKI,KAAK,CAACL,SAAU,IAAKnB,kBAAkB;QAE3E,MAAM0B,cAAcP,SAASG,iBAAiB,IAAI;QAElDnB,SAAS;YACPG,mBAAmBoB;YACnBlB,aAAac;YACbf,YAAYkB;QACd;IACF,GACA;QAACzB;QAAiBC;KAAU;IAG9B,MAAMY,YAAYc,IAAAA,mDAAAA,EAA8BlB;IAEhD,OAAO;QACLH;QACAE;QACAD;QACAM;IACF;AACF"}
1
+ {"version":3,"sources":["useVirtualizerMeasure.ts"],"sourcesContent":["import * as React from 'react';\nimport { VirtualizerMeasureProps } from './hooks.types';\nimport { useResizeObserverRef_unstable } from './useResizeObserverRef';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\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 containerSizeRef: React.MutableRefObject<number>;\n} => {\n const { defaultItemSize, direction = 'vertical', bufferItems, bufferSize } = virtualizerProps;\n\n const [state, setState] = React.useState({\n virtualizerLength: 0,\n _bufferSize: 0,\n _bufferItems: 0,\n });\n\n const containerSizeRef = React.useRef<number>(0);\n const { targetDocument } = useFluent();\n\n const { virtualizerLength, _bufferItems, _bufferSize } = state;\n\n const resizeCallback = React.useCallback(\n (\n _entries: ResizeObserverEntry[],\n // TODO: exclude types from this lint rule: https://github.com/microsoft/fluentui/issues/31286\n // eslint-disable-next-line no-restricted-globals\n _observer: ResizeObserver,\n scrollRef?: React.MutableRefObject<HTMLElement | null>,\n ) => {\n if (!scrollRef?.current) {\n return;\n }\n\n if (scrollRef.current !== targetDocument?.body) {\n // We have a local scroll container\n containerSizeRef.current =\n direction === 'vertical'\n ? scrollRef?.current.getBoundingClientRect().height\n : scrollRef?.current.getBoundingClientRect().width;\n } else if (targetDocument?.defaultView) {\n // If our scroll ref is the document body, we should check window height\n containerSizeRef.current =\n direction === 'vertical' ? targetDocument?.defaultView?.innerHeight : targetDocument?.defaultView?.innerWidth;\n }\n /*\n * Number of items required to cover viewport.\n */\n const length = Math.ceil(containerSizeRef.current / defaultItemSize + 1);\n\n /*\n * Number of items to append at each end, i.e. 'preload' each side before entering view.\n * Minimum: 1\n */\n const newBufferItems = bufferItems ?? Math.max(Math.ceil(length / 4), 1);\n\n /*\n * This is how far we deviate into the bufferItems to detect a redraw.\n */\n const newBufferSize = bufferSize ?? Math.max(defaultItemSize / 2.0, 1);\n\n const totalLength = length + newBufferItems * 2;\n\n setState({\n virtualizerLength: totalLength,\n _bufferItems: newBufferItems,\n _bufferSize: newBufferSize,\n });\n },\n [bufferItems, bufferSize, defaultItemSize, direction, targetDocument?.body, targetDocument?.defaultView],\n );\n\n const scrollRef = useResizeObserverRef_unstable(resizeCallback);\n\n return {\n virtualizerLength,\n bufferItems: _bufferItems,\n bufferSize: _bufferSize,\n scrollRef,\n containerSizeRef,\n };\n};\n"],"names":["useStaticVirtualizerMeasure","virtualizerProps","defaultItemSize","direction","bufferItems","bufferSize","state","setState","React","useState","virtualizerLength","_bufferSize","_bufferItems","containerSizeRef","useRef","targetDocument","useFluent","resizeCallback","useCallback","_entries","_observer","scrollRef","current","body","getBoundingClientRect","height","width","defaultView","innerHeight","innerWidth","length","Math","ceil","newBufferItems","max","newBufferSize","totalLength","useResizeObserverRef_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAQaA;;;eAAAA;;;;iEARU;sCAEuB;qCACE;AAKzC,MAAMA,8BAA8B,CACzCC;IAQA,MAAM,EAAEC,eAAe,EAAEC,YAAY,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGJ;IAE7E,MAAM,CAACK,OAAOC,SAAS,GAAGC,OAAMC,QAAQ,CAAC;QACvCC,mBAAmB;QACnBC,aAAa;QACbC,cAAc;IAChB;IAEA,MAAMC,mBAAmBL,OAAMM,MAAM,CAAS;IAC9C,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAE3B,MAAM,EAAEN,iBAAiB,EAAEE,YAAY,EAAED,WAAW,EAAE,GAAGL;IAEzD,MAAMW,iBAAiBT,OAAMU,WAAW,CACtC,CACEC,UAEA,iDAAiD;IACjDC,WACAC;QAEA,IAAI,CAACA,CAAAA,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,AAAPA,GAAS;YACvB;QACF;QAEA,IAAID,UAAUC,OAAO,KAAKP,CAAAA,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBQ,IAAI,AAAJA,GAAM;YAC9C,mCAAmC;YACnCV,iBAAiBS,OAAO,GACtBnB,cAAc,aACVkB,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,CAACE,qBAAqB,GAAGC,MAAM,GACjDJ,cAAAA,QAAAA,cAAAA,KAAAA,IAAAA,KAAAA,IAAAA,UAAWC,OAAO,CAACE,qBAAqB,GAAGE,KAAK;QACxD,OAAO,IAAIX,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBY,WAAW,EAAE;gBAGTZ,6BAA2CA;YAFxE,wEAAwE;YACxEF,iBAAiBS,OAAO,GACtBnB,cAAc,aAAaY,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,8BAAAA,eAAgBY,WAAW,AAAXA,MAAW,QAA3BZ,gCAAAA,KAAAA,IAAAA,KAAAA,IAAAA,4BAA6Ba,WAAW,GAAGb,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,+BAAAA,eAAgBY,WAAW,AAAXA,MAAW,QAA3BZ,iCAAAA,KAAAA,IAAAA,KAAAA,IAAAA,6BAA6Bc,UAAU;QACjH;QACA;;OAEC,GACD,MAAMC,SAASC,KAAKC,IAAI,CAACnB,iBAAiBS,OAAO,GAAGpB,kBAAkB;QAEtE;;;OAGC,GACD,MAAM+B,iBAAiB7B,gBAAAA,QAAAA,gBAAAA,KAAAA,IAAAA,cAAe2B,KAAKG,GAAG,CAACH,KAAKC,IAAI,CAACF,SAAS,IAAI;QAEtE;;OAEC,GACD,MAAMK,gBAAgB9B,eAAAA,QAAAA,eAAAA,KAAAA,IAAAA,aAAc0B,KAAKG,GAAG,CAAChC,kBAAkB,KAAK;QAEpE,MAAMkC,cAAcN,SAASG,iBAAiB;QAE9C1B,SAAS;YACPG,mBAAmB0B;YACnBxB,cAAcqB;YACdtB,aAAawB;QACf;IACF,GACA;QAAC/B;QAAaC;QAAYH;QAAiBC;QAAWY,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBQ,IAAI;QAAER,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBY,WAAW;KAAC;IAG1G,MAAMN,YAAYgB,IAAAA,mDAAAA,EAA8BpB;IAEhD,OAAO;QACLP;QACAN,aAAaQ;QACbP,YAAYM;QACZU;QACAR;IACF;AACF"}
@@ -42,6 +42,9 @@ _export(exports, {
42
42
  useIntersectionObserver: function() {
43
43
  return _Hooks.useIntersectionObserver;
44
44
  },
45
+ useMeasureList: function() {
46
+ return _Hooks.useMeasureList;
47
+ },
45
48
  useResizeObserverRef_unstable: function() {
46
49
  return _Hooks.useResizeObserverRef_unstable;
47
50
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export {\n Virtualizer,\n virtualizerClassNames,\n useVirtualizer_unstable,\n renderVirtualizer_unstable,\n useVirtualizerStyles_unstable,\n} from './Virtualizer';\n\nexport type {\n VirtualizerProps,\n VirtualizerState,\n VirtualizerSlots,\n VirtualizerChildRenderFunction,\n VirtualizerDataRef,\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 type { ScrollToItemDynamicParams, ScrollToItemStaticParams, ScrollToInterface } from './Utilities';\n\nexport {\n VirtualizerContextProvider,\n useVirtualizerContext_unstable,\n scrollToItemStatic,\n scrollToItemDynamic,\n} 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"],"names":["Virtualizer","VirtualizerContextProvider","VirtualizerScrollView","VirtualizerScrollViewDynamic","renderVirtualizerScrollViewDynamic_unstable","renderVirtualizerScrollView_unstable","renderVirtualizer_unstable","scrollToItemDynamic","scrollToItemStatic","useDynamicVirtualizerMeasure","useIntersectionObserver","useResizeObserverRef_unstable","useStaticVirtualizerMeasure","useVirtualizerContext_unstable","useVirtualizerScrollViewDynamicStyles_unstable","useVirtualizerScrollViewDynamic_unstable","useVirtualizerScrollViewStyles_unstable","useVirtualizerScrollView_unstable","useVirtualizerStyles_unstable","useVirtualizer_unstable","virtualizerClassNames","virtualizerScrollViewClassNames","virtualizerScrollViewDynamicClassNames"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IACEA,WAAW;eAAXA,wBAAW;;IA2BXC,0BAA0B;eAA1BA,qCAA0B;;IAS1BC,qBAAqB;eAArBA,4CAAqB;;IAcrBC,4BAA4B;eAA5BA,0DAA4B;;IAG5BC,2CAA2C;eAA3CA,yEAA2C;;IAd3CC,oCAAoC;eAApCA,2DAAoC;;IApCpCC,0BAA0B;eAA1BA,uCAA0B;;IA2B1BC,mBAAmB;eAAnBA,8BAAmB;;IADnBC,kBAAkB;eAAlBA,6BAAkB;;IAXlBC,4BAA4B;eAA5BA,mCAA4B;;IAF5BC,uBAAuB;eAAvBA,8BAAuB;;IAGvBC,6BAA6B;eAA7BA,oCAA6B;;IAF7BC,2BAA2B;eAA3BA,kCAA2B;;IAW3BC,8BAA8B;eAA9BA,yCAA8B;;IA0B9BC,8CAA8C;eAA9CA,4EAA8C;;IAF9CC,wCAAwC;eAAxCA,sEAAwC;;IAZxCC,uCAAuC;eAAvCA,8DAAuC;;IAFvCC,iCAAiC;eAAjCA,wDAAiC;;IAlCjCC,6BAA6B;eAA7BA,0CAA6B;;IAF7BC,uBAAuB;eAAvBA,oCAAuB;;IADvBC,qBAAqB;eAArBA,kCAAqB;;IAoCrBC,+BAA+B;eAA/BA,sDAA+B;;IAc/BC,sCAAsC;eAAtCA,oEAAsC;;;6BA9CjC;uBAeA;2BAWA;uCAUA;8CAcA"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export {\n Virtualizer,\n virtualizerClassNames,\n useVirtualizer_unstable,\n renderVirtualizer_unstable,\n useVirtualizerStyles_unstable,\n} from './Virtualizer';\n\nexport type {\n VirtualizerProps,\n VirtualizerState,\n VirtualizerSlots,\n VirtualizerChildRenderFunction,\n VirtualizerDataRef,\n} from './Virtualizer';\n\nexport {\n useIntersectionObserver,\n useStaticVirtualizerMeasure,\n useDynamicVirtualizerMeasure,\n useResizeObserverRef_unstable,\n useMeasureList,\n} from './Hooks';\n\nexport type {\n ResizeCallbackWithRef,\n VirtualizerMeasureDynamicProps,\n VirtualizerMeasureProps,\n IndexedResizeCallbackElement,\n} from './Hooks';\n\nexport type { ScrollToItemDynamicParams, ScrollToItemStaticParams, ScrollToInterface } from './Utilities';\n\nexport {\n VirtualizerContextProvider,\n useVirtualizerContext_unstable,\n scrollToItemStatic,\n scrollToItemDynamic,\n} from './Utilities';\n\nexport type { VirtualizerContextProps, DynamicVirtualizerContextProps } 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"],"names":["Virtualizer","VirtualizerContextProvider","VirtualizerScrollView","VirtualizerScrollViewDynamic","renderVirtualizerScrollViewDynamic_unstable","renderVirtualizerScrollView_unstable","renderVirtualizer_unstable","scrollToItemDynamic","scrollToItemStatic","useDynamicVirtualizerMeasure","useIntersectionObserver","useMeasureList","useResizeObserverRef_unstable","useStaticVirtualizerMeasure","useVirtualizerContext_unstable","useVirtualizerScrollViewDynamicStyles_unstable","useVirtualizerScrollViewDynamic_unstable","useVirtualizerScrollViewStyles_unstable","useVirtualizerScrollView_unstable","useVirtualizerStyles_unstable","useVirtualizer_unstable","virtualizerClassNames","virtualizerScrollViewClassNames","virtualizerScrollViewDynamicClassNames"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IACEA,WAAW;eAAXA,wBAAW;;IAiCXC,0BAA0B;eAA1BA,qCAA0B;;IAS1BC,qBAAqB;eAArBA,4CAAqB;;IAcrBC,4BAA4B;eAA5BA,0DAA4B;;IAG5BC,2CAA2C;eAA3CA,yEAA2C;;IAd3CC,oCAAoC;eAApCA,2DAAoC;;IA1CpCC,0BAA0B;eAA1BA,uCAA0B;;IAiC1BC,mBAAmB;eAAnBA,8BAAmB;;IADnBC,kBAAkB;eAAlBA,6BAAkB;;IAjBlBC,4BAA4B;eAA5BA,mCAA4B;;IAF5BC,uBAAuB;eAAvBA,8BAAuB;;IAIvBC,cAAc;eAAdA,qBAAc;;IADdC,6BAA6B;eAA7BA,oCAA6B;;IAF7BC,2BAA2B;eAA3BA,kCAA2B;;IAiB3BC,8BAA8B;eAA9BA,yCAA8B;;IA0B9BC,8CAA8C;eAA9CA,4EAA8C;;IAF9CC,wCAAwC;eAAxCA,sEAAwC;;IAZxCC,uCAAuC;eAAvCA,8DAAuC;;IAFvCC,iCAAiC;eAAjCA,wDAAiC;;IAxCjCC,6BAA6B;eAA7BA,0CAA6B;;IAF7BC,uBAAuB;eAAvBA,oCAAuB;;IADvBC,qBAAqB;eAArBA,kCAAqB;;IA0CrBC,+BAA+B;eAA/BA,sDAA+B;;IAc/BC,sCAAsC;eAAtCA,oEAAsC;;;6BApDjC;uBAgBA;2BAgBA;uCAUA;8CAcA"}
@@ -29,26 +29,24 @@ const useVirtualizerContext_unstable = ()=>{
29
29
  const useVirtualizerContextState_unstable = (passedContext)=>{
30
30
  const virtualizerContext = useVirtualizerContext_unstable();
31
31
  const [_contextIndex, _setContextIndex] = (0, _react.useState)(-1);
32
+ const [_contextPosition, _setContextPosition] = (0, _react.useState)(0);
33
+ const childProgressiveSizes = (0, _react.useRef)([]);
32
34
  /* We respect any wrapped providers while also ensuring defaults or passed through
33
35
  * Order of usage -> Passed Prop -> Provider Context -> Internal State default
34
- */ const _context = (0, _react.useMemo)(()=>{
35
- var _ref;
36
- return (_ref = passedContext !== null && passedContext !== void 0 ? passedContext : virtualizerContext) !== null && _ref !== void 0 ? _ref : {
37
- contextIndex: _contextIndex,
38
- setContextIndex: _setContextIndex
36
+ */ const context = (0, _react.useMemo)(()=>{
37
+ var _passedContext_contextIndex, _ref, _passedContext_setContextIndex, _ref1, _passedContext_contextPosition, _ref2, _passedContext_setContextPosition, _ref3;
38
+ return {
39
+ contextIndex: (_ref = (_passedContext_contextIndex = passedContext === null || passedContext === void 0 ? void 0 : passedContext.contextIndex) !== null && _passedContext_contextIndex !== void 0 ? _passedContext_contextIndex : virtualizerContext === null || virtualizerContext === void 0 ? void 0 : virtualizerContext.contextIndex) !== null && _ref !== void 0 ? _ref : _contextIndex,
40
+ setContextIndex: (_ref1 = (_passedContext_setContextIndex = passedContext === null || passedContext === void 0 ? void 0 : passedContext.setContextIndex) !== null && _passedContext_setContextIndex !== void 0 ? _passedContext_setContextIndex : virtualizerContext === null || virtualizerContext === void 0 ? void 0 : virtualizerContext.setContextIndex) !== null && _ref1 !== void 0 ? _ref1 : _setContextIndex,
41
+ contextPosition: (_ref2 = (_passedContext_contextPosition = passedContext === null || passedContext === void 0 ? void 0 : passedContext.contextPosition) !== null && _passedContext_contextPosition !== void 0 ? _passedContext_contextPosition : virtualizerContext === null || virtualizerContext === void 0 ? void 0 : virtualizerContext.contextPosition) !== null && _ref2 !== void 0 ? _ref2 : _contextPosition,
42
+ setContextPosition: (_ref3 = (_passedContext_setContextPosition = passedContext === null || passedContext === void 0 ? void 0 : passedContext.setContextPosition) !== null && _passedContext_setContextPosition !== void 0 ? _passedContext_setContextPosition : virtualizerContext === null || virtualizerContext === void 0 ? void 0 : virtualizerContext.setContextPosition) !== null && _ref3 !== void 0 ? _ref3 : _setContextPosition,
43
+ childProgressiveSizes
39
44
  };
40
45
  }, [
41
46
  _contextIndex,
47
+ _contextPosition,
42
48
  passedContext,
43
49
  virtualizerContext
44
50
  ]);
45
- const context = (0, _react.useMemo)(()=>{
46
- return {
47
- contextIndex: _context.contextIndex,
48
- setContextIndex: _context.setContextIndex
49
- };
50
- }, [
51
- _context
52
- ]);
53
51
  return context;
54
52
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["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"],"names":["VirtualizerContextProvider","useVirtualizerContextState_unstable","useVirtualizerContext_unstable","VirtualizerContext","React","createContext","undefined","Provider","useContext","passedContext","virtualizerContext","_contextIndex","_setContextIndex","useState","_context","useMemo","contextIndex","setContextIndex","context"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAQaA,0BAAAA;eAAAA;;IAMAC,mCAAAA;eAAAA;;IAJAC,8BAAAA;eAAAA;;;;iEAVU;AAIvB,MAAMC,mCAAqBC,OAAMC,aAAa,CAC5CC;AAGK,MAAMN,6BAA6BG,mBAAmBI,QAAQ;AAE9D,MAAML,iCAAiC;IAC5C,OAAOE,OAAMI,UAAU,CAACL;AAC1B;AAEO,MAAMF,sCAAsC,CACjDQ;IAEA,MAAMC,qBAAqBR;IAC3B,MAAM,CAACS,eAAeC,iBAAiB,GAAGC,IAAAA,eAAAA,EAAiB,CAAC;IAE5D;;GAEC,GACD,MAAMC,WAAWC,IAAAA,cAAAA,EACf;YAAMN;eAAAA,CAAAA,OAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,gBAAiBC,kBAAAA,MAAAA,QAAjBD,SAAAA,KAAAA,IAAAA,OAAuC;YAAEO,cAAcL;YAAeM,iBAAiBL;QAAiB;IAAA,GAC9G;QAACD;QAAeF;QAAeC;KAAmB;IAEpD,MAAMQ,UAAUH,IAAAA,cAAAA,EAAQ;QACtB,OAAO;YAAEC,cAAcF,SAASE,YAAY;YAAEC,iBAAiBH,SAASG,eAAe;QAAC;IAC1F,GAAG;QAACH;KAAS;IAEb,OAAOI;AACT"}
1
+ {"version":3,"sources":["VirtualizerContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { DynamicVirtualizerContextProps, VirtualizerContextProps } from './types';\nimport { useMemo, useState, useRef } 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): DynamicVirtualizerContextProps => {\n const virtualizerContext = useVirtualizerContext_unstable();\n const [_contextIndex, _setContextIndex] = useState<number>(-1);\n const [_contextPosition, _setContextPosition] = useState<number>(0);\n const childProgressiveSizes = useRef<number[]>([]);\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 () => ({\n contextIndex: passedContext?.contextIndex ?? virtualizerContext?.contextIndex ?? _contextIndex,\n setContextIndex: passedContext?.setContextIndex ?? virtualizerContext?.setContextIndex ?? _setContextIndex,\n contextPosition: passedContext?.contextPosition ?? virtualizerContext?.contextPosition ?? _contextPosition,\n setContextPosition:\n passedContext?.setContextPosition ?? virtualizerContext?.setContextPosition ?? _setContextPosition,\n childProgressiveSizes,\n }),\n [_contextIndex, _contextPosition, passedContext, virtualizerContext],\n );\n\n return context;\n};\n"],"names":["VirtualizerContextProvider","useVirtualizerContextState_unstable","useVirtualizerContext_unstable","VirtualizerContext","React","createContext","undefined","Provider","useContext","passedContext","virtualizerContext","_contextIndex","_setContextIndex","useState","_contextPosition","_setContextPosition","childProgressiveSizes","useRef","context","useMemo","contextIndex","setContextIndex","contextPosition","setContextPosition"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAQaA,0BAAAA;eAAAA;;IAMAC,mCAAAA;eAAAA;;IAJAC,8BAAAA;eAAAA;;;;iEAVU;AAIvB,MAAMC,mCAAqBC,OAAMC,aAAa,CAC5CC;AAGK,MAAMN,6BAA6BG,mBAAmBI,QAAQ;AAE9D,MAAML,iCAAiC;IAC5C,OAAOE,OAAMI,UAAU,CAACL;AAC1B;AAEO,MAAMF,sCAAsC,CACjDQ;IAEA,MAAMC,qBAAqBR;IAC3B,MAAM,CAACS,eAAeC,iBAAiB,GAAGC,IAAAA,eAAAA,EAAiB,CAAC;IAC5D,MAAM,CAACC,kBAAkBC,oBAAoB,GAAGF,IAAAA,eAAAA,EAAiB;IACjE,MAAMG,wBAAwBC,IAAAA,aAAAA,EAAiB,EAAE;IAEjD;;GAEC,GACD,MAAMC,UAAUC,IAAAA,cAAAA,EACd;YACgBV,6BAAAA,MACGA,gCAAAA,OACAA,gCAAAA,OAEfA,mCAAAA;eALG;YACLW,cAAcX,CAAAA,OAAAA,CAAAA,8BAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeW,YAAY,AAAZA,MAAY,QAA3BX,gCAAAA,KAAAA,IAAAA,8BAA+BC,uBAAAA,QAAAA,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAoBU,YAAY,AAAZA,MAAY,QAA/DX,SAAAA,KAAAA,IAAAA,OAAmEE;YACjFU,iBAAiBZ,CAAAA,QAAAA,CAAAA,iCAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeY,eAAe,AAAfA,MAAe,QAA9BZ,mCAAAA,KAAAA,IAAAA,iCAAkCC,uBAAAA,QAAAA,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAoBW,eAAe,AAAfA,MAAe,QAArEZ,UAAAA,KAAAA,IAAAA,QAAyEG;YAC1FU,iBAAiBb,CAAAA,QAAAA,CAAAA,iCAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAea,eAAe,AAAfA,MAAe,QAA9Bb,mCAAAA,KAAAA,IAAAA,iCAAkCC,uBAAAA,QAAAA,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAoBY,eAAe,AAAfA,MAAe,QAArEb,UAAAA,KAAAA,IAAAA,QAAyEK;YAC1FS,oBACEd,CAAAA,QAAAA,CAAAA,oCAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAec,kBAAkB,AAAlBA,MAAkB,QAAjCd,sCAAAA,KAAAA,IAAAA,oCAAqCC,uBAAAA,QAAAA,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAoBa,kBAAkB,AAAlBA,MAAkB,QAA3Ed,UAAAA,KAAAA,IAAAA,QAA+EM;YACjFC;QACF;IAAA,GACA;QAACL;QAAeG;QAAkBL;QAAeC;KAAmB;IAGtE,OAAOQ;AACT"}
@@ -1,6 +1,6 @@
1
- /**
2
- * {@docCategory Virtualizer}
3
- */ "use strict";
1
+ "use strict";
4
2
  Object.defineProperty(exports, "__esModule", {
5
3
  value: true
6
4
  });
5
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
6
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
@@ -1 +1 @@
1
- {"version":3,"sources":["types.ts"],"sourcesContent":["/**\n * {@docCategory Virtualizer}\n */\nexport type VirtualizerContextProps = {\n contextIndex: number;\n setContextIndex: (index: number) => void;\n};\n"],"names":[],"rangeMappings":";;","mappings":"AAAA;;CAEC"}
1
+ {"version":3,"sources":["types.ts"],"sourcesContent":["import * as React from 'react';\n/**\n * {@docCategory Virtualizer}\n */\nexport type VirtualizerContextProps = {\n contextIndex: number;\n setContextIndex: (index: number) => void;\n /*\n * These option props are used in dynamic virtualizer\n */\n contextPosition?: number;\n setContextPosition?: (index: number) => void;\n childProgressiveSizes?: React.MutableRefObject<number[]>;\n};\n\n/**\n * Some props are optional on static virtualizer, but required for dynamic.\n */\nexport type DynamicVirtualizerContextProps = Required<VirtualizerContextProps>;\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-virtualizer",
3
- "version": "9.0.0-alpha.84",
3
+ "version": "9.0.0-alpha.85",
4
4
  "description": "Generic and composable virtualizer framework built on browser intersection observer",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",