@semcore/data-table 16.2.0-prerelease.0 → 16.2.0-prerelease.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/cjs/components/Body/Body.js +43 -43
  3. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  4. package/lib/cjs/components/Body/Cell.js +43 -43
  5. package/lib/cjs/components/Body/Row.js +43 -43
  6. package/lib/cjs/components/Body/style.shadow.css +2 -1
  7. package/lib/cjs/components/DataTable/DataTable.js +72 -30
  8. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  9. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  10. package/lib/cjs/components/DataTable/dataTable.shadow.css +6 -0
  11. package/lib/cjs/components/Head/Column.js +37 -30
  12. package/lib/cjs/components/Head/Column.js.map +1 -1
  13. package/lib/cjs/components/Head/Group.js +36 -30
  14. package/lib/cjs/components/Head/Group.js.map +1 -1
  15. package/lib/cjs/components/Head/Head.js +43 -32
  16. package/lib/cjs/components/Head/Head.js.map +1 -1
  17. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  18. package/lib/cjs/components/Head/style.shadow.css +19 -0
  19. package/lib/es6/components/Body/Body.js +43 -43
  20. package/lib/es6/components/Body/Body.types.js.map +1 -1
  21. package/lib/es6/components/Body/Cell.js +43 -43
  22. package/lib/es6/components/Body/Row.js +43 -43
  23. package/lib/es6/components/Body/style.shadow.css +2 -1
  24. package/lib/es6/components/DataTable/DataTable.js +72 -30
  25. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  26. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  27. package/lib/es6/components/DataTable/dataTable.shadow.css +6 -0
  28. package/lib/es6/components/Head/Column.js +37 -30
  29. package/lib/es6/components/Head/Column.js.map +1 -1
  30. package/lib/es6/components/Head/Group.js +36 -30
  31. package/lib/es6/components/Head/Group.js.map +1 -1
  32. package/lib/es6/components/Head/Head.js +43 -32
  33. package/lib/es6/components/Head/Head.js.map +1 -1
  34. package/lib/es6/components/Head/Head.types.js.map +1 -1
  35. package/lib/es6/components/Head/style.shadow.css +19 -0
  36. package/lib/esm/components/Body/Body.mjs +44 -44
  37. package/lib/esm/components/Body/Cell.mjs +44 -44
  38. package/lib/esm/components/Body/Row.mjs +44 -44
  39. package/lib/esm/components/Body/style.shadow.css +2 -1
  40. package/lib/esm/components/DataTable/DataTable.mjs +73 -31
  41. package/lib/esm/components/DataTable/dataTable.shadow.css +6 -0
  42. package/lib/esm/components/Head/Column.mjs +38 -31
  43. package/lib/esm/components/Head/Group.mjs +37 -31
  44. package/lib/esm/components/Head/Head.mjs +42 -33
  45. package/lib/esm/components/Head/style.shadow.css +19 -0
  46. package/lib/types/components/Body/Body.types.d.ts +11 -0
  47. package/lib/types/components/DataTable/DataTable.types.d.ts +8 -2
  48. package/lib/types/components/Head/Head.types.d.ts +1 -0
  49. package/package.json +22 -22
@@ -34,16 +34,17 @@ var _MergedCells = require("../Body/MergedCells");
34
34
  var _Head = require("../Head/Head");
35
35
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, (0, _isNativeReflectConstruct2["default"])() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
36
36
  /*!__reshadow-styles__:"./dataTable.shadow.css"*/
37
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_crlgn_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_crlgn_gg_.__gridTemplateColumns_crlgn_gg_{grid-template-columns:var(--gridTemplateColumns_crlgn)}.___SDataTable_crlgn_gg_.__gridTemplateAreas_crlgn_gg_{grid-template-areas:var(--gridTemplateAreas_crlgn)}.___SDataTable_crlgn_gg_.__gridTemplateRows_crlgn_gg_{grid-template-rows:var(--gridTemplateRows_crlgn)}", /*__inner_css_end__*/"crlgn_gg_"),
37
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDataTable_oz5ss_gg_{display:grid;align-items:start;min-width:-moz-fit-content;min-width:fit-content}.___SDataTable_oz5ss_gg_.__isDataEmpty_oz5ss_gg_{display:block;align-items:initial;min-width:initial}.___SDataTable_oz5ss_gg_.__gridTemplateColumns_oz5ss_gg_{grid-template-columns:var(--gridTemplateColumns_oz5ss)}.___SDataTable_oz5ss_gg_.__gridTemplateAreas_oz5ss_gg_{grid-template-areas:var(--gridTemplateAreas_oz5ss)}.___SDataTable_oz5ss_gg_.__gridTemplateRows_oz5ss_gg_{grid-template-rows:var(--gridTemplateRows_oz5ss)}", /*__inner_css_end__*/"oz5ss_gg_"),
38
38
  /*__reshadow_css_end__*/
39
39
  {
40
- "__SDataTable": "___SDataTable_crlgn_gg_",
41
- "_gridTemplateColumns": "__gridTemplateColumns_crlgn_gg_",
42
- "--gridTemplateColumns": "--gridTemplateColumns_crlgn",
43
- "_gridTemplateAreas": "__gridTemplateAreas_crlgn_gg_",
44
- "--gridTemplateAreas": "--gridTemplateAreas_crlgn",
45
- "_gridTemplateRows": "__gridTemplateRows_crlgn_gg_",
46
- "--gridTemplateRows": "--gridTemplateRows_crlgn"
40
+ "__SDataTable": "___SDataTable_oz5ss_gg_",
41
+ "_isDataEmpty": "__isDataEmpty_oz5ss_gg_",
42
+ "_gridTemplateColumns": "__gridTemplateColumns_oz5ss_gg_",
43
+ "--gridTemplateColumns": "--gridTemplateColumns_oz5ss",
44
+ "_gridTemplateAreas": "__gridTemplateAreas_oz5ss_gg_",
45
+ "--gridTemplateAreas": "--gridTemplateAreas_oz5ss",
46
+ "_gridTemplateRows": "__gridTemplateRows_oz5ss_gg_",
47
+ "--gridTemplateRows": "--gridTemplateRows_oz5ss"
47
48
  });
48
49
  /*!__reshadow-styles__:"../../style/scroll-shadows.shadow.css"*/
49
50
  var scrollStyles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScrollArea_1994j_gg_{width:-moz-fit-content;width:fit-content}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_{overflow:visible;overflow:initial}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_both_1994j_gg_{overflow:auto}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_both_1994j_gg_.__loading_1994j_gg_,.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_horizontal_1994j_gg_.__loading_1994j_gg_,.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_vertical_1994j_gg_.__loading_1994j_gg_{overflow:hidden}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_horizontal_1994j_gg_{overflow-x:auto;overflow-y:initial}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_._scrollDirection_vertical_1994j_gg_{overflow-x:initial;overflow-y:auto}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_.__headerHeight_1994j_gg_{scroll-padding-top:var(--headerHeight_1994j)}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_.__leftScrollPadding_1994j_gg_{scroll-padding-left:var(--leftScrollPadding_1994j)}.___SScrollArea_1994j_gg_ .___SContainer_1994j_gg_.__rightScrollPadding_1994j_gg_{scroll-padding-right:var(--rightScrollPadding_1994j)}.___SScrollArea_1994j_gg_ .___SShadowHorizontal_1994j_gg_::before,.___SScrollArea_1994j_gg_ .___SShadowHorizontal_1994j_gg_:after,.___SScrollArea_1994j_gg_ .___SShadowVertical_1994j_gg_::after{z-index:20}.___SScrollArea_1994j_gg_ .___SShadowHorizontal_1994j_gg_.__leftOffset_1994j_gg_::before,.___SScrollArea_1994j_gg_ .___SShadowHorizontal_1994j_gg_.__rightOffset_1994j_gg_::after,.___SScrollArea_1994j_gg_ .___SShadowVertical_1994j_gg_::before{display:none}", /*__inner_css_end__*/"1994j_gg_"),
@@ -88,10 +89,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
88
89
  (0, _defineProperty2["default"])(_this, "tableRef", /*#__PURE__*/React.createRef());
89
90
  (0, _defineProperty2["default"])(_this, "headerRef", /*#__PURE__*/React.createRef());
90
91
  (0, _defineProperty2["default"])(_this, "spinnerRef", /*#__PURE__*/React.createRef());
92
+ (0, _defineProperty2["default"])(_this, "containerResizeEndTimeoutId", null);
91
93
  (0, _defineProperty2["default"])(_this, "gridAreaGroupMap", new Map());
92
94
  (0, _defineProperty2["default"])(_this, "columnsSplitter", '/');
93
- (0, _defineProperty2["default"])(_this, "rows", []);
94
- (0, _defineProperty2["default"])(_this, "flatRows", []);
95
+ (0, _defineProperty2["default"])(_this, "tmpData", void 0);
96
+ (0, _defineProperty2["default"])(_this, "calculatedRows", void 0);
97
+ (0, _defineProperty2["default"])(_this, "flatRows", void 0);
95
98
  (0, _defineProperty2["default"])(_this, "selectAllMessageTimer", 0);
96
99
  (0, _defineProperty2["default"])(_this, "headerNodesMap", new Map());
97
100
  (0, _defineProperty2["default"])(_this, "state", {
@@ -345,6 +348,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
345
348
  var _this$spinnerRef$curr;
346
349
  (_this$spinnerRef$curr = _this.spinnerRef.current) === null || _this$spinnerRef$curr === void 0 || _this$spinnerRef$curr.focus();
347
350
  e.currentTarget.setAttribute('tabIndex', '-1');
351
+ if (_this.isDataEmpty) {
352
+ var _this$headerRef$curre;
353
+ (_this$headerRef$curre = _this.headerRef.current) === null || _this$headerRef$curre === void 0 || _this$headerRef$curre.setAttribute('tabIndex', '-1');
354
+ }
348
355
  } else if ((!e.relatedTarget || !(0, _useFocusLock.isFocusInside)(e.currentTarget, e.relatedTarget)) && _core.lastInteraction.isKeyboard()) {
349
356
  var _row;
350
357
  if (_this.focusedCell[0] === -1 && _this.focusedCell[1] === -1) {
@@ -378,6 +385,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
378
385
  cell.focus();
379
386
  }
380
387
  }
388
+ if (_this.isDataEmpty) {
389
+ var _this$headerRef$curre2;
390
+ (_this$headerRef$curre2 = _this.headerRef.current) === null || _this$headerRef$curre2 === void 0 || _this$headerRef$curre2.setAttribute('tabIndex', '-1');
391
+ }
381
392
  e.currentTarget.setAttribute('tabIndex', '-1');
382
393
  }
383
394
  });
@@ -387,6 +398,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
387
398
  if (tableElement && (!relatedTarget || !(0, _useFocusLock.isFocusInside)(tableElement, relatedTarget) || !_core.lastInteraction.isKeyboard())) {
388
399
  _this.setInert(false);
389
400
  tableElement.setAttribute('tabIndex', '0');
401
+ if (_this.isDataEmpty) {
402
+ var _this$headerRef$curre3;
403
+ (_this$headerRef$curre3 = _this.headerRef.current) === null || _this$headerRef$curre3 === void 0 || _this$headerRef$curre3.setAttribute('tabIndex', '0');
404
+ }
390
405
  }
391
406
  });
392
407
  (0, _defineProperty2["default"])(_this, "handleMouseMove", function () {
@@ -395,6 +410,12 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
395
410
  (0, _defineProperty2["default"])(_this, "handleBackFromAccordion", function (cellIndex) {
396
411
  _this.changeFocusCell(-1, cellIndex === -1 ? 0 : cellIndex, 'up');
397
412
  });
413
+ (0, _defineProperty2["default"])(_this, "handleContainerResizeEnd", function () {
414
+ if (_this.containerResizeEndTimeoutId) {
415
+ clearTimeout(_this.containerResizeEndTimeoutId);
416
+ }
417
+ _this.containerResizeEndTimeoutId = setTimeout(_this.calculateVerticalShadow, 0);
418
+ });
398
419
  (0, _defineProperty2["default"])(_this, "getScrollOffsetValue", function () {
399
420
  if (!_this.headerRef.current) {
400
421
  return [0, 0];
@@ -468,8 +489,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
468
489
  _this.columns = cols[0];
469
490
  _this.treeColumns = cols[1];
470
491
  }
471
- _this.rows = _this.calculateRows();
472
- _this.flatRows = _this.rows.flat();
492
+ _this.calculatedRows = _this.getRows();
493
+ _this.flatRows = _this.calculatedRows.flat();
494
+ _this.tmpData = props.data;
473
495
  return _this;
474
496
  }
475
497
  (0, _inherits2["default"])(DataTableRoot, _Component);
@@ -508,11 +530,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
508
530
  var cols = this.calculateColumnsFromConfig();
509
531
  this.columns = cols[0];
510
532
  this.treeColumns = cols[1];
533
+ this.forceUpdate();
511
534
  }
512
535
  if (prevProps.data !== data || prevProps.columns !== columns) {
513
- this.rows = this.calculateRows();
514
- this.flatRows = this.rows.flat();
515
- this.forceUpdate();
516
536
  if (this.hasFixedColumn) {
517
537
  this.calculateVerticalShadow();
518
538
  }
@@ -538,7 +558,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
538
558
  var _this$asProps5 = this.asProps,
539
559
  totalRows = _this$asProps5.totalRows,
540
560
  expandedRows = _this$asProps5.expandedRows;
541
- var flatRows = this.rows.flat();
561
+ var flatRows = this.getFlatRows();
542
562
  var expandedRowsCount = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, rowKey) {
543
563
  var dtRow = flatRows.find(function (el) {
544
564
  return el[UNIQ_ROW_KEY] === rowKey;
@@ -556,7 +576,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
556
576
  if (totalRows !== undefined) {
557
577
  return totalRows + expandedRowsCount;
558
578
  }
559
- var rows = this.rows.reduce(function (acc, item) {
579
+ var rows = this.getRows().reduce(function (acc, item) {
560
580
  acc = acc + 1;
561
581
  if (Array.isArray(item)) {
562
582
  acc = acc + item.length;
@@ -600,6 +620,11 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
600
620
  }
601
621
  return scrollDirection;
602
622
  }
623
+ }, {
624
+ key: "isDataEmpty",
625
+ get: function get() {
626
+ return this.asProps.data.length === 0;
627
+ }
603
628
  }, {
604
629
  key: "getHeadProps",
605
630
  value: function getHeadProps() {
@@ -636,9 +661,9 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
636
661
  sideIndents: sideIndents,
637
662
  totalRows: this.totalRows,
638
663
  selectedRows: selectedRows,
639
- flatRows: this.flatRows,
664
+ flatRows: this.getFlatRows(),
640
665
  onChangeSelectAll: function onChangeSelectAll(value, e) {
641
- var mappedFlatRows = _this3.flatRows.map(function (r) {
666
+ var mappedFlatRows = _this3.getFlatRows().map(function (r) {
642
667
  return r[UNIQ_ROW_KEY];
643
668
  });
644
669
  var selectedRowsSet = new Set(selectedRows);
@@ -652,7 +677,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
652
677
  getFixedStyle: this.getFixedStyle,
653
678
  onCellClick: this.handleCellClick,
654
679
  shadowVertical: shadowVertical,
655
- scrollDirection: this.scrollDirection
680
+ scrollDirection: this.scrollDirection,
681
+ isDataEmpty: this.isDataEmpty
656
682
  });
657
683
  }
658
684
  }, {
@@ -684,8 +710,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
684
710
  accordionDuration: accordionDuration,
685
711
  accordionMode: accordionMode,
686
712
  columns: this.columns,
687
- rows: this.rows,
688
- flatRows: this.flatRows,
713
+ rows: this.getRows(),
714
+ flatRows: this.getFlatRows(),
689
715
  use: use,
690
716
  compact: Boolean(compact),
691
717
  gridTemplateColumns: gridTemplateColumns,
@@ -706,8 +732,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
706
732
  virtualScroll: virtualScroll,
707
733
  hasGroups: this.hasGroups,
708
734
  uid: uid,
709
- rowProps: this.rows.length > 0 ? rowProps : undefined,
710
- renderCell: this.rows.length > 0 ? renderCell : undefined,
735
+ rowProps: this.getRows().length > 0 ? rowProps : undefined,
736
+ renderCell: this.getRows().length > 0 ? renderCell : undefined,
711
737
  renderEmptyData: renderEmptyData,
712
738
  sideIndents: sideIndents,
713
739
  selectedRows: selectedRows,
@@ -798,7 +824,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
798
824
  "container": this.tableContainerRef,
799
825
  "styles": scrollStyles,
800
826
  "onScroll": this.handleScroll,
801
- "disableAutofocusToContent": true
827
+ "disableAutofocusToContent": true,
828
+ "onResize": this.handleContainerResizeEnd
802
829
  }), /*#__PURE__*/React.createElement(_baseComponents.ScrollArea.Container, {
803
830
  tabIndex: -1
804
831
  // @ts-ignore
@@ -818,6 +845,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
818
845
  "tabIndex": 0,
819
846
  "onFocus": this.handleFocus,
820
847
  "onBlur": this.handleBlur,
848
+ "isDataEmpty": this.isDataEmpty,
821
849
  "aria-rowcount": this.totalRows,
822
850
  "aria-colcount": this.columns.length,
823
851
  "gridTemplateColumns": gridTemplateColumns.join(' '),
@@ -1032,12 +1060,21 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1032
1060
  groupIndex++;
1033
1061
  }
1034
1062
  });
1035
- console.log(calculatedColumns, treeColumns);
1036
1063
  return [calculatedColumns, treeColumns];
1037
1064
  }
1038
1065
  }, {
1039
- key: "calculateRows",
1040
- value: function calculateRows() {
1066
+ key: "getFlatRows",
1067
+ value: function getFlatRows() {
1068
+ var data = this.props.data;
1069
+ if (this.tmpData === data && this.flatRows) {
1070
+ return this.flatRows;
1071
+ }
1072
+ this.flatRows = this.getRows().flat();
1073
+ return this.flatRows;
1074
+ }
1075
+ }, {
1076
+ key: "getRows",
1077
+ value: function getRows() {
1041
1078
  var _this6 = this;
1042
1079
  var columns = this.columns;
1043
1080
  // @ts-ignore
@@ -1045,6 +1082,10 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1045
1082
  data = _this$props3.data,
1046
1083
  uid = _this$props3.uid,
1047
1084
  uniqueRowKey = _this$props3.uniqueRowKey;
1085
+ if (this.tmpData === data) {
1086
+ return this.calculatedRows;
1087
+ }
1088
+ this.tmpData = data;
1048
1089
  var rows = [];
1049
1090
  var columnNames = columns.map(function (column) {
1050
1091
  return column.name;
@@ -1123,6 +1164,7 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1123
1164
  rowIndex++;
1124
1165
  }
1125
1166
  });
1167
+ this.calculatedRows = rows;
1126
1168
  return rows;
1127
1169
  }
1128
1170
  }, {
@@ -1134,8 +1176,8 @@ var DataTableRoot = /*#__PURE__*/function (_Component) {
1134
1176
  }, {
1135
1177
  key: "getHeaderHeight",
1136
1178
  value: function getHeaderHeight() {
1137
- var _this$headerRef$curre;
1138
- var header = (_this$headerRef$curre = this.headerRef.current) === null || _this$headerRef$curre === void 0 ? void 0 : _this$headerRef$curre.children;
1179
+ var _this$headerRef$curre4;
1180
+ var header = (_this$headerRef$curre4 = this.headerRef.current) === null || _this$headerRef$curre4 === void 0 ? void 0 : _this$headerRef$curre4.children;
1139
1181
  var height = 0;
1140
1182
  for (var i = 0; i < ((_header$length = header === null || header === void 0 ? void 0 : header.length) !== null && _header$length !== void 0 ? _header$length : 0); i++) {
1141
1183
  var _header$length;