material-react-table 0.7.5 → 0.7.6
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.
- package/dist/buttons/MRT_ColumnPinningButtons.d.ts +8 -0
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +91 -24
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +92 -25
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +3 -3
- package/src/buttons/MRT_ColumnPinningButtons.tsx +69 -0
- package/src/localization.ts +2 -0
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +25 -11
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +15 -3
- package/src/table/MRT_Table.tsx +3 -3
- package/src/table/MRT_TableContainer.tsx +16 -6
- package/src/table/MRT_TableRoot.tsx +3 -3
package/dist/localization.d.ts
CHANGED
|
@@ -129,6 +129,7 @@ var MRT_DefaultLocalization_EN = {
|
|
|
129
129
|
toggleSelectRow: 'Toggle select row',
|
|
130
130
|
ungroupByColumn: 'Ungroup by {column}',
|
|
131
131
|
unpin: 'Unpin',
|
|
132
|
+
unpinAll: 'Unpin all',
|
|
132
133
|
unsorted: 'Unsorted'
|
|
133
134
|
};
|
|
134
135
|
|
|
@@ -517,6 +518,57 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
|
|
|
517
518
|
}));
|
|
518
519
|
};
|
|
519
520
|
|
|
521
|
+
var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
|
|
522
|
+
var column = _ref.column,
|
|
523
|
+
tableInstance = _ref.tableInstance;
|
|
524
|
+
var getState = tableInstance.getState,
|
|
525
|
+
_tableInstance$option = tableInstance.options,
|
|
526
|
+
PushPinIcon = _tableInstance$option.icons.PushPinIcon,
|
|
527
|
+
localization = _tableInstance$option.localization;
|
|
528
|
+
|
|
529
|
+
var _getState = getState(),
|
|
530
|
+
columnOrder = _getState.columnOrder;
|
|
531
|
+
|
|
532
|
+
var handlePinColumn = function handlePinColumn(pinDirection) {
|
|
533
|
+
column.pin(pinDirection);
|
|
534
|
+
|
|
535
|
+
if (column.columnDefType === 'display') {
|
|
536
|
+
tableInstance.setColumnOrder([column.id].concat(columnOrder));
|
|
537
|
+
}
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
var pinned = column.getIsPinned();
|
|
541
|
+
return React__default.createElement(material.Box, {
|
|
542
|
+
sx: {
|
|
543
|
+
mr: '8px'
|
|
544
|
+
}
|
|
545
|
+
}, React__default.createElement(material.Tooltip, {
|
|
546
|
+
arrow: true,
|
|
547
|
+
title: pinned === 'left' ? localization.unpin : localization.pinToLeft
|
|
548
|
+
}, React__default.createElement(material.IconButton, {
|
|
549
|
+
onClick: function onClick() {
|
|
550
|
+
return handlePinColumn(pinned === 'left' ? false : 'left');
|
|
551
|
+
},
|
|
552
|
+
size: "small"
|
|
553
|
+
}, React__default.createElement(PushPinIcon, {
|
|
554
|
+
style: {
|
|
555
|
+
transform: pinned === 'left' ? 'rotate(0)' : 'rotate(90deg)'
|
|
556
|
+
}
|
|
557
|
+
}))), React__default.createElement(material.Tooltip, {
|
|
558
|
+
arrow: true,
|
|
559
|
+
title: pinned === 'right' ? localization.unpin : localization.pinToRight
|
|
560
|
+
}, React__default.createElement(material.IconButton, {
|
|
561
|
+
onClick: function onClick() {
|
|
562
|
+
return handlePinColumn(pinned === 'right' ? false : 'right');
|
|
563
|
+
},
|
|
564
|
+
size: "small"
|
|
565
|
+
}, React__default.createElement(PushPinIcon, {
|
|
566
|
+
style: {
|
|
567
|
+
transform: pinned === 'right' ? 'rotate(0)' : 'rotate(-90deg)'
|
|
568
|
+
}
|
|
569
|
+
}))));
|
|
570
|
+
};
|
|
571
|
+
|
|
520
572
|
var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
|
|
521
573
|
var _column$columns2;
|
|
522
574
|
|
|
@@ -524,7 +576,9 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
|
|
|
524
576
|
isSubMenu = _ref.isSubMenu,
|
|
525
577
|
tableInstance = _ref.tableInstance;
|
|
526
578
|
var getState = tableInstance.getState,
|
|
527
|
-
|
|
579
|
+
_tableInstance$option = tableInstance.options,
|
|
580
|
+
onToggleColumnVisibility = _tableInstance$option.onToggleColumnVisibility,
|
|
581
|
+
enablePinning = _tableInstance$option.enablePinning;
|
|
528
582
|
|
|
529
583
|
var _getState = getState(),
|
|
530
584
|
columnVisibility = _getState.columnVisibility;
|
|
@@ -552,10 +606,17 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
|
|
|
552
606
|
};
|
|
553
607
|
|
|
554
608
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
|
|
555
|
-
sx:
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
609
|
+
sx: {
|
|
610
|
+
alignItems: 'center',
|
|
611
|
+
justifyContent: 'flex-start',
|
|
612
|
+
my: 0,
|
|
613
|
+
pl: (column.depth + 0.5) * 2 + "rem",
|
|
614
|
+
py: '6px'
|
|
615
|
+
}
|
|
616
|
+
}, !isSubMenu && enablePinning && React__default.createElement(MRT_ColumnPinningButtons, {
|
|
617
|
+
column: column,
|
|
618
|
+
tableInstance: tableInstance
|
|
619
|
+
}), React__default.createElement(material.FormControlLabel, {
|
|
559
620
|
componentsProps: {
|
|
560
621
|
typography: {
|
|
561
622
|
sx: {
|
|
@@ -592,7 +653,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
592
653
|
getState = tableInstance.getState,
|
|
593
654
|
toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
|
|
594
655
|
getAllLeafColumns = tableInstance.getAllLeafColumns,
|
|
595
|
-
|
|
656
|
+
_tableInstance$option = tableInstance.options,
|
|
657
|
+
localization = _tableInstance$option.localization,
|
|
658
|
+
enablePinning = _tableInstance$option.enablePinning;
|
|
596
659
|
|
|
597
660
|
var _getState = getState(),
|
|
598
661
|
isDensePadding = _getState.isDensePadding;
|
|
@@ -616,9 +679,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
616
679
|
});
|
|
617
680
|
return getIsSomeColumnsPinned() ? [].concat(dataColumns.filter(function (c) {
|
|
618
681
|
return c.getIsPinned() === 'left';
|
|
619
|
-
}), dataColumns.filter(function (c) {
|
|
682
|
+
}), [null], dataColumns.filter(function (c) {
|
|
620
683
|
return c.getIsPinned() === false;
|
|
621
|
-
}), dataColumns.filter(function (c) {
|
|
684
|
+
}), [null], dataColumns.filter(function (c) {
|
|
622
685
|
return c.getIsPinned() === 'right';
|
|
623
686
|
})) : dataColumns;
|
|
624
687
|
}, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);
|
|
@@ -641,7 +704,12 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
641
704
|
}, !isSubMenu && React__default.createElement(material.Button, {
|
|
642
705
|
disabled: !getIsSomeColumnsVisible(),
|
|
643
706
|
onClick: hideAllColumns
|
|
644
|
-
}, localization.hideAll), React__default.createElement(material.Button, {
|
|
707
|
+
}, localization.hideAll), !isSubMenu && enablePinning && React__default.createElement(material.Button, {
|
|
708
|
+
disabled: !getIsSomeColumnsPinned(),
|
|
709
|
+
onClick: function onClick() {
|
|
710
|
+
return tableInstance.setColumnPinning({});
|
|
711
|
+
}
|
|
712
|
+
}, localization.unpinAll), React__default.createElement(material.Button, {
|
|
645
713
|
disabled: getIsAllColumnsVisible(),
|
|
646
714
|
onClick: function onClick() {
|
|
647
715
|
return toggleAllColumnsVisible(true);
|
|
@@ -654,11 +722,13 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
654
722
|
tableInstance: tableInstance
|
|
655
723
|
});
|
|
656
724
|
}), React__default.createElement(material.Divider, null), allDataColumns.map(function (column, index) {
|
|
657
|
-
return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
|
|
725
|
+
return column ? React__default.createElement(MRT_ShowHideColumnsMenuItems, {
|
|
658
726
|
column: column,
|
|
659
727
|
isSubMenu: isSubMenu,
|
|
660
728
|
key: index + "-" + column.id,
|
|
661
729
|
tableInstance: tableInstance
|
|
730
|
+
}) : React__default.createElement(material.Divider, {
|
|
731
|
+
key: index + "-divider"
|
|
662
732
|
});
|
|
663
733
|
}));
|
|
664
734
|
};
|
|
@@ -2660,10 +2730,10 @@ var MRT_Table = function MRT_Table(_ref) {
|
|
|
2660
2730
|
tableInstance = _ref.tableInstance;
|
|
2661
2731
|
var getTableProps = tableInstance.getTableProps,
|
|
2662
2732
|
_tableInstance$option = tableInstance.options,
|
|
2663
|
-
|
|
2664
|
-
enableTableHead = _tableInstance$option.enableTableHead,
|
|
2733
|
+
enableStickyHeader = _tableInstance$option.enableStickyHeader,
|
|
2665
2734
|
enableTableFooter = _tableInstance$option.enableTableFooter,
|
|
2666
|
-
|
|
2735
|
+
enableTableHead = _tableInstance$option.enableTableHead,
|
|
2736
|
+
muiTableProps = _tableInstance$option.muiTableProps;
|
|
2667
2737
|
var mTableProps = muiTableProps instanceof Function ? muiTableProps({
|
|
2668
2738
|
tableInstance: tableInstance
|
|
2669
2739
|
}) : muiTableProps;
|
|
@@ -2699,7 +2769,6 @@ var commonBoxStyles = function commonBoxStyles(_ref) {
|
|
|
2699
2769
|
var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
2700
2770
|
var tableInstance = _ref2.tableInstance;
|
|
2701
2771
|
var getCenterTableWidth = tableInstance.getCenterTableWidth,
|
|
2702
|
-
getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
|
|
2703
2772
|
getLeftTableWidth = tableInstance.getLeftTableWidth,
|
|
2704
2773
|
getRightTableWidth = tableInstance.getRightTableWidth,
|
|
2705
2774
|
getState = tableInstance.getState,
|
|
@@ -2710,8 +2779,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
|
2710
2779
|
muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
|
|
2711
2780
|
|
|
2712
2781
|
var _getState = getState(),
|
|
2713
|
-
isFullScreen = _getState.isFullScreen
|
|
2714
|
-
columnPinning = _getState.columnPinning;
|
|
2782
|
+
isFullScreen = _getState.isFullScreen;
|
|
2715
2783
|
|
|
2716
2784
|
var _useState = React.useState(0),
|
|
2717
2785
|
totalToolbarHeight = _useState[0],
|
|
@@ -2727,6 +2795,8 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
|
2727
2795
|
var bottomToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB3 = (_document2 = document) == null ? void 0 : (_document2$getElement = _document2.getElementById("mrt-" + idPrefix + "-toolbar-bottom")) == null ? void 0 : _document2$getElement.offsetHeight) != null ? _document$getElementB3 : 0 : 0;
|
|
2728
2796
|
setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
|
|
2729
2797
|
});
|
|
2798
|
+
var isSomeColumnsPinnedLeft = !!tableInstance.getLeftFlatHeaders().length;
|
|
2799
|
+
var isSomeColumnsPinnedRight = !!tableInstance.getRightFlatHeaders().length;
|
|
2730
2800
|
return React__default.createElement(material.TableContainer, Object.assign({}, tableContainerProps, {
|
|
2731
2801
|
sx: _extends({
|
|
2732
2802
|
maxWidth: '100%',
|
|
@@ -2736,19 +2806,17 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
|
2736
2806
|
style: {
|
|
2737
2807
|
maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
|
|
2738
2808
|
}
|
|
2739
|
-
}), enablePinning &&
|
|
2809
|
+
}), enablePinning && isSomeColumnsPinnedLeft || isSomeColumnsPinnedRight ? React__default.createElement(material.Box, {
|
|
2740
2810
|
sx: {
|
|
2741
2811
|
display: 'grid',
|
|
2742
2812
|
gridTemplateColumns: getLeftTableWidth() + "fr " + getCenterTableWidth() + "fr " + getRightTableWidth() + "fr"
|
|
2743
2813
|
}
|
|
2744
2814
|
}, React__default.createElement(material.Box, {
|
|
2745
2815
|
sx: function sx(theme) {
|
|
2746
|
-
var _columnPinning$left;
|
|
2747
|
-
|
|
2748
2816
|
return commonBoxStyles({
|
|
2749
2817
|
pinned: 'left',
|
|
2750
2818
|
theme: theme,
|
|
2751
|
-
visible:
|
|
2819
|
+
visible: isSomeColumnsPinnedLeft
|
|
2752
2820
|
});
|
|
2753
2821
|
}
|
|
2754
2822
|
}, React__default.createElement(MRT_Table, {
|
|
@@ -2757,7 +2825,8 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
|
2757
2825
|
})), React__default.createElement(material.Box, {
|
|
2758
2826
|
sx: function sx(theme) {
|
|
2759
2827
|
return commonBoxStyles({
|
|
2760
|
-
theme: theme
|
|
2828
|
+
theme: theme,
|
|
2829
|
+
visible: !!tableInstance.getCenterFlatHeaders().length
|
|
2761
2830
|
});
|
|
2762
2831
|
}
|
|
2763
2832
|
}, React__default.createElement(MRT_Table, {
|
|
@@ -2765,12 +2834,10 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
|
|
|
2765
2834
|
tableInstance: tableInstance
|
|
2766
2835
|
})), React__default.createElement(material.Box, {
|
|
2767
2836
|
sx: function sx(theme) {
|
|
2768
|
-
var _columnPinning$right;
|
|
2769
|
-
|
|
2770
2837
|
return commonBoxStyles({
|
|
2771
2838
|
pinned: 'right',
|
|
2772
2839
|
theme: theme,
|
|
2773
|
-
visible:
|
|
2840
|
+
visible: isSomeColumnsPinnedRight
|
|
2774
2841
|
});
|
|
2775
2842
|
}
|
|
2776
2843
|
}, React__default.createElement(MRT_Table, {
|