@semcore/data-table 17.0.0-prerelease.30 → 17.0.0-prerelease.34
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/CHANGELOG.md +9 -1
- package/lib/cjs/components/AccordionRows/AccordionRows.js +50 -51
- package/lib/cjs/components/AccordionRows/AccordionRows.js.map +1 -1
- package/lib/cjs/components/Body/Body.js +65 -88
- package/lib/cjs/components/Body/Body.js.map +1 -1
- package/lib/cjs/components/Body/Body.types.js.map +1 -1
- package/lib/cjs/components/Body/Cell.js +50 -51
- package/lib/cjs/components/Body/Cell.js.map +1 -1
- package/lib/cjs/components/Body/LimitOverlay.js +50 -51
- package/lib/cjs/components/Body/LimitOverlay.js.map +1 -1
- package/lib/cjs/components/Body/Row.js +65 -90
- package/lib/cjs/components/Body/Row.js.map +1 -1
- package/lib/cjs/components/Body/Row.types.js.map +1 -1
- package/lib/cjs/components/Body/RowGroup.js +133 -0
- package/lib/cjs/components/Body/RowGroup.js.map +1 -0
- package/lib/cjs/components/Body/style.shadow.css +86 -152
- package/lib/cjs/components/DataTable/DataTable.js +35 -12
- package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
- package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/cjs/components/Head/Column.js +37 -36
- package/lib/cjs/components/Head/Column.js.map +1 -1
- package/lib/cjs/components/Head/Group.js +36 -36
- package/lib/cjs/components/Head/Head.js +81 -50
- package/lib/cjs/components/Head/Head.js.map +1 -1
- package/lib/cjs/components/Head/Head.types.js.map +1 -1
- package/lib/cjs/components/Head/style.shadow.css +0 -1
- package/lib/cjs/components/RowSelector/RowsSelector.js +112 -0
- package/lib/cjs/components/RowSelector/RowsSelector.js.map +1 -0
- package/lib/cjs/index.js +7 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/store/SelectableRows.js +129 -0
- package/lib/cjs/store/SelectableRows.js.map +1 -0
- package/lib/es6/components/AccordionRows/AccordionRows.js +50 -51
- package/lib/es6/components/AccordionRows/AccordionRows.js.map +1 -1
- package/lib/es6/components/Body/Body.js +67 -90
- package/lib/es6/components/Body/Body.js.map +1 -1
- package/lib/es6/components/Body/Body.types.js.map +1 -1
- package/lib/es6/components/Body/Cell.js +50 -51
- package/lib/es6/components/Body/Cell.js.map +1 -1
- package/lib/es6/components/Body/LimitOverlay.js +50 -51
- package/lib/es6/components/Body/LimitOverlay.js.map +1 -1
- package/lib/es6/components/Body/Row.js +66 -91
- package/lib/es6/components/Body/Row.js.map +1 -1
- package/lib/es6/components/Body/Row.types.js.map +1 -1
- package/lib/es6/components/Body/RowGroup.js +125 -0
- package/lib/es6/components/Body/RowGroup.js.map +1 -0
- package/lib/es6/components/Body/style.shadow.css +86 -152
- package/lib/es6/components/DataTable/DataTable.js +35 -12
- package/lib/es6/components/DataTable/DataTable.js.map +1 -1
- package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
- package/lib/es6/components/Head/Column.js +37 -36
- package/lib/es6/components/Head/Column.js.map +1 -1
- package/lib/es6/components/Head/Group.js +36 -36
- package/lib/es6/components/Head/Head.js +81 -50
- package/lib/es6/components/Head/Head.js.map +1 -1
- package/lib/es6/components/Head/Head.types.js.map +1 -1
- package/lib/es6/components/Head/style.shadow.css +0 -1
- package/lib/es6/components/RowSelector/RowsSelector.js +104 -0
- package/lib/es6/components/RowSelector/RowsSelector.js.map +1 -0
- package/lib/es6/index.js +2 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/store/SelectableRows.js +121 -0
- package/lib/es6/store/SelectableRows.js.map +1 -0
- package/lib/esm/components/AccordionRows/AccordionRows.mjs +51 -52
- package/lib/esm/components/Body/Body.mjs +68 -91
- package/lib/esm/components/Body/Cell.mjs +51 -52
- package/lib/esm/components/Body/LimitOverlay.mjs +51 -52
- package/lib/esm/components/Body/Row.mjs +66 -90
- package/lib/esm/components/Body/RowGroup.mjs +124 -0
- package/lib/esm/components/Body/style.shadow.css +86 -152
- package/lib/esm/components/DataTable/DataTable.mjs +34 -12
- package/lib/esm/components/Head/Column.mjs +38 -37
- package/lib/esm/components/Head/Group.mjs +37 -37
- package/lib/esm/components/Head/Head.mjs +83 -51
- package/lib/esm/components/Head/style.shadow.css +0 -1
- package/lib/esm/components/RowSelector/RowsSelector.mjs +107 -0
- package/lib/esm/index.mjs +2 -0
- package/lib/esm/store/SelectableRows.mjs +123 -0
- package/lib/types/components/Body/Body.types.d.ts +2 -1
- package/lib/types/components/Body/Row.d.ts +0 -2
- package/lib/types/components/Body/Row.types.d.ts +2 -1
- package/lib/types/components/Body/RowGroup.d.ts +19 -0
- package/lib/types/components/DataTable/DataTable.types.d.ts +21 -12
- package/lib/types/components/Head/Head.types.d.ts +2 -1
- package/lib/types/components/RowSelector/RowsSelector.d.ts +31 -0
- package/lib/types/index.d.ts +2 -1
- package/lib/types/store/SelectableRows.d.ts +56 -0
- package/package.json +18 -18
|
@@ -27,6 +27,7 @@ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/
|
|
|
27
27
|
"_gridTemplateRows": "__gridTemplateRows_wo0cb_gg_",
|
|
28
28
|
"--gridTemplateRows": "--gridTemplateRows_wo0cb"
|
|
29
29
|
});
|
|
30
|
+
import { SelectableRows } from '../../store/SelectableRows';
|
|
30
31
|
/*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
|
|
31
32
|
const scrollStyles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SScrollArea_j4820_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_{overflow:visible;overflow:initial}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_both_j4820_gg_{overflow:auto}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_both_j4820_gg_.__loading_j4820_gg_,.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_horizontal_j4820_gg_.__loading_j4820_gg_,.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_vertical_j4820_gg_.__loading_j4820_gg_{overflow:hidden}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_horizontal_j4820_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_._scrollDirection_vertical_j4820_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__headerHeight_j4820_gg_{scroll-padding-top:var(--headerHeight_j4820)}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__leftScrollPadding_j4820_gg_{scroll-padding-left:var(--leftScrollPadding_j4820)}.___SScrollArea_j4820_gg_ .___SContainer_j4820_gg_.__rightScrollPadding_j4820_gg_{scroll-padding-right:var(--rightScrollPadding_j4820)}.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_::before,.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_:after,.___SScrollArea_j4820_gg_ .___SShadowVertical_j4820_gg_::after{z-index:20}.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_.__leftOffset_j4820_gg_::before,.___SScrollArea_j4820_gg_ .___SShadowHorizontal_j4820_gg_.__rightOffset_j4820_gg_::after,.___SScrollArea_j4820_gg_ .___SShadowVertical_j4820_gg_::before{display:none}", /*__inner_css_end__*/"j4820_gg_"),
|
|
32
33
|
/*__reshadow_css_end__*/
|
|
@@ -93,7 +94,7 @@ class DataTableRoot extends Component {
|
|
|
93
94
|
});
|
|
94
95
|
_defineProperty(this, "selectAllMessageTimer", 0);
|
|
95
96
|
_defineProperty(this, "headerNodesMap", new Map());
|
|
96
|
-
_defineProperty(this, "
|
|
97
|
+
_defineProperty(this, "selectedRowsContainer", void 0);
|
|
97
98
|
_defineProperty(this, "lastSelectedRowKey", void 0);
|
|
98
99
|
_defineProperty(this, "state", {
|
|
99
100
|
scrollTop: 0,
|
|
@@ -139,14 +140,20 @@ class DataTableRoot extends Component {
|
|
|
139
140
|
this.initFocusableCell([this.hasFocusableInHeader() ? opt.rowIndex + 1 : opt.rowIndex, opt.colIndex]);
|
|
140
141
|
}
|
|
141
142
|
});
|
|
143
|
+
_defineProperty(this, "handleSelectAllRows", (selectedRows, event) => {
|
|
144
|
+
if (!('onSelectedRowsChange' in this.asProps) || !this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
|
|
145
|
+
this.asProps.onSelectedRowsChange(selectedRows, event);
|
|
146
|
+
});
|
|
142
147
|
_defineProperty(this, "handleSelectRow", (isSelected, selectedRowIndex, row, event) => {
|
|
143
148
|
const {
|
|
144
|
-
selectedRows
|
|
149
|
+
selectedRows
|
|
150
|
+
} = this.asProps;
|
|
151
|
+
if (!selectedRows || !('onSelectedRowsChange' in this.asProps) || !this.asProps.onSelectedRowsChange || !Array.isArray(selectedRows)) return;
|
|
152
|
+
const {
|
|
145
153
|
onSelectedRowsChange
|
|
146
154
|
} = this.asProps;
|
|
147
|
-
if (!selectedRows || !onSelectedRowsChange) return;
|
|
148
155
|
const selectedRowsSet = new Set(selectedRows);
|
|
149
|
-
if (this.isPressedShift && selectedRowsSet.size > 0 && this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(this.lastSelectedRowKey) : true)) {
|
|
156
|
+
if (this.selectedRowsContainer.isPressedShift && selectedRowsSet.size > 0 && this.lastSelectedRowKey && (isSelected ? selectedRowsSet.has(this.lastSelectedRowKey) : true)) {
|
|
150
157
|
let select = false;
|
|
151
158
|
const firstColumnKey = this.columns[0].name;
|
|
152
159
|
const isMerged = this.flatRows.some(item => item[firstColumnKey] instanceof MergedRowsCell);
|
|
@@ -357,13 +364,13 @@ class DataTableRoot extends Component {
|
|
|
357
364
|
}
|
|
358
365
|
case 'Shift':
|
|
359
366
|
{
|
|
360
|
-
this.isPressedShift = true;
|
|
367
|
+
this.selectedRowsContainer.isPressedShift = true;
|
|
361
368
|
}
|
|
362
369
|
}
|
|
363
370
|
});
|
|
364
371
|
_defineProperty(this, "handleKeyUp", e => {
|
|
365
372
|
if (e.key === 'Shift') {
|
|
366
|
-
this.isPressedShift = false;
|
|
373
|
+
this.selectedRowsContainer.isPressedShift = false;
|
|
367
374
|
}
|
|
368
375
|
});
|
|
369
376
|
_defineProperty(this, "handleScroll", trottle(e => {
|
|
@@ -544,6 +551,11 @@ class DataTableRoot extends Component {
|
|
|
544
551
|
this.calculatedRows = this.getRows();
|
|
545
552
|
this.flatRows = this.calculatedRows.flat();
|
|
546
553
|
this.tmpData = props.data;
|
|
554
|
+
if (Array.isArray(props.selectedRows) || !props.selectedRows) {
|
|
555
|
+
this.selectedRowsContainer = new SelectableRows();
|
|
556
|
+
} else {
|
|
557
|
+
this.selectedRowsContainer = props.selectedRows;
|
|
558
|
+
}
|
|
547
559
|
}
|
|
548
560
|
componentDidMount() {
|
|
549
561
|
const {
|
|
@@ -577,7 +589,7 @@ class DataTableRoot extends Component {
|
|
|
577
589
|
this.calculateVerticalShadow();
|
|
578
590
|
}
|
|
579
591
|
}
|
|
580
|
-
if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined) {
|
|
592
|
+
if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && Array.isArray(selectedRows)) {
|
|
581
593
|
const selectedRowsSet = new Set(selectedRows);
|
|
582
594
|
const allChecked = [];
|
|
583
595
|
const allUnchecked = [];
|
|
@@ -594,6 +606,9 @@ class DataTableRoot extends Component {
|
|
|
594
606
|
this.setSelectAllMessage(false);
|
|
595
607
|
}
|
|
596
608
|
}
|
|
609
|
+
if (prevProps.selectedRows !== selectedRows && selectedRows !== undefined && !Array.isArray(selectedRows)) {
|
|
610
|
+
this.selectedRowsContainer = selectedRows;
|
|
611
|
+
}
|
|
597
612
|
}
|
|
598
613
|
componentWillUnmount() {
|
|
599
614
|
if (canUseDOM()) {
|
|
@@ -663,7 +678,6 @@ class DataTableRoot extends Component {
|
|
|
663
678
|
getI18nText,
|
|
664
679
|
uid,
|
|
665
680
|
headerProps,
|
|
666
|
-
onSelectedRowsChange,
|
|
667
681
|
selectedRows,
|
|
668
682
|
sideIndents,
|
|
669
683
|
variant
|
|
@@ -695,7 +709,7 @@ class DataTableRoot extends Component {
|
|
|
695
709
|
totalRows: this.totalRows,
|
|
696
710
|
selectedRows,
|
|
697
711
|
flatRows: this.getFlatRows(),
|
|
698
|
-
onChangeSelectAll:
|
|
712
|
+
onChangeSelectAll: Array.isArray(selectedRows) ? this.handleSelectAllRows : undefined,
|
|
699
713
|
getFixedStyle: this.getFixedStyle,
|
|
700
714
|
onCellClick: this.handleCellClick,
|
|
701
715
|
shadowVertical,
|
|
@@ -765,7 +779,7 @@ class DataTableRoot extends Component {
|
|
|
765
779
|
renderEmptyData,
|
|
766
780
|
sideIndents,
|
|
767
781
|
selectedRows,
|
|
768
|
-
onSelectRow: this.handleSelectRow,
|
|
782
|
+
onSelectRow: Array.isArray(selectedRows) ? this.handleSelectRow : undefined,
|
|
769
783
|
getFixedStyle: this.getFixedStyle,
|
|
770
784
|
onCellClick: this.handleCellClick,
|
|
771
785
|
rawData,
|
|
@@ -827,7 +841,7 @@ class DataTableRoot extends Component {
|
|
|
827
841
|
const width = w ?? (this.columns.some(c => c.gtcWidth === 'auto' || c.gtcWidth === '1fr') ? '100%' : undefined);
|
|
828
842
|
let gridTemplateRows = undefined;
|
|
829
843
|
if (virtualScroll && typeof virtualScroll !== 'boolean' && 'rowHeight' in virtualScroll) {
|
|
830
|
-
gridTemplateRows = `auto auto repeat(${this.totalRows}, minmax(${virtualScroll.rowHeight}px, auto)`;
|
|
844
|
+
gridTemplateRows = `auto auto repeat(${this.totalRows}, minmax(${virtualScroll.rowHeight}px, auto))`;
|
|
831
845
|
}
|
|
832
846
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(ScrollArea, _ref2.cn("ScrollArea", {
|
|
833
847
|
"leftOffset": offsetLeftSum,
|
|
@@ -1019,12 +1033,14 @@ class DataTableRoot extends Component {
|
|
|
1019
1033
|
const {
|
|
1020
1034
|
data,
|
|
1021
1035
|
uid,
|
|
1022
|
-
uniqueRowKey
|
|
1036
|
+
uniqueRowKey,
|
|
1037
|
+
selectedRows
|
|
1023
1038
|
} = this.props;
|
|
1024
1039
|
if (this.tmpData === data) {
|
|
1025
1040
|
return this.calculatedRows;
|
|
1026
1041
|
}
|
|
1027
1042
|
this.tmpData = data;
|
|
1043
|
+
const availableRowKeys = [];
|
|
1028
1044
|
const rows = [];
|
|
1029
1045
|
const columnNames = columns.map(column => column.name);
|
|
1030
1046
|
let rowIndex = 0;
|
|
@@ -1096,6 +1112,10 @@ class DataTableRoot extends Component {
|
|
|
1096
1112
|
dtRow[value] = '';
|
|
1097
1113
|
});
|
|
1098
1114
|
}
|
|
1115
|
+
if (!excludeColumns) {
|
|
1116
|
+
// we should add only the main row in mergedRows or default rows
|
|
1117
|
+
availableRowKeys.push(dtRow[UNIQ_ROW_KEY]);
|
|
1118
|
+
}
|
|
1099
1119
|
return dtRow;
|
|
1100
1120
|
};
|
|
1101
1121
|
data.forEach(row => {
|
|
@@ -1152,6 +1172,9 @@ class DataTableRoot extends Component {
|
|
|
1152
1172
|
}
|
|
1153
1173
|
});
|
|
1154
1174
|
this.calculatedRows = rows;
|
|
1175
|
+
if (selectedRows && !Array.isArray(selectedRows)) {
|
|
1176
|
+
selectedRows.setAvailableKeys(availableRowKeys);
|
|
1177
|
+
}
|
|
1155
1178
|
return rows;
|
|
1156
1179
|
}
|
|
1157
1180
|
calculateGridTemplateColumn(c) {
|