@depup/react-virtualized 9.22.6-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +34 -0
  3. package/changes.json +22 -0
  4. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js +184 -0
  5. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js +338 -0
  6. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.js +204 -0
  7. package/dist/commonjs/ArrowKeyStepper/index.js +19 -0
  8. package/dist/commonjs/ArrowKeyStepper/types.js +5 -0
  9. package/dist/commonjs/AutoSizer/AutoSizer.example.js +104 -0
  10. package/dist/commonjs/AutoSizer/AutoSizer.jest.js +341 -0
  11. package/dist/commonjs/AutoSizer/AutoSizer.js +199 -0
  12. package/dist/commonjs/AutoSizer/AutoSizer.ssr.js +25 -0
  13. package/dist/commonjs/AutoSizer/index.js +19 -0
  14. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +100 -0
  15. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +99 -0
  16. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +107 -0
  17. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +102 -0
  18. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +107 -0
  19. package/dist/commonjs/CellMeasurer/CellMeasurer.example.js +129 -0
  20. package/dist/commonjs/CellMeasurer/CellMeasurer.jest.js +345 -0
  21. package/dist/commonjs/CellMeasurer/CellMeasurer.js +195 -0
  22. package/dist/commonjs/CellMeasurer/CellMeasurerCache.jest.js +298 -0
  23. package/dist/commonjs/CellMeasurer/CellMeasurerCache.js +202 -0
  24. package/dist/commonjs/CellMeasurer/index.js +22 -0
  25. package/dist/commonjs/CellMeasurer/types.js +14 -0
  26. package/dist/commonjs/Collection/Collection.example.js +231 -0
  27. package/dist/commonjs/Collection/Collection.jest.js +829 -0
  28. package/dist/commonjs/Collection/Collection.js +266 -0
  29. package/dist/commonjs/Collection/CollectionView.js +553 -0
  30. package/dist/commonjs/Collection/Section.jest.js +63 -0
  31. package/dist/commonjs/Collection/Section.js +57 -0
  32. package/dist/commonjs/Collection/SectionManager.jest.js +121 -0
  33. package/dist/commonjs/Collection/SectionManager.js +134 -0
  34. package/dist/commonjs/Collection/TestData.js +77 -0
  35. package/dist/commonjs/Collection/index.js +15 -0
  36. package/dist/commonjs/Collection/types.js +22 -0
  37. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.jest.js +34 -0
  38. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.js +38 -0
  39. package/dist/commonjs/ColumnSizer/ColumnSizer.example.js +159 -0
  40. package/dist/commonjs/ColumnSizer/ColumnSizer.jest.js +129 -0
  41. package/dist/commonjs/ColumnSizer/ColumnSizer.js +103 -0
  42. package/dist/commonjs/ColumnSizer/index.js +15 -0
  43. package/dist/commonjs/Grid/Grid.example.js +330 -0
  44. package/dist/commonjs/Grid/Grid.jest.js +2561 -0
  45. package/dist/commonjs/Grid/Grid.js +1432 -0
  46. package/dist/commonjs/Grid/Grid.ssr.js +62 -0
  47. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js +92 -0
  48. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js +40 -0
  49. package/dist/commonjs/Grid/defaultCellRangeRenderer.js +139 -0
  50. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.jest.js +92 -0
  51. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.js +36 -0
  52. package/dist/commonjs/Grid/index.js +40 -0
  53. package/dist/commonjs/Grid/types.js +8 -0
  54. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.jest.js +375 -0
  55. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js +296 -0
  56. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +201 -0
  57. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js +204 -0
  58. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +84 -0
  59. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +59 -0
  60. package/dist/commonjs/Grid/utils/maxElementSize.js +22 -0
  61. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.jest.js +180 -0
  62. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.js +85 -0
  63. package/dist/commonjs/InfiniteLoader/InfiniteLoader.example.js +179 -0
  64. package/dist/commonjs/InfiniteLoader/InfiniteLoader.jest.js +571 -0
  65. package/dist/commonjs/InfiniteLoader/InfiniteLoader.js +274 -0
  66. package/dist/commonjs/InfiniteLoader/index.js +15 -0
  67. package/dist/commonjs/List/List.example.js +236 -0
  68. package/dist/commonjs/List/List.jest.js +517 -0
  69. package/dist/commonjs/List/List.js +318 -0
  70. package/dist/commonjs/List/index.js +19 -0
  71. package/dist/commonjs/List/types.js +6 -0
  72. package/dist/commonjs/Masonry/Masonry.example.js +287 -0
  73. package/dist/commonjs/Masonry/Masonry.jest.js +450 -0
  74. package/dist/commonjs/Masonry/Masonry.js +431 -0
  75. package/dist/commonjs/Masonry/PositionCache.js +88 -0
  76. package/dist/commonjs/Masonry/createCellPositioner.js +59 -0
  77. package/dist/commonjs/Masonry/index.js +22 -0
  78. package/dist/commonjs/MultiGrid/CellMeasurerCacheDecorator.js +106 -0
  79. package/dist/commonjs/MultiGrid/MultiGrid.example.js +131 -0
  80. package/dist/commonjs/MultiGrid/MultiGrid.jest.js +584 -0
  81. package/dist/commonjs/MultiGrid/MultiGrid.js +743 -0
  82. package/dist/commonjs/MultiGrid/index.js +15 -0
  83. package/dist/commonjs/ScrollSync/ScrollSync.example.js +257 -0
  84. package/dist/commonjs/ScrollSync/ScrollSync.jest.js +66 -0
  85. package/dist/commonjs/ScrollSync/ScrollSync.js +88 -0
  86. package/dist/commonjs/ScrollSync/index.js +15 -0
  87. package/dist/commonjs/Table/Column.jest.js +90 -0
  88. package/dist/commonjs/Table/Column.js +93 -0
  89. package/dist/commonjs/Table/SortDirection.js +19 -0
  90. package/dist/commonjs/Table/SortIndicator.js +40 -0
  91. package/dist/commonjs/Table/Table.example.js +325 -0
  92. package/dist/commonjs/Table/Table.jest.js +1257 -0
  93. package/dist/commonjs/Table/Table.js +742 -0
  94. package/dist/commonjs/Table/createMultiSort.jest.js +165 -0
  95. package/dist/commonjs/Table/createMultiSort.js +99 -0
  96. package/dist/commonjs/Table/defaultCellDataGetter.js +21 -0
  97. package/dist/commonjs/Table/defaultCellRenderer.js +19 -0
  98. package/dist/commonjs/Table/defaultHeaderRenderer.js +35 -0
  99. package/dist/commonjs/Table/defaultHeaderRowRenderer.js +21 -0
  100. package/dist/commonjs/Table/defaultRowRenderer.js +87 -0
  101. package/dist/commonjs/Table/index.js +78 -0
  102. package/dist/commonjs/Table/types.js +39 -0
  103. package/dist/commonjs/WindowScroller/WindowScroller.e2e.js +298 -0
  104. package/dist/commonjs/WindowScroller/WindowScroller.example.js +167 -0
  105. package/dist/commonjs/WindowScroller/WindowScroller.header-resize.e2e.js +359 -0
  106. package/dist/commonjs/WindowScroller/WindowScroller.jest.js +536 -0
  107. package/dist/commonjs/WindowScroller/WindowScroller.js +268 -0
  108. package/dist/commonjs/WindowScroller/WindowScroller.ssr.js +25 -0
  109. package/dist/commonjs/WindowScroller/index.js +23 -0
  110. package/dist/commonjs/WindowScroller/utils/dimensions.js +89 -0
  111. package/dist/commonjs/WindowScroller/utils/onScroll.js +70 -0
  112. package/dist/commonjs/index.js +180 -0
  113. package/dist/commonjs/jest-setup.js +7 -0
  114. package/dist/commonjs/utils/TestHelper.js +36 -0
  115. package/dist/commonjs/utils/animationFrame.js +29 -0
  116. package/dist/commonjs/utils/createCallbackMemoizer.jest.js +219 -0
  117. package/dist/commonjs/utils/createCallbackMemoizer.js +31 -0
  118. package/dist/commonjs/utils/getUpdatedOffsetForIndex.jest.js +68 -0
  119. package/dist/commonjs/utils/getUpdatedOffsetForIndex.js +38 -0
  120. package/dist/commonjs/utils/initCellMetadata.js +37 -0
  121. package/dist/commonjs/utils/requestAnimationTimeout.js +38 -0
  122. package/dist/commonjs/vendor/binarySearchBounds.js +200 -0
  123. package/dist/commonjs/vendor/detectElementResize.js +192 -0
  124. package/dist/commonjs/vendor/intervalTree.js +361 -0
  125. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.example.js +176 -0
  126. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.jest.js +332 -0
  127. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.js +197 -0
  128. package/dist/es/ArrowKeyStepper/index.js +3 -0
  129. package/dist/es/ArrowKeyStepper/types.js +4 -0
  130. package/dist/es/AutoSizer/AutoSizer.example.js +96 -0
  131. package/dist/es/AutoSizer/AutoSizer.jest.js +335 -0
  132. package/dist/es/AutoSizer/AutoSizer.js +190 -0
  133. package/dist/es/AutoSizer/AutoSizer.js.flow +200 -0
  134. package/dist/es/AutoSizer/AutoSizer.ssr.js +19 -0
  135. package/dist/es/AutoSizer/index.js +2 -0
  136. package/dist/es/AutoSizer/index.js.flow +4 -0
  137. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +91 -0
  138. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +90 -0
  139. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +98 -0
  140. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +93 -0
  141. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +98 -0
  142. package/dist/es/CellMeasurer/CellMeasurer.example.js +120 -0
  143. package/dist/es/CellMeasurer/CellMeasurer.jest.js +340 -0
  144. package/dist/es/CellMeasurer/CellMeasurer.js +187 -0
  145. package/dist/es/CellMeasurer/CellMeasurerCache.jest.js +293 -0
  146. package/dist/es/CellMeasurer/CellMeasurerCache.js +196 -0
  147. package/dist/es/CellMeasurer/index.js +4 -0
  148. package/dist/es/CellMeasurer/types.js +13 -0
  149. package/dist/es/Collection/Collection.example.js +223 -0
  150. package/dist/es/Collection/Collection.jest.js +824 -0
  151. package/dist/es/Collection/Collection.js +257 -0
  152. package/dist/es/Collection/CollectionView.js +544 -0
  153. package/dist/es/Collection/Section.jest.js +60 -0
  154. package/dist/es/Collection/Section.js +51 -0
  155. package/dist/es/Collection/SectionManager.jest.js +118 -0
  156. package/dist/es/Collection/SectionManager.js +128 -0
  157. package/dist/es/Collection/TestData.js +71 -0
  158. package/dist/es/Collection/index.js +3 -0
  159. package/dist/es/Collection/types.js +21 -0
  160. package/dist/es/Collection/utils/calculateSizeAndPositionData.jest.js +31 -0
  161. package/dist/es/Collection/utils/calculateSizeAndPositionData.js +31 -0
  162. package/dist/es/ColumnSizer/ColumnSizer.example.js +150 -0
  163. package/dist/es/ColumnSizer/ColumnSizer.jest.js +123 -0
  164. package/dist/es/ColumnSizer/ColumnSizer.js +95 -0
  165. package/dist/es/ColumnSizer/index.js +3 -0
  166. package/dist/es/Grid/Grid.example.js +321 -0
  167. package/dist/es/Grid/Grid.jest.js +2555 -0
  168. package/dist/es/Grid/Grid.js +1425 -0
  169. package/dist/es/Grid/Grid.ssr.js +57 -0
  170. package/dist/es/Grid/accessibilityOverscanIndicesGetter.jest.js +87 -0
  171. package/dist/es/Grid/accessibilityOverscanIndicesGetter.js +33 -0
  172. package/dist/es/Grid/defaultCellRangeRenderer.js +134 -0
  173. package/dist/es/Grid/defaultOverscanIndicesGetter.jest.js +87 -0
  174. package/dist/es/Grid/defaultOverscanIndicesGetter.js +29 -0
  175. package/dist/es/Grid/index.js +15 -0
  176. package/dist/es/Grid/types.js +96 -0
  177. package/dist/es/Grid/utils/CellSizeAndPositionManager.jest.js +372 -0
  178. package/dist/es/Grid/utils/CellSizeAndPositionManager.js +290 -0
  179. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +198 -0
  180. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js +198 -0
  181. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +81 -0
  182. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +53 -0
  183. package/dist/es/Grid/utils/maxElementSize.js +16 -0
  184. package/dist/es/Grid/utils/updateScrollIndexHelper.jest.js +174 -0
  185. package/dist/es/Grid/utils/updateScrollIndexHelper.js +79 -0
  186. package/dist/es/InfiniteLoader/InfiniteLoader.example.js +170 -0
  187. package/dist/es/InfiniteLoader/InfiniteLoader.jest.js +565 -0
  188. package/dist/es/InfiniteLoader/InfiniteLoader.js +263 -0
  189. package/dist/es/InfiniteLoader/index.js +3 -0
  190. package/dist/es/List/List.example.js +227 -0
  191. package/dist/es/List/List.jest.js +511 -0
  192. package/dist/es/List/List.js +312 -0
  193. package/dist/es/List/index.js +3 -0
  194. package/dist/es/List/types.js +21 -0
  195. package/dist/es/Masonry/Masonry.example.js +278 -0
  196. package/dist/es/Masonry/Masonry.jest.js +444 -0
  197. package/dist/es/Masonry/Masonry.js +421 -0
  198. package/dist/es/Masonry/PositionCache.js +82 -0
  199. package/dist/es/Masonry/createCellPositioner.js +53 -0
  200. package/dist/es/Masonry/index.js +4 -0
  201. package/dist/es/MultiGrid/CellMeasurerCacheDecorator.js +100 -0
  202. package/dist/es/MultiGrid/MultiGrid.example.js +122 -0
  203. package/dist/es/MultiGrid/MultiGrid.jest.js +579 -0
  204. package/dist/es/MultiGrid/MultiGrid.js +733 -0
  205. package/dist/es/MultiGrid/index.js +3 -0
  206. package/dist/es/ScrollSync/ScrollSync.example.js +248 -0
  207. package/dist/es/ScrollSync/ScrollSync.jest.js +60 -0
  208. package/dist/es/ScrollSync/ScrollSync.js +80 -0
  209. package/dist/es/ScrollSync/index.js +3 -0
  210. package/dist/es/Table/Column.jest.js +84 -0
  211. package/dist/es/Table/Column.js +85 -0
  212. package/dist/es/Table/SortDirection.js +13 -0
  213. package/dist/es/Table/SortIndicator.js +31 -0
  214. package/dist/es/Table/Table.example.js +316 -0
  215. package/dist/es/Table/Table.jest.js +1251 -0
  216. package/dist/es/Table/Table.js +735 -0
  217. package/dist/es/Table/createMultiSort.jest.js +162 -0
  218. package/dist/es/Table/createMultiSort.js +93 -0
  219. package/dist/es/Table/defaultCellDataGetter.js +15 -0
  220. package/dist/es/Table/defaultCellRenderer.js +13 -0
  221. package/dist/es/Table/defaultHeaderRenderer.js +25 -0
  222. package/dist/es/Table/defaultHeaderRowRenderer.js +12 -0
  223. package/dist/es/Table/defaultRowRenderer.js +77 -0
  224. package/dist/es/Table/index.js +12 -0
  225. package/dist/es/Table/types.js +38 -0
  226. package/dist/es/WindowScroller/WindowScroller.e2e.js +295 -0
  227. package/dist/es/WindowScroller/WindowScroller.example.js +158 -0
  228. package/dist/es/WindowScroller/WindowScroller.header-resize.e2e.js +356 -0
  229. package/dist/es/WindowScroller/WindowScroller.jest.js +530 -0
  230. package/dist/es/WindowScroller/WindowScroller.js +259 -0
  231. package/dist/es/WindowScroller/WindowScroller.js.flow +277 -0
  232. package/dist/es/WindowScroller/WindowScroller.ssr.js +19 -0
  233. package/dist/es/WindowScroller/index.js +3 -0
  234. package/dist/es/WindowScroller/index.js.flow +6 -0
  235. package/dist/es/WindowScroller/utils/dimensions.js +81 -0
  236. package/dist/es/WindowScroller/utils/dimensions.js.flow +91 -0
  237. package/dist/es/WindowScroller/utils/onScroll.js +64 -0
  238. package/dist/es/WindowScroller/utils/onScroll.js.flow +94 -0
  239. package/dist/es/index.js +13 -0
  240. package/dist/es/jest-setup.js +5 -0
  241. package/dist/es/utils/TestHelper.js +30 -0
  242. package/dist/es/utils/animationFrame.js +23 -0
  243. package/dist/es/utils/createCallbackMemoizer.jest.js +216 -0
  244. package/dist/es/utils/createCallbackMemoizer.js +25 -0
  245. package/dist/es/utils/getUpdatedOffsetForIndex.jest.js +65 -0
  246. package/dist/es/utils/getUpdatedOffsetForIndex.js +32 -0
  247. package/dist/es/utils/initCellMetadata.js +31 -0
  248. package/dist/es/utils/requestAnimationTimeout.js +32 -0
  249. package/dist/es/vendor/binarySearchBounds.js +194 -0
  250. package/dist/es/vendor/detectElementResize.js +186 -0
  251. package/dist/es/vendor/intervalTree.js +354 -0
  252. package/dist/umd/react-virtualized.js +4638 -0
  253. package/package.json +188 -0
  254. package/styles.css +80 -0
@@ -0,0 +1,742 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _clsx = _interopRequireDefault(require("clsx"));
17
+ var _Column = _interopRequireDefault(require("./Column"));
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+ var React = _interopRequireWildcard(require("react"));
20
+ var _Grid2 = _interopRequireWildcard(require("../Grid"));
21
+ var _defaultRowRenderer = _interopRequireDefault(require("./defaultRowRenderer"));
22
+ var _defaultHeaderRowRenderer = _interopRequireDefault(require("./defaultHeaderRowRenderer"));
23
+ var _SortDirection = _interopRequireDefault(require("./SortDirection"));
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*:: import type {CellPosition} from '../Grid';*/
30
+ /**
31
+ * Table component with fixed headers and virtualized rows for improved performance with large data sets.
32
+ * This component expects explicit width, height, and padding parameters.
33
+ */
34
+ var Table = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
35
+ function Table(props) {
36
+ var _this;
37
+ (0, _classCallCheck2["default"])(this, Table);
38
+ _this = _callSuper(this, Table, [props]);
39
+ _this.state = {
40
+ scrollbarWidth: 0
41
+ };
42
+ _this._createColumn = _this._createColumn.bind(_this);
43
+ _this._createRow = _this._createRow.bind(_this);
44
+ _this._onScroll = _this._onScroll.bind(_this);
45
+ _this._onSectionRendered = _this._onSectionRendered.bind(_this);
46
+ _this._setRef = _this._setRef.bind(_this);
47
+ _this._setGridElementRef = _this._setGridElementRef.bind(_this);
48
+ return _this;
49
+ }
50
+ (0, _inherits2["default"])(Table, _React$PureComponent);
51
+ return (0, _createClass2["default"])(Table, [{
52
+ key: "forceUpdateGrid",
53
+ value: function forceUpdateGrid() {
54
+ if (this.Grid) {
55
+ this.Grid.forceUpdate();
56
+ }
57
+ }
58
+
59
+ /** See Grid#getOffsetForCell */
60
+ }, {
61
+ key: "getOffsetForRow",
62
+ value: function getOffsetForRow(_ref) {
63
+ var alignment = _ref.alignment,
64
+ index = _ref.index;
65
+ if (this.Grid) {
66
+ var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
67
+ alignment: alignment,
68
+ rowIndex: index
69
+ }),
70
+ scrollTop = _this$Grid$getOffsetF.scrollTop;
71
+ return scrollTop;
72
+ }
73
+ return 0;
74
+ }
75
+
76
+ /** CellMeasurer compatibility */
77
+ }, {
78
+ key: "invalidateCellSizeAfterRender",
79
+ value: function invalidateCellSizeAfterRender(_ref2 /*:: */) {
80
+ var columnIndex = _ref2 /*:: */.columnIndex,
81
+ rowIndex = _ref2 /*:: */.rowIndex;
82
+ if (this.Grid) {
83
+ this.Grid.invalidateCellSizeAfterRender({
84
+ rowIndex: rowIndex,
85
+ columnIndex: columnIndex
86
+ });
87
+ }
88
+ }
89
+
90
+ /** See Grid#measureAllCells */
91
+ }, {
92
+ key: "measureAllRows",
93
+ value: function measureAllRows() {
94
+ if (this.Grid) {
95
+ this.Grid.measureAllCells();
96
+ }
97
+ }
98
+
99
+ /** CellMeasurer compatibility */
100
+ }, {
101
+ key: "recomputeGridSize",
102
+ value: function recomputeGridSize() {
103
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
104
+ _ref3$columnIndex = _ref3.columnIndex,
105
+ columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,
106
+ _ref3$rowIndex = _ref3.rowIndex,
107
+ rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;
108
+ if (this.Grid) {
109
+ this.Grid.recomputeGridSize({
110
+ rowIndex: rowIndex,
111
+ columnIndex: columnIndex
112
+ });
113
+ }
114
+ }
115
+
116
+ /** See Grid#recomputeGridSize */
117
+ }, {
118
+ key: "recomputeRowHeights",
119
+ value: function recomputeRowHeights() {
120
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
121
+ if (this.Grid) {
122
+ this.Grid.recomputeGridSize({
123
+ rowIndex: index
124
+ });
125
+ }
126
+ }
127
+
128
+ /** See Grid#scrollToPosition */
129
+ }, {
130
+ key: "scrollToPosition",
131
+ value: function scrollToPosition() {
132
+ var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
133
+ if (this.Grid) {
134
+ this.Grid.scrollToPosition({
135
+ scrollTop: scrollTop
136
+ });
137
+ }
138
+ }
139
+
140
+ /** See Grid#scrollToCell */
141
+ }, {
142
+ key: "scrollToRow",
143
+ value: function scrollToRow() {
144
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
145
+ if (this.Grid) {
146
+ this.Grid.scrollToCell({
147
+ columnIndex: 0,
148
+ rowIndex: index
149
+ });
150
+ }
151
+ }
152
+ }, {
153
+ key: "getScrollbarWidth",
154
+ value: function getScrollbarWidth() {
155
+ if (this.GridElement) {
156
+ var _Grid = this.GridElement;
157
+ var clientWidth = _Grid.clientWidth || 0;
158
+ var offsetWidth = _Grid.offsetWidth || 0;
159
+ return offsetWidth - clientWidth;
160
+ }
161
+ return 0;
162
+ }
163
+ }, {
164
+ key: "componentDidMount",
165
+ value: function componentDidMount() {
166
+ this._setScrollbarWidth();
167
+ }
168
+ }, {
169
+ key: "componentDidUpdate",
170
+ value: function componentDidUpdate() {
171
+ this._setScrollbarWidth();
172
+ }
173
+ }, {
174
+ key: "render",
175
+ value: function render() {
176
+ var _this2 = this;
177
+ var _this$props = this.props,
178
+ children = _this$props.children,
179
+ className = _this$props.className,
180
+ disableHeader = _this$props.disableHeader,
181
+ gridClassName = _this$props.gridClassName,
182
+ gridStyle = _this$props.gridStyle,
183
+ headerHeight = _this$props.headerHeight,
184
+ headerRowRenderer = _this$props.headerRowRenderer,
185
+ height = _this$props.height,
186
+ id = _this$props.id,
187
+ noRowsRenderer = _this$props.noRowsRenderer,
188
+ rowClassName = _this$props.rowClassName,
189
+ rowStyle = _this$props.rowStyle,
190
+ scrollToIndex = _this$props.scrollToIndex,
191
+ style = _this$props.style,
192
+ width = _this$props.width;
193
+ var scrollbarWidth = this.state.scrollbarWidth;
194
+ var availableRowsHeight = disableHeader ? height : height - headerHeight;
195
+ var rowClass = typeof rowClassName === 'function' ? rowClassName({
196
+ index: -1
197
+ }) : rowClassName;
198
+ var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
199
+ index: -1
200
+ }) : rowStyle;
201
+
202
+ // Precompute and cache column styles before rendering rows and columns to speed things up
203
+ this._cachedColumnStyles = [];
204
+ React.Children.toArray(children).forEach(function (column, index) {
205
+ var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style || _Column["default"].defaultProps.style);
206
+ _this2._cachedColumnStyles[index] = _objectSpread({
207
+ overflow: 'hidden'
208
+ }, flexStyles);
209
+ });
210
+
211
+ // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
212
+ // This is done because Grid is a pure component and won't update unless its properties or state has changed.
213
+ // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.
214
+ return /*#__PURE__*/React.createElement("div", {
215
+ "aria-label": this.props['aria-label'],
216
+ "aria-labelledby": this.props['aria-labelledby'],
217
+ "aria-colcount": React.Children.toArray(children).length,
218
+ "aria-rowcount": this.props.rowCount,
219
+ className: (0, _clsx["default"])('ReactVirtualized__Table', className),
220
+ id: id,
221
+ role: "grid",
222
+ style: style
223
+ }, !disableHeader && headerRowRenderer({
224
+ className: (0, _clsx["default"])('ReactVirtualized__Table__headerRow', rowClass),
225
+ columns: this._getHeaderColumns(),
226
+ style: _objectSpread({
227
+ height: headerHeight,
228
+ overflow: 'hidden',
229
+ paddingRight: scrollbarWidth,
230
+ width: width
231
+ }, rowStyleObject)
232
+ }), /*#__PURE__*/React.createElement(_Grid2["default"], (0, _extends2["default"])({}, this.props, {
233
+ elementRef: this._setGridElementRef,
234
+ "aria-readonly": null,
235
+ autoContainerWidth: true,
236
+ className: (0, _clsx["default"])('ReactVirtualized__Table__Grid', gridClassName),
237
+ cellRenderer: this._createRow,
238
+ columnWidth: width,
239
+ columnCount: 1,
240
+ height: availableRowsHeight,
241
+ id: undefined,
242
+ noContentRenderer: noRowsRenderer,
243
+ onScroll: this._onScroll,
244
+ onSectionRendered: this._onSectionRendered,
245
+ ref: this._setRef,
246
+ role: "rowgroup",
247
+ scrollbarWidth: scrollbarWidth,
248
+ scrollToRow: scrollToIndex,
249
+ style: _objectSpread(_objectSpread({}, gridStyle), {}, {
250
+ overflowX: 'hidden'
251
+ })
252
+ })));
253
+ }
254
+ }, {
255
+ key: "_createColumn",
256
+ value: function _createColumn(_ref4) {
257
+ var column = _ref4.column,
258
+ columnIndex = _ref4.columnIndex,
259
+ isScrolling = _ref4.isScrolling,
260
+ parent = _ref4.parent,
261
+ rowData = _ref4.rowData,
262
+ rowIndex = _ref4.rowIndex;
263
+ var onColumnClick = this.props.onColumnClick;
264
+ var _column$props = column.props,
265
+ cellDataGetter = _column$props.cellDataGetter,
266
+ cellRenderer = _column$props.cellRenderer,
267
+ className = _column$props.className,
268
+ columnData = _column$props.columnData,
269
+ dataKey = _column$props.dataKey,
270
+ id = _column$props.id;
271
+ var cellData = cellDataGetter({
272
+ columnData: columnData,
273
+ dataKey: dataKey,
274
+ rowData: rowData
275
+ });
276
+ var renderedCell = cellRenderer({
277
+ cellData: cellData,
278
+ columnData: columnData,
279
+ columnIndex: columnIndex,
280
+ dataKey: dataKey,
281
+ isScrolling: isScrolling,
282
+ parent: parent,
283
+ rowData: rowData,
284
+ rowIndex: rowIndex
285
+ });
286
+ var onClick = function onClick(event) {
287
+ onColumnClick && onColumnClick({
288
+ columnData: columnData,
289
+ dataKey: dataKey,
290
+ event: event
291
+ });
292
+ };
293
+ var style = this._cachedColumnStyles[columnIndex];
294
+ var title = typeof renderedCell === 'string' ? renderedCell : null;
295
+
296
+ // Avoid using object-spread syntax with multiple objects here,
297
+ // Since it results in an extra method call to 'babel-runtime/helpers/extends'
298
+ // See PR https://github.com/bvaughn/react-virtualized/pull/942
299
+ return /*#__PURE__*/React.createElement("div", {
300
+ "aria-colindex": columnIndex + 1,
301
+ "aria-describedby": id,
302
+ className: (0, _clsx["default"])('ReactVirtualized__Table__rowColumn', className),
303
+ key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
304
+ onClick: onClick,
305
+ role: "gridcell",
306
+ style: style,
307
+ title: title
308
+ }, renderedCell);
309
+ }
310
+ }, {
311
+ key: "_createHeader",
312
+ value: function _createHeader(_ref5) {
313
+ var column = _ref5.column,
314
+ index = _ref5.index;
315
+ var _this$props2 = this.props,
316
+ headerClassName = _this$props2.headerClassName,
317
+ headerStyle = _this$props2.headerStyle,
318
+ onHeaderClick = _this$props2.onHeaderClick,
319
+ sort = _this$props2.sort,
320
+ sortBy = _this$props2.sortBy,
321
+ sortDirection = _this$props2.sortDirection;
322
+ var _column$props2 = column.props,
323
+ columnData = _column$props2.columnData,
324
+ dataKey = _column$props2.dataKey,
325
+ defaultSortDirection = _column$props2.defaultSortDirection,
326
+ disableSort = _column$props2.disableSort,
327
+ headerRenderer = _column$props2.headerRenderer,
328
+ id = _column$props2.id,
329
+ label = _column$props2.label;
330
+ var sortEnabled = !disableSort && sort;
331
+ var classNames = (0, _clsx["default"])('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
332
+ ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
333
+ });
334
+ var style = this._getFlexStyleForColumn(column, _objectSpread(_objectSpread({}, headerStyle), column.props.headerStyle));
335
+ var renderedHeader = headerRenderer({
336
+ columnData: columnData,
337
+ dataKey: dataKey,
338
+ disableSort: disableSort,
339
+ label: label,
340
+ sortBy: sortBy,
341
+ sortDirection: sortDirection
342
+ });
343
+ var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;
344
+ if (sortEnabled || onHeaderClick) {
345
+ // If this is a sortable header, clicking it should update the table data's sorting.
346
+ var isFirstTimeSort = sortBy !== dataKey;
347
+
348
+ // If this is the firstTime sort of this column, use the column default sort order.
349
+ // Otherwise, invert the direction of the sort.
350
+ var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === _SortDirection["default"].DESC ? _SortDirection["default"].ASC : _SortDirection["default"].DESC;
351
+ var onClick = function onClick(event) {
352
+ sortEnabled && sort({
353
+ defaultSortDirection: defaultSortDirection,
354
+ event: event,
355
+ sortBy: dataKey,
356
+ sortDirection: newSortDirection
357
+ });
358
+ onHeaderClick && onHeaderClick({
359
+ columnData: columnData,
360
+ dataKey: dataKey,
361
+ event: event
362
+ });
363
+ };
364
+ var onKeyDown = function onKeyDown(event) {
365
+ if (event.key === 'Enter' || event.key === ' ') {
366
+ onClick(event);
367
+ }
368
+ };
369
+ headerAriaLabel = column.props['aria-label'] || label || dataKey;
370
+ headerAriaSort = 'none';
371
+ headerTabIndex = 0;
372
+ headerOnClick = onClick;
373
+ headerOnKeyDown = onKeyDown;
374
+ }
375
+ if (sortBy === dataKey) {
376
+ headerAriaSort = sortDirection === _SortDirection["default"].ASC ? 'ascending' : 'descending';
377
+ }
378
+
379
+ // Avoid using object-spread syntax with multiple objects here,
380
+ // Since it results in an extra method call to 'babel-runtime/helpers/extends'
381
+ // See PR https://github.com/bvaughn/react-virtualized/pull/942
382
+ return /*#__PURE__*/React.createElement("div", {
383
+ "aria-label": headerAriaLabel,
384
+ "aria-sort": headerAriaSort,
385
+ className: classNames,
386
+ id: id,
387
+ key: 'Header-Col' + index,
388
+ onClick: headerOnClick,
389
+ onKeyDown: headerOnKeyDown,
390
+ role: "columnheader",
391
+ style: style,
392
+ tabIndex: headerTabIndex
393
+ }, renderedHeader);
394
+ }
395
+ }, {
396
+ key: "_createRow",
397
+ value: function _createRow(_ref6) {
398
+ var _this3 = this;
399
+ var index = _ref6.rowIndex,
400
+ isScrolling = _ref6.isScrolling,
401
+ key = _ref6.key,
402
+ parent = _ref6.parent,
403
+ style = _ref6.style;
404
+ var _this$props3 = this.props,
405
+ children = _this$props3.children,
406
+ onRowClick = _this$props3.onRowClick,
407
+ onRowDoubleClick = _this$props3.onRowDoubleClick,
408
+ onRowRightClick = _this$props3.onRowRightClick,
409
+ onRowMouseOver = _this$props3.onRowMouseOver,
410
+ onRowMouseOut = _this$props3.onRowMouseOut,
411
+ rowClassName = _this$props3.rowClassName,
412
+ rowGetter = _this$props3.rowGetter,
413
+ rowRenderer = _this$props3.rowRenderer,
414
+ rowStyle = _this$props3.rowStyle;
415
+ var scrollbarWidth = this.state.scrollbarWidth;
416
+ var rowClass = typeof rowClassName === 'function' ? rowClassName({
417
+ index: index
418
+ }) : rowClassName;
419
+ var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
420
+ index: index
421
+ }) : rowStyle;
422
+ var rowData = rowGetter({
423
+ index: index
424
+ });
425
+ var columns = React.Children.toArray(children).map(function (column, columnIndex) {
426
+ return _this3._createColumn({
427
+ column: column,
428
+ columnIndex: columnIndex,
429
+ isScrolling: isScrolling,
430
+ parent: parent,
431
+ rowData: rowData,
432
+ rowIndex: index,
433
+ scrollbarWidth: scrollbarWidth
434
+ });
435
+ });
436
+ var className = (0, _clsx["default"])('ReactVirtualized__Table__row', rowClass);
437
+ var flattenedStyle = _objectSpread(_objectSpread({}, style), {}, {
438
+ height: this._getRowHeight(index),
439
+ overflow: 'hidden',
440
+ paddingRight: scrollbarWidth
441
+ }, rowStyleObject);
442
+ return rowRenderer({
443
+ className: className,
444
+ columns: columns,
445
+ index: index,
446
+ isScrolling: isScrolling,
447
+ key: key,
448
+ onRowClick: onRowClick,
449
+ onRowDoubleClick: onRowDoubleClick,
450
+ onRowRightClick: onRowRightClick,
451
+ onRowMouseOver: onRowMouseOver,
452
+ onRowMouseOut: onRowMouseOut,
453
+ rowData: rowData,
454
+ style: flattenedStyle
455
+ });
456
+ }
457
+
458
+ /**
459
+ * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
460
+ */
461
+ }, {
462
+ key: "_getFlexStyleForColumn",
463
+ value: function _getFlexStyleForColumn(column) {
464
+ var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
465
+ var flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px");
466
+ var style = _objectSpread(_objectSpread({}, customStyle), {}, {
467
+ flex: flexValue,
468
+ msFlex: flexValue,
469
+ WebkitFlex: flexValue
470
+ });
471
+ if (column.props.maxWidth) {
472
+ style.maxWidth = column.props.maxWidth;
473
+ }
474
+ if (column.props.minWidth) {
475
+ style.minWidth = column.props.minWidth;
476
+ }
477
+ return style;
478
+ }
479
+ }, {
480
+ key: "_getHeaderColumns",
481
+ value: function _getHeaderColumns() {
482
+ var _this4 = this;
483
+ var _this$props4 = this.props,
484
+ children = _this$props4.children,
485
+ disableHeader = _this$props4.disableHeader;
486
+ var items = disableHeader ? [] : React.Children.toArray(children);
487
+ return items.map(function (column, index) {
488
+ return _this4._createHeader({
489
+ column: column,
490
+ index: index
491
+ });
492
+ });
493
+ }
494
+ }, {
495
+ key: "_getRowHeight",
496
+ value: function _getRowHeight(rowIndex) {
497
+ var rowHeight = this.props.rowHeight;
498
+ return typeof rowHeight === 'function' ? rowHeight({
499
+ index: rowIndex
500
+ }) : rowHeight;
501
+ }
502
+ }, {
503
+ key: "_onScroll",
504
+ value: function _onScroll(_ref7) {
505
+ var clientHeight = _ref7.clientHeight,
506
+ scrollHeight = _ref7.scrollHeight,
507
+ scrollTop = _ref7.scrollTop;
508
+ var onScroll = this.props.onScroll;
509
+ onScroll({
510
+ clientHeight: clientHeight,
511
+ scrollHeight: scrollHeight,
512
+ scrollTop: scrollTop
513
+ });
514
+ }
515
+ }, {
516
+ key: "_onSectionRendered",
517
+ value: function _onSectionRendered(_ref8) {
518
+ var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
519
+ rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
520
+ rowStartIndex = _ref8.rowStartIndex,
521
+ rowStopIndex = _ref8.rowStopIndex;
522
+ var onRowsRendered = this.props.onRowsRendered;
523
+ onRowsRendered({
524
+ overscanStartIndex: rowOverscanStartIndex,
525
+ overscanStopIndex: rowOverscanStopIndex,
526
+ startIndex: rowStartIndex,
527
+ stopIndex: rowStopIndex
528
+ });
529
+ }
530
+ }, {
531
+ key: "_setRef",
532
+ value: function _setRef(ref) {
533
+ this.Grid = ref;
534
+ }
535
+ }, {
536
+ key: "_setGridElementRef",
537
+ value: function _setGridElementRef(ref) {
538
+ this.GridElement = ref;
539
+ }
540
+ }, {
541
+ key: "_setScrollbarWidth",
542
+ value: function _setScrollbarWidth() {
543
+ var scrollbarWidth = this.getScrollbarWidth();
544
+ this.setState({
545
+ scrollbarWidth: scrollbarWidth
546
+ });
547
+ }
548
+ }]);
549
+ }(React.PureComponent);
550
+ (0, _defineProperty2["default"])(Table, "defaultProps", {
551
+ disableHeader: false,
552
+ estimatedRowSize: 30,
553
+ headerHeight: 0,
554
+ headerStyle: {},
555
+ noRowsRenderer: function noRowsRenderer() {
556
+ return null;
557
+ },
558
+ onRowsRendered: function onRowsRendered() {
559
+ return null;
560
+ },
561
+ onScroll: function onScroll() {
562
+ return null;
563
+ },
564
+ overscanIndicesGetter: _Grid2.accessibilityOverscanIndicesGetter,
565
+ overscanRowCount: 10,
566
+ rowRenderer: _defaultRowRenderer["default"],
567
+ headerRowRenderer: _defaultHeaderRowRenderer["default"],
568
+ rowStyle: {},
569
+ scrollToAlignment: 'auto',
570
+ scrollToIndex: -1,
571
+ style: {}
572
+ });
573
+ Table.propTypes = process.env.NODE_ENV !== "production" ? {
574
+ /** This is just set on the grid top element. */
575
+ 'aria-label': _propTypes["default"].string,
576
+ /** This is just set on the grid top element. */
577
+ 'aria-labelledby': _propTypes["default"].string,
578
+ /**
579
+ * Removes fixed height from the scrollingContainer so that the total height
580
+ * of rows can stretch the window. Intended for use with WindowScroller
581
+ */
582
+ autoHeight: _propTypes["default"].bool,
583
+ /** One or more Columns describing the data displayed in this row */
584
+ children: function children(props) {
585
+ var children = React.Children.toArray(props.children);
586
+ for (var i = 0; i < children.length; i++) {
587
+ var childType = children[i].type;
588
+ if (childType !== _Column["default"] && !(childType.prototype instanceof _Column["default"])) {
589
+ return new Error('Table only accepts children of type Column');
590
+ }
591
+ }
592
+ },
593
+ /** Optional CSS class name */
594
+ className: _propTypes["default"].string,
595
+ /** Disable rendering the header at all */
596
+ disableHeader: _propTypes["default"].bool,
597
+ /**
598
+ * Used to estimate the total height of a Table before all of its rows have actually been measured.
599
+ * The estimated total height is adjusted as rows are rendered.
600
+ */
601
+ estimatedRowSize: _propTypes["default"].number.isRequired,
602
+ /** Optional custom CSS class name to attach to inner Grid element. */
603
+ gridClassName: _propTypes["default"].string,
604
+ /** Optional inline style to attach to inner Grid element. */
605
+ gridStyle: _propTypes["default"].object,
606
+ /** Optional CSS class to apply to all column headers */
607
+ headerClassName: _propTypes["default"].string,
608
+ /** Fixed height of header row */
609
+ headerHeight: _propTypes["default"].number.isRequired,
610
+ /**
611
+ * Responsible for rendering a table row given an array of columns:
612
+ * Should implement the following interface: ({
613
+ * className: string,
614
+ * columns: any[],
615
+ * style: any
616
+ * }): PropTypes.node
617
+ */
618
+ headerRowRenderer: _propTypes["default"].func,
619
+ /** Optional custom inline style to attach to table header columns. */
620
+ headerStyle: _propTypes["default"].object,
621
+ /** Fixed/available height for out DOM element */
622
+ height: _propTypes["default"].number.isRequired,
623
+ /** Optional id */
624
+ id: _propTypes["default"].string,
625
+ /** Optional renderer to be used in place of table body rows when rowCount is 0 */
626
+ noRowsRenderer: _propTypes["default"].func,
627
+ /**
628
+ * Optional callback when a column is clicked.
629
+ * ({ columnData: any, dataKey: string }): void
630
+ */
631
+ onColumnClick: _propTypes["default"].func,
632
+ /**
633
+ * Optional callback when a column's header is clicked.
634
+ * ({ columnData: any, dataKey: string }): void
635
+ */
636
+ onHeaderClick: _propTypes["default"].func,
637
+ /**
638
+ * Callback invoked when a user clicks on a table row.
639
+ * ({ index: number }): void
640
+ */
641
+ onRowClick: _propTypes["default"].func,
642
+ /**
643
+ * Callback invoked when a user double-clicks on a table row.
644
+ * ({ index: number }): void
645
+ */
646
+ onRowDoubleClick: _propTypes["default"].func,
647
+ /**
648
+ * Callback invoked when the mouse leaves a table row.
649
+ * ({ index: number }): void
650
+ */
651
+ onRowMouseOut: _propTypes["default"].func,
652
+ /**
653
+ * Callback invoked when a user moves the mouse over a table row.
654
+ * ({ index: number }): void
655
+ */
656
+ onRowMouseOver: _propTypes["default"].func,
657
+ /**
658
+ * Callback invoked when a user right-clicks on a table row.
659
+ * ({ index: number }): void
660
+ */
661
+ onRowRightClick: _propTypes["default"].func,
662
+ /**
663
+ * Callback invoked with information about the slice of rows that were just rendered.
664
+ * ({ startIndex, stopIndex }): void
665
+ */
666
+ onRowsRendered: _propTypes["default"].func,
667
+ /**
668
+ * Callback invoked whenever the scroll offset changes within the inner scrollable region.
669
+ * This callback can be used to sync scrolling between lists, tables, or grids.
670
+ * ({ clientHeight, scrollHeight, scrollTop }): void
671
+ */
672
+ onScroll: _propTypes["default"].func.isRequired,
673
+ /** See Grid#overscanIndicesGetter */
674
+ overscanIndicesGetter: _propTypes["default"].func.isRequired,
675
+ /**
676
+ * Number of rows to render above/below the visible bounds of the list.
677
+ * These rows can help for smoother scrolling on touch devices.
678
+ */
679
+ overscanRowCount: _propTypes["default"].number.isRequired,
680
+ /**
681
+ * Optional CSS class to apply to all table rows (including the header row).
682
+ * This property can be a CSS class name (string) or a function that returns a class name.
683
+ * If a function is provided its signature should be: ({ index: number }): string
684
+ */
685
+ rowClassName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]),
686
+ /**
687
+ * Callback responsible for returning a data row given an index.
688
+ * ({ index: number }): any
689
+ */
690
+ rowGetter: _propTypes["default"].func.isRequired,
691
+ /**
692
+ * Either a fixed row height (number) or a function that returns the height of a row given its index.
693
+ * ({ index: number }): number
694
+ */
695
+ rowHeight: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].func]).isRequired,
696
+ /** Number of rows in table. */
697
+ rowCount: _propTypes["default"].number.isRequired,
698
+ /**
699
+ * Responsible for rendering a table row given an array of columns:
700
+ * Should implement the following interface: ({
701
+ * className: string,
702
+ * columns: Array,
703
+ * index: number,
704
+ * isScrolling: boolean,
705
+ * onRowClick: ?Function,
706
+ * onRowDoubleClick: ?Function,
707
+ * onRowMouseOver: ?Function,
708
+ * onRowMouseOut: ?Function,
709
+ * rowData: any,
710
+ * style: any
711
+ * }): PropTypes.node
712
+ */
713
+ rowRenderer: _propTypes["default"].func,
714
+ /** Optional custom inline style to attach to table rows. */
715
+ rowStyle: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]).isRequired,
716
+ /** See Grid#scrollToAlignment */
717
+ scrollToAlignment: _propTypes["default"].oneOf(['auto', 'end', 'start', 'center']).isRequired,
718
+ /** Row index to ensure visible (by forcefully scrolling if necessary) */
719
+ scrollToIndex: _propTypes["default"].number.isRequired,
720
+ /** Vertical offset. */
721
+ scrollTop: _propTypes["default"].number,
722
+ /**
723
+ * Sort function to be called if a sortable header is clicked.
724
+ * Should implement the following interface: ({
725
+ * defaultSortDirection: 'ASC' | 'DESC',
726
+ * event: MouseEvent,
727
+ * sortBy: string,
728
+ * sortDirection: SortDirection
729
+ * }): void
730
+ */
731
+ sort: _propTypes["default"].func,
732
+ /** Table data is currently sorted by this :dataKey (if it is sorted at all) */
733
+ sortBy: _propTypes["default"].string,
734
+ /** Table data is currently sorted in this direction (if it is sorted at all) */
735
+ sortDirection: _propTypes["default"].oneOf([_SortDirection["default"].ASC, _SortDirection["default"].DESC]),
736
+ /** Optional inline style */
737
+ style: _propTypes["default"].object,
738
+ /** Tab index for focus */
739
+ tabIndex: _propTypes["default"].number,
740
+ /** Width of list */
741
+ width: _propTypes["default"].number.isRequired
742
+ } : {};