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