baseui 0.0.0-next-6e876dd → 0.0.0-next-cefa45f

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.
@@ -62,6 +62,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
62
62
  // consider pulling this out to a prop if useful.
63
63
  var HEADER_ROW_HEIGHT = 48;
64
64
 
65
+ var sum = function sum(ns) {
66
+ return ns.reduce(function (s, n) {
67
+ return s + n;
68
+ }, 0);
69
+ };
70
+
65
71
  function CellPlacement(_ref) {
66
72
  var columnIndex = _ref.columnIndex,
67
73
  rowIndex = _ref.rowIndex,
@@ -320,7 +326,7 @@ function Header(props) {
320
326
  }))));
321
327
  }
322
328
 
323
- function Headers(props) {
329
+ function Headers() {
324
330
  var _useStyletron5 = (0, _index2.useStyletron)(),
325
331
  _useStyletron6 = _slicedToArray(_useStyletron5, 2),
326
332
  css = _useStyletron6[0],
@@ -339,9 +345,7 @@ function Headers(props) {
339
345
  position: 'sticky',
340
346
  top: 0,
341
347
  left: 0,
342
- width: "".concat(ctx.widths.reduce(function (sum, w) {
343
- return sum + w;
344
- }, 0), "px"),
348
+ width: "".concat(sum(ctx.widths), "px"),
345
349
  height: "".concat(HEADER_ROW_HEIGHT, "px"),
346
350
  display: 'flex',
347
351
  // this feels bad.. the absolutely positioned children elements
@@ -564,22 +568,27 @@ function DataTable(_ref2) {
564
568
  }
565
569
 
566
570
  return rowHeight;
567
- }, [rowHeight]);
568
- var gridRef = React.useRef(null);
571
+ }, [rowHeight]); // We use state for our ref, to allow hooks to update when the ref changes.
572
+ // eslint-disable-next-line flowtype/no-weak-types
569
573
 
570
- var _React$useState7 = React.useState(columns.map(function () {
571
- return 0;
572
- })),
574
+ var _React$useState7 = React.useState(null),
573
575
  _React$useState8 = _slicedToArray(_React$useState7, 2),
574
- measuredWidths = _React$useState8[0],
575
- setMeasuredWidths = _React$useState8[1];
576
+ gridRef = _React$useState8[0],
577
+ setGridRef = _React$useState8[1];
576
578
 
577
579
  var _React$useState9 = React.useState(columns.map(function () {
578
580
  return 0;
579
581
  })),
580
582
  _React$useState10 = _slicedToArray(_React$useState9, 2),
581
- resizeDeltas = _React$useState10[0],
582
- setResizeDeltas = _React$useState10[1];
583
+ measuredWidths = _React$useState10[0],
584
+ setMeasuredWidths = _React$useState10[1];
585
+
586
+ var _React$useState11 = React.useState(columns.map(function () {
587
+ return 0;
588
+ })),
589
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
590
+ resizeDeltas = _React$useState12[0],
591
+ setResizeDeltas = _React$useState12[1];
583
592
 
584
593
  React.useEffect(function () {
585
594
  setMeasuredWidths(function (prev) {
@@ -594,11 +603,11 @@ function DataTable(_ref2) {
594
603
  });
595
604
  }, [columns]);
596
605
  var resetAfterColumnIndex = React.useCallback(function (columnIndex) {
597
- if (gridRef.current) {
606
+ if (gridRef) {
598
607
  // $FlowFixMe trigger react-window to layout the elements again
599
- gridRef.current.resetAfterColumnIndex(columnIndex, true);
608
+ gridRef.resetAfterColumnIndex(columnIndex, true);
600
609
  }
601
- }, [gridRef.current]);
610
+ }, [gridRef]);
602
611
  var handleWidthsChange = React.useCallback(function (nextWidths) {
603
612
  setMeasuredWidths(nextWidths);
604
613
  resetAfterColumnIndex(0);
@@ -611,20 +620,20 @@ function DataTable(_ref2) {
611
620
  resetAfterColumnIndex(columnIndex);
612
621
  }, [setResizeDeltas, resetAfterColumnIndex]);
613
622
 
614
- var _React$useState11 = React.useState(0),
615
- _React$useState12 = _slicedToArray(_React$useState11, 2),
616
- scrollLeft = _React$useState12[0],
617
- setScrollLeft = _React$useState12[1];
618
-
619
- var _React$useState13 = React.useState(false),
623
+ var _React$useState13 = React.useState(0),
620
624
  _React$useState14 = _slicedToArray(_React$useState13, 2),
621
- isScrollingX = _React$useState14[0],
622
- setIsScrollingX = _React$useState14[1];
625
+ scrollLeft = _React$useState14[0],
626
+ setScrollLeft = _React$useState14[1];
623
627
 
624
628
  var _React$useState15 = React.useState(false),
625
629
  _React$useState16 = _slicedToArray(_React$useState15, 2),
626
- recentlyScrolledX = _React$useState16[0],
627
- setRecentlyScrolledX = _React$useState16[1];
630
+ isScrollingX = _React$useState16[0],
631
+ setIsScrollingX = _React$useState16[1];
632
+
633
+ var _React$useState17 = React.useState(false),
634
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
635
+ recentlyScrolledX = _React$useState18[0],
636
+ setRecentlyScrolledX = _React$useState18[1];
628
637
 
629
638
  React.useLayoutEffect(function () {
630
639
  if (recentlyScrolledX !== isScrollingX) {
@@ -746,25 +755,18 @@ function DataTable(_ref2) {
746
755
  return result;
747
756
  }, [sortedIndices, filteredIndices, onIncludedRowsChange, allRows]);
748
757
 
749
- var _React$useState17 = React.useState(0),
750
- _React$useState18 = _slicedToArray(_React$useState17, 2),
751
- browserScrollbarWidth = _React$useState18[0],
752
- setBrowserScrollbarWidth = _React$useState18[1];
758
+ var _React$useState19 = React.useState(0),
759
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
760
+ browserScrollbarWidth = _React$useState20[0],
761
+ setBrowserScrollbarWidth = _React$useState20[1];
753
762
 
754
763
  var normalizedWidths = React.useMemo(function () {
755
- var sum = function sum(ns) {
756
- return ns.reduce(function (s, n) {
757
- return s + n;
758
- }, 0);
759
- };
760
-
761
764
  var resizedWidths = measuredWidths.map(function (w, i) {
762
765
  return Math.floor(w) + Math.floor(resizeDeltas[i]);
763
766
  });
764
767
 
765
- if (gridRef.current) {
766
- // $FlowFixMe
767
- var gridProps = gridRef.current.props;
768
+ if (gridRef) {
769
+ var gridProps = gridRef.props;
768
770
  var isContentTallerThanContainer = false;
769
771
  var visibleRowHeight = 0;
770
772
 
@@ -801,7 +803,7 @@ function DataTable(_ref2) {
801
803
  }
802
804
 
803
805
  return resizedWidths;
804
- }, [measuredWidths, resizeDeltas, browserScrollbarWidth, rows.length, columns]);
806
+ }, [gridRef, measuredWidths, resizeDeltas, browserScrollbarWidth, rows.length, columns]);
805
807
  var isSelectable = batchActions ? !!batchActions.length : false;
806
808
  var isSelectedAll = React.useMemo(function () {
807
809
  if (!selectedRowIds) {
@@ -845,23 +847,23 @@ function DataTable(_ref2) {
845
847
  }
846
848
  }, [onSort]);
847
849
 
848
- var _React$useState19 = React.useState(-1),
849
- _React$useState20 = _slicedToArray(_React$useState19, 2),
850
- columnHighlightIndex = _React$useState20[0],
851
- setColumnHighlightIndex = _React$useState20[1];
852
-
853
850
  var _React$useState21 = React.useState(-1),
854
851
  _React$useState22 = _slicedToArray(_React$useState21, 2),
855
- rowHighlightIndex = _React$useState22[0],
856
- setRowHighlightIndex = _React$useState22[1];
852
+ columnHighlightIndex = _React$useState22[0],
853
+ setColumnHighlightIndex = _React$useState22[1];
854
+
855
+ var _React$useState23 = React.useState(-1),
856
+ _React$useState24 = _slicedToArray(_React$useState23, 2),
857
+ rowHighlightIndex = _React$useState24[0],
858
+ setRowHighlightIndex = _React$useState24[1];
857
859
 
858
860
  function handleRowHighlightIndexChange(nextIndex) {
859
861
  setRowHighlightIndex(nextIndex);
860
862
 
861
- if (gridRef.current) {
863
+ if (gridRef) {
862
864
  if (nextIndex >= 0) {
863
865
  // $FlowFixMe - unable to get react-window types
864
- gridRef.current.scrollToItem({
866
+ gridRef.scrollToItem({
865
867
  rowIndex: nextIndex
866
868
  });
867
869
  }
@@ -952,8 +954,9 @@ function DataTable(_ref2) {
952
954
  }
953
955
  }, /*#__PURE__*/React.createElement(_reactWindow.VariableSizeGrid // eslint-disable-next-line flowtype/no-weak-types
954
956
  , {
955
- ref: gridRef,
957
+ ref: setGridRef,
956
958
  overscanRowCount: 10,
959
+ overscanColumnCount: 5,
957
960
  innerElementType: InnerTableElement,
958
961
  columnCount: columns.length,
959
962
  columnWidth: function columnWidth(columnIndex) {
@@ -87,6 +87,8 @@ type CellPlacementPropsT = {
87
87
  },
88
88
  };
89
89
 
90
+ const sum = ns => ns.reduce((s, n) => s + n, 0);
91
+
90
92
  function CellPlacement({columnIndex, rowIndex, data, style}) {
91
93
  const [css, theme] = useStyletron();
92
94
 
@@ -411,7 +413,7 @@ function Header(props: HeaderProps) {
411
413
  );
412
414
  }
413
415
 
414
- function Headers(props: {||}) {
416
+ function Headers() {
415
417
  const [css, theme] = useStyletron();
416
418
  const locale = React.useContext(LocaleContext);
417
419
  const ctx = React.useContext(HeaderContext);
@@ -423,7 +425,7 @@ function Headers(props: {||}) {
423
425
  position: 'sticky',
424
426
  top: 0,
425
427
  left: 0,
426
- width: `${ctx.widths.reduce((sum, w) => sum + w, 0)}px`,
428
+ width: `${sum(ctx.widths)}px`,
427
429
  height: `${HEADER_ROW_HEIGHT}px`,
428
430
  display: 'flex',
429
431
  // this feels bad.. the absolutely positioned children elements
@@ -696,7 +698,10 @@ export function DataTable({
696
698
  },
697
699
  [rowHeight],
698
700
  );
699
- const gridRef = React.useRef<typeof VariableSizeGrid | null>(null);
701
+
702
+ // We use state for our ref, to allow hooks to update when the ref changes.
703
+ // eslint-disable-next-line flowtype/no-weak-types
704
+ const [gridRef, setGridRef] = React.useState<?VariableSizeGrid<any>>(null);
700
705
  const [measuredWidths, setMeasuredWidths] = React.useState(
701
706
  columns.map(() => 0),
702
707
  );
@@ -712,12 +717,12 @@ export function DataTable({
712
717
 
713
718
  const resetAfterColumnIndex = React.useCallback(
714
719
  columnIndex => {
715
- if (gridRef.current) {
720
+ if (gridRef) {
716
721
  // $FlowFixMe trigger react-window to layout the elements again
717
- gridRef.current.resetAfterColumnIndex(columnIndex, true);
722
+ gridRef.resetAfterColumnIndex(columnIndex, true);
718
723
  }
719
724
  },
720
- [gridRef.current],
725
+ [gridRef],
721
726
  );
722
727
  const handleWidthsChange = React.useCallback(
723
728
  nextWidths => {
@@ -843,13 +848,11 @@ export function DataTable({
843
848
 
844
849
  const [browserScrollbarWidth, setBrowserScrollbarWidth] = React.useState(0);
845
850
  const normalizedWidths = React.useMemo(() => {
846
- const sum = ns => ns.reduce((s, n) => s + n, 0);
847
851
  const resizedWidths = measuredWidths.map(
848
852
  (w, i) => Math.floor(w) + Math.floor(resizeDeltas[i]),
849
853
  );
850
- if (gridRef.current) {
851
- // $FlowFixMe
852
- const gridProps = gridRef.current.props;
854
+ if (gridRef) {
855
+ const gridProps = gridRef.props;
853
856
 
854
857
  let isContentTallerThanContainer = false;
855
858
  let visibleRowHeight = 0;
@@ -886,6 +889,7 @@ export function DataTable({
886
889
  }
887
890
  return resizedWidths;
888
891
  }, [
892
+ gridRef,
889
893
  measuredWidths,
890
894
  resizeDeltas,
891
895
  browserScrollbarWidth,
@@ -948,10 +952,10 @@ export function DataTable({
948
952
 
949
953
  function handleRowHighlightIndexChange(nextIndex) {
950
954
  setRowHighlightIndex(nextIndex);
951
- if (gridRef.current) {
955
+ if (gridRef) {
952
956
  if (nextIndex >= 0) {
953
957
  // $FlowFixMe - unable to get react-window types
954
- gridRef.current.scrollToItem({rowIndex: nextIndex});
958
+ gridRef.scrollToItem({rowIndex: nextIndex});
955
959
  }
956
960
  if (onRowHighlightChange) {
957
961
  onRowHighlightChange(nextIndex, rows[nextIndex - 1]);
@@ -1051,8 +1055,9 @@ export function DataTable({
1051
1055
  >
1052
1056
  <VariableSizeGrid
1053
1057
  // eslint-disable-next-line flowtype/no-weak-types
1054
- ref={(gridRef: any)}
1058
+ ref={(setGridRef: any)}
1055
1059
  overscanRowCount={10}
1060
+ overscanColumnCount={5}
1056
1061
  innerElementType={InnerTableElement}
1057
1062
  columnCount={columns.length}
1058
1063
  columnWidth={columnIndex => normalizedWidths[columnIndex]}
@@ -19,14 +19,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
19
19
 
20
20
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
21
 
22
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23
-
24
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
-
26
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
27
-
28
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
29
-
30
22
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
23
 
32
24
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -39,50 +31,61 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
39
31
 
40
32
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
33
 
42
- // https://github.com/Swizec/useDimensions
43
- function useDimensions() {
44
- var _React$useState = React.useState({}),
45
- _React$useState2 = _slicedToArray(_React$useState, 2),
46
- dimensions = _React$useState2[0],
47
- setDimensions = _React$useState2[1];
34
+ // Measures the column header + sampled data
35
+ function MeasureColumn(_ref) {
36
+ var sampleIndexes = _ref.sampleIndexes,
37
+ column = _ref.column,
38
+ columnIndex = _ref.columnIndex,
39
+ rows = _ref.rows,
40
+ isSelectable = _ref.isSelectable,
41
+ onLayout = _ref.onLayout;
48
42
 
49
- var _React$useState3 = React.useState(null),
50
- _React$useState4 = _slicedToArray(_React$useState3, 2),
51
- node = _React$useState4[0],
52
- setNode = _React$useState4[1];
43
+ var _useStyletron = (0, _index.useStyletron)(),
44
+ _useStyletron2 = _slicedToArray(_useStyletron, 1),
45
+ css = _useStyletron2[0];
53
46
 
54
- var ref = React.useCallback(function (node) {
55
- setNode(node);
56
- }, []);
47
+ var ref = (0, React.useRef)();
57
48
  React.useEffect(function () {
58
- if (typeof document !== 'undefined') {
59
- if (node) {
60
- window.requestAnimationFrame(function () {
61
- setDimensions(node.getBoundingClientRect());
62
- });
63
- }
49
+ if (ref.current) {
50
+ onLayout(columnIndex, ref.current.getBoundingClientRect());
64
51
  }
65
- }, [node]);
66
- return [ref, dimensions];
67
- }
68
-
69
- function ElementMeasurer(props) {
70
- var onDimensionsChange = props.onDimensionsChange;
71
-
72
- var _useDimensions = useDimensions(),
73
- _useDimensions2 = _slicedToArray(_useDimensions, 2),
74
- ref = _useDimensions2[0],
75
- dimensions = _useDimensions2[1];
76
-
77
- React.useEffect(function () {
78
- onDimensionsChange(dimensions);
79
- }, [dimensions, onDimensionsChange]);
80
- return /*#__PURE__*/React.cloneElement(props.item, {
81
- ref: ref
82
- });
52
+ }, []);
53
+ return /*#__PURE__*/React.createElement("div", {
54
+ ref: ref,
55
+ className: css({
56
+ display: 'flex',
57
+ flexDirection: 'column',
58
+ width: 'fit-content'
59
+ })
60
+ }, /*#__PURE__*/React.createElement(_headerCell.default, {
61
+ index: columnIndex,
62
+ isHovered: true,
63
+ isMeasured: true,
64
+ isSelectedAll: false,
65
+ isSelectedIndeterminate: false,
66
+ onMouseEnter: function onMouseEnter() {},
67
+ onMouseLeave: function onMouseLeave() {},
68
+ onSelectAll: function onSelectAll() {},
69
+ onSelectNone: function onSelectNone() {},
70
+ onSort: function onSort(i) {},
71
+ sortable: column.sortable,
72
+ sortDirection: null,
73
+ title: column.title,
74
+ isSelectable: isSelectable
75
+ }), sampleIndexes.map(function (rowIndex, i) {
76
+ var Cell = column.renderCell;
77
+ return /*#__PURE__*/React.createElement(Cell, {
78
+ key: "measure-".concat(i),
79
+ value: column.mapDataToValue(rows[rowIndex].data),
80
+ isSelectable: isSelectable,
81
+ isMeasured: true,
82
+ sortable: column.sortable,
83
+ x: 0,
84
+ y: rowIndex
85
+ });
86
+ }));
83
87
  }
84
88
 
85
- // sample size could likely be generated based on row count, to have higher confidence
86
89
  var MAX_SAMPLE_SIZE = 50;
87
90
 
88
91
  function generateSampleIndices(inputMin, inputMax, maxSamples) {
@@ -114,57 +117,46 @@ function generateSampleIndices(inputMin, inputMax, maxSamples) {
114
117
  return indices;
115
118
  }
116
119
 
117
- function MeasureColumnWidths(_ref) {
118
- var columns = _ref.columns,
119
- rows = _ref.rows,
120
- widths = _ref.widths,
121
- isSelectable = _ref.isSelectable,
122
- onWidthsChange = _ref.onWidthsChange;
120
+ function MeasureColumnWidths(_ref2) {
121
+ var columns = _ref2.columns,
122
+ rows = _ref2.rows,
123
+ widths = _ref2.widths,
124
+ isSelectable = _ref2.isSelectable,
125
+ onWidthsChange = _ref2.onWidthsChange;
123
126
 
124
- var _useStyletron = (0, _index.useStyletron)(),
125
- _useStyletron2 = _slicedToArray(_useStyletron, 1),
126
- css = _useStyletron2[0];
127
+ var _useStyletron3 = (0, _index.useStyletron)(),
128
+ _useStyletron4 = _slicedToArray(_useStyletron3, 1),
129
+ css = _useStyletron4[0];
127
130
 
128
- var measurementCount = React.useRef(0);
129
- var dimensionsCache = React.useRef(widths);
131
+ var widthMap = React.useMemo(function () {
132
+ return new Map();
133
+ }, []);
130
134
  var sampleSize = rows.length < MAX_SAMPLE_SIZE ? rows.length : MAX_SAMPLE_SIZE;
131
135
  var finishedMeasurementCount = (sampleSize + 1) * columns.length;
132
- var sampleRowIndicesByColumn = React.useMemo(function () {
133
- measurementCount.current = 0;
134
- dimensionsCache.current = widths;
135
- var indices = generateSampleIndices(0, rows.length - 1, sampleSize);
136
- return columns.map(function () {
137
- return indices;
138
- });
136
+ var sampleIndexes = React.useMemo(function () {
137
+ return generateSampleIndices(0, rows.length - 1, sampleSize);
139
138
  }, [columns, rows, widths, sampleSize]);
140
- var handleDimensionsChange = React.useCallback(function (columnIndex, rowIndex, dimensions) {
141
- if (dimensions.width === undefined) return;
139
+ var handleDimensionsChange = React.useCallback(function (columnIndex, dimensions) {
140
+ var nextWidth = Math.min(Math.max(columns[columnIndex].minWidth || 0, widthMap.get(columnIndex) || 0, dimensions.width + 1), columns[columnIndex].maxWidth || Infinity);
142
141
 
143
- if (columns[columnIndex] === undefined || dimensionsCache.current[columnIndex] === undefined) {
144
- return;
142
+ if (nextWidth !== widthMap.get(columnIndex)) {
143
+ widthMap.set(columnIndex, nextWidth);
145
144
  }
146
145
 
147
- measurementCount.current += 1;
148
- var nextWidth = Math.min(Math.max(columns[columnIndex].minWidth || 0, dimensionsCache.current[columnIndex], dimensions.width + 1), columns[columnIndex].maxWidth || Infinity);
149
-
150
- if (nextWidth !== dimensionsCache.current[columnIndex]) {
151
- var nextWidths = _toConsumableArray(dimensionsCache.current);
152
-
153
- nextWidths[columnIndex] = nextWidth;
154
- dimensionsCache.current = nextWidths;
155
- }
156
-
157
- if (measurementCount.current >= finishedMeasurementCount) {
158
- onWidthsChange(dimensionsCache.current);
146
+ if ( // Refresh at 100% of done
147
+ widthMap.size === columns.length || // ...50%
148
+ widthMap.size === Math.floor(columns.length / 2) || // ...25%
149
+ widthMap.size === Math.floor(columns.length / 4)) {
150
+ onWidthsChange(Array.from(widthMap.values()));
159
151
  }
160
152
  }, [columns, finishedMeasurementCount, onWidthsChange]);
161
153
  var hiddenStyle = css({
162
154
  position: 'absolute',
163
155
  overflow: 'hidden',
164
156
  height: 0
165
- });
157
+ }); // Remove the measurement nodes after we are done updating our column width
166
158
 
167
- if (measurementCount.current >= finishedMeasurementCount) {
159
+ if (widthMap.size === columns.length) {
168
160
  return null;
169
161
  }
170
162
 
@@ -175,45 +167,15 @@ function MeasureColumnWidths(_ref) {
175
167
  className: hiddenStyle,
176
168
  "aria-hidden": true,
177
169
  role: "none"
178
- }, sampleRowIndicesByColumn.map(function (rowIndices, columnIndex) {
179
- var Cell = columns[columnIndex].renderCell;
180
- return rowIndices.map(function (rowIndex) {
181
- return /*#__PURE__*/React.createElement(ElementMeasurer, {
182
- key: "measure-".concat(columnIndex, "-").concat(rowIndex),
183
- onDimensionsChange: function onDimensionsChange(dimensions) {
184
- return handleDimensionsChange(columnIndex, rowIndex, dimensions);
185
- },
186
- item: /*#__PURE__*/React.createElement(Cell, {
187
- value: columns[columnIndex].mapDataToValue(rows[rowIndex].data),
188
- isMeasured: true,
189
- onSelect: isSelectable && columnIndex === 0 ? function () {} : undefined,
190
- x: columnIndex,
191
- y: rowIndex
192
- })
193
- });
194
- });
195
- }), columns.map(function (column, columnIndex) {
196
- return /*#__PURE__*/React.createElement(ElementMeasurer, {
197
- key: "measure-column-".concat(columnIndex),
198
- onDimensionsChange: function onDimensionsChange(dimensions) {
199
- return handleDimensionsChange(columnIndex, -1, dimensions);
200
- },
201
- item: /*#__PURE__*/React.createElement(_headerCell.default, {
202
- index: columnIndex,
203
- isHovered: true,
204
- isMeasured: true,
205
- isSelectable: isSelectable && columnIndex === 0,
206
- isSelectedAll: false,
207
- isSelectedIndeterminate: false,
208
- onMouseEnter: function onMouseEnter() {},
209
- onMouseLeave: function onMouseLeave() {},
210
- onSelectAll: function onSelectAll() {},
211
- onSelectNone: function onSelectNone() {},
212
- onSort: function onSort(i) {},
213
- sortable: column.sortable,
214
- sortDirection: null,
215
- title: column.title
216
- })
170
+ }, columns.map(function (column, i) {
171
+ return /*#__PURE__*/React.createElement(MeasureColumn, {
172
+ key: column.title + i,
173
+ column: column,
174
+ rows: rows,
175
+ isSelectable: isSelectable,
176
+ onLayout: handleDimensionsChange,
177
+ columnIndex: i,
178
+ sampleIndexes: sampleIndexes
217
179
  });
218
180
  }))
219
181
  );