@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 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollView/useVirtualizerScrollViewStyles.js"],"sourcesContent":["import { useVirtualizerStyles_unstable, virtualizerClassNames } from '../Virtualizer/useVirtualizerStyles';\nimport { __styles, mergeClasses } from '@griffel/react';\nconst virtualizerScrollViewClassName = 'fui-Virtualizer-Scroll-View';\nexport const virtualizerScrollViewClassNames = {\n ...virtualizerClassNames,\n container: `${virtualizerScrollViewClassName}__container`\n};\nconst useStyles = /*#__PURE__*/__styles({\n base: {\n mc9l5x: \"f22iagw\",\n a9b677: \"fly5x3f\",\n Bqenvij: \"f1l02sjl\",\n Eiaeu8: \"f1115ve7\"\n },\n vertical: {\n Beiy3e4: \"f1vx9l62\",\n Eiaeu8: \"f1115ve7\",\n Bmxbyg5: \"f5zp4f\"\n },\n horizontal: {\n Beiy3e4: \"f1063pyq\",\n B68tc82: \"f1oy3dpc\"\n },\n verticalReversed: {\n Beiy3e4: \"f1gkdon0\",\n Bmxbyg5: \"f5zp4f\"\n },\n horizontalReversed: {\n Beiy3e4: \"f1oztnx0\",\n B68tc82: \"f1oy3dpc\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".fly5x3f{width:100%;}\", \".f1l02sjl{height:100%;}\", \".f1115ve7{overflow-anchor:none;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f5zp4f{overflow-y:auto;}\", \".f1063pyq{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}\", \".f1oy3dpc{overflow-x:auto;}\", \".f1gkdon0{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}\", \".f1oztnx0{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}\"]\n});\n/**\n * Apply styling to the Virtualizer states\n */\nexport const useVirtualizerScrollViewStyles_unstable = state => {\n const styles = useStyles();\n // Default virtualizer styles base\n useVirtualizerStyles_unstable(state);\n const containerStyle = state.axis === 'horizontal' ? state.reversed ? styles.horizontalReversed : styles.horizontal : state.reversed ? styles.verticalReversed : styles.vertical;\n // Add container styles\n state.container.className = mergeClasses(virtualizerScrollViewClassNames.container, styles.base, containerStyle, state.container.className);\n return state;\n};\n//# sourceMappingURL=useVirtualizerScrollViewStyles.js.map"],"names":["virtualizerScrollViewClassNames","useVirtualizerScrollViewStyles_unstable","virtualizerScrollViewClassName","virtualizerClassNames","container","useStyles","__styles","base","mc9l5x","a9b677","Bqenvij","Eiaeu8","vertical","Beiy3e4","Bmxbyg5","horizontal","B68tc82","verticalReversed","horizontalReversed","d","state","styles","useVirtualizerStyles_unstable","containerStyle","axis","reversed","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,+BAA+B,MAA/BA;IAkCAC,uCAAuC,MAAvCA;;sCArCwD;uBAC9B;AACvC,MAAMC,iCAAiC;AAChC,MAAMF,kCAAkC;IAC7C,GAAGG,2CAAqB;IACxBC,WAAW,CAAC,EAAEF,+BAA+B,WAAW,CAAC;AAC3D;AACA,MAAMG,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCC,MAAM;QACJC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,QAAQ;IACV;IACAC,UAAU;QACRC,SAAS;QACTF,QAAQ;QACRG,SAAS;IACX;IACAC,YAAY;QACVF,SAAS;QACTG,SAAS;IACX;IACAC,kBAAkB;QAChBJ,SAAS;QACTC,SAAS;IACX;IACAI,oBAAoB;QAClBL,SAAS;QACTG,SAAS;IACX;AACF,GAAG;IACDG,GAAG;QAAC;QAAwF;QAAyB;QAA2B;QAAoC;QAA6F;QAA6B;QAAoF;QAA+B;QAAqH;KAA2G;AACnoB;AAIO,MAAMlB,0CAA0CmB,CAAAA,QAAS;IAC9D,MAAMC,SAAShB;IACf,kCAAkC;IAClCiB,IAAAA,mDAA6B,EAACF;IAC9B,MAAMG,iBAAiBH,MAAMI,IAAI,KAAK,eAAeJ,MAAMK,QAAQ,GAAGJ,OAAOH,kBAAkB,GAAGG,OAAON,UAAU,GAAGK,MAAMK,QAAQ,GAAGJ,OAAOJ,gBAAgB,GAAGI,OAAOT,QAAQ;IAChL,uBAAuB;IACvBQ,MAAMhB,SAAS,CAACsB,SAAS,GAAGC,IAAAA,mBAAY,EAAC3B,gCAAgCI,SAAS,EAAEiB,OAAOd,IAAI,EAAEgB,gBAAgBH,MAAMhB,SAAS,CAACsB,SAAS;IAC1I,OAAON;AACT,GACA,0DAA0D"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "VirtualizerScrollViewDynamic", {
6
+ enumerable: true,
7
+ get: ()=>VirtualizerScrollViewDynamic
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _useVirtualizerScrollViewDynamic = require("./useVirtualizerScrollViewDynamic");
11
+ const _renderVirtualizerScrollViewDynamic = require("./renderVirtualizerScrollViewDynamic");
12
+ const _useVirtualizerScrollViewDynamicStyles = require("./useVirtualizerScrollViewDynamicStyles");
13
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
14
+ const VirtualizerScrollViewDynamic = (props, context)=>{
15
+ const state = (0, _useVirtualizerScrollViewDynamic.useVirtualizerScrollViewDynamic_unstable)(props);
16
+ (0, _useVirtualizerScrollViewDynamicStyles.useVirtualizerScrollViewDynamicStyles_unstable)(state);
17
+ return (0, _renderVirtualizerScrollViewDynamic.renderVirtualizerScrollViewDynamic_unstable)(state);
18
+ };
19
+ VirtualizerScrollViewDynamic.displayName = 'VirtualizerScrollViewDynamic'; //# sourceMappingURL=VirtualizerScrollViewDynamic.js.map
20
+
21
+ //# sourceMappingURL=VirtualizerScrollViewDynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.js"],"sourcesContent":["import { useVirtualizerScrollViewDynamic_unstable } from './useVirtualizerScrollViewDynamic';\nimport { renderVirtualizerScrollViewDynamic_unstable } from './renderVirtualizerScrollViewDynamic';\nimport { useVirtualizerScrollViewDynamicStyles_unstable } from './useVirtualizerScrollViewDynamicStyles';\nimport * as React from 'react';\n/**\n * Virtualizer ScrollView\n */\nexport const VirtualizerScrollViewDynamic = (props, context) => {\n const state = useVirtualizerScrollViewDynamic_unstable(props);\n useVirtualizerScrollViewDynamicStyles_unstable(state);\n return renderVirtualizerScrollViewDynamic_unstable(state);\n};\nVirtualizerScrollViewDynamic.displayName = 'VirtualizerScrollViewDynamic';\n//# sourceMappingURL=VirtualizerScrollViewDynamic.js.map"],"names":["VirtualizerScrollViewDynamic","props","context","state","useVirtualizerScrollViewDynamic_unstable","useVirtualizerScrollViewDynamicStyles_unstable","renderVirtualizerScrollViewDynamic_unstable","displayName"],"mappings":";;;;+BAOaA;;aAAAA;;;iDAP4C;oDACG;uDACG;6DACxC;AAIhB,MAAMA,+BAA+B,CAACC,OAAOC,UAAY;IAC9D,MAAMC,QAAQC,IAAAA,yEAAwC,EAACH;IACvDI,IAAAA,qFAA8C,EAACF;IAC/C,OAAOG,IAAAA,+EAA2C,EAACH;AACrD;AACAH,6BAA6BO,WAAW,GAAG,gCAC3C,wDAAwD"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ //# sourceMappingURL=VirtualizerScrollViewDynamic.types.js.map
6
+
7
+ //# sourceMappingURL=VirtualizerScrollViewDynamic.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/VirtualizerScrollViewDynamic.types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=VirtualizerScrollViewDynamic.types.js.map"],"names":[],"mappings":";;;;CACA,8DAA8D"}
@@ -0,0 +1,13 @@
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("./VirtualizerScrollViewDynamic"), exports);
7
+ _exportStar(require("./VirtualizerScrollViewDynamic.types"), exports);
8
+ _exportStar(require("./useVirtualizerScrollViewDynamic"), exports);
9
+ _exportStar(require("./renderVirtualizerScrollViewDynamic"), exports);
10
+ _exportStar(require("./useVirtualizerScrollViewDynamicStyles"), exports);
11
+ //# sourceMappingURL=index.js.map
12
+
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/index.js"],"sourcesContent":["export * from './VirtualizerScrollViewDynamic';\nexport * from './VirtualizerScrollViewDynamic.types';\nexport * from './useVirtualizerScrollViewDynamic';\nexport * from './renderVirtualizerScrollViewDynamic';\nexport * from './useVirtualizerScrollViewDynamicStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
@@ -0,0 +1,17 @@
1
+ /** @jsxRuntime classic */ /** @jsx createElement */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "renderVirtualizerScrollViewDynamic_unstable", {
6
+ enumerable: true,
7
+ get: ()=>renderVirtualizerScrollViewDynamic_unstable
8
+ });
9
+ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _renderVirtualizer = require("../Virtualizer/renderVirtualizer");
12
+ const renderVirtualizerScrollViewDynamic_unstable = (state)=>{
13
+ const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
14
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.container, slotProps.container, (0, _renderVirtualizer.renderVirtualizer_unstable)(state));
15
+ }; //# sourceMappingURL=renderVirtualizerScrollViewDynamic.js.map
16
+
17
+ //# sourceMappingURL=renderVirtualizerScrollViewDynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/renderVirtualizerScrollViewDynamic.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { renderVirtualizer_unstable } from '../Virtualizer/renderVirtualizer';\nexport const renderVirtualizerScrollViewDynamic_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlotsNext(state);\n return /*#__PURE__*/createElement(slots.container, slotProps.container, renderVirtualizer_unstable(state));\n};\n//# sourceMappingURL=renderVirtualizerScrollViewDynamic.js.map"],"names":["renderVirtualizerScrollViewDynamic_unstable","state","slots","slotProps","getSlotsNext","createElement","container","renderVirtualizer_unstable"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAGrCA;;aAAAA;;iCAHqE;gCACrD;mCACc;AACpC,MAAMA,8CAA8CC,CAAAA,QAAS;IAClE,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,4BAAY,EAACH;IACjB,OAAO,WAAW,GAAEI,IAAAA,8BAAa,EAACH,MAAMI,SAAS,EAAEH,UAAUG,SAAS,EAAEC,IAAAA,6CAA0B,EAACN;AACrG,GACA,8DAA8D"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useVirtualizerScrollViewDynamic_unstable", {
6
+ enumerable: true,
7
+ get: ()=>useVirtualizerScrollViewDynamic_unstable
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _reactUtilities = require("@fluentui/react-utilities");
12
+ const _useVirtualizer = require("../Virtualizer/useVirtualizer");
13
+ const _hooks = require("../../Hooks");
14
+ const _utilities = require("../../Utilities");
15
+ function useVirtualizerScrollViewDynamic_unstable(props) {
16
+ const contextState = (0, _utilities.useVirtualizerContextState_unstable)(props.virtualizerContext);
17
+ var _props_axis, _contextState_contextIndex;
18
+ const { virtualizerLength , bufferItems , bufferSize , scrollRef } = (0, _hooks.useDynamicVirtualizerMeasure)({
19
+ defaultItemSize: props.itemSize,
20
+ direction: (_props_axis = props.axis) !== null && _props_axis !== void 0 ? _props_axis : 'vertical',
21
+ getItemSize: props.getItemSize,
22
+ currentIndex: (_contextState_contextIndex = contextState === null || contextState === void 0 ? void 0 : contextState.contextIndex) !== null && _contextState_contextIndex !== void 0 ? _contextState_contextIndex : 0,
23
+ numItems: props.numItems
24
+ });
25
+ const iScrollRef = (0, _reactUtilities.useMergedRefs)(_react.useRef(null), scrollRef);
26
+ const virtualizerState = (0, _useVirtualizer.useVirtualizer_unstable)({
27
+ ...props,
28
+ virtualizerLength,
29
+ bufferItems,
30
+ bufferSize,
31
+ scrollViewRef: iScrollRef,
32
+ virtualizerContext: contextState
33
+ });
34
+ return {
35
+ ...virtualizerState,
36
+ components: {
37
+ ...virtualizerState.components,
38
+ container: 'div'
39
+ },
40
+ container: (0, _reactUtilities.resolveShorthand)(props.container, {
41
+ required: true,
42
+ defaultProps: {
43
+ ref: iScrollRef
44
+ }
45
+ })
46
+ };
47
+ } //# sourceMappingURL=useVirtualizerScrollViewDynamic.js.map
48
+
49
+ //# sourceMappingURL=useVirtualizerScrollViewDynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamic.js"],"sourcesContent":["import * as React from 'react';\nimport { resolveShorthand, useMergedRefs } from '@fluentui/react-utilities';\nimport { useVirtualizer_unstable } from '../Virtualizer/useVirtualizer';\nimport { useDynamicVirtualizerMeasure } from '../../Hooks';\nimport { useVirtualizerContextState_unstable } from '../../Utilities';\nexport function useVirtualizerScrollViewDynamic_unstable(props) {\n const contextState = useVirtualizerContextState_unstable(props.virtualizerContext);\n var _props_axis, _contextState_contextIndex;\n const {\n virtualizerLength,\n bufferItems,\n bufferSize,\n scrollRef\n } = useDynamicVirtualizerMeasure({\n defaultItemSize: props.itemSize,\n direction: (_props_axis = props.axis) !== null && _props_axis !== void 0 ? _props_axis : 'vertical',\n getItemSize: props.getItemSize,\n currentIndex: (_contextState_contextIndex = contextState === null || contextState === void 0 ? void 0 : contextState.contextIndex) !== null && _contextState_contextIndex !== void 0 ? _contextState_contextIndex : 0,\n numItems: props.numItems\n });\n const iScrollRef = useMergedRefs(React.useRef(null), scrollRef);\n const virtualizerState = useVirtualizer_unstable({\n ...props,\n virtualizerLength,\n bufferItems,\n bufferSize,\n scrollViewRef: iScrollRef,\n virtualizerContext: contextState\n });\n return {\n ...virtualizerState,\n components: {\n ...virtualizerState.components,\n container: 'div'\n },\n container: resolveShorthand(props.container, {\n required: true,\n defaultProps: {\n ref: iScrollRef\n }\n })\n };\n}\n//# sourceMappingURL=useVirtualizerScrollViewDynamic.js.map"],"names":["useVirtualizerScrollViewDynamic_unstable","props","contextState","useVirtualizerContextState_unstable","virtualizerContext","_props_axis","_contextState_contextIndex","virtualizerLength","bufferItems","bufferSize","scrollRef","useDynamicVirtualizerMeasure","defaultItemSize","itemSize","direction","axis","getItemSize","currentIndex","contextIndex","numItems","iScrollRef","useMergedRefs","React","useRef","virtualizerState","useVirtualizer_unstable","scrollViewRef","components","container","resolveShorthand","required","defaultProps","ref"],"mappings":";;;;+BAKgBA;;aAAAA;;;6DALO;gCACyB;gCACR;uBACK;2BACO;AAC7C,SAASA,yCAAyCC,KAAK,EAAE;IAC9D,MAAMC,eAAeC,IAAAA,8CAAmC,EAACF,MAAMG,kBAAkB;IACjF,IAAIC,aAAaC;IACjB,MAAM,EACJC,kBAAiB,EACjBC,YAAW,EACXC,WAAU,EACVC,UAAS,EACV,GAAGC,IAAAA,mCAA4B,EAAC;QAC/BC,iBAAiBX,MAAMY,QAAQ;QAC/BC,WAAW,AAACT,CAAAA,cAAcJ,MAAMc,IAAI,AAAD,MAAO,IAAI,IAAIV,gBAAgB,KAAK,IAAIA,cAAc,UAAU;QACnGW,aAAaf,MAAMe,WAAW;QAC9BC,cAAc,AAACX,CAAAA,6BAA6BJ,iBAAiB,IAAI,IAAIA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAagB,YAAY,AAAD,MAAO,IAAI,IAAIZ,+BAA+B,KAAK,IAAIA,6BAA6B,CAAC;QACrNa,UAAUlB,MAAMkB,QAAQ;IAC1B;IACA,MAAMC,aAAaC,IAAAA,6BAAa,EAACC,OAAMC,MAAM,CAAC,IAAI,GAAGb;IACrD,MAAMc,mBAAmBC,IAAAA,uCAAuB,EAAC;QAC/C,GAAGxB,KAAK;QACRM;QACAC;QACAC;QACAiB,eAAeN;QACfhB,oBAAoBF;IACtB;IACA,OAAO;QACL,GAAGsB,gBAAgB;QACnBG,YAAY;YACV,GAAGH,iBAAiBG,UAAU;YAC9BC,WAAW;QACb;QACAA,WAAWC,IAAAA,gCAAgB,EAAC5B,MAAM2B,SAAS,EAAE;YAC3CE,UAAU,IAAI;YACdC,cAAc;gBACZC,KAAKZ;YACP;QACF;IACF;AACF,EACA,2DAA2D"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ virtualizerScrollViewDynamicClassNames: ()=>virtualizerScrollViewDynamicClassNames,
13
+ useVirtualizerScrollViewDynamicStyles_unstable: ()=>useVirtualizerScrollViewDynamicStyles_unstable
14
+ });
15
+ const _useVirtualizerStyles = require("../Virtualizer/useVirtualizerStyles");
16
+ const _react = require("@griffel/react");
17
+ const virtualizerScrollViewDynamicClassName = 'fui-Virtualizer-Scroll-View-Dynamic';
18
+ const virtualizerScrollViewDynamicClassNames = {
19
+ ..._useVirtualizerStyles.virtualizerClassNames,
20
+ container: `${virtualizerScrollViewDynamicClassName}__container`
21
+ };
22
+ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
23
+ base: {
24
+ mc9l5x: "f22iagw",
25
+ a9b677: "fly5x3f",
26
+ Bqenvij: "f1l02sjl",
27
+ Eiaeu8: "f1115ve7"
28
+ },
29
+ vertical: {
30
+ Beiy3e4: "f1vx9l62",
31
+ Bmxbyg5: "f5zp4f"
32
+ },
33
+ horizontal: {
34
+ Beiy3e4: "f1063pyq",
35
+ B68tc82: "f1oy3dpc"
36
+ },
37
+ verticalReversed: {
38
+ Beiy3e4: "f1gkdon0",
39
+ Bmxbyg5: "f5zp4f"
40
+ },
41
+ horizontalReversed: {
42
+ Beiy3e4: "f1oztnx0",
43
+ B68tc82: "f1oy3dpc"
44
+ }
45
+ }, {
46
+ d: [
47
+ ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
48
+ ".fly5x3f{width:100%;}",
49
+ ".f1l02sjl{height:100%;}",
50
+ ".f1115ve7{overflow-anchor:none;}",
51
+ ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
52
+ ".f5zp4f{overflow-y:auto;}",
53
+ ".f1063pyq{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}",
54
+ ".f1oy3dpc{overflow-x:auto;}",
55
+ ".f1gkdon0{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}",
56
+ ".f1oztnx0{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}"
57
+ ]
58
+ });
59
+ const useVirtualizerScrollViewDynamicStyles_unstable = (state)=>{
60
+ const styles = useStyles();
61
+ // Default virtualizer styles base
62
+ (0, _useVirtualizerStyles.useVirtualizerStyles_unstable)(state);
63
+ const containerStyle = state.axis === 'horizontal' ? state.reversed ? styles.horizontalReversed : styles.horizontal : state.reversed ? styles.verticalReversed : styles.vertical;
64
+ // Add container styles
65
+ state.container.className = (0, _react.mergeClasses)(virtualizerScrollViewDynamicClassNames.container, styles.base, containerStyle, state.container.className);
66
+ return state;
67
+ }; //# sourceMappingURL=useVirtualizerScrollViewDynamicStyles.js.map
68
+
69
+ //# sourceMappingURL=useVirtualizerScrollViewDynamicStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../lib/components/VirtualizerScrollViewDynamic/useVirtualizerScrollViewDynamicStyles.js"],"sourcesContent":["import { useVirtualizerStyles_unstable, virtualizerClassNames } from '../Virtualizer/useVirtualizerStyles';\nimport { __styles, mergeClasses } from '@griffel/react';\nconst virtualizerScrollViewDynamicClassName = 'fui-Virtualizer-Scroll-View-Dynamic';\nexport const virtualizerScrollViewDynamicClassNames = {\n ...virtualizerClassNames,\n container: `${virtualizerScrollViewDynamicClassName}__container`\n};\nconst useStyles = /*#__PURE__*/__styles({\n base: {\n mc9l5x: \"f22iagw\",\n a9b677: \"fly5x3f\",\n Bqenvij: \"f1l02sjl\",\n Eiaeu8: \"f1115ve7\"\n },\n vertical: {\n Beiy3e4: \"f1vx9l62\",\n Bmxbyg5: \"f5zp4f\"\n },\n horizontal: {\n Beiy3e4: \"f1063pyq\",\n B68tc82: \"f1oy3dpc\"\n },\n verticalReversed: {\n Beiy3e4: \"f1gkdon0\",\n Bmxbyg5: \"f5zp4f\"\n },\n horizontalReversed: {\n Beiy3e4: \"f1oztnx0\",\n B68tc82: \"f1oy3dpc\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".fly5x3f{width:100%;}\", \".f1l02sjl{height:100%;}\", \".f1115ve7{overflow-anchor:none;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f5zp4f{overflow-y:auto;}\", \".f1063pyq{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}\", \".f1oy3dpc{overflow-x:auto;}\", \".f1gkdon0{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}\", \".f1oztnx0{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}\"]\n});\n/**\n * Apply styling to the Virtualizer states\n */\nexport const useVirtualizerScrollViewDynamicStyles_unstable = state => {\n const styles = useStyles();\n // Default virtualizer styles base\n useVirtualizerStyles_unstable(state);\n const containerStyle = state.axis === 'horizontal' ? state.reversed ? styles.horizontalReversed : styles.horizontal : state.reversed ? styles.verticalReversed : styles.vertical;\n // Add container styles\n state.container.className = mergeClasses(virtualizerScrollViewDynamicClassNames.container, styles.base, containerStyle, state.container.className);\n return state;\n};\n//# sourceMappingURL=useVirtualizerScrollViewDynamicStyles.js.map"],"names":["virtualizerScrollViewDynamicClassNames","useVirtualizerScrollViewDynamicStyles_unstable","virtualizerScrollViewDynamicClassName","virtualizerClassNames","container","useStyles","__styles","base","mc9l5x","a9b677","Bqenvij","Eiaeu8","vertical","Beiy3e4","Bmxbyg5","horizontal","B68tc82","verticalReversed","horizontalReversed","d","state","styles","useVirtualizerStyles_unstable","containerStyle","axis","reversed","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,sCAAsC,MAAtCA;IAiCAC,8CAA8C,MAA9CA;;sCApCwD;uBAC9B;AACvC,MAAMC,wCAAwC;AACvC,MAAMF,yCAAyC;IACpD,GAAGG,2CAAqB;IACxBC,WAAW,CAAC,EAAEF,sCAAsC,WAAW,CAAC;AAClE;AACA,MAAMG,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCC,MAAM;QACJC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,QAAQ;IACV;IACAC,UAAU;QACRC,SAAS;QACTC,SAAS;IACX;IACAC,YAAY;QACVF,SAAS;QACTG,SAAS;IACX;IACAC,kBAAkB;QAChBJ,SAAS;QACTC,SAAS;IACX;IACAI,oBAAoB;QAClBL,SAAS;QACTG,SAAS;IACX;AACF,GAAG;IACDG,GAAG;QAAC;QAAwF;QAAyB;QAA2B;QAAoC;QAA6F;QAA6B;QAAoF;QAA+B;QAAqH;KAA2G;AACnoB;AAIO,MAAMlB,iDAAiDmB,CAAAA,QAAS;IACrE,MAAMC,SAAShB;IACf,kCAAkC;IAClCiB,IAAAA,mDAA6B,EAACF;IAC9B,MAAMG,iBAAiBH,MAAMI,IAAI,KAAK,eAAeJ,MAAMK,QAAQ,GAAGJ,OAAOH,kBAAkB,GAAGG,OAAON,UAAU,GAAGK,MAAMK,QAAQ,GAAGJ,OAAOJ,gBAAgB,GAAGI,OAAOT,QAAQ;IAChL,uBAAuB;IACvBQ,MAAMhB,SAAS,CAACsB,SAAS,GAAGC,IAAAA,mBAAY,EAAC3B,uCAAuCI,SAAS,EAAEiB,OAAOd,IAAI,EAAEgB,gBAAgBH,MAAMhB,SAAS,CAACsB,SAAS;IACjJ,OAAON;AACT,GACA,iEAAiE"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ //# sourceMappingURL=hooks.types.js.map
6
+
7
+ //# sourceMappingURL=hooks.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../lib/hooks/hooks.types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=hooks.types.js.map"],"names":[],"mappings":";;;;CACA,uCAAuC"}
@@ -1,8 +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("./useIntersectionObserver"), exports);
5
+ const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
+ _exportStar(require("./useIntersectionObserver"), exports);
7
+ _exportStar(require("./useVirtualizerMeasure"), exports);
8
+ _exportStar(require("./useDynamicVirtualizerMeasure"), exports);
9
+ _exportStar(require("./useResizeObserverRef"), exports);
10
+ _exportStar(require("./hooks.types"), exports);
11
+ //# sourceMappingURL=index.js.map
12
+
8
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AAAAA","names":["tslib_1"],"sourceRoot":"../src/","sources":["packages/react-components/react-virtualizer/src/hooks/index.ts"],"sourcesContent":["export * from './useIntersectionObserver';\n"]}
1
+ {"version":3,"sources":["../../lib/hooks/index.js"],"sourcesContent":["export * from './useIntersectionObserver';\nexport * from './useVirtualizerMeasure';\nexport * from './useDynamicVirtualizerMeasure';\nexport * from './useResizeObserverRef';\nexport * from './hooks.types';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useDynamicVirtualizerMeasure", {
6
+ enumerable: true,
7
+ get: ()=>useDynamicVirtualizerMeasure
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _reactUtilities = require("@fluentui/react-utilities");
11
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
12
+ const _useResizeObserverRef = require("./useResizeObserverRef");
13
+ const useDynamicVirtualizerMeasure = (virtualizerProps)=>{
14
+ const { defaultItemSize , direction ='vertical' , numItems , getItemSize , currentIndex } = virtualizerProps;
15
+ const indexRef = (0, _react.useRef)(currentIndex);
16
+ indexRef.current = currentIndex;
17
+ const [state, setState] = _react.useState({
18
+ virtualizerLength: 0,
19
+ virtualizerBufferItems: 0,
20
+ virtualizerBufferSize: 0
21
+ });
22
+ const { virtualizerLength , virtualizerBufferItems , virtualizerBufferSize } = state;
23
+ const container = _react.useRef(null);
24
+ const handleScrollResize = _react.useCallback((scrollRef)=>{
25
+ if (!(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
26
+ // Error? ignore?
27
+ return;
28
+ }
29
+ if (scrollRef.current !== container.current) {
30
+ container.current = scrollRef.current;
31
+ }
32
+ const containerSize = direction === 'vertical' ? scrollRef.current.getBoundingClientRect().height : scrollRef.current.getBoundingClientRect().width;
33
+ let indexSizer = 0;
34
+ let length = 0;
35
+ while(indexSizer <= containerSize && length < numItems){
36
+ const iItemSize = getItemSize(indexRef.current + length);
37
+ // Increment
38
+ indexSizer += iItemSize;
39
+ length++;
40
+ }
41
+ /*
42
+ * Number of items to append at each end, i.e. 'preload' each side before entering view.
43
+ */ const bufferItems = Math.max(Math.floor(length / 4), 2);
44
+ /*
45
+ * This is how far we deviate into the bufferItems to detect a redraw.
46
+ */ const bufferSize = Math.max(Math.floor(length / 8 * defaultItemSize), 1);
47
+ const totalLength = length + bufferItems * 2 + 3;
48
+ setState({
49
+ virtualizerLength: totalLength,
50
+ virtualizerBufferSize: bufferSize,
51
+ virtualizerBufferItems: bufferItems
52
+ });
53
+ }, [
54
+ defaultItemSize,
55
+ direction,
56
+ getItemSize,
57
+ numItems
58
+ ]);
59
+ const resizeCallback = _react.useCallback((_entries, _observer, scrollRef)=>{
60
+ if (scrollRef) {
61
+ handleScrollResize(scrollRef);
62
+ }
63
+ }, [
64
+ handleScrollResize
65
+ ]);
66
+ const scrollRef = (0, _useResizeObserverRef.useResizeObserverRef_unstable)(resizeCallback);
67
+ (0, _reactUtilities.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
+ }, [
92
+ getItemSize,
93
+ currentIndex,
94
+ direction,
95
+ virtualizerLength,
96
+ resizeCallback,
97
+ handleScrollResize
98
+ ]);
99
+ return {
100
+ virtualizerLength,
101
+ bufferItems: virtualizerBufferItems,
102
+ bufferSize: virtualizerBufferSize,
103
+ scrollRef
104
+ };
105
+ }; //# sourceMappingURL=useDynamicVirtualizerMeasure.js.map
106
+
107
+ //# sourceMappingURL=useDynamicVirtualizerMeasure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../lib/hooks/useDynamicVirtualizerMeasure.js"],"sourcesContent":["import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useResizeObserverRef_unstable } from './useResizeObserverRef';\nimport { useRef } from 'react';\n/**\n * React hook that measures virtualized space dynamically to ensure optimized virtualization length.\n */\nexport const useDynamicVirtualizerMeasure = virtualizerProps => {\n const {\n defaultItemSize,\n direction = 'vertical',\n numItems,\n getItemSize,\n currentIndex\n } = virtualizerProps;\n const indexRef = useRef(currentIndex);\n indexRef.current = currentIndex;\n const [state, setState] = React.useState({\n virtualizerLength: 0,\n virtualizerBufferItems: 0,\n virtualizerBufferSize: 0\n });\n const {\n virtualizerLength,\n virtualizerBufferItems,\n virtualizerBufferSize\n } = state;\n const container = React.useRef(null);\n const handleScrollResize = React.useCallback(scrollRef => {\n if (!(scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {\n // Error? ignore?\n return;\n }\n if (scrollRef.current !== container.current) {\n container.current = scrollRef.current;\n }\n const containerSize = direction === 'vertical' ? scrollRef.current.getBoundingClientRect().height : scrollRef.current.getBoundingClientRect().width;\n let indexSizer = 0;\n let length = 0;\n while (indexSizer <= containerSize && length < numItems) {\n const iItemSize = getItemSize(indexRef.current + length);\n // Increment\n indexSizer += iItemSize;\n length++;\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 * 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 const totalLength = length + bufferItems * 2 + 3;\n setState({\n virtualizerLength: totalLength,\n virtualizerBufferSize: bufferSize,\n virtualizerBufferItems: bufferItems\n });\n }, [defaultItemSize, direction, getItemSize, numItems]);\n const resizeCallback = React.useCallback((_entries, _observer, scrollRef) => {\n if (scrollRef) {\n handleScrollResize(scrollRef);\n }\n }, [handleScrollResize]);\n const scrollRef = useResizeObserverRef_unstable(resizeCallback);\n useIsomorphicLayoutEffect(() => {\n var _container_current, _container_current1;\n if (!container.current) {\n return;\n }\n 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;\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 const newLength = i - currentIndex;\n const bufferItems = Math.max(Math.floor(newLength / 4), 2);\n const totalNewLength = newLength + bufferItems * 2 + 4;\n const compareLengths = totalNewLength < virtualizerLength;\n if (recheckTotal > containerSize && compareLengths) {\n couldBeSmaller = true;\n break;\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 return {\n virtualizerLength,\n bufferItems: virtualizerBufferItems,\n bufferSize: virtualizerBufferSize,\n scrollRef\n };\n};\n//# sourceMappingURL=useDynamicVirtualizerMeasure.js.map"],"names":["useDynamicVirtualizerMeasure","virtualizerProps","defaultItemSize","direction","numItems","getItemSize","currentIndex","indexRef","useRef","current","state","setState","React","useState","virtualizerLength","virtualizerBufferItems","virtualizerBufferSize","container","handleScrollResize","useCallback","scrollRef","containerSize","getBoundingClientRect","height","width","indexSizer","length","iItemSize","bufferItems","Math","max","floor","bufferSize","totalLength","resizeCallback","_entries","_observer","useResizeObserverRef_unstable","useIsomorphicLayoutEffect","_container_current","_container_current1","couldBeSmaller","recheckTotal","i","newItemSize","newLength","totalNewLength","compareLengths"],"mappings":";;;;+BAOaA;;aAAAA;;;gCAP6B;6DACnB;sCACuB;AAKvC,MAAMA,+BAA+BC,CAAAA,mBAAoB;IAC9D,MAAM,EACJC,gBAAe,EACfC,WAAY,WAAU,EACtBC,SAAQ,EACRC,YAAW,EACXC,aAAY,EACb,GAAGL;IACJ,MAAMM,WAAWC,IAAAA,aAAM,EAACF;IACxBC,SAASE,OAAO,GAAGH;IACnB,MAAM,CAACI,OAAOC,SAAS,GAAGC,OAAMC,QAAQ,CAAC;QACvCC,mBAAmB;QACnBC,wBAAwB;QACxBC,uBAAuB;IACzB;IACA,MAAM,EACJF,kBAAiB,EACjBC,uBAAsB,EACtBC,sBAAqB,EACtB,GAAGN;IACJ,MAAMO,YAAYL,OAAMJ,MAAM,CAAC,IAAI;IACnC,MAAMU,qBAAqBN,OAAMO,WAAW,CAACC,CAAAA,YAAa;QACxD,IAAI,CAAEA,CAAAA,cAAc,IAAI,IAAIA,cAAc,KAAK,IAAI,KAAK,IAAIA,UAAUX,OAAO,AAAD,GAAI;YAC9E,iBAAiB;YACjB;QACF,CAAC;QACD,IAAIW,UAAUX,OAAO,KAAKQ,UAAUR,OAAO,EAAE;YAC3CQ,UAAUR,OAAO,GAAGW,UAAUX,OAAO;QACvC,CAAC;QACD,MAAMY,gBAAgBlB,cAAc,aAAaiB,UAAUX,OAAO,CAACa,qBAAqB,GAAGC,MAAM,GAAGH,UAAUX,OAAO,CAACa,qBAAqB,GAAGE,KAAK;QACnJ,IAAIC,aAAa;QACjB,IAAIC,SAAS;QACb,MAAOD,cAAcJ,iBAAiBK,SAAStB,SAAU;YACvD,MAAMuB,YAAYtB,YAAYE,SAASE,OAAO,GAAGiB;YACjD,YAAY;YACZD,cAAcE;YACdD;QACF;QACA;;IAEA,GACA,MAAME,cAAcC,KAAKC,GAAG,CAACD,KAAKE,KAAK,CAACL,SAAS,IAAI;QACrD;;IAEA,GACA,MAAMM,aAAaH,KAAKC,GAAG,CAACD,KAAKE,KAAK,CAACL,SAAS,IAAIxB,kBAAkB;QACtE,MAAM+B,cAAcP,SAASE,cAAc,IAAI;QAC/CjB,SAAS;YACPG,mBAAmBmB;YACnBjB,uBAAuBgB;YACvBjB,wBAAwBa;QAC1B;IACF,GAAG;QAAC1B;QAAiBC;QAAWE;QAAaD;KAAS;IACtD,MAAM8B,iBAAiBtB,OAAMO,WAAW,CAAC,CAACgB,UAAUC,WAAWhB,YAAc;QAC3E,IAAIA,WAAW;YACbF,mBAAmBE;QACrB,CAAC;IACH,GAAG;QAACF;KAAmB;IACvB,MAAME,YAAYiB,IAAAA,mDAA6B,EAACH;IAChDI,IAAAA,yCAAyB,EAAC,IAAM;QAC9B,IAAIC,oBAAoBC;QACxB,IAAI,CAACvB,UAAUR,OAAO,EAAE;YACtB;QACF,CAAC;QACD,MAAMY,gBAAgBlB,cAAc,aAAa,AAAC,CAAA,AAACoC,CAAAA,qBAAqBtB,UAAUR,OAAO,AAAD,MAAO,IAAI,IAAI8B,uBAAuB,KAAK,IAAI,KAAK,IAAIA,mBAAmBjB,qBAAqB,GAAGC,MAAM,AAAD,IAAK,MAAM,AAAC,CAAA,AAACiB,CAAAA,sBAAsBvB,UAAUR,OAAO,AAAD,MAAO,IAAI,IAAI+B,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBlB,qBAAqB,GAAGE,KAAK,AAAD,IAAK,GAAG;QACpW,IAAIiB,iBAAiB,KAAK;QAC1B,IAAIC,eAAe;QACnB,IAAK,IAAIC,IAAIrC,cAAcqC,IAAIrC,eAAeQ,mBAAmB6B,IAAK;YACpE,MAAMC,cAAcvC,YAAYsC;YAChCD,gBAAgBE;YAChB,MAAMC,YAAYF,IAAIrC;YACtB,MAAMsB,cAAcC,KAAKC,GAAG,CAACD,KAAKE,KAAK,CAACc,YAAY,IAAI;YACxD,MAAMC,iBAAiBD,YAAYjB,cAAc,IAAI;YACrD,MAAMmB,iBAAiBD,iBAAiBhC;YACxC,IAAI4B,eAAerB,iBAAiB0B,gBAAgB;gBAClDN,iBAAiB,IAAI;gBACrB,KAAM;YACR,CAAC;QACH;QACA,4EAA4E;QAC5E,IAAIC,eAAerB,iBAAiBoB,gBAAgB;YAClDvB,mBAAmBD;QACrB,CAAC;IACH,GAAG;QAACZ;QAAaC;QAAcH;QAAWW;QAAmBoB;QAAgBhB;KAAmB;IAChG,OAAO;QACLJ;QACAc,aAAab;QACbiB,YAAYhB;QACZI;IACF;AACF,GACA,wDAAwD"}
@@ -1,59 +1,46 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useIntersectionObserver", {
6
+ enumerable: true,
7
+ get: ()=>useIntersectionObserver
5
8
  });
6
- exports.useIntersectionObserver = void 0;
7
- const React = /*#__PURE__*/require("react");
8
- const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
- const {
10
- useState,
11
- useRef
12
- } = React;
13
- /**
14
- * React hook that allows easy usage of the browser API IntersectionObserver within React
15
- * @param callback - A function called when the percentage of the target element is visible crosses a threshold.
16
- * @param options - An optional object which customizes the observer. If options isn't specified, the observer uses the
17
- * document's viewport as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is
18
- * enough to trigger a callback).
19
- * @returns An array containing a callback to update the list of Elements the observer should listen to, a callback to
20
- * update the init options of the IntersectionObserver and a ref to the IntersectionObserver instance itself.
21
- */
22
- const useIntersectionObserver = (callback, options) => {
23
- // export const useIntersectionObserver = (
24
- // callback: IntersectionObserverCallback,
25
- // options?: IntersectionObserverInit,
26
- // ): [
27
- // Dispatch<SetStateAction<Element[] | undefined>>,
28
- // Dispatch<SetStateAction<IntersectionObserverInit | undefined>>,
29
- // MutableRefObject<IntersectionObserver | undefined>,
30
- // ] => {
31
- const observer = useRef();
32
- const [observerList, setObserverList] = useState();
33
- const [observerInit, setObserverInit] = useState(options);
34
- // Observer elements in passed in list and clean up previous list
35
- // This effect is only triggered when observerList is updated
36
- react_utilities_1.useIsomorphicLayoutEffect(() => {
37
- observer.current = new IntersectionObserver(callback, observerInit);
38
- // If we have an instance of IO and a list with elements, observer the elements
39
- if (observer.current && observerList && observerList.length > 0) {
40
- observerList.forEach(element => {
41
- var _a;
42
- (_a = observer.current) === null || _a === void 0 ? void 0 : _a.observe(element);
43
- });
44
- }
45
- // clean up previous elements being listened to
46
- return () => {
47
- if (observer.current) {
48
- observer.current.disconnect();
49
- }
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _reactUtilities = require("@fluentui/react-utilities");
12
+ const { useState , useRef } = _react;
13
+ const useIntersectionObserver = (callback, options)=>{
14
+ const observer = useRef();
15
+ const [observerList, setObserverList] = useState();
16
+ const [observerInit, setObserverInit] = useState(options);
17
+ // Observer elements in passed in list and clean up previous list
18
+ // This effect is only triggered when observerList is updated
19
+ (0, _reactUtilities.useIsomorphicLayoutEffect)(()=>{
20
+ observer.current = new IntersectionObserver(callback, observerInit);
21
+ // If we have an instance of IO and a list with elements, observer the elements
22
+ if (observer.current && observerList && observerList.length > 0) {
23
+ observerList.forEach((element)=>{
24
+ var _observer_current;
25
+ (_observer_current = observer.current) === null || _observer_current === void 0 ? void 0 : _observer_current.observe(element);
26
+ });
27
+ }
28
+ // clean up previous elements being listened to
29
+ return ()=>{
30
+ if (observer.current) {
31
+ observer.current.disconnect();
32
+ }
33
+ };
34
+ }, [
35
+ observerList,
36
+ observerInit,
37
+ callback
38
+ ]);
39
+ return {
40
+ setObserverList,
41
+ setObserverInit,
42
+ observer
50
43
  };
51
- }, [observerList, observerInit, callback]);
52
- return {
53
- setObserverList,
54
- setObserverInit,
55
- observer
56
- };
57
- };
58
- exports.useIntersectionObserver = useIntersectionObserver;
44
+ }; //# sourceMappingURL=useIntersectionObserver.js.map
45
+
59
46
  //# sourceMappingURL=useIntersectionObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;AACA;AACA;AAEA,MAAM;EAAEA,QAAQ;EAAEC;AAAM,CAAE,GAAGC,KAAK;AAElC;;;;;;;;;AAUO,MAAMC,uBAAuB,GAAG,CACrCC,QAAsC,EACtCC,OAAkC,KAKhC;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,QAAQ,GAAGL,MAAM,EAAwB;EAC/C,MAAM,CAACM,YAAY,EAAEC,eAAe,CAAC,GAAGR,QAAQ,EAAa;EAC7D,MAAM,CAACS,YAAY,EAAEC,eAAe,CAAC,GAAGV,QAAQ,CAAuCK,OAAO,CAAC;EAE/F;EACA;EACAM,2CAAyB,CAAC,MAAK;IAC7BL,QAAQ,CAACM,OAAO,GAAG,IAAIC,oBAAoB,CAACT,QAAQ,EAAEK,YAAY,CAAC;IAEnE;IACA,IAAIH,QAAQ,CAACM,OAAO,IAAIL,YAAY,IAAIA,YAAY,CAACO,MAAM,GAAG,CAAC,EAAE;MAC/DP,YAAY,CAACQ,OAAO,CAACC,OAAO,IAAG;;QAC7B,cAAQ,CAACJ,OAAO,0CAAEK,OAAO,CAACD,OAAO,CAAC;MACpC,CAAC,CAAC;;IAGJ;IACA,OAAO,MAAK;MACV,IAAIV,QAAQ,CAACM,OAAO,EAAE;QACpBN,QAAQ,CAACM,OAAO,CAACM,UAAU,EAAE;;IAEjC,CAAC;EACH,CAAC,EAAE,CAACX,YAAY,EAAEE,YAAY,EAAEL,QAAQ,CAAC,CAAC;EAE1C,OAAO;IAAEI,eAAe;IAAEE,eAAe;IAAEJ;EAAQ,CAAE;AACvD,CAAC;AAzCYa,+BAAuB","names":["useState","useRef","React","useIntersectionObserver","callback","options","observer","observerList","setObserverList","observerInit","setObserverInit","react_utilities_1","current","IntersectionObserver","length","forEach","element","observe","disconnect","exports"],"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,"sources":["../../lib/hooks/useIntersectionObserver.js"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nconst {\n useState,\n useRef\n} = React;\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 */\nexport const useIntersectionObserver = (callback, options) => {\n const observer = useRef();\n const [observerList, setObserverList] = useState();\n const [observerInit, setObserverInit] = useState(options);\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 // 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 var _observer_current;\n (_observer_current = observer.current) === null || _observer_current === void 0 ? void 0 : _observer_current.observe(element);\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 return {\n setObserverList,\n setObserverInit,\n observer\n };\n};\n//# sourceMappingURL=useIntersectionObserver.js.map"],"names":["useIntersectionObserver","useState","useRef","React","callback","options","observer","observerList","setObserverList","observerInit","setObserverInit","useIsomorphicLayoutEffect","current","IntersectionObserver","length","forEach","element","_observer_current","observe","disconnect"],"mappings":";;;;+BAeaA;;aAAAA;;;6DAfU;gCACmB;AAC1C,MAAM,EACJC,SAAQ,EACRC,OAAM,EACP,GAAGC;AAUG,MAAMH,0BAA0B,CAACI,UAAUC,UAAY;IAC5D,MAAMC,WAAWJ;IACjB,MAAM,CAACK,cAAcC,gBAAgB,GAAGP;IACxC,MAAM,CAACQ,cAAcC,gBAAgB,GAAGT,SAASI;IACjD,iEAAiE;IACjE,6DAA6D;IAC7DM,IAAAA,yCAAyB,EAAC,IAAM;QAC9BL,SAASM,OAAO,GAAG,IAAIC,qBAAqBT,UAAUK;QACtD,+EAA+E;QAC/E,IAAIH,SAASM,OAAO,IAAIL,gBAAgBA,aAAaO,MAAM,GAAG,GAAG;YAC/DP,aAAaQ,OAAO,CAACC,CAAAA,UAAW;gBAC9B,IAAIC;gBACHA,CAAAA,oBAAoBX,SAASM,OAAO,AAAD,MAAO,IAAI,IAAIK,sBAAsB,KAAK,IAAI,KAAK,IAAIA,kBAAkBC,OAAO,CAACF,QAAQ;YAC/H;QACF,CAAC;QACD,+CAA+C;QAC/C,OAAO,IAAM;YACX,IAAIV,SAASM,OAAO,EAAE;gBACpBN,SAASM,OAAO,CAACO,UAAU;YAC7B,CAAC;QACH;IACF,GAAG;QAACZ;QAAcE;QAAcL;KAAS;IACzC,OAAO;QACLI;QACAE;QACAJ;IACF;AACF,GACA,mDAAmD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useResizeObserverRef_unstable", {
6
+ enumerable: true,
7
+ get: ()=>useResizeObserverRef_unstable
8
+ });
9
+ const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
+ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
+ const _debounce = require("../utilities/debounce");
12
+ const _reactUtilities = require("@fluentui/react-utilities");
13
+ const useResizeObserverRef_unstable = (resizeCallback)=>{
14
+ const container = _react.useRef(null);
15
+ // the handler for resize observer
16
+ const handleResize = (0, _debounce.debounce)((entries, observer)=>{
17
+ resizeCallback(entries, observer, container);
18
+ });
19
+ // Keep the reference of ResizeObserver in the state, as it should live through renders
20
+ const [resizeObserver, setResizeObserver] = _react.useState(()=>(0, _reactUtilities.canUseDOM)() ? new ResizeObserver(handleResize) : undefined);
21
+ _react.useEffect(()=>{
22
+ // Update our state when resizeCallback changes
23
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
24
+ setResizeObserver((0, _reactUtilities.canUseDOM)() ? new ResizeObserver(handleResize) : undefined);
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ }, [
27
+ resizeCallback
28
+ ]);
29
+ _react.useEffect(()=>{
30
+ return ()=>{
31
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
32
+ };
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
34
+ }, []);
35
+ const scrollRef = _react.useCallback((instance)=>{
36
+ if (container.current !== instance) {
37
+ if (container.current) {
38
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(container.current);
39
+ }
40
+ container.current = instance;
41
+ if (container.current) {
42
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(container.current);
43
+ }
44
+ }
45
+ }, [
46
+ resizeObserver
47
+ ]);
48
+ return scrollRef;
49
+ }; //# sourceMappingURL=useResizeObserverRef.js.map
50
+
51
+ //# sourceMappingURL=useResizeObserverRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../lib/hooks/useResizeObserverRef.js"],"sourcesContent":["import * as React from 'react';\nimport { debounce } from '../utilities/debounce';\nimport { canUseDOM } from '@fluentui/react-utilities';\n/**\n * useResizeObserverRef_unstable simplifies resize observer connection and ensures debounce/cleanup\n */\nexport const useResizeObserverRef_unstable = resizeCallback => {\n const container = React.useRef(null);\n // the handler for resize observer\n const handleResize = debounce((entries, observer) => {\n resizeCallback(entries, observer, container);\n });\n // Keep the reference of ResizeObserver in the state, as it should live through renders\n const [resizeObserver, setResizeObserver] = React.useState(() => canUseDOM() ? new ResizeObserver(handleResize) : undefined);\n React.useEffect(() => {\n // Update our state when resizeCallback changes\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n setResizeObserver(canUseDOM() ? new ResizeObserver(handleResize) : undefined);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [resizeCallback]);\n React.useEffect(() => {\n return () => {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const scrollRef = React.useCallback(instance => {\n if (container.current !== instance) {\n if (container.current) {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(container.current);\n }\n container.current = instance;\n if (container.current) {\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(container.current);\n }\n }\n }, [resizeObserver]);\n return scrollRef;\n};\n//# sourceMappingURL=useResizeObserverRef.js.map"],"names":["useResizeObserverRef_unstable","resizeCallback","container","React","useRef","handleResize","debounce","entries","observer","resizeObserver","setResizeObserver","useState","canUseDOM","ResizeObserver","undefined","useEffect","disconnect","scrollRef","useCallback","instance","current","unobserve","observe"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;0BACE;gCACC;AAInB,MAAMA,gCAAgCC,CAAAA,iBAAkB;IAC7D,MAAMC,YAAYC,OAAMC,MAAM,CAAC,IAAI;IACnC,kCAAkC;IAClC,MAAMC,eAAeC,IAAAA,kBAAQ,EAAC,CAACC,SAASC,WAAa;QACnDP,eAAeM,SAASC,UAAUN;IACpC;IACA,uFAAuF;IACvF,MAAM,CAACO,gBAAgBC,kBAAkB,GAAGP,OAAMQ,QAAQ,CAAC,IAAMC,IAAAA,yBAAS,MAAK,IAAIC,eAAeR,gBAAgBS,SAAS;IAC3HX,OAAMY,SAAS,CAAC,IAAM;QACpB,+CAA+C;QAC/CN,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeO,UAAU,EAAE;QAC3FN,kBAAkBE,IAAAA,yBAAS,MAAK,IAAIC,eAAeR,gBAAgBS,SAAS;IAC5E,uDAAuD;IACzD,GAAG;QAACb;KAAe;IACnBE,OAAMY,SAAS,CAAC,IAAM;QACpB,OAAO,IAAM;YACXN,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeO,UAAU,EAAE;QAC7F;IACA,uDAAuD;IACzD,GAAG,EAAE;IACL,MAAMC,YAAYd,OAAMe,WAAW,CAACC,CAAAA,WAAY;QAC9C,IAAIjB,UAAUkB,OAAO,KAAKD,UAAU;YAClC,IAAIjB,UAAUkB,OAAO,EAAE;gBACrBX,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeY,SAAS,CAACnB,UAAUkB,OAAO,CAAC;YAC7G,CAAC;YACDlB,UAAUkB,OAAO,GAAGD;YACpB,IAAIjB,UAAUkB,OAAO,EAAE;gBACrBX,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAea,OAAO,CAACpB,UAAUkB,OAAO,CAAC;YAC3G,CAAC;QACH,CAAC;IACH,GAAG;QAACX;KAAe;IACnB,OAAOQ;AACT,GACA,gDAAgD"}