@semcore/data-table 16.0.0-prerelease.17 → 16.0.0-prerelease.18

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 (64) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/components/Body/Body.js +281 -56
  3. package/lib/cjs/components/Body/Body.js.map +1 -1
  4. package/lib/cjs/components/Body/Body.types.js.map +1 -1
  5. package/lib/cjs/components/Body/Cell.js +57 -37
  6. package/lib/cjs/components/Body/Cell.js.map +1 -1
  7. package/lib/cjs/components/Body/Cell.types.js.map +1 -1
  8. package/lib/cjs/components/Body/Row.js +50 -35
  9. package/lib/cjs/components/Body/Row.js.map +1 -1
  10. package/lib/cjs/components/Body/Row.types.js.map +1 -1
  11. package/lib/cjs/components/Body/style.shadow.css +12 -0
  12. package/lib/cjs/components/DataTable/DataTable.js +220 -110
  13. package/lib/cjs/components/DataTable/DataTable.js.map +1 -1
  14. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -1
  15. package/lib/cjs/components/DataTable/dataTable.shadow.css +4 -0
  16. package/lib/cjs/components/Head/Column.types.js.map +1 -1
  17. package/lib/cjs/components/Head/Group.js +28 -6
  18. package/lib/cjs/components/Head/Group.js.map +1 -1
  19. package/lib/cjs/components/Head/Group.type.js.map +1 -1
  20. package/lib/cjs/components/Head/Head.js +23 -3
  21. package/lib/cjs/components/Head/Head.js.map +1 -1
  22. package/lib/cjs/components/Head/Head.types.js.map +1 -1
  23. package/lib/cjs/style/scroll-shadows.shadow.css +17 -0
  24. package/lib/es6/components/Body/Body.js +282 -57
  25. package/lib/es6/components/Body/Body.js.map +1 -1
  26. package/lib/es6/components/Body/Body.types.js.map +1 -1
  27. package/lib/es6/components/Body/Cell.js +57 -37
  28. package/lib/es6/components/Body/Cell.js.map +1 -1
  29. package/lib/es6/components/Body/Cell.types.js.map +1 -1
  30. package/lib/es6/components/Body/Row.js +50 -35
  31. package/lib/es6/components/Body/Row.js.map +1 -1
  32. package/lib/es6/components/Body/Row.types.js +1 -1
  33. package/lib/es6/components/Body/Row.types.js.map +1 -1
  34. package/lib/es6/components/Body/style.shadow.css +12 -0
  35. package/lib/es6/components/DataTable/DataTable.js +218 -109
  36. package/lib/es6/components/DataTable/DataTable.js.map +1 -1
  37. package/lib/es6/components/DataTable/DataTable.types.js +0 -5
  38. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -1
  39. package/lib/es6/components/DataTable/dataTable.shadow.css +4 -0
  40. package/lib/es6/components/Head/Column.types.js.map +1 -1
  41. package/lib/es6/components/Head/Group.js +28 -6
  42. package/lib/es6/components/Head/Group.js.map +1 -1
  43. package/lib/es6/components/Head/Group.type.js.map +1 -1
  44. package/lib/es6/components/Head/Head.js +23 -3
  45. package/lib/es6/components/Head/Head.js.map +1 -1
  46. package/lib/es6/components/Head/Head.types.js.map +1 -1
  47. package/lib/es6/style/scroll-shadows.shadow.css +17 -0
  48. package/lib/esm/components/Body/Body.mjs +266 -55
  49. package/lib/esm/components/Body/Cell.mjs +50 -32
  50. package/lib/esm/components/Body/Row.mjs +47 -34
  51. package/lib/esm/components/DataTable/DataTable.mjs +205 -108
  52. package/lib/esm/components/Head/Group.mjs +24 -6
  53. package/lib/esm/components/Head/Head.mjs +21 -3
  54. package/lib/types/components/Body/Body.types.d.ts +13 -8
  55. package/lib/types/components/Body/Cell.types.d.ts +3 -0
  56. package/lib/types/components/Body/Row.types.d.ts +5 -2
  57. package/lib/types/components/DataTable/DataTable.d.ts +2 -1
  58. package/lib/types/components/DataTable/DataTable.types.d.ts +39 -2
  59. package/lib/types/components/Head/Column.types.d.ts +4 -3
  60. package/lib/types/components/Head/Group.d.ts +5 -1
  61. package/lib/types/components/Head/Group.type.d.ts +3 -1
  62. package/lib/types/components/Head/Head.d.ts +91 -4
  63. package/lib/types/components/Head/Head.types.d.ts +1 -0
  64. package/package.json +8 -7
package/CHANGELOG.md CHANGED
@@ -8,6 +8,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangel
8
8
 
9
9
  - Major version.
10
10
 
11
+ ## [4.50.0] - 2025-04-11
12
+
13
+ ### Changed
14
+
15
+ - Version minor update due to children dependencies update (`@semcore/icon` [4.60.2 ~> 4.61.0]).
16
+
11
17
  ## [4.49.2] - 2025-04-04
12
18
 
13
19
  ### Changed
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.Body = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
15
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
14
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -23,59 +25,101 @@ var _m = _interopRequireDefault(require("@semcore/icon/ChevronRight/m"));
23
25
  var _button = require("@semcore/button");
24
26
  var _spin = _interopRequireDefault(require("@semcore/spin"));
25
27
  /*__reshadow-styles__:"./style.shadow.css"*/
26
- var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SBody_1emri_gg_,.___SRowGroup_1emri_gg_,.___SRow_1emri_gg_{display:contents}.___SBody_1emri_gg_.__compact_1emri_gg_ .___SCell_1emri_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SBody_1emri_gg_.__compact_1emri_gg_ .___SCell_1emri_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-2x, 8px) + (var(--intergalactic-spacing-5x, 20px)*(var(--data-aria-level_1emri) - 1)))}.___SCell_1emri_gg_.__gridArea_1emri_gg_,.___SCollapseRow_1emri_gg_.__gridArea_1emri_gg_,.___SRow_1emri_gg_.__gridArea_1emri_gg_{grid-area:var(--gridArea_1emri)}.___SCollapseRow_1emri_gg_ .___SCell_1emri_gg_{display:block}.___SRow_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}@media (hover:hover){.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_._theme_muted_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]._theme_muted_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_._theme_muted_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_._theme_muted_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_._theme_muted_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_._theme_muted_1emri_gg_,.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_._theme_info_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]._theme_info_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_._theme_info_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_._theme_info_1emri_gg_,.___SRow_1emri_gg_._theme_info_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_._theme_info_1emri_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_._theme_success_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]._theme_success_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_._theme_success_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_._theme_success_1emri_gg_,.___SRow_1emri_gg_._theme_success_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_._theme_success_1emri_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_._theme_warning_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]._theme_warning_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_._theme_warning_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_._theme_warning_1emri_gg_,.___SRow_1emri_gg_._theme_warning_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_._theme_warning_1emri_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_._theme_danger_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_[data-grouped-by=rowgroup]._theme_danger_1emri_gg_,.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_._theme_danger_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRowGroup_1emri_gg_:has(.___SCell_1emri_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1emri_gg_>.___SCell_1emri_gg_._theme_danger_1emri_gg_,.___SRow_1emri_gg_._theme_danger_1emri_gg_:hover>.___SCell_1emri_gg_:not(.__theme_1emri_gg_),.___SRow_1emri_gg_:hover>.___SCell_1emri_gg_._theme_danger_1emri_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_1emri_gg_._theme_muted_1emri_gg_ .___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SRow_1emri_gg_._theme_muted_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}.___SRow_1emri_gg_._theme_info_1emri_gg_ .___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_1emri_gg_._theme_info_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-selected-active, #c4e5fe)}.___SRow_1emri_gg_._theme_success_1emri_gg_ .___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_1emri_gg_._theme_success_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-new-active, #9ef2c9)}.___SRow_1emri_gg_._theme_warning_1emri_gg_ .___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_1emri_gg_._theme_warning_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-warning-active, #ffdca2)}.___SRow_1emri_gg_._theme_danger_1emri_gg_ .___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_1emri_gg_._theme_danger_1emri_gg_.__active_1emri_gg_>.___SCell_1emri_gg_:not(.__theme_1emri_gg_){background-color:var(--intergalactic-table-td-cell-critical-active, #ffd7df)}.___SCell_1emri_gg_{display:flex;height:100%;font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);overflow:hidden;white-space:pre-wrap;word-break:break-word;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out;outline:0}.___SCell_1emri_gg_ .___SAccordionToggle_1emri_gg_{margin-right:var(--intergalactic-spacing-3x, 12px);transition:transform calc(var(--intergalactic-duration-accordion, 200)*1ms) ease-out}.___SCell_1emri_gg_ .___SAccordionToggle_1emri_gg_.__expanded_1emri_gg_{transform:rotate(90deg)}.___SCell_1emri_gg_._use_primary_1emri_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1emri_gg_._use_primary_1emri_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-3x, 12px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-2x, 8px))*(var(--data-aria-level_1emri) - 1)))}.___SCell_1emri_gg_._use_secondary_1emri_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1emri_gg_._use_secondary_1emri_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-2x, 8px))*(var(--data-aria-level_1emri) - 1)))}.___SCell_1emri_gg_._borders_both_1emri_gg_,.___SCell_1emri_gg_._borders_left_1emri_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_1emri_gg_._borders_both_1emri_gg_,.___SCell_1emri_gg_._borders_right_1emri_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_1emri_gg_.__fixed_1emri_gg_{position:sticky;z-index:2}.___SCell_1emri_gg_._theme_muted_1emri_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_1emri_gg_._theme_info_1emri_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_1emri_gg_._theme_success_1emri_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_1emri_gg_._theme_warning_1emri_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_1emri_gg_._theme_danger_1emri_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SSpinContainer_1emri_gg_{position:absolute;left:0;right:0;bottom:0;top:0;display:flex;align-items:center;justify-content:center;background-color:var(--intergalactic-overlay-limitation-secondary, rgba(255, 255, 255, 0.85))}.___SSpinContainer_1emri_gg_.__headerHeight_1emri_gg_{top:var(--headerHeight_1emri)}" /*__inner_css_end__*/, "1emri_gg_") /*__reshadow_css_end__*/, {
27
- "__SBody": "___SBody_1emri_gg_",
28
- "__SRow": "___SRow_1emri_gg_",
29
- "__SRowGroup": "___SRowGroup_1emri_gg_",
30
- "_gridArea": "__gridArea_1emri_gg_",
31
- "__SCell": "___SCell_1emri_gg_",
32
- "__SCollapseRow": "___SCollapseRow_1emri_gg_",
33
- "--gridArea": "--gridArea_1emri",
34
- "_active": "__active_1emri_gg_",
35
- "_theme": "__theme_1emri_gg_",
36
- "_theme_muted": "_theme_muted_1emri_gg_",
37
- "_theme_info": "_theme_info_1emri_gg_",
38
- "_theme_success": "_theme_success_1emri_gg_",
39
- "_theme_warning": "_theme_warning_1emri_gg_",
40
- "_theme_danger": "_theme_danger_1emri_gg_",
41
- "_borders_both": "_borders_both_1emri_gg_",
42
- "_borders_left": "_borders_left_1emri_gg_",
43
- "_borders_right": "_borders_right_1emri_gg_",
44
- "_fixed": "__fixed_1emri_gg_",
45
- "__SSpinContainer": "___SSpinContainer_1emri_gg_",
46
- "_headerHeight": "__headerHeight_1emri_gg_",
47
- "--headerHeight": "--headerHeight_1emri",
48
- "_compact": "__compact_1emri_gg_",
49
- "--data-aria-level": "--data-aria-level_1emri",
50
- "__SAccordionToggle": "___SAccordionToggle_1emri_gg_",
51
- "_expanded": "__expanded_1emri_gg_",
52
- "_use_primary": "_use_primary_1emri_gg_",
53
- "_use_secondary": "_use_secondary_1emri_gg_"
28
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SBody_1dql7_gg_,.___SRowGroup_1dql7_gg_,.___SRow_1dql7_gg_{display:contents}.___SBody_1dql7_gg_.__compact_1dql7_gg_ .___SCell_1dql7_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SBody_1dql7_gg_.__compact_1dql7_gg_ .___SCell_1dql7_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-2x, 8px) + (var(--intergalactic-spacing-5x, 20px)*(var(--data-aria-level_1dql7) - 1)))}.___SCell_1dql7_gg_.__gridArea_1dql7_gg_,.___SCollapseRow_1dql7_gg_.__gridArea_1dql7_gg_,.___SRow_1dql7_gg_.__gridArea_1dql7_gg_{grid-area:var(--gridArea_1dql7)}.___SCollapseRow_1dql7_gg_ .___SCell_1dql7_gg_{display:block}.___SRow_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_.__expanded_1dql7_gg_._accordionType_cell_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_).__withAccordion_1dql7_gg_,.___SRow_1dql7_gg_.__expanded_1dql7_gg_._accordionType_row_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}.___SCollapseRow_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-actions-accordion, #f4f5f9)}@media (hover:hover){.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_._theme_muted_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]._theme_muted_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_._theme_muted_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_._theme_muted_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_._theme_muted_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_._theme_muted_1dql7_gg_,.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_._theme_info_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]._theme_info_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_._theme_info_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_._theme_info_1dql7_gg_,.___SRow_1dql7_gg_._theme_info_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_._theme_info_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_._theme_success_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]._theme_success_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_._theme_success_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_._theme_success_1dql7_gg_,.___SRow_1dql7_gg_._theme_success_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_._theme_success_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_._theme_warning_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]._theme_warning_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_._theme_warning_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_._theme_warning_1dql7_gg_,.___SRow_1dql7_gg_._theme_warning_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_._theme_warning_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_._theme_danger_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_[data-grouped-by=rowgroup]._theme_danger_1dql7_gg_,.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_._theme_danger_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRowGroup_1dql7_gg_:has(.___SCell_1dql7_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_1dql7_gg_>.___SCell_1dql7_gg_._theme_danger_1dql7_gg_,.___SRow_1dql7_gg_._theme_danger_1dql7_gg_:hover>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_),.___SRow_1dql7_gg_:hover>.___SCell_1dql7_gg_._theme_danger_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_1dql7_gg_._theme_muted_1dql7_gg_ .___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SRow_1dql7_gg_._theme_muted_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}.___SRow_1dql7_gg_._theme_info_1dql7_gg_ .___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_1dql7_gg_._theme_info_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-selected-active, #c4e5fe)}.___SRow_1dql7_gg_._theme_success_1dql7_gg_ .___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_1dql7_gg_._theme_success_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-new-active, #9ef2c9)}.___SRow_1dql7_gg_._theme_warning_1dql7_gg_ .___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_1dql7_gg_._theme_warning_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-warning-active, #ffdca2)}.___SRow_1dql7_gg_._theme_danger_1dql7_gg_ .___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_1dql7_gg_._theme_danger_1dql7_gg_.__active_1dql7_gg_>.___SCell_1dql7_gg_:not(.__theme_1dql7_gg_){background-color:var(--intergalactic-table-td-cell-critical-active, #ffd7df)}.___SCell_1dql7_gg_{display:flex;height:100%;font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);color:var(--intergalactic-text-primary, #191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary, #e0e1e9);overflow:hidden;white-space:pre-wrap;word-break:break-word;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;transition:width calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out;outline:0}.___SCell_1dql7_gg_ .___SAccordionToggle_1dql7_gg_{margin-right:var(--intergalactic-spacing-3x, 12px);transition:transform calc(var(--intergalactic-duration-accordion, 200)*1ms) ease-out}.___SCell_1dql7_gg_ .___SAccordionToggle_1dql7_gg_.__expanded_1dql7_gg_{transform:rotate(90deg)}.___SCell_1dql7_gg_._use_primary_1dql7_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1dql7_gg_._use_primary_1dql7_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-3x, 12px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-2x, 8px))*(var(--data-aria-level_1dql7) - 1)))}.___SCell_1dql7_gg_._use_secondary_1dql7_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_1dql7_gg_._use_secondary_1dql7_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-2x, 8px))*(var(--data-aria-level_1dql7) - 1)))}.___SCell_1dql7_gg_._borders_both_1dql7_gg_,.___SCell_1dql7_gg_._borders_left_1dql7_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_1dql7_gg_._borders_both_1dql7_gg_,.___SCell_1dql7_gg_._borders_right_1dql7_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_1dql7_gg_.__fixed_1dql7_gg_{position:sticky;z-index:2}.___SCell_1dql7_gg_._theme_muted_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_1dql7_gg_._theme_info_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_1dql7_gg_._theme_success_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_1dql7_gg_._theme_warning_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_1dql7_gg_._theme_danger_1dql7_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SSpinContainer_1dql7_gg_{position:absolute;left:0;right:0;bottom:0;top:0;display:flex;align-items:center;justify-content:center;background-color:var(--intergalactic-overlay-limitation-secondary, rgba(255, 255, 255, 0.85))}.___SSpinContainer_1dql7_gg_.__headerHeight_1dql7_gg_{top:var(--headerHeight_1dql7)}" /*__inner_css_end__*/, "1dql7_gg_") /*__reshadow_css_end__*/, {
29
+ "__SBody": "___SBody_1dql7_gg_",
30
+ "__SRow": "___SRow_1dql7_gg_",
31
+ "__SRowGroup": "___SRowGroup_1dql7_gg_",
32
+ "_gridArea": "__gridArea_1dql7_gg_",
33
+ "__SCell": "___SCell_1dql7_gg_",
34
+ "__SCollapseRow": "___SCollapseRow_1dql7_gg_",
35
+ "--gridArea": "--gridArea_1dql7",
36
+ "_active": "__active_1dql7_gg_",
37
+ "_theme": "__theme_1dql7_gg_",
38
+ "_expanded": "__expanded_1dql7_gg_",
39
+ "_accordionType_row": "_accordionType_row_1dql7_gg_",
40
+ "_accordionType_cell": "_accordionType_cell_1dql7_gg_",
41
+ "_withAccordion": "__withAccordion_1dql7_gg_",
42
+ "_theme_muted": "_theme_muted_1dql7_gg_",
43
+ "_theme_info": "_theme_info_1dql7_gg_",
44
+ "_theme_success": "_theme_success_1dql7_gg_",
45
+ "_theme_warning": "_theme_warning_1dql7_gg_",
46
+ "_theme_danger": "_theme_danger_1dql7_gg_",
47
+ "_borders_both": "_borders_both_1dql7_gg_",
48
+ "_borders_left": "_borders_left_1dql7_gg_",
49
+ "_borders_right": "_borders_right_1dql7_gg_",
50
+ "_fixed": "__fixed_1dql7_gg_",
51
+ "__SSpinContainer": "___SSpinContainer_1dql7_gg_",
52
+ "_headerHeight": "__headerHeight_1dql7_gg_",
53
+ "--headerHeight": "--headerHeight_1dql7",
54
+ "_compact": "__compact_1dql7_gg_",
55
+ "--data-aria-level": "--data-aria-level_1dql7",
56
+ "__SAccordionToggle": "___SAccordionToggle_1dql7_gg_",
57
+ "_use_primary": "_use_primary_1dql7_gg_",
58
+ "_use_secondary": "_use_secondary_1dql7_gg_"
54
59
  });
60
+ var ROWS_BUFFER = 20;
61
+ var APROX_ROWS_ON_PAGE = 20;
55
62
  var BodyRoot = /*#__PURE__*/function (_Component) {
56
63
  (0, _inherits2["default"])(BodyRoot, _Component);
57
64
  var _super = (0, _createSuper2["default"])(BodyRoot);
58
65
  function BodyRoot() {
66
+ var _this;
59
67
  (0, _classCallCheck2["default"])(this, BodyRoot);
60
- return _super.apply(this, arguments);
68
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
69
+ args[_key] = arguments[_key];
70
+ }
71
+ _this = _super.call.apply(_super, [this].concat(args));
72
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "columnsSplitter", '/');
73
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rows", []);
74
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rowsHeightMap", new Map());
75
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "indexForDownIterate", 0);
76
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "indexForUpIterate", 0);
77
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRef", function (index) {
78
+ return function (node) {
79
+ if (!_this.rowsHeightMap.has(index)) {
80
+ var firstChild = node === null || node === void 0 ? void 0 : node.children.item(0);
81
+ if (firstChild instanceof HTMLElement) {
82
+ var offset = firstChild.offsetTop - _this.asProps.headerHeight;
83
+ var height = firstChild.getBoundingClientRect().height;
84
+ _this.rowsHeightMap.set(index, [offset, offset + height]);
85
+ }
86
+ }
87
+ };
88
+ });
89
+ return _this;
61
90
  }
62
91
  (0, _createClass2["default"])(BodyRoot, [{
92
+ key: "componentDidMount",
93
+ value: function componentDidMount() {
94
+ this.rows = this.calculateRows();
95
+ this.forceUpdate();
96
+ }
97
+ }, {
98
+ key: "componentDidUpdate",
99
+ value: function componentDidUpdate(prevProps) {
100
+ if (prevProps.data !== this.asProps.data) {
101
+ this.rows = this.calculateRows();
102
+ this.forceUpdate();
103
+ }
104
+ }
105
+ }, {
63
106
  key: "getRowProps",
64
- value: function getRowProps(props, index) {
107
+ value: function getRowProps(props, i) {
108
+ var _this2 = this;
65
109
  var _this$asProps = this.asProps,
66
- rows = _this$asProps.rows,
67
- flatRows = _this$asProps.flatRows,
68
110
  use = _this$asProps.use,
69
111
  gridTemplateAreas = _this$asProps.gridTemplateAreas,
70
112
  gridTemplateColumns = _this$asProps.gridTemplateColumns,
71
113
  expandedRows = _this$asProps.expandedRows,
72
114
  columns = _this$asProps.columns,
73
115
  onExpandRow = _this$asProps.onExpandRow,
74
- loading = _this$asProps.loading;
116
+ loading = _this$asProps.loading,
117
+ hasGroups = _this$asProps.hasGroups;
75
118
  var row = props.row;
119
+ var index = props.offset + i;
76
120
  var rowIndex = (expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, item) {
77
121
  if (item < index) {
78
- var expandedRow = flatRows[item][_DataTable.ACCORDION];
122
+ var expandedRow = _this2.rows.flat()[item][_DataTable.ACCORDION];
79
123
  if (Array.isArray(expandedRow)) {
80
124
  acc = acc + expandedRow.length;
81
125
  } else {
@@ -84,9 +128,10 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
84
128
  }
85
129
  return acc;
86
130
  }, index);
131
+ var gridRowIndex = rowIndex + (hasGroups ? 3 : 2); // 1 - for header, 1 - because start not from 0, but from 1
87
132
  var ariaRowIndex = rowIndex + 2; // 1 - for header, 1 - because start not from 0, but from 1
88
133
 
89
- var accordionDataGridArea = Array.isArray(row[_DataTable.ACCORDION]) ? "".concat(ariaRowIndex + 1, " / 1 / ").concat(ariaRowIndex + 1 + row[_DataTable.ACCORDION].length, " / ").concat(columns.length + 1) : "".concat(ariaRowIndex + 1, " / 1 / ").concat(ariaRowIndex + 1, " / ").concat(columns.length + 1);
134
+ var accordionDataGridArea = Array.isArray(row[_DataTable.ACCORDION]) ? "".concat(gridRowIndex + 1, " / 1 / ").concat(gridRowIndex + 1 + row[_DataTable.ACCORDION].length, " / ").concat(columns.length + 1) : "".concat(gridRowIndex + 1, " / 1 / ").concat(gridRowIndex + 1, " / ").concat(columns.length + 1);
90
135
  return {
91
136
  use: use,
92
137
  gridTemplateAreas: gridTemplateAreas,
@@ -96,8 +141,8 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
96
141
  columns: columns,
97
142
  rowIndex: index,
98
143
  ariaRowIndex: ariaRowIndex,
99
- rows: rows,
100
- flatRows: flatRows,
144
+ gridRowIndex: gridRowIndex,
145
+ rows: this.rows,
101
146
  row: row,
102
147
  expandedRows: expandedRows,
103
148
  onExpandRow: onExpandRow,
@@ -114,11 +159,13 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
114
159
  expandedRows = _this$asProps2.expandedRows,
115
160
  styles = _this$asProps2.styles,
116
161
  getI18nText = _this$asProps2.getI18nText,
117
- onExpandRow = _this$asProps2.onExpandRow;
162
+ onExpandRow = _this$asProps2.onExpandRow,
163
+ virtualScroll = _this$asProps2.virtualScroll,
164
+ tableRef = _this$asProps2.tableRef;
118
165
  var SAccordionToggle = _button.ButtonLink;
119
166
  var dataKey = props.column.name;
120
167
  var cellValue = props.row[dataKey];
121
- var value = '';
168
+ var value = undefined;
122
169
  var isMergedRows = cellValue instanceof _MergedCells.MergedRowsCell;
123
170
  var isMergedColumns = cellValue instanceof _MergedCells.MergedColumnsCell;
124
171
  if (isMergedColumns || isMergedRows) {
@@ -130,8 +177,9 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
130
177
  value = cellValue;
131
178
  }
132
179
  var defaultRender = function defaultRender() {
133
- if (props.columnIndex === 0 && props.row[_DataTable.ACCORDION] || value[_DataTable.ACCORDION]) {
134
- var _ref2;
180
+ var _value, _value3;
181
+ if (props.columnIndex === 0 && props.row[_DataTable.ACCORDION] || (_value = value) !== null && _value !== void 0 && _value[_DataTable.ACCORDION]) {
182
+ var _ref2, _value2;
135
183
  return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SAccordionToggle, _ref2.cn("SAccordionToggle", {
136
184
  "aria-label": getI18nText('DataTable.Cell.AccordionToggle.expand:aria-label'),
137
185
  "expanded": expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.includes(props.rowIndex),
@@ -141,15 +189,18 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
141
189
  "color": '--intergalactic-icon-primary-neutral'
142
190
  }), /*#__PURE__*/React.createElement(SAccordionToggle.Addon, {
143
191
  tag: _m["default"]
144
- })), value.toString());
192
+ })), (_value2 = value) === null || _value2 === void 0 ? void 0 : _value2.toString());
145
193
  }
146
- return value.toString();
194
+ return (_value3 = value) === null || _value3 === void 0 ? void 0 : _value3.toString();
147
195
  };
148
196
  var extraProps = {
149
197
  use: use,
150
- children: (_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : defaultRender
198
+ virtualScroll: Boolean(virtualScroll),
199
+ tableRef: tableRef,
200
+ children: (_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : defaultRender()
151
201
  };
152
202
  if (renderCell) {
203
+ var _value$toString, _value4;
153
204
  var external = renderCell({
154
205
  columnName: props.column.name,
155
206
  row: props.row,
@@ -158,7 +209,7 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
158
209
  columnIndex: props.columnIndex,
159
210
  dataKey: dataKey,
160
211
  defaultRender: defaultRender,
161
- value: value.toString(),
212
+ value: (_value$toString = (_value4 = value) === null || _value4 === void 0 ? void 0 : _value4.toString()) !== null && _value$toString !== void 0 ? _value$toString : '',
162
213
  isMergedRows: isMergedRows,
163
214
  isMergedColumns: isMergedColumns
164
215
  });
@@ -176,40 +227,129 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
176
227
  key: "render",
177
228
  value: function render() {
178
229
  var _ref = this.asProps,
179
- _ref3;
230
+ _ref3,
231
+ _this3 = this;
180
232
  var SBody = _baseComponents.Box;
181
233
  var SRowGroup = _baseComponents.Box;
182
234
  var SSpinContainer = _baseComponents.Box;
183
235
  var _this$asProps3 = this.asProps,
184
- rows = _this$asProps3.rows,
185
236
  styles = _this$asProps3.styles,
186
237
  loading = _this$asProps3.loading,
187
238
  headerHeight = _this$asProps3.headerHeight,
188
- spinnerRef = _this$asProps3.spinnerRef;
189
- return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(SBody, _ref3.cn("SBody", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({}, _ref))), rows.map(function (row, index) {
239
+ spinnerRef = _this$asProps3.spinnerRef,
240
+ virtualScroll = _this$asProps3.virtualScroll,
241
+ scrollDirection = _this$asProps3.scrollDirection,
242
+ tableContainerRef = _this$asProps3.tableContainerRef,
243
+ scrollTop = _this$asProps3.scrollTop;
244
+ var rowsToRender = this.rows;
245
+ var startIndex = -1;
246
+ var lastIndex = -1;
247
+ if (virtualScroll) {
248
+ var _virtualScroll$rowsBu, _tableContainerRef$cu, _tableContainerRef$cu2;
249
+ var rowsBuffer = typeof virtualScroll !== 'boolean' && 'rowsBuffer' in virtualScroll ? (_virtualScroll$rowsBu = virtualScroll.rowsBuffer) !== null && _virtualScroll$rowsBu !== void 0 ? _virtualScroll$rowsBu : ROWS_BUFFER : ROWS_BUFFER;
250
+ var offsetHeight = (_tableContainerRef$cu = (_tableContainerRef$cu2 = tableContainerRef.current) === null || _tableContainerRef$cu2 === void 0 ? void 0 : _tableContainerRef$cu2.offsetHeight) !== null && _tableContainerRef$cu !== void 0 ? _tableContainerRef$cu : 0;
251
+ var prevPrepared = scrollDirection === 'up' ? rowsBuffer : 4;
252
+ var nextPrepared = scrollDirection === 'up' ? 4 : rowsBuffer;
253
+ if (typeof virtualScroll === 'boolean' || 'aproxRowsOnPage' in virtualScroll) {
254
+ var _virtualScroll$aproxR;
255
+ var aproxRowsOnPage = typeof virtualScroll !== 'boolean' ? (_virtualScroll$aproxR = virtualScroll.aproxRowsOnPage) !== null && _virtualScroll$aproxR !== void 0 ? _virtualScroll$aproxR : APROX_ROWS_ON_PAGE : APROX_ROWS_ON_PAGE;
256
+ if (scrollDirection === 'down') {
257
+ var _this$rowsHeightMap$g, _this$rowsHeightMap$g2, _lastIndex;
258
+ for (var i = this.indexForDownIterate; i < this.rowsHeightMap.size - 1; i++) {
259
+ var value = this.rowsHeightMap.get(i);
260
+ if (!value) continue;
261
+ var key = i;
262
+ var valueFromToCompare = value[1];
263
+ var valueToToCompare = value[0];
264
+ if (startIndex === -1 && scrollTop < valueFromToCompare) {
265
+ startIndex = Math.max(key - prevPrepared, 0);
266
+ }
267
+ if (startIndex !== -1 && scrollTop + offsetHeight < valueToToCompare) {
268
+ lastIndex = Math.min(key + nextPrepared, this.rows.length);
269
+ }
270
+ if (startIndex !== -1 && lastIndex !== -1) {
271
+ break;
272
+ }
273
+ }
274
+ if (scrollTop + offsetHeight < ((_this$rowsHeightMap$g = (_this$rowsHeightMap$g2 = this.rowsHeightMap.get((_lastIndex = lastIndex) !== null && _lastIndex !== void 0 ? _lastIndex : 0)) === null || _this$rowsHeightMap$g2 === void 0 ? void 0 : _this$rowsHeightMap$g2[1]) !== null && _this$rowsHeightMap$g !== void 0 ? _this$rowsHeightMap$g : 0)) {
275
+ lastIndex = lastIndex + aproxRowsOnPage;
276
+ }
277
+ } else if (scrollDirection === 'up') {
278
+ var _this$rowsHeightMap$g3, _this$rowsHeightMap$g4, _startIndex;
279
+ for (var _i = this.indexForUpIterate; _i > 0; _i--) {
280
+ var _value5 = this.rowsHeightMap.get(_i);
281
+ if (!_value5) continue;
282
+ var _key2 = _i;
283
+ var _valueFromToCompare = _value5[1];
284
+ var _valueToToCompare = _value5[0];
285
+ if (lastIndex === -1 && scrollTop + offsetHeight > _valueToToCompare) {
286
+ lastIndex = Math.min(_key2 + nextPrepared, this.rows.length);
287
+ }
288
+ if (lastIndex !== -1 && scrollTop < _valueFromToCompare) {
289
+ startIndex = Math.max(_key2 - prevPrepared, 0);
290
+ }
291
+ if (startIndex !== -1 && lastIndex !== -1) {
292
+ break;
293
+ }
294
+ }
295
+ if (scrollTop < ((_this$rowsHeightMap$g3 = (_this$rowsHeightMap$g4 = this.rowsHeightMap.get((_startIndex = startIndex) !== null && _startIndex !== void 0 ? _startIndex : 0)) === null || _this$rowsHeightMap$g4 === void 0 ? void 0 : _this$rowsHeightMap$g4[0]) !== null && _this$rowsHeightMap$g3 !== void 0 ? _this$rowsHeightMap$g3 : 0)) {
296
+ startIndex = startIndex - aproxRowsOnPage;
297
+ }
298
+ }
299
+ if (startIndex === -1) {
300
+ startIndex = scrollTop === 0 ? 0 : Math.max(this.rows.length - aproxRowsOnPage, 0);
301
+ }
302
+ if (lastIndex === -1) {
303
+ lastIndex = scrollTop === 0 ? aproxRowsOnPage : this.rows.length;
304
+ }
305
+ this.indexForDownIterate = startIndex;
306
+ this.indexForUpIterate = lastIndex;
307
+ rowsToRender = this.rows.slice(startIndex, lastIndex);
308
+ } else if ('rowHeight' in virtualScroll) {
309
+ var rowHeight = virtualScroll.rowHeight;
310
+ startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);
311
+ var _lastIndex2 = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, this.rows.length);
312
+ rowsToRender = this.rows.slice(startIndex, _lastIndex2);
313
+ }
314
+ }
315
+ startIndex = startIndex === -1 ? 0 : startIndex;
316
+ return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(SBody, _ref3.cn("SBody", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
317
+ "__excludeProps": ['data']
318
+ }, _ref))), rowsToRender.map(function (row, index) {
319
+ var rowMarginTop = undefined;
320
+ if (index === 0 && typeof virtualScroll === 'boolean') {
321
+ var _this3$rowsHeightMap$;
322
+ rowMarginTop = (_this3$rowsHeightMap$ = _this3.rowsHeightMap.get(startIndex - 1)) === null || _this3$rowsHeightMap$ === void 0 ? void 0 : _this3$rowsHeightMap$[1];
323
+ }
190
324
  if (Array.isArray(row)) {
191
325
  var _ref4;
192
326
  return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/React.createElement(SRowGroup, _ref4.cn("SRowGroup", {
193
327
  "role": 'rowgroup',
194
328
  "key": index
195
- }), row.map(function (item, index) {
329
+ }), row.map(function (item, i) {
196
330
  return /*#__PURE__*/React.createElement(Body.Row, {
197
- key: index,
198
- row: item
331
+ key: item[_DataTable.UNIQ_ROW_KEY],
332
+ row: item,
333
+ offset: startIndex
199
334
  });
200
335
  }));
201
336
  }
202
337
  return /*#__PURE__*/React.createElement(Body.Row, {
203
- key: index,
204
- row: row
338
+ key: row[_DataTable.UNIQ_ROW_KEY],
339
+ row: row,
340
+ offset: startIndex,
341
+ ref: _this3.handleRef(startIndex + index),
342
+ rowMarginTop: rowMarginTop
205
343
  });
206
344
  }), loading && /*#__PURE__*/React.createElement(SSpinContainer, _ref3.cn("SSpinContainer", {
207
345
  "innerOutline": true,
208
346
  "headerHeight": "".concat(headerHeight, "px"),
209
347
  "tabIndex": -1,
210
- "ref": spinnerRef
348
+ "ref": spinnerRef,
349
+ "role": 'row'
211
350
  }), /*#__PURE__*/React.createElement(_spin["default"], _ref3.cn("Spin", {
212
- "size": 'xxl'
351
+ "size": 'xxl',
352
+ "role": 'gridcell'
213
353
  }))));
214
354
  }
215
355
  }, {
@@ -217,6 +357,91 @@ var BodyRoot = /*#__PURE__*/function (_Component) {
217
357
  value: function isReactNode(obj) {
218
358
  return typeof obj === 'string' || typeof obj === 'number' || /*#__PURE__*/React.isValidElement(obj) || typeof obj === 'boolean' || obj === undefined || obj === null;
219
359
  }
360
+ }, {
361
+ key: "calculateRows",
362
+ value: function calculateRows() {
363
+ var _this4 = this;
364
+ var _this$asProps4 = this.asProps,
365
+ data = _this$asProps4.data,
366
+ uid = _this$asProps4.uid,
367
+ columns = _this$asProps4.columns;
368
+ var rows = [];
369
+ var columnNames = columns.map(function (column) {
370
+ return column.name;
371
+ });
372
+ var rowIndex = 0;
373
+ var id = 100000000; // need this for gen keys by toString(36)
374
+
375
+ var makeDtRow = function makeDtRow(row, excludeColumns) {
376
+ var columns = new Set(columnNames);
377
+ var dtRow = Object.entries(row).reduce(function (acc, _ref5) {
378
+ var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
379
+ key = _ref6[0],
380
+ value = _ref6[1];
381
+ var columnsToRow = key.split(_this4.columnsSplitter);
382
+ if (columnsToRow.length === 1) {
383
+ acc[key] = value !== null && value !== void 0 ? value : '';
384
+ columns["delete"](key);
385
+ } else {
386
+ acc[columnsToRow[0]] = new _MergedCells.MergedColumnsCell(value, {
387
+ dataKey: key,
388
+ size: columnsToRow.length
389
+ });
390
+ columnsToRow.forEach(function (value) {
391
+ columns["delete"](value);
392
+ });
393
+ }
394
+ if (row[_DataTable.ACCORDION]) {
395
+ acc[_DataTable.ACCORDION] = row[_DataTable.ACCORDION];
396
+ }
397
+ return acc;
398
+ }, (0, _defineProperty2["default"])({}, _DataTable.UNIQ_ROW_KEY, "".concat(uid, "_").concat((rowIndex + id).toString(36))));
399
+ excludeColumns === null || excludeColumns === void 0 ? void 0 : excludeColumns.forEach(function (value) {
400
+ columns["delete"](value);
401
+ });
402
+ if (columns.size > 0) {
403
+ columns.forEach(function (value) {
404
+ dtRow[value] = '';
405
+ });
406
+ }
407
+ return dtRow;
408
+ };
409
+ data.forEach(function (row) {
410
+ var groupedRows = row[_DataTable.ROW_GROUP];
411
+ var fromRow = rowIndex + 2; // 1 - for header, 1 - because start not from 0, but from 1
412
+
413
+ if (groupedRows) {
414
+ var toRow = fromRow + groupedRows.length;
415
+ var innerRows = [];
416
+ var groupedKeys = [];
417
+ var groupedRowData = Object.entries(row).reduce(function (acc, _ref7) {
418
+ var _ref8 = (0, _slicedToArray2["default"])(_ref7, 2),
419
+ key = _ref8[0],
420
+ value = _ref8[1];
421
+ acc[key] = new _MergedCells.MergedRowsCell(value, [fromRow, toRow]);
422
+ groupedKeys.push(key);
423
+ return acc;
424
+ }, (0, _defineProperty2["default"])({}, _DataTable.UNIQ_ROW_KEY, ''));
425
+ groupedRows.forEach(function (childRow, index) {
426
+ var dtRow;
427
+ if (index === 0) {
428
+ var rowData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, childRow), groupedRowData);
429
+ dtRow = makeDtRow(rowData);
430
+ } else {
431
+ dtRow = makeDtRow(childRow, groupedKeys);
432
+ }
433
+ innerRows.push(dtRow);
434
+ rowIndex++;
435
+ });
436
+ rows.push(innerRows);
437
+ } else {
438
+ var dtRow = makeDtRow(row);
439
+ rows.push(dtRow);
440
+ rowIndex++;
441
+ }
442
+ });
443
+ return rows;
444
+ }
220
445
  }]);
221
446
  return BodyRoot;
222
447
  }(_core.Component);