material-react-table 0.9.2 → 0.9.5

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.
@@ -5664,7 +5664,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5664
5664
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
5665
5665
  }
5666
5666
  }), React__default.createElement(MRT_LinearProgressBar, {
5667
- alignTo: 'top',
5667
+ alignTo: "top",
5668
5668
  tableInstance: tableInstance
5669
5669
  }), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, {
5670
5670
  tableInstance: tableInstance
@@ -6327,559 +6327,183 @@ var MRT_TableHead = function MRT_TableHead(_ref) {
6327
6327
  }));
6328
6328
  };
6329
6329
 
6330
- var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
6331
- var cell = _ref.cell,
6332
- tableInstance = _ref.tableInstance;
6333
- var getState = tableInstance.getState,
6334
- _tableInstance$option = tableInstance.options,
6335
- tableId = _tableInstance$option.tableId,
6336
- enableEditing = _tableInstance$option.enableEditing,
6337
- muiTableBodyCellEditTextFieldProps = _tableInstance$option.muiTableBodyCellEditTextFieldProps,
6338
- onMrtCellEditBlur = _tableInstance$option.onMrtCellEditBlur,
6339
- onMrtCellEditChange = _tableInstance$option.onMrtCellEditChange,
6340
- setCurrentEditingCell = tableInstance.setCurrentEditingCell,
6341
- setCurrentEditingRow = tableInstance.setCurrentEditingRow;
6342
-
6343
- var _useState = React.useState(cell.getValue()),
6344
- value = _useState[0],
6345
- setValue = _useState[1];
6330
+ function _extends$1() {
6331
+ _extends$1 = Object.assign || function (target) {
6332
+ for (var i = 1; i < arguments.length; i++) {
6333
+ var source = arguments[i];
6346
6334
 
6347
- var column = cell.column,
6348
- row = cell.row;
6349
- var columnDef = column.columnDef;
6335
+ for (var key in source) {
6336
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
6337
+ target[key] = source[key];
6338
+ }
6339
+ }
6340
+ }
6350
6341
 
6351
- var handleChange = function handleChange(event) {
6352
- setValue(event.target.value);
6353
- columnDef.onMrtCellEditChange == null ? void 0 : columnDef.onMrtCellEditChange({
6354
- event: event,
6355
- cell: cell,
6356
- tableInstance: tableInstance
6357
- });
6358
- onMrtCellEditChange == null ? void 0 : onMrtCellEditChange({
6359
- event: event,
6360
- cell: cell,
6361
- tableInstance: tableInstance
6362
- });
6342
+ return target;
6363
6343
  };
6364
6344
 
6365
- var handleBlur = function handleBlur(event) {
6366
- if (getState().currentEditingRow) {
6367
- if (!row._valuesCache) row._valuesCache = {};
6368
- row._valuesCache[column.id] = value;
6369
- setCurrentEditingRow(_extends({}, getState().currentEditingRow));
6370
- }
6345
+ return _extends$1.apply(this, arguments);
6346
+ }
6371
6347
 
6372
- setCurrentEditingCell(null);
6373
- columnDef.onMrtCellEditBlur == null ? void 0 : columnDef.onMrtCellEditBlur({
6374
- event: event,
6375
- cell: cell,
6376
- tableInstance: tableInstance
6377
- });
6378
- onMrtCellEditBlur == null ? void 0 : onMrtCellEditBlur({
6379
- event: event,
6380
- cell: cell,
6381
- tableInstance: tableInstance
6382
- });
6383
- };
6348
+ function _objectWithoutPropertiesLoose$2(source, excluded) {
6349
+ if (source == null) return {};
6350
+ var target = {};
6351
+ var sourceKeys = Object.keys(source);
6352
+ var key, i;
6384
6353
 
6385
- var mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function ? muiTableBodyCellEditTextFieldProps({
6386
- cell: cell,
6387
- tableInstance: tableInstance
6388
- }) : muiTableBodyCellEditTextFieldProps;
6389
- var mcTableBodyCellEditTextFieldProps = columnDef.muiTableBodyCellEditTextFieldProps instanceof Function ? columnDef.muiTableBodyCellEditTextFieldProps({
6390
- cell: cell,
6391
- tableInstance: tableInstance
6392
- }) : columnDef.muiTableBodyCellEditTextFieldProps;
6354
+ for (i = 0; i < sourceKeys.length; i++) {
6355
+ key = sourceKeys[i];
6356
+ if (excluded.indexOf(key) >= 0) continue;
6357
+ target[key] = source[key];
6358
+ }
6393
6359
 
6394
- var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps);
6360
+ return target;
6361
+ }
6395
6362
 
6396
- if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {
6397
- return React__default.createElement(React__default.Fragment, null, columnDef.Edit == null ? void 0 : columnDef.Edit({
6398
- cell: cell,
6399
- tableInstance: tableInstance
6400
- }));
6363
+ var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
6364
+
6365
+ var rectChanged = function rectChanged(a, b) {
6366
+ if (a === void 0) {
6367
+ a = {};
6401
6368
  }
6402
6369
 
6403
- return React__default.createElement(material.TextField, Object.assign({
6404
- id: "mrt-" + tableId + "-edit-cell-text-field-" + cell.id,
6405
- margin: "dense",
6406
- onBlur: handleBlur,
6407
- onChange: handleChange,
6408
- onClick: function onClick(e) {
6409
- return e.stopPropagation();
6410
- },
6411
- placeholder: columnDef.header,
6412
- value: value,
6413
- variant: "standard"
6414
- }, textFieldProps));
6370
+ if (b === void 0) {
6371
+ b = {};
6372
+ }
6373
+
6374
+ return props.some(function (prop) {
6375
+ return a[prop] !== b[prop];
6376
+ });
6415
6377
  };
6416
6378
 
6417
- var MRT_CopyButton = function MRT_CopyButton(_ref) {
6418
- var cell = _ref.cell,
6419
- children = _ref.children,
6420
- tableInstance = _ref.tableInstance;
6421
- var _tableInstance$option = tableInstance.options,
6422
- localization = _tableInstance$option.localization,
6423
- muiTableBodyCellCopyButtonProps = _tableInstance$option.muiTableBodyCellCopyButtonProps;
6424
- var column = cell.column;
6425
- var columnDef = column.columnDef;
6379
+ var observedNodes = /*#__PURE__*/new Map();
6380
+ var rafId;
6426
6381
 
6427
- var _useState = React.useState(false),
6428
- copied = _useState[0],
6429
- setCopied = _useState[1];
6382
+ var run = function run() {
6383
+ var changedStates = [];
6384
+ observedNodes.forEach(function (state, node) {
6385
+ var newRect = node.getBoundingClientRect();
6430
6386
 
6431
- var handleCopy = function handleCopy(text) {
6432
- navigator.clipboard.writeText(text);
6433
- setCopied(true);
6434
- setTimeout(function () {
6435
- return setCopied(false);
6436
- }, 4000);
6437
- };
6387
+ if (rectChanged(newRect, state.rect)) {
6388
+ state.rect = newRect;
6389
+ changedStates.push(state);
6390
+ }
6391
+ });
6392
+ changedStates.forEach(function (state) {
6393
+ state.callbacks.forEach(function (cb) {
6394
+ return cb(state.rect);
6395
+ });
6396
+ });
6397
+ rafId = window.requestAnimationFrame(run);
6398
+ };
6438
6399
 
6439
- var mTableBodyCellCopyButtonProps = muiTableBodyCellCopyButtonProps instanceof Function ? muiTableBodyCellCopyButtonProps({
6440
- cell: cell,
6441
- tableInstance: tableInstance
6442
- }) : muiTableBodyCellCopyButtonProps;
6443
- var mcTableBodyCellCopyButtonProps = columnDef.muiTableBodyCellCopyButtonProps instanceof Function ? columnDef.muiTableBodyCellCopyButtonProps({
6444
- cell: cell,
6445
- tableInstance: tableInstance
6446
- }) : columnDef.muiTableBodyCellCopyButtonProps;
6400
+ function observeRect(node, cb) {
6401
+ return {
6402
+ observe: function observe() {
6403
+ var wasEmpty = observedNodes.size === 0;
6447
6404
 
6448
- var buttonProps = _extends({}, mTableBodyCellCopyButtonProps, mcTableBodyCellCopyButtonProps);
6405
+ if (observedNodes.has(node)) {
6406
+ observedNodes.get(node).callbacks.push(cb);
6407
+ } else {
6408
+ observedNodes.set(node, {
6409
+ rect: undefined,
6410
+ hasRectChanged: false,
6411
+ callbacks: [cb]
6412
+ });
6413
+ }
6449
6414
 
6450
- return React__default.createElement(material.Tooltip, {
6451
- arrow: true,
6452
- enterDelay: 1000,
6453
- enterNextDelay: 1000,
6454
- placement: "top",
6455
- title: copied ? localization.copiedToClipboard : localization.clickToCopy
6456
- }, React__default.createElement(material.Button, Object.assign({
6457
- "aria-label": localization.clickToCopy,
6458
- onClick: function onClick() {
6459
- return handleCopy(cell.getValue());
6415
+ if (wasEmpty) run();
6460
6416
  },
6461
- size: "small",
6462
- type: "button",
6463
- variant: "text"
6464
- }, buttonProps, {
6465
- sx: _extends({
6466
- backgroundColor: 'transparent',
6467
- border: 'none',
6468
- color: 'inherit',
6469
- cursor: 'copy',
6470
- fontFamily: 'inherit',
6471
- fontSize: 'inherit',
6472
- letterSpacing: 'inherit',
6473
- m: '-0.25rem',
6474
- minWidth: 'unset',
6475
- textAlign: 'inherit',
6476
- textTransform: 'inherit'
6477
- }, buttonProps == null ? void 0 : buttonProps.sx)
6478
- }), children));
6479
- };
6417
+ unobserve: function unobserve() {
6418
+ var state = observedNodes.get(node);
6480
6419
 
6481
- var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6482
- var _columnDef$minSize, _columnDef$Cell, _row$subRows, _columnDef$Cell2, _row$subRows$length, _row$subRows2;
6420
+ if (state) {
6421
+ // Remove the callback
6422
+ var index = state.callbacks.indexOf(cb);
6423
+ if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
6483
6424
 
6484
- var cell = _ref.cell,
6485
- enableHover = _ref.enableHover,
6486
- tableInstance = _ref.tableInstance;
6487
- var getState = tableInstance.getState,
6488
- _tableInstance$option = tableInstance.options,
6489
- editingMode = _tableInstance$option.editingMode,
6490
- enableClickToCopy = _tableInstance$option.enableClickToCopy,
6491
- enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
6492
- enableEditing = _tableInstance$option.enableEditing,
6493
- tableId = _tableInstance$option.tableId,
6494
- muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
6495
- muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
6496
- onMrtCellClick = _tableInstance$option.onMrtCellClick,
6497
- setColumnOrder = tableInstance.setColumnOrder,
6498
- setCurrentEditingCell = tableInstance.setCurrentEditingCell;
6425
+ if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
6499
6426
 
6500
- var _getState = getState(),
6501
- columnOrder = _getState.columnOrder,
6502
- currentEditingCell = _getState.currentEditingCell,
6503
- currentEditingRow = _getState.currentEditingRow,
6504
- isDensePadding = _getState.isDensePadding,
6505
- isLoading = _getState.isLoading,
6506
- showSkeletons = _getState.showSkeletons;
6427
+ if (!observedNodes.size) cancelAnimationFrame(rafId);
6428
+ }
6429
+ }
6430
+ };
6431
+ }
6507
6432
 
6508
- var column = cell.column,
6509
- row = cell.row;
6510
- var columnDef = column.columnDef,
6511
- columnDefType = column.columnDefType;
6433
+ var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
6512
6434
 
6513
- var _useDrop = useDrop({
6514
- accept: 'column',
6515
- drop: function drop(movingColumn) {
6516
- return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
6517
- }
6518
- }),
6519
- dropRef = _useDrop[1];
6435
+ function useRect(nodeRef, initialRect) {
6436
+ if (initialRect === void 0) {
6437
+ initialRect = {
6438
+ width: 0,
6439
+ height: 0
6440
+ };
6441
+ }
6520
6442
 
6521
- var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
6522
- cell: cell,
6523
- tableInstance: tableInstance
6524
- }) : muiTableBodyCellProps;
6525
- var mcTableCellBodyProps = columnDef.muiTableBodyCellProps instanceof Function ? columnDef.muiTableBodyCellProps({
6526
- cell: cell,
6527
- tableInstance: tableInstance
6528
- }) : columnDef.muiTableBodyCellProps;
6529
-
6530
- var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
6531
-
6532
- var skeletonWidth = React.useMemo(function () {
6533
- return columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
6534
- }, [columnDefType, column.getSize()]);
6535
- var isEditable = (enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false;
6536
- var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
6443
+ var _React$useState = React__default.useState(nodeRef.current),
6444
+ element = _React$useState[0],
6445
+ setElement = _React$useState[1];
6537
6446
 
6538
- var handleDoubleClick = function handleDoubleClick(_event) {
6539
- if ((enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false && editingMode === 'cell') {
6540
- setCurrentEditingCell(cell);
6541
- setTimeout(function () {
6542
- var textField = document.getElementById("mrt-" + tableId + "-edit-cell-text-field-" + cell.id);
6447
+ var _React$useReducer = React__default.useReducer(rectReducer, initialRect),
6448
+ rect = _React$useReducer[0],
6449
+ dispatch = _React$useReducer[1];
6543
6450
 
6544
- if (textField) {
6545
- textField.focus();
6546
- textField.select();
6547
- }
6548
- }, 200);
6451
+ var initialRectSet = React__default.useRef(false);
6452
+ useIsomorphicLayoutEffect$1(function () {
6453
+ if (nodeRef.current !== element) {
6454
+ setElement(nodeRef.current);
6549
6455
  }
6550
- };
6551
-
6552
- var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
6553
- return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
6554
- };
6555
-
6556
- var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
6557
- return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
6558
- };
6456
+ });
6457
+ useIsomorphicLayoutEffect$1(function () {
6458
+ if (element && !initialRectSet.current) {
6459
+ initialRectSet.current = true;
6559
6460
 
6560
- var getTotalRight = function getTotalRight() {
6561
- return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
6562
- };
6461
+ var _rect = element.getBoundingClientRect();
6563
6462
 
6564
- return React__default.createElement(material.TableCell, Object.assign({
6565
- onClick: function onClick(event) {
6566
- return onMrtCellClick == null ? void 0 : onMrtCellClick({
6567
- event: event,
6568
- cell: cell,
6569
- tableInstance: tableInstance
6463
+ dispatch({
6464
+ rect: _rect
6570
6465
  });
6571
- },
6572
- onDoubleClick: handleDoubleClick
6573
- }, tableCellProps, {
6574
- ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
6575
- sx: function sx(theme) {
6576
- return _extends({
6577
- backgroundColor: column.getIsPinned() ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
6578
- boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : undefined,
6579
- cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
6580
- left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
6581
- p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
6582
- pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
6583
- position: column.getIsPinned() ? 'sticky' : 'relative',
6584
- right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
6585
- transition: 'all 0.2s ease-in-out',
6586
- whiteSpace: isDensePadding ? 'nowrap' : 'normal',
6587
- zIndex: column.getIsPinned() ? 1 : undefined,
6588
- '&:hover': {
6589
- backgroundColor: enableHover && enableEditing && editingMode !== 'row' ? theme.palette.mode === 'dark' ? material.lighten(theme.palette.background["default"], 0.13) + " !important" : material.darken(theme.palette.background["default"], 0.07) + " !important" : undefined
6590
- }
6591
- }, tableCellProps == null ? void 0 : tableCellProps.sx);
6592
- },
6593
- style: {
6594
- maxWidth: "min(" + column.getSize() + "px, fit-content)",
6595
- minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
6596
- width: column.getSize()
6597
6466
  }
6598
- }), React__default.createElement(React__default.Fragment, null, isLoading || showSkeletons ? React__default.createElement(material.Skeleton, Object.assign({
6599
- animation: "wave",
6600
- height: 20,
6601
- width: skeletonWidth
6602
- }, muiTableBodyCellSkeletonProps)) : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
6603
- cell: cell,
6604
- tableInstance: tableInstance
6605
- }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React__default.createElement(MRT_EditCellTextField, {
6606
- cell: cell,
6607
- tableInstance: tableInstance
6608
- }) : (enableClickToCopy || columnDef.enableClickToCopy) && columnDef.enableClickToCopy !== false ? React__default.createElement(React__default.Fragment, null, React__default.createElement(MRT_CopyButton, {
6609
- cell: cell,
6610
- tableInstance: tableInstance
6611
- }, React__default.createElement(React__default.Fragment, null, (_columnDef$Cell = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
6612
- cell: cell,
6613
- tableInstance: tableInstance
6614
- })) != null ? _columnDef$Cell : cell.renderCell())), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React__default.createElement(React__default.Fragment, null, (_columnDef$Cell2 = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
6615
- cell: cell,
6616
- tableInstance: tableInstance
6617
- })) != null ? _columnDef$Cell2 : cell.renderCell(), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
6618
- };
6619
-
6620
- var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
6621
- var row = _ref.row,
6622
- tableInstance = _ref.tableInstance;
6623
- var getVisibleFlatColumns = tableInstance.getVisibleFlatColumns,
6624
- _tableInstance$option = tableInstance.options,
6625
- muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
6626
- muiTableDetailPanelProps = _tableInstance$option.muiTableDetailPanelProps,
6627
- onMrtDetailPanelClick = _tableInstance$option.onMrtDetailPanelClick,
6628
- renderDetailPanel = _tableInstance$option.renderDetailPanel;
6629
- var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
6630
- row: row,
6631
- tableInstance: tableInstance
6632
- }) : muiTableBodyRowProps;
6633
- var tableCellProps = muiTableDetailPanelProps instanceof Function ? muiTableDetailPanelProps({
6634
- row: row,
6635
- tableInstance: tableInstance
6636
- }) : muiTableDetailPanelProps;
6637
- return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), React__default.createElement(material.TableCell, Object.assign({
6638
- colSpan: getVisibleFlatColumns().length + 10,
6639
- onClick: function onClick(event) {
6640
- return onMrtDetailPanelClick == null ? void 0 : onMrtDetailPanelClick({
6641
- event: event,
6642
- row: row,
6643
- tableInstance: tableInstance
6644
- });
6467
+ }, [element]);
6468
+ React__default.useEffect(function () {
6469
+ if (!element) {
6470
+ return;
6645
6471
  }
6646
- }, tableCellProps, {
6647
- sx: _extends({
6648
- borderBottom: !row.getIsExpanded() ? 'none' : undefined,
6649
- pb: row.getIsExpanded() ? '1rem' : 0,
6650
- pt: row.getIsExpanded() ? '1rem' : 0,
6651
- transition: 'all 0.2s ease-in-out'
6652
- }, tableCellProps == null ? void 0 : tableCellProps.sx)
6653
- }), React__default.createElement(material.Collapse, {
6654
- "in": row.getIsExpanded()
6655
- }, renderDetailPanel == null ? void 0 : renderDetailPanel({
6656
- row: row,
6657
- tableInstance: tableInstance
6658
- }))));
6659
- };
6660
6472
 
6661
- var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
6662
- var row = _ref.row,
6663
- tableInstance = _ref.tableInstance;
6664
- var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
6665
- _tableInstance$option = tableInstance.options,
6666
- muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
6667
- onMrtRowClick = _tableInstance$option.onMrtRowClick,
6668
- renderDetailPanel = _tableInstance$option.renderDetailPanel;
6669
- var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
6670
- row: row,
6671
- tableInstance: tableInstance
6672
- }) : muiTableBodyRowProps;
6673
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TableRow, Object.assign({
6674
- hover: true,
6675
- onClick: function onClick(event) {
6676
- return onMrtRowClick == null ? void 0 : onMrtRowClick({
6677
- event: event,
6678
- row: row,
6679
- tableInstance: tableInstance
6473
+ var observer = observeRect(element, function (rect) {
6474
+ dispatch({
6475
+ rect: rect
6680
6476
  });
6681
- },
6682
- selected: row.getIsSelected()
6683
- }, tableRowProps, {
6684
- sx: function sx(theme) {
6685
- return _extends({
6686
- backgroundColor: material.lighten(theme.palette.background["default"], 0.06),
6687
- transition: 'all 0.2s ease-in-out',
6688
- '&:hover td': {
6689
- backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned() ? theme.palette.mode === 'dark' ? "" + material.lighten(theme.palette.background["default"], 0.12) : "" + material.darken(theme.palette.background["default"], 0.05) : undefined
6690
- }
6691
- }, tableRowProps == null ? void 0 : tableRowProps.sx);
6692
- }
6693
- }), row.getVisibleCells().map(function (cell) {
6694
- return React__default.createElement(MRT_TableBodyCell, {
6695
- cell: cell,
6696
- key: cell.id,
6697
- enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
6698
- tableInstance: tableInstance
6699
6477
  });
6700
- })), renderDetailPanel && !row.getIsGrouped() && React__default.createElement(MRT_TableDetailPanel, {
6701
- row: row,
6702
- tableInstance: tableInstance
6703
- }));
6704
- };
6705
-
6706
- function _extends$1() {
6707
- _extends$1 = Object.assign || function (target) {
6708
- for (var i = 1; i < arguments.length; i++) {
6709
- var source = arguments[i];
6710
-
6711
- for (var key in source) {
6712
- if (Object.prototype.hasOwnProperty.call(source, key)) {
6713
- target[key] = source[key];
6714
- }
6715
- }
6716
- }
6717
-
6718
- return target;
6719
- };
6720
-
6721
- return _extends$1.apply(this, arguments);
6478
+ observer.observe();
6479
+ return function () {
6480
+ observer.unobserve();
6481
+ };
6482
+ }, [element]);
6483
+ return rect;
6722
6484
  }
6723
6485
 
6724
- function _objectWithoutPropertiesLoose$2(source, excluded) {
6725
- if (source == null) return {};
6726
- var target = {};
6727
- var sourceKeys = Object.keys(source);
6728
- var key, i;
6486
+ function rectReducer(state, action) {
6487
+ var rect = action.rect;
6729
6488
 
6730
- for (i = 0; i < sourceKeys.length; i++) {
6731
- key = sourceKeys[i];
6732
- if (excluded.indexOf(key) >= 0) continue;
6733
- target[key] = source[key];
6489
+ if (state.height !== rect.height || state.width !== rect.width) {
6490
+ return rect;
6734
6491
  }
6735
6492
 
6736
- return target;
6493
+ return state;
6737
6494
  }
6738
6495
 
6739
- var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
6740
-
6741
- var rectChanged = function rectChanged(a, b) {
6742
- if (a === void 0) {
6743
- a = {};
6744
- }
6496
+ var defaultEstimateSize = function defaultEstimateSize() {
6497
+ return 50;
6498
+ };
6745
6499
 
6746
- if (b === void 0) {
6747
- b = {};
6748
- }
6500
+ var defaultKeyExtractor = function defaultKeyExtractor(index) {
6501
+ return index;
6502
+ };
6749
6503
 
6750
- return props.some(function (prop) {
6751
- return a[prop] !== b[prop];
6752
- });
6753
- };
6754
-
6755
- var observedNodes = /*#__PURE__*/new Map();
6756
- var rafId;
6757
-
6758
- var run = function run() {
6759
- var changedStates = [];
6760
- observedNodes.forEach(function (state, node) {
6761
- var newRect = node.getBoundingClientRect();
6762
-
6763
- if (rectChanged(newRect, state.rect)) {
6764
- state.rect = newRect;
6765
- changedStates.push(state);
6766
- }
6767
- });
6768
- changedStates.forEach(function (state) {
6769
- state.callbacks.forEach(function (cb) {
6770
- return cb(state.rect);
6771
- });
6772
- });
6773
- rafId = window.requestAnimationFrame(run);
6774
- };
6775
-
6776
- function observeRect(node, cb) {
6777
- return {
6778
- observe: function observe() {
6779
- var wasEmpty = observedNodes.size === 0;
6780
-
6781
- if (observedNodes.has(node)) {
6782
- observedNodes.get(node).callbacks.push(cb);
6783
- } else {
6784
- observedNodes.set(node, {
6785
- rect: undefined,
6786
- hasRectChanged: false,
6787
- callbacks: [cb]
6788
- });
6789
- }
6790
-
6791
- if (wasEmpty) run();
6792
- },
6793
- unobserve: function unobserve() {
6794
- var state = observedNodes.get(node);
6795
-
6796
- if (state) {
6797
- // Remove the callback
6798
- var index = state.callbacks.indexOf(cb);
6799
- if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
6800
-
6801
- if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
6802
-
6803
- if (!observedNodes.size) cancelAnimationFrame(rafId);
6804
- }
6805
- }
6806
- };
6807
- }
6808
-
6809
- var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
6810
-
6811
- function useRect(nodeRef, initialRect) {
6812
- if (initialRect === void 0) {
6813
- initialRect = {
6814
- width: 0,
6815
- height: 0
6816
- };
6817
- }
6818
-
6819
- var _React$useState = React__default.useState(nodeRef.current),
6820
- element = _React$useState[0],
6821
- setElement = _React$useState[1];
6822
-
6823
- var _React$useReducer = React__default.useReducer(rectReducer, initialRect),
6824
- rect = _React$useReducer[0],
6825
- dispatch = _React$useReducer[1];
6826
-
6827
- var initialRectSet = React__default.useRef(false);
6828
- useIsomorphicLayoutEffect$1(function () {
6829
- if (nodeRef.current !== element) {
6830
- setElement(nodeRef.current);
6831
- }
6832
- });
6833
- useIsomorphicLayoutEffect$1(function () {
6834
- if (element && !initialRectSet.current) {
6835
- initialRectSet.current = true;
6836
-
6837
- var _rect = element.getBoundingClientRect();
6838
-
6839
- dispatch({
6840
- rect: _rect
6841
- });
6842
- }
6843
- }, [element]);
6844
- React__default.useEffect(function () {
6845
- if (!element) {
6846
- return;
6847
- }
6848
-
6849
- var observer = observeRect(element, function (rect) {
6850
- dispatch({
6851
- rect: rect
6852
- });
6853
- });
6854
- observer.observe();
6855
- return function () {
6856
- observer.unobserve();
6857
- };
6858
- }, [element]);
6859
- return rect;
6860
- }
6861
-
6862
- function rectReducer(state, action) {
6863
- var rect = action.rect;
6864
-
6865
- if (state.height !== rect.height || state.width !== rect.width) {
6866
- return rect;
6867
- }
6868
-
6869
- return state;
6870
- }
6871
-
6872
- var defaultEstimateSize = function defaultEstimateSize() {
6873
- return 50;
6874
- };
6875
-
6876
- var defaultKeyExtractor = function defaultKeyExtractor(index) {
6877
- return index;
6878
- };
6879
-
6880
- var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
6881
- var key = horizontal ? 'offsetWidth' : 'offsetHeight';
6882
- return el[key];
6504
+ var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
6505
+ var key = horizontal ? 'offsetWidth' : 'offsetHeight';
6506
+ return el[key];
6883
6507
  };
6884
6508
 
6885
6509
  var defaultRangeExtractor = function defaultRangeExtractor(range) {
@@ -7108,92 +6732,475 @@ function useVirtual(_ref) {
7108
6732
  outerSize = _latestRef$current2.outerSize;
7109
6733
  var measurement = measurements[Math.max(0, Math.min(index, size - 1))];
7110
6734
 
7111
- if (!measurement) {
7112
- return;
6735
+ if (!measurement) {
6736
+ return;
6737
+ }
6738
+
6739
+ if (align === 'auto') {
6740
+ if (measurement.end >= scrollOffset + outerSize) {
6741
+ align = 'end';
6742
+ } else if (measurement.start <= scrollOffset) {
6743
+ align = 'start';
6744
+ } else {
6745
+ return;
6746
+ }
6747
+ }
6748
+
6749
+ var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
6750
+ scrollToOffset(toOffset, _extends$1({
6751
+ align: align
6752
+ }, rest));
6753
+ }, [scrollToOffset, size]);
6754
+ var scrollToIndex = React__default.useCallback(function () {
6755
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6756
+ args[_key] = arguments[_key];
6757
+ }
6758
+
6759
+ // We do a double request here because of
6760
+ // dynamic sizes which can cause offset shift
6761
+ // and end up in the wrong spot. Unfortunately,
6762
+ // we can't know about those dynamic sizes until
6763
+ // we try and render them. So double down!
6764
+ tryScrollToIndex.apply(void 0, args);
6765
+ requestAnimationFrame(function () {
6766
+ tryScrollToIndex.apply(void 0, args);
6767
+ });
6768
+ }, [tryScrollToIndex]);
6769
+ return {
6770
+ virtualItems: virtualItems,
6771
+ totalSize: totalSize,
6772
+ scrollToOffset: scrollToOffset,
6773
+ scrollToIndex: scrollToIndex,
6774
+ measure: measure
6775
+ };
6776
+ }
6777
+
6778
+ var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
6779
+ while (low <= high) {
6780
+ var middle = (low + high) / 2 | 0;
6781
+ var currentValue = getCurrentValue(middle);
6782
+
6783
+ if (currentValue < value) {
6784
+ low = middle + 1;
6785
+ } else if (currentValue > value) {
6786
+ high = middle - 1;
6787
+ } else {
6788
+ return middle;
6789
+ }
6790
+ }
6791
+
6792
+ if (low > 0) {
6793
+ return low - 1;
6794
+ } else {
6795
+ return 0;
6796
+ }
6797
+ };
6798
+
6799
+ function calculateRange(_ref4) {
6800
+ var measurements = _ref4.measurements,
6801
+ outerSize = _ref4.outerSize,
6802
+ scrollOffset = _ref4.scrollOffset;
6803
+ var size = measurements.length - 1;
6804
+
6805
+ var getOffset = function getOffset(index) {
6806
+ return measurements[index].start;
6807
+ };
6808
+
6809
+ var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
6810
+ var end = start;
6811
+
6812
+ while (end < size && measurements[end].end < scrollOffset + outerSize) {
6813
+ end++;
6814
+ }
6815
+
6816
+ return {
6817
+ start: start,
6818
+ end: end
6819
+ };
6820
+ }
6821
+
6822
+ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
6823
+ var cell = _ref.cell,
6824
+ tableInstance = _ref.tableInstance;
6825
+ var getState = tableInstance.getState,
6826
+ _tableInstance$option = tableInstance.options,
6827
+ tableId = _tableInstance$option.tableId,
6828
+ enableEditing = _tableInstance$option.enableEditing,
6829
+ muiTableBodyCellEditTextFieldProps = _tableInstance$option.muiTableBodyCellEditTextFieldProps,
6830
+ onMrtCellEditBlur = _tableInstance$option.onMrtCellEditBlur,
6831
+ onMrtCellEditChange = _tableInstance$option.onMrtCellEditChange,
6832
+ setCurrentEditingCell = tableInstance.setCurrentEditingCell,
6833
+ setCurrentEditingRow = tableInstance.setCurrentEditingRow;
6834
+
6835
+ var _useState = React.useState(cell.getValue()),
6836
+ value = _useState[0],
6837
+ setValue = _useState[1];
6838
+
6839
+ var column = cell.column,
6840
+ row = cell.row;
6841
+ var columnDef = column.columnDef;
6842
+
6843
+ var handleChange = function handleChange(event) {
6844
+ setValue(event.target.value);
6845
+ columnDef.onMrtCellEditChange == null ? void 0 : columnDef.onMrtCellEditChange({
6846
+ event: event,
6847
+ cell: cell,
6848
+ tableInstance: tableInstance
6849
+ });
6850
+ onMrtCellEditChange == null ? void 0 : onMrtCellEditChange({
6851
+ event: event,
6852
+ cell: cell,
6853
+ tableInstance: tableInstance
6854
+ });
6855
+ };
6856
+
6857
+ var handleBlur = function handleBlur(event) {
6858
+ if (getState().currentEditingRow) {
6859
+ if (!row._valuesCache) row._valuesCache = {};
6860
+ row._valuesCache[column.id] = value;
6861
+ setCurrentEditingRow(_extends({}, getState().currentEditingRow));
6862
+ }
6863
+
6864
+ setCurrentEditingCell(null);
6865
+ columnDef.onMrtCellEditBlur == null ? void 0 : columnDef.onMrtCellEditBlur({
6866
+ event: event,
6867
+ cell: cell,
6868
+ tableInstance: tableInstance
6869
+ });
6870
+ onMrtCellEditBlur == null ? void 0 : onMrtCellEditBlur({
6871
+ event: event,
6872
+ cell: cell,
6873
+ tableInstance: tableInstance
6874
+ });
6875
+ };
6876
+
6877
+ var mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function ? muiTableBodyCellEditTextFieldProps({
6878
+ cell: cell,
6879
+ tableInstance: tableInstance
6880
+ }) : muiTableBodyCellEditTextFieldProps;
6881
+ var mcTableBodyCellEditTextFieldProps = columnDef.muiTableBodyCellEditTextFieldProps instanceof Function ? columnDef.muiTableBodyCellEditTextFieldProps({
6882
+ cell: cell,
6883
+ tableInstance: tableInstance
6884
+ }) : columnDef.muiTableBodyCellEditTextFieldProps;
6885
+
6886
+ var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps);
6887
+
6888
+ if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {
6889
+ return React__default.createElement(React__default.Fragment, null, columnDef.Edit == null ? void 0 : columnDef.Edit({
6890
+ cell: cell,
6891
+ tableInstance: tableInstance
6892
+ }));
6893
+ }
6894
+
6895
+ return React__default.createElement(material.TextField, Object.assign({
6896
+ id: "mrt-" + tableId + "-edit-cell-text-field-" + cell.id,
6897
+ margin: "dense",
6898
+ onBlur: handleBlur,
6899
+ onChange: handleChange,
6900
+ onClick: function onClick(e) {
6901
+ return e.stopPropagation();
6902
+ },
6903
+ placeholder: columnDef.header,
6904
+ value: value,
6905
+ variant: "standard"
6906
+ }, textFieldProps));
6907
+ };
6908
+
6909
+ var MRT_CopyButton = function MRT_CopyButton(_ref) {
6910
+ var cell = _ref.cell,
6911
+ children = _ref.children,
6912
+ tableInstance = _ref.tableInstance;
6913
+ var _tableInstance$option = tableInstance.options,
6914
+ localization = _tableInstance$option.localization,
6915
+ muiTableBodyCellCopyButtonProps = _tableInstance$option.muiTableBodyCellCopyButtonProps;
6916
+ var column = cell.column;
6917
+ var columnDef = column.columnDef;
6918
+
6919
+ var _useState = React.useState(false),
6920
+ copied = _useState[0],
6921
+ setCopied = _useState[1];
6922
+
6923
+ var handleCopy = function handleCopy(text) {
6924
+ navigator.clipboard.writeText(text);
6925
+ setCopied(true);
6926
+ setTimeout(function () {
6927
+ return setCopied(false);
6928
+ }, 4000);
6929
+ };
6930
+
6931
+ var mTableBodyCellCopyButtonProps = muiTableBodyCellCopyButtonProps instanceof Function ? muiTableBodyCellCopyButtonProps({
6932
+ cell: cell,
6933
+ tableInstance: tableInstance
6934
+ }) : muiTableBodyCellCopyButtonProps;
6935
+ var mcTableBodyCellCopyButtonProps = columnDef.muiTableBodyCellCopyButtonProps instanceof Function ? columnDef.muiTableBodyCellCopyButtonProps({
6936
+ cell: cell,
6937
+ tableInstance: tableInstance
6938
+ }) : columnDef.muiTableBodyCellCopyButtonProps;
6939
+
6940
+ var buttonProps = _extends({}, mTableBodyCellCopyButtonProps, mcTableBodyCellCopyButtonProps);
6941
+
6942
+ return React__default.createElement(material.Tooltip, {
6943
+ arrow: true,
6944
+ enterDelay: 1000,
6945
+ enterNextDelay: 1000,
6946
+ placement: "top",
6947
+ title: copied ? localization.copiedToClipboard : localization.clickToCopy
6948
+ }, React__default.createElement(material.Button, Object.assign({
6949
+ "aria-label": localization.clickToCopy,
6950
+ onClick: function onClick() {
6951
+ return handleCopy(cell.getValue());
6952
+ },
6953
+ size: "small",
6954
+ type: "button",
6955
+ variant: "text"
6956
+ }, buttonProps, {
6957
+ sx: _extends({
6958
+ backgroundColor: 'transparent',
6959
+ border: 'none',
6960
+ color: 'inherit',
6961
+ cursor: 'copy',
6962
+ fontFamily: 'inherit',
6963
+ fontSize: 'inherit',
6964
+ letterSpacing: 'inherit',
6965
+ m: '-0.25rem',
6966
+ minWidth: 'unset',
6967
+ textAlign: 'inherit',
6968
+ textTransform: 'inherit'
6969
+ }, buttonProps == null ? void 0 : buttonProps.sx)
6970
+ }), children));
6971
+ };
6972
+
6973
+ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6974
+ var _columnDef$minSize, _columnDef$Cell, _row$subRows, _columnDef$Cell2, _row$subRows$length, _row$subRows2;
6975
+
6976
+ var cell = _ref.cell,
6977
+ enableHover = _ref.enableHover,
6978
+ rowIndex = _ref.rowIndex,
6979
+ tableInstance = _ref.tableInstance;
6980
+ var getState = tableInstance.getState,
6981
+ _tableInstance$option = tableInstance.options,
6982
+ editingMode = _tableInstance$option.editingMode,
6983
+ enableClickToCopy = _tableInstance$option.enableClickToCopy,
6984
+ enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
6985
+ enableEditing = _tableInstance$option.enableEditing,
6986
+ enableRowNumbers = _tableInstance$option.enableRowNumbers,
6987
+ muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
6988
+ muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
6989
+ onMrtCellClick = _tableInstance$option.onMrtCellClick,
6990
+ rowNumberMode = _tableInstance$option.rowNumberMode,
6991
+ tableId = _tableInstance$option.tableId,
6992
+ setColumnOrder = tableInstance.setColumnOrder,
6993
+ setCurrentEditingCell = tableInstance.setCurrentEditingCell;
6994
+
6995
+ var _getState = getState(),
6996
+ columnOrder = _getState.columnOrder,
6997
+ currentEditingCell = _getState.currentEditingCell,
6998
+ currentEditingRow = _getState.currentEditingRow,
6999
+ isDensePadding = _getState.isDensePadding,
7000
+ isLoading = _getState.isLoading,
7001
+ showSkeletons = _getState.showSkeletons;
7002
+
7003
+ var column = cell.column,
7004
+ row = cell.row;
7005
+ var columnDef = column.columnDef,
7006
+ columnDefType = column.columnDefType;
7007
+
7008
+ var _useDrop = useDrop({
7009
+ accept: 'column',
7010
+ drop: function drop(movingColumn) {
7011
+ return reorderColumn(movingColumn, column, columnOrder, setColumnOrder);
7113
7012
  }
7013
+ }),
7014
+ dropRef = _useDrop[1];
7114
7015
 
7115
- if (align === 'auto') {
7116
- if (measurement.end >= scrollOffset + outerSize) {
7117
- align = 'end';
7118
- } else if (measurement.start <= scrollOffset) {
7119
- align = 'start';
7120
- } else {
7121
- return;
7122
- }
7123
- }
7016
+ var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps({
7017
+ cell: cell,
7018
+ tableInstance: tableInstance
7019
+ }) : muiTableBodyCellProps;
7020
+ var mcTableCellBodyProps = columnDef.muiTableBodyCellProps instanceof Function ? columnDef.muiTableBodyCellProps({
7021
+ cell: cell,
7022
+ tableInstance: tableInstance
7023
+ }) : columnDef.muiTableBodyCellProps;
7124
7024
 
7125
- var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
7126
- scrollToOffset(toOffset, _extends$1({
7127
- align: align
7128
- }, rest));
7129
- }, [scrollToOffset, size]);
7130
- var scrollToIndex = React__default.useCallback(function () {
7131
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
7132
- args[_key] = arguments[_key];
7133
- }
7025
+ var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
7134
7026
 
7135
- // We do a double request here because of
7136
- // dynamic sizes which can cause offset shift
7137
- // and end up in the wrong spot. Unfortunately,
7138
- // we can't know about those dynamic sizes until
7139
- // we try and render them. So double down!
7140
- tryScrollToIndex.apply(void 0, args);
7141
- requestAnimationFrame(function () {
7142
- tryScrollToIndex.apply(void 0, args);
7143
- });
7144
- }, [tryScrollToIndex]);
7145
- return {
7146
- virtualItems: virtualItems,
7147
- totalSize: totalSize,
7148
- scrollToOffset: scrollToOffset,
7149
- scrollToIndex: scrollToIndex,
7150
- measure: measure
7151
- };
7152
- }
7027
+ var skeletonWidth = React.useMemo(function () {
7028
+ return columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
7029
+ }, [columnDefType, column.getSize()]);
7030
+ var isEditable = (enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false;
7031
+ var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
7153
7032
 
7154
- var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
7155
- while (low <= high) {
7156
- var middle = (low + high) / 2 | 0;
7157
- var currentValue = getCurrentValue(middle);
7033
+ var handleDoubleClick = function handleDoubleClick(_event) {
7034
+ if ((enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false && editingMode === 'cell') {
7035
+ setCurrentEditingCell(cell);
7036
+ setTimeout(function () {
7037
+ var textField = document.getElementById("mrt-" + tableId + "-edit-cell-text-field-" + cell.id);
7158
7038
 
7159
- if (currentValue < value) {
7160
- low = middle + 1;
7161
- } else if (currentValue > value) {
7162
- high = middle - 1;
7163
- } else {
7164
- return middle;
7039
+ if (textField) {
7040
+ textField.focus();
7041
+ textField.select();
7042
+ }
7043
+ }, 200);
7165
7044
  }
7166
- }
7045
+ };
7167
7046
 
7168
- if (low > 0) {
7169
- return low - 1;
7170
- } else {
7171
- return 0;
7172
- }
7173
- };
7047
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
7048
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
7049
+ };
7174
7050
 
7175
- function calculateRange(_ref4) {
7176
- var measurements = _ref4.measurements,
7177
- outerSize = _ref4.outerSize,
7178
- scrollOffset = _ref4.scrollOffset;
7179
- var size = measurements.length - 1;
7051
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
7052
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
7053
+ };
7180
7054
 
7181
- var getOffset = function getOffset(index) {
7182
- return measurements[index].start;
7055
+ var getTotalRight = function getTotalRight() {
7056
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
7183
7057
  };
7184
7058
 
7185
- var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
7186
- var end = start;
7059
+ return React__default.createElement(material.TableCell, Object.assign({
7060
+ onClick: function onClick(event) {
7061
+ return onMrtCellClick == null ? void 0 : onMrtCellClick({
7062
+ event: event,
7063
+ cell: cell,
7064
+ tableInstance: tableInstance
7065
+ });
7066
+ },
7067
+ onDoubleClick: handleDoubleClick
7068
+ }, tableCellProps, {
7069
+ ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
7070
+ sx: function sx(theme) {
7071
+ return _extends({
7072
+ backgroundColor: column.getIsPinned() ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
7073
+ boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : undefined,
7074
+ cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
7075
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
7076
+ overflow: 'hidden',
7077
+ p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
7078
+ pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
7079
+ position: column.getIsPinned() ? 'sticky' : 'relative',
7080
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
7081
+ textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,
7082
+ transition: 'all 0.2s ease-in-out',
7083
+ whiteSpace: isDensePadding ? 'nowrap' : 'normal',
7084
+ zIndex: column.getIsPinned() ? 1 : undefined,
7085
+ '&:hover': {
7086
+ backgroundColor: enableHover && enableEditing && editingMode !== 'row' ? theme.palette.mode === 'dark' ? material.lighten(theme.palette.background["default"], 0.13) + " !important" : material.darken(theme.palette.background["default"], 0.07) + " !important" : undefined
7087
+ }
7088
+ }, tableCellProps == null ? void 0 : tableCellProps.sx);
7089
+ },
7090
+ style: {
7091
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
7092
+ minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
7093
+ width: column.getSize()
7094
+ }
7095
+ }), React__default.createElement(React__default.Fragment, null, isLoading || showSkeletons ? React__default.createElement(material.Skeleton, Object.assign({
7096
+ animation: "wave",
7097
+ height: 20,
7098
+ width: skeletonWidth
7099
+ }, muiTableBodyCellSkeletonProps)) : enableRowNumbers && rowNumberMode === 'static' && column.id === 'mrt-row-numbers' ? rowIndex + 1 : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
7100
+ cell: cell,
7101
+ tableInstance: tableInstance
7102
+ }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React__default.createElement(MRT_EditCellTextField, {
7103
+ cell: cell,
7104
+ tableInstance: tableInstance
7105
+ }) : (enableClickToCopy || columnDef.enableClickToCopy) && columnDef.enableClickToCopy !== false ? React__default.createElement(React__default.Fragment, null, React__default.createElement(MRT_CopyButton, {
7106
+ cell: cell,
7107
+ tableInstance: tableInstance
7108
+ }, React__default.createElement(React__default.Fragment, null, (_columnDef$Cell = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
7109
+ cell: cell,
7110
+ tableInstance: tableInstance
7111
+ })) != null ? _columnDef$Cell : cell.renderCell())), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React__default.createElement(React__default.Fragment, null, (_columnDef$Cell2 = columnDef == null ? void 0 : columnDef.Cell == null ? void 0 : columnDef.Cell({
7112
+ cell: cell,
7113
+ tableInstance: tableInstance
7114
+ })) != null ? _columnDef$Cell2 : cell.renderCell(), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
7115
+ };
7187
7116
 
7188
- while (end < size && measurements[end].end < scrollOffset + outerSize) {
7189
- end++;
7190
- }
7117
+ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
7118
+ var row = _ref.row,
7119
+ tableInstance = _ref.tableInstance;
7120
+ var getVisibleFlatColumns = tableInstance.getVisibleFlatColumns,
7121
+ _tableInstance$option = tableInstance.options,
7122
+ muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
7123
+ muiTableDetailPanelProps = _tableInstance$option.muiTableDetailPanelProps,
7124
+ onMrtDetailPanelClick = _tableInstance$option.onMrtDetailPanelClick,
7125
+ renderDetailPanel = _tableInstance$option.renderDetailPanel;
7126
+ var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
7127
+ row: row,
7128
+ tableInstance: tableInstance
7129
+ }) : muiTableBodyRowProps;
7130
+ var tableCellProps = muiTableDetailPanelProps instanceof Function ? muiTableDetailPanelProps({
7131
+ row: row,
7132
+ tableInstance: tableInstance
7133
+ }) : muiTableDetailPanelProps;
7134
+ return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), React__default.createElement(material.TableCell, Object.assign({
7135
+ colSpan: getVisibleFlatColumns().length + 10,
7136
+ onClick: function onClick(event) {
7137
+ return onMrtDetailPanelClick == null ? void 0 : onMrtDetailPanelClick({
7138
+ event: event,
7139
+ row: row,
7140
+ tableInstance: tableInstance
7141
+ });
7142
+ }
7143
+ }, tableCellProps, {
7144
+ sx: _extends({
7145
+ borderBottom: !row.getIsExpanded() ? 'none' : undefined,
7146
+ pb: row.getIsExpanded() ? '1rem' : 0,
7147
+ pt: row.getIsExpanded() ? '1rem' : 0,
7148
+ transition: 'all 0.2s ease-in-out'
7149
+ }, tableCellProps == null ? void 0 : tableCellProps.sx)
7150
+ }), React__default.createElement(material.Collapse, {
7151
+ "in": row.getIsExpanded()
7152
+ }, renderDetailPanel == null ? void 0 : renderDetailPanel({
7153
+ row: row,
7154
+ tableInstance: tableInstance
7155
+ }))));
7156
+ };
7191
7157
 
7192
- return {
7193
- start: start,
7194
- end: end
7195
- };
7196
- }
7158
+ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
7159
+ var row = _ref.row,
7160
+ rowIndex = _ref.rowIndex,
7161
+ tableInstance = _ref.tableInstance;
7162
+ var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
7163
+ _tableInstance$option = tableInstance.options,
7164
+ muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
7165
+ onMrtRowClick = _tableInstance$option.onMrtRowClick,
7166
+ renderDetailPanel = _tableInstance$option.renderDetailPanel;
7167
+ var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
7168
+ row: row,
7169
+ tableInstance: tableInstance
7170
+ }) : muiTableBodyRowProps;
7171
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TableRow, Object.assign({
7172
+ hover: true,
7173
+ onClick: function onClick(event) {
7174
+ return onMrtRowClick == null ? void 0 : onMrtRowClick({
7175
+ event: event,
7176
+ row: row,
7177
+ tableInstance: tableInstance
7178
+ });
7179
+ },
7180
+ selected: row.getIsSelected()
7181
+ }, tableRowProps, {
7182
+ sx: function sx(theme) {
7183
+ return _extends({
7184
+ backgroundColor: material.lighten(theme.palette.background["default"], 0.06),
7185
+ transition: 'all 0.2s ease-in-out',
7186
+ '&:hover td': {
7187
+ backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned() ? theme.palette.mode === 'dark' ? "" + material.lighten(theme.palette.background["default"], 0.12) : "" + material.darken(theme.palette.background["default"], 0.05) : undefined
7188
+ }
7189
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
7190
+ }
7191
+ }), row.getVisibleCells().map(function (cell) {
7192
+ return React__default.createElement(MRT_TableBodyCell, {
7193
+ cell: cell,
7194
+ key: cell.id,
7195
+ enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
7196
+ rowIndex: rowIndex,
7197
+ tableInstance: tableInstance
7198
+ });
7199
+ })), renderDetailPanel && !row.getIsGrouped() && React__default.createElement(MRT_TableDetailPanel, {
7200
+ row: row,
7201
+ tableInstance: tableInstance
7202
+ }));
7203
+ };
7197
7204
 
7198
7205
  var MRT_TableBody = function MRT_TableBody(_ref) {
7199
7206
  var tableInstance = _ref.tableInstance,
@@ -7213,23 +7220,24 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7213
7220
  tableInstance: tableInstance
7214
7221
  }) : muiTableBodyProps;
7215
7222
  var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7216
- var rowVirtualizer = useVirtual({
7223
+ var rowVirtualizer = enableRowVirtualization ? useVirtual({
7217
7224
  overscan: isDensePadding ? 15 : 5,
7218
7225
  size: rows.length,
7219
7226
  parentRef: tableContainerRef
7220
- });
7227
+ }) : {};
7221
7228
  var virtualRows = rowVirtualizer.virtualItems;
7222
- var paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;
7223
- var paddingBottom = virtualRows.length > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
7229
+ var paddingTop = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? virtualRows[0].start : 0;
7230
+ var paddingBottom = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
7224
7231
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps), enableRowVirtualization && paddingTop > 0 && React__default.createElement("tr", null, React__default.createElement("td", {
7225
7232
  style: {
7226
7233
  height: paddingTop + "px"
7227
7234
  }
7228
- })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow) {
7235
+ })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow, rowIndex) {
7229
7236
  var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
7230
7237
  return React__default.createElement(MRT_TableBodyRow, {
7231
7238
  key: row.id,
7232
7239
  row: row,
7240
+ rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex,
7233
7241
  tableInstance: tableInstance
7234
7242
  });
7235
7243
  }), enableRowVirtualization && paddingBottom > 0 && React__default.createElement("tr", null, React__default.createElement("td", {
@@ -7333,6 +7341,8 @@ var MRT_Table = function MRT_Table(_ref) {
7333
7341
  var tableContainerRef = _ref.tableContainerRef,
7334
7342
  tableInstance = _ref.tableInstance;
7335
7343
  var _tableInstance$option = tableInstance.options,
7344
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
7345
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
7336
7346
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
7337
7347
  enableTableFooter = _tableInstance$option.enableTableFooter,
7338
7348
  enableTableHead = _tableInstance$option.enableTableHead,
@@ -7342,7 +7352,11 @@ var MRT_Table = function MRT_Table(_ref) {
7342
7352
  }) : muiTableProps;
7343
7353
  return React__default.createElement(material.Table, Object.assign({
7344
7354
  stickyHeader: enableStickyHeader
7345
- }, tableProps), enableTableHead && React__default.createElement(MRT_TableHead, {
7355
+ }, tableProps, {
7356
+ sx: _extends({
7357
+ tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : undefined
7358
+ }, tableProps == null ? void 0 : tableProps.sx)
7359
+ }), enableTableHead && React__default.createElement(MRT_TableHead, {
7346
7360
  tableInstance: tableInstance
7347
7361
  }), React__default.createElement(MRT_TableBody, {
7348
7362
  tableContainerRef: tableContainerRef,
@@ -7704,7 +7718,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7704
7718
  }));
7705
7719
  };
7706
7720
 
7707
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "selectAllMode"];
7721
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7708
7722
  var MaterialReactTable = (function (_ref) {
7709
7723
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7710
7724
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7712,9 +7726,9 @@ var MaterialReactTable = (function (_ref) {
7712
7726
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
7713
7727
  _ref$defaultColumn = _ref.defaultColumn,
7714
7728
  defaultColumn = _ref$defaultColumn === void 0 ? {
7715
- minSize: 50,
7729
+ minSize: 30,
7716
7730
  maxSize: 1000,
7717
- size: 150
7731
+ size: 180
7718
7732
  } : _ref$defaultColumn,
7719
7733
  _ref$editingMode = _ref.editingMode,
7720
7734
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
@@ -7776,6 +7790,8 @@ var MaterialReactTable = (function (_ref) {
7776
7790
  positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
7777
7791
  _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
7778
7792
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
7793
+ _ref$rowNumberMode = _ref.rowNumberMode,
7794
+ rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
7779
7795
  _ref$selectAllMode = _ref.selectAllMode,
7780
7796
  selectAllMode = _ref$selectAllMode === void 0 ? 'all' : _ref$selectAllMode,
7781
7797
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
@@ -7815,6 +7831,7 @@ var MaterialReactTable = (function (_ref) {
7815
7831
  positionPagination: positionPagination,
7816
7832
  positionToolbarActions: positionToolbarActions,
7817
7833
  positionToolbarAlertBanner: positionToolbarAlertBanner,
7834
+ rowNumberMode: rowNumberMode,
7818
7835
  selectAllMode: selectAllMode
7819
7836
  }, rest));
7820
7837
  });