@semcore/data-table 16.0.0-prerelease.7 → 16.0.0

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 (138) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/cjs/components/Body/Body.js +436 -0
  3. package/lib/cjs/components/Body/Body.js.map +1 -0
  4. package/lib/cjs/components/Body/Body.types.js +2 -0
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  6. package/lib/cjs/components/Body/Cell.js +194 -0
  7. package/lib/cjs/components/Body/Cell.js.map +1 -0
  8. package/lib/cjs/components/Body/Cell.types.js +2 -0
  9. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  10. package/lib/cjs/components/Body/MergedCells.js +29 -0
  11. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  12. package/lib/cjs/components/Body/Row.js +244 -0
  13. package/lib/cjs/components/Body/Row.js.map +1 -0
  14. package/lib/cjs/components/Body/Row.types.js +4 -0
  15. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +257 -0
  17. package/lib/cjs/components/DataTable/DataTable.js +981 -0
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  19. package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
  20. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  21. package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
  22. package/lib/cjs/components/Head/Column.js +316 -0
  23. package/lib/cjs/components/Head/Column.js.map +1 -0
  24. package/lib/cjs/components/Head/Column.types.js +2 -0
  25. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  26. package/lib/cjs/components/Head/Group.js +115 -0
  27. package/lib/cjs/components/Head/Group.js.map +1 -0
  28. package/lib/cjs/components/Head/Group.type.js +2 -0
  29. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  30. package/lib/cjs/components/Head/Head.js +205 -0
  31. package/lib/cjs/components/Head/Head.js.map +1 -0
  32. package/lib/cjs/components/Head/Head.types.js +2 -0
  33. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  34. package/lib/cjs/components/Head/style.shadow.css +176 -0
  35. package/lib/cjs/index.js +25 -15
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/scroll-shadows.shadow.css +39 -5
  38. package/lib/cjs/translations/en.json +6 -1
  39. package/lib/cjs/utils.js +16 -7
  40. package/lib/cjs/utils.js.map +1 -1
  41. package/lib/es6/components/Body/Body.js +429 -0
  42. package/lib/es6/components/Body/Body.js.map +1 -0
  43. package/lib/es6/components/Body/Body.types.js +2 -0
  44. package/lib/es6/components/Body/Body.types.js.map +1 -0
  45. package/lib/es6/components/Body/Cell.js +187 -0
  46. package/lib/es6/components/Body/Cell.js.map +1 -0
  47. package/lib/es6/components/Body/Cell.types.js +2 -0
  48. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  49. package/lib/es6/components/Body/MergedCells.js +20 -0
  50. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  51. package/lib/es6/components/Body/Row.js +237 -0
  52. package/lib/es6/components/Body/Row.js.map +1 -0
  53. package/lib/es6/components/Body/Row.types.js +2 -0
  54. package/lib/es6/components/Body/Row.types.js.map +1 -0
  55. package/lib/es6/components/Body/style.shadow.css +257 -0
  56. package/lib/es6/components/DataTable/DataTable.js +970 -0
  57. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  58. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  59. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  60. package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
  61. package/lib/es6/components/Head/Column.js +309 -0
  62. package/lib/es6/components/Head/Column.js.map +1 -0
  63. package/lib/es6/components/Head/Column.types.js +2 -0
  64. package/lib/es6/components/Head/Column.types.js.map +1 -0
  65. package/lib/es6/components/Head/Group.js +108 -0
  66. package/lib/es6/components/Head/Group.js.map +1 -0
  67. package/lib/es6/components/Head/Group.type.js +2 -0
  68. package/lib/es6/components/Head/Group.type.js.map +1 -0
  69. package/lib/es6/components/Head/Head.js +199 -0
  70. package/lib/es6/components/Head/Head.js.map +1 -0
  71. package/lib/es6/components/Head/Head.types.js +2 -0
  72. package/lib/es6/components/Head/Head.types.js.map +1 -0
  73. package/lib/es6/components/Head/style.shadow.css +176 -0
  74. package/lib/es6/index.js +5 -2
  75. package/lib/es6/index.js.map +1 -1
  76. package/lib/es6/style/scroll-shadows.shadow.css +39 -5
  77. package/lib/es6/translations/en.json +6 -1
  78. package/lib/es6/utils.js +14 -6
  79. package/lib/es6/utils.js.map +1 -1
  80. package/lib/esm/components/Body/Body.mjs +392 -0
  81. package/lib/esm/components/Body/Cell.mjs +185 -0
  82. package/lib/esm/components/Body/MergedCells.mjs +23 -0
  83. package/lib/esm/components/Body/Row.mjs +218 -0
  84. package/lib/esm/components/Body/style.shadow.css +257 -0
  85. package/lib/esm/components/DataTable/DataTable.mjs +904 -0
  86. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  87. package/lib/esm/components/Head/Column.mjs +299 -0
  88. package/lib/esm/components/Head/Group.mjs +102 -0
  89. package/lib/esm/components/Head/Head.mjs +180 -0
  90. package/lib/esm/components/Head/style.shadow.css +176 -0
  91. package/lib/esm/index.mjs +8 -5
  92. package/lib/esm/style/scroll-shadows.shadow.css +41 -0
  93. package/lib/esm/translations/en.json.mjs +6 -1
  94. package/lib/esm/utils.mjs +6 -15
  95. package/lib/types/components/Body/Body.d.ts +8 -0
  96. package/lib/types/components/Body/Body.types.d.ts +56 -0
  97. package/lib/types/components/Body/Cell.d.ts +3 -0
  98. package/lib/types/components/Body/Cell.types.d.ts +20 -0
  99. package/lib/types/components/Body/MergedCells.d.ts +14 -0
  100. package/lib/types/components/Body/Row.d.ts +3 -0
  101. package/lib/types/components/Body/Row.types.d.ts +42 -0
  102. package/lib/types/components/DataTable/DataTable.d.ts +12 -0
  103. package/lib/types/components/DataTable/DataTable.types.d.ts +118 -0
  104. package/lib/types/components/Head/Column.d.ts +30 -0
  105. package/lib/types/components/Head/Column.types.d.ts +82 -0
  106. package/lib/types/components/Head/Group.d.ts +15 -0
  107. package/lib/types/components/Head/Group.type.d.ts +16 -0
  108. package/lib/types/components/Head/Head.d.ts +98 -0
  109. package/lib/types/components/Head/Head.types.d.ts +35 -0
  110. package/lib/types/index.d.ts +10 -2
  111. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
  112. package/lib/types/utils.d.ts +8 -4
  113. package/package.json +11 -6
  114. package/vite.config.ts +0 -3
  115. package/lib/cjs/Body.js +0 -475
  116. package/lib/cjs/Body.js.map +0 -1
  117. package/lib/cjs/DataTable.js +0 -622
  118. package/lib/cjs/DataTable.js.map +0 -1
  119. package/lib/cjs/Head.js +0 -399
  120. package/lib/cjs/Head.js.map +0 -1
  121. package/lib/cjs/style/data-table.shadow.css +0 -394
  122. package/lib/cjs/types.js.map +0 -1
  123. package/lib/es6/Body.js +0 -468
  124. package/lib/es6/Body.js.map +0 -1
  125. package/lib/es6/DataTable.js +0 -614
  126. package/lib/es6/DataTable.js.map +0 -1
  127. package/lib/es6/Head.js +0 -391
  128. package/lib/es6/Head.js.map +0 -1
  129. package/lib/es6/style/data-table.shadow.css +0 -394
  130. package/lib/es6/types.js +0 -2
  131. package/lib/es6/types.js.map +0 -1
  132. package/lib/esm/Body.mjs +0 -427
  133. package/lib/esm/DataTable.mjs +0 -582
  134. package/lib/esm/Head.mjs +0 -369
  135. package/lib/types/Body.d.ts +0 -61
  136. package/lib/types/DataTable.d.ts +0 -205
  137. package/lib/types/Head.d.ts +0 -45
  138. package/lib/types/types.d.ts +0 -73
@@ -1,7 +1,41 @@
1
- SShadowHorizontal,
2
- SShadowVertical {
3
- &:before,
4
- &:after {
5
- z-index: 1;
1
+ SScrollArea {
2
+ width: fit-content;
3
+
4
+ SContainer {
5
+ overflow: unset;
6
+
7
+ &[scrollDirection='both'] {
8
+ overflow: auto;
9
+ }
10
+ &[scrollDirection='horizontal'] {
11
+ overflow-x: auto;
12
+ overflow-y: unset;
13
+ }
14
+ &[scrollDirection='vertical'] {
15
+ overflow-x: unset;
16
+ overflow-y: auto;
17
+ }
18
+ &[loading] {
19
+ overflow: hidden;
20
+ }
21
+
22
+ &[headerHeight] {
23
+ scroll-padding-top: var(--headerHeight);
24
+ }
25
+ }
26
+
27
+ SShadowVertical {
28
+ &:before {
29
+ display: none;
30
+ }
31
+ &:after {
32
+ z-index: 2;
33
+ }
34
+ }
35
+ SShadowHorizontal {
36
+ &:before,
37
+ &:after {
38
+ z-index: 2;
39
+ }
6
40
  }
7
41
  }
@@ -1,3 +1,8 @@
1
1
  {
2
- "sortableColumn": "Sortable"
2
+ "sortableColumn": "Sortable",
3
+ "DataTable.Cell.AccordionToggle.expand:aria-label": "Show details",
4
+ "DataTable.Cell.AccordionToggle.collapse:aria-label": "Hide details",
5
+ "DataTable.Header.selectAllCheckbox:aria-label": "All items",
6
+ "DataTable.allItemsSelected:aria-live": "All items selected",
7
+ "DataTable.allItemsDeselected:aria-live": "All items deselected"
3
8
  }
package/lib/cjs/utils.js CHANGED
@@ -3,19 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getScrollOffsetValue = exports.getFixedStyle = exports.flattenColumns = void 0;
6
+ exports.getScrollOffsetValue = exports.getFixedStyle = exports.flattenColumns = exports.createCssVarForWidth = void 0;
7
7
  var getScrollOffsetValue = function getScrollOffsetValue(columns) {
8
8
  return columns.reduce(function (acc, column) {
9
9
  if (column.fixed === 'left') {
10
- acc[0] += column.width;
10
+ acc[0] += column.calculatedWidth;
11
11
  }
12
12
  if (column.fixed === 'right') {
13
- acc[1] += column.width;
13
+ acc[1] += column.calculatedWidth;
14
14
  }
15
15
  return acc;
16
16
  }, [0, 0]);
17
17
  };
18
18
  exports.getScrollOffsetValue = getScrollOffsetValue;
19
+ var cssVarReg = /[:;\W]/g;
20
+ var createCssVarForWidth = function createCssVarForWidth(name) {
21
+ return "--".concat(name.replace(cssVarReg, '_'), "_width");
22
+ };
23
+
24
+ /**
25
+ * todo: Remove after v16
26
+ */
27
+ exports.createCssVarForWidth = createCssVarForWidth;
19
28
  var flattenColumns = function flattenColumns(columns) {
20
29
  return columns.reduce(function (acc, column) {
21
30
  var hasNestedColumns = 'columns' in column && column.columns.length > 0;
@@ -48,10 +57,10 @@ var getFixedStyle = function getFixedStyle(cell, columns) {
48
57
  };
49
58
  var columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
50
59
  if (columnsFixed.length < 1) return [side, 0];
51
- var vars = columnsFixed.map(function (column) {
52
- return "var(--".concat(column.name, "_width)");
53
- });
54
- return [side, vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")];
60
+ var sum = columnsFixed.reduce(function (acc, column) {
61
+ return acc + column.calculatedWidth;
62
+ }, 0);
63
+ return [side, "".concat(sum, "px")];
55
64
  };
56
65
  exports.getFixedStyle = getFixedStyle;
57
66
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","width","exports","flattenColumns","hasNestedColumns","length","concat","getFixedStyle","cell","side","undefined","names","name","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","vars","map","join"],"sources":["../../src/utils.ts"],"sourcesContent":["import type { Column } from './types';\n\nexport const getScrollOffsetValue = (columns: Column[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.width;\n }\n if (column.fixed === 'right') {\n acc[1] += column.width;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nexport const flattenColumns = (columns: Column[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: Column[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as Column[]);\n\nexport const getFixedStyle = (\n cell: Pick<Column, 'name' | 'fixed'>,\n columns: Column[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index + 1,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const vars = columnsFixed.map((column) => `var(--${column.name}_width)`);\n return [side, vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["getScrollOffsetValue","columns","reduce","acc","column","fixed","calculatedWidth","exports","cssVarReg","createCssVarForWidth","name","concat","replace","flattenColumns","hasNestedColumns","length","getFixedStyle","cell","side","undefined","names","split","nameSideMap","left","right","index","findIndex","startIndexSideMap","endIndexSideMap","columnsFixed","slice","sum"],"sources":["../../src/utils.ts"],"sourcesContent":["import type { DTColumn } from './components/Head/Column.types';\n\nexport const getScrollOffsetValue = (columns: DTColumn[]) =>\n columns.reduce(\n (acc, column) => {\n if (column.fixed === 'left') {\n acc[0] += column.calculatedWidth;\n }\n if (column.fixed === 'right') {\n acc[1] += column.calculatedWidth;\n }\n return acc;\n },\n [0, 0] as [leftOffset: number, rightOffset: number],\n );\n\nconst cssVarReg = /[:;\\W]/g;\n\nexport const createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\n/**\n * todo: Remove after v16\n */\nexport const flattenColumns = (columns: any[]) =>\n columns.reduce((acc, column) => {\n const hasNestedColumns = 'columns' in column && column.columns.length > 0;\n const columns: any[] = hasNestedColumns ? flattenColumns(column.columns) : [column];\n acc = acc.concat(columns);\n return acc;\n }, [] as any[]);\n\nexport const getFixedStyle = (\n cell: Pick<DTColumn, 'name' | 'fixed'>,\n columns: DTColumn[],\n): [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined] => {\n const side = cell.fixed;\n if (!side) return [undefined, undefined];\n const names = cell.name.split('/');\n const nameSideMap = {\n left: names[0],\n right: names[names.length - 1],\n };\n const name = nameSideMap[side];\n const index = columns.findIndex((column) => column.name === name);\n\n if (index === -1) return [undefined, undefined];\n\n const startIndexSideMap = {\n left: 0,\n right: index + 1,\n };\n const endIndexSideMap = {\n left: index,\n right: columns.length,\n };\n const columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);\n\n if (columnsFixed.length < 1) return [side, 0];\n\n const sum = columnsFixed.reduce((acc, column) => acc + column.calculatedWidth, 0);\n return [side, `${sum}px`];\n};\n"],"mappings":"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"}
@@ -0,0 +1,429 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ import { sstyled as _sstyled } from "@semcore/core";
9
+ import { assignProps as _assignProps } from "@semcore/core";
10
+ import * as React from 'react';
11
+ import { Component, createComponent, Root, sstyled } from '@semcore/core';
12
+ import { Box } from '@semcore/base-components';
13
+ import { Row } from './Row';
14
+ /*!__reshadow-styles__:"./style.shadow.css"*/
15
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SBody_49gvg_gg_,.___SRowGroup_49gvg_gg_,.___SRow_49gvg_gg_{display:contents}.___SBody_49gvg_gg_.__compact_49gvg_gg_ .___SCell_49gvg_gg_{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px)}.___SBody_49gvg_gg_.__compact_49gvg_gg_ .___SCell_49gvg_gg_[data-aria-level]{padding-left:calc(var(--intergalactic-spacing-2x, 8px) + (var(--intergalactic-spacing-5x, 20px)*(var(--data-aria-level_49gvg) - 1)))}.___SCell_49gvg_gg_.__gridArea_49gvg_gg_,.___SCollapseRow_49gvg_gg_.__gridArea_49gvg_gg_,.___SRow_49gvg_gg_.__gridArea_49gvg_gg_{grid-area:var(--gridArea_49gvg)}.___SCollapseRow_49gvg_gg_ .___SCell_49gvg_gg_{display:block}.___SRow_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_.__expanded_49gvg_gg_._accordionType_cell_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_).__withAccordion_49gvg_gg_,.___SRow_49gvg_gg_.__expanded_49gvg_gg_._accordionType_row_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}.___SCollapseRow_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_.__expanded_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-accordion, #f4f5f9)}@media (hover:hover){.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_._theme_muted_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]._theme_muted_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_._theme_muted_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_._theme_muted_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_._theme_muted_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_._theme_muted_49gvg_gg_,.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-hover, #f0f0f4)}.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_._theme_info_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]._theme_info_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_._theme_info_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_._theme_info_49gvg_gg_,.___SRow_49gvg_gg_._theme_info_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_._theme_info_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-selected-hover, #c4e5fe)}.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_._theme_success_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]._theme_success_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_._theme_success_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_._theme_success_49gvg_gg_,.___SRow_49gvg_gg_._theme_success_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_._theme_success_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-new-hover, #9ef2c9)}.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_._theme_warning_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]._theme_warning_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_._theme_warning_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_._theme_warning_49gvg_gg_,.___SRow_49gvg_gg_._theme_warning_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_._theme_warning_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-warning-hover, #ffdca2)}.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_._theme_danger_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_[data-grouped-by=rowgroup]._theme_danger_49gvg_gg_,.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_._theme_danger_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRowGroup_49gvg_gg_:has(.___SCell_49gvg_gg_[data-grouped-by=rowgroup]:hover)>.___SRow_49gvg_gg_>.___SCell_49gvg_gg_._theme_danger_49gvg_gg_,.___SRow_49gvg_gg_._theme_danger_49gvg_gg_:hover>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_),.___SRow_49gvg_gg_:hover>.___SCell_49gvg_gg_._theme_danger_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-critical-hover, #ffd7df)}}.___SRow_49gvg_gg_._theme_muted_49gvg_gg_ .___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SRow_49gvg_gg_._theme_muted_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-active, #e6e7ed)}.___SRow_49gvg_gg_._theme_info_49gvg_gg_ .___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SRow_49gvg_gg_._theme_info_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-selected-active, #c4e5fe)}.___SRow_49gvg_gg_._theme_success_49gvg_gg_ .___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SRow_49gvg_gg_._theme_success_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-new-active, #9ef2c9)}.___SRow_49gvg_gg_._theme_warning_49gvg_gg_ .___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SRow_49gvg_gg_._theme_warning_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-warning-active, #ffdca2)}.___SRow_49gvg_gg_._theme_danger_49gvg_gg_ .___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SRow_49gvg_gg_._theme_danger_49gvg_gg_.__active_49gvg_gg_>.___SCell_49gvg_gg_:not(.__theme_49gvg_gg_){background-color:var(--intergalactic-table-td-cell-critical-active, #ffd7df)}.___SCell_49gvg_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_49gvg_gg_ .___SAccordionToggle_49gvg_gg_{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SCell_49gvg_gg_ .___SAccordionToggle_49gvg_gg_ svg{transition:transform calc(var(--intergalactic-duration-accordion, 200)*1ms) ease-out}.___SCell_49gvg_gg_ .___SAccordionToggle_49gvg_gg_.__expanded_49gvg_gg_ svg{transform:rotate(90deg)}.___SCell_49gvg_gg_._use_primary_49gvg_gg_{padding:var(--intergalactic-spacing-3x, 12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_49gvg_gg_._use_primary_49gvg_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_49gvg) - 1)))}.___SCell_49gvg_gg_._use_secondary_49gvg_gg_{padding:var(--intergalactic-spacing-2x, 8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff)}.___SCell_49gvg_gg_._use_secondary_49gvg_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_49gvg) - 1)))}.___SCell_49gvg_gg_._borders_both_49gvg_gg_,.___SCell_49gvg_gg_._borders_left_49gvg_gg_{border-left:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_49gvg_gg_._borders_both_49gvg_gg_,.___SCell_49gvg_gg_._borders_right_49gvg_gg_{border-right:1px solid var(--intergalactic-border-secondary, #e0e1e9)}.___SCell_49gvg_gg_.__fixed_49gvg_gg_{position:sticky;z-index:2}.___SCell_49gvg_gg_._theme_muted_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-unread, #f4f5f9)}.___SCell_49gvg_gg_._theme_info_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-selected, #e9f7ff)}.___SCell_49gvg_gg_._theme_success_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-new, #dbfee8)}.___SCell_49gvg_gg_._theme_warning_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-warning, #fff3d9)}.___SCell_49gvg_gg_._theme_danger_49gvg_gg_{background-color:var(--intergalactic-table-td-cell-critical, #fff0f7)}.___SSpinContainer_49gvg_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_49gvg_gg_.__headerHeight_49gvg_gg_{top:var(--headerHeight_49gvg)}.___SEmptyData_49gvg_gg_{grid-column:1/-1}.___SRow_49gvg_gg_._sideIndents_l_49gvg_gg_ .___SCell_49gvg_gg_:first-child{padding-left:var(--intergalactic-spacing-5x, 20px)}.___SRow_49gvg_gg_._sideIndents_l_49gvg_gg_ .___SCell_49gvg_gg_:last-child{padding-right:var(--intergalactic-spacing-5x, 20px)}", /*__inner_css_end__*/"49gvg_gg_"),
16
+ /*__reshadow_css_end__*/
17
+ {
18
+ "__SBody": "___SBody_49gvg_gg_",
19
+ "__SRow": "___SRow_49gvg_gg_",
20
+ "__SRowGroup": "___SRowGroup_49gvg_gg_",
21
+ "_gridArea": "__gridArea_49gvg_gg_",
22
+ "__SCell": "___SCell_49gvg_gg_",
23
+ "__SCollapseRow": "___SCollapseRow_49gvg_gg_",
24
+ "--gridArea": "--gridArea_49gvg",
25
+ "_active": "__active_49gvg_gg_",
26
+ "_theme": "__theme_49gvg_gg_",
27
+ "_expanded": "__expanded_49gvg_gg_",
28
+ "_accordionType_row": "_accordionType_row_49gvg_gg_",
29
+ "_accordionType_cell": "_accordionType_cell_49gvg_gg_",
30
+ "_withAccordion": "__withAccordion_49gvg_gg_",
31
+ "_theme_muted": "_theme_muted_49gvg_gg_",
32
+ "_theme_info": "_theme_info_49gvg_gg_",
33
+ "_theme_success": "_theme_success_49gvg_gg_",
34
+ "_theme_warning": "_theme_warning_49gvg_gg_",
35
+ "_theme_danger": "_theme_danger_49gvg_gg_",
36
+ "_borders_both": "_borders_both_49gvg_gg_",
37
+ "_borders_left": "_borders_left_49gvg_gg_",
38
+ "_borders_right": "_borders_right_49gvg_gg_",
39
+ "_fixed": "__fixed_49gvg_gg_",
40
+ "__SSpinContainer": "___SSpinContainer_49gvg_gg_",
41
+ "_headerHeight": "__headerHeight_49gvg_gg_",
42
+ "--headerHeight": "--headerHeight_49gvg",
43
+ "__SEmptyData": "___SEmptyData_49gvg_gg_",
44
+ "_compact": "__compact_49gvg_gg_",
45
+ "--data-aria-level": "--data-aria-level_49gvg",
46
+ "__SAccordionToggle": "___SAccordionToggle_49gvg_gg_",
47
+ "_use_primary": "_use_primary_49gvg_gg_",
48
+ "_use_secondary": "_use_secondary_49gvg_gg_",
49
+ "_sideIndents_l": "_sideIndents_l_49gvg_gg_"
50
+ });
51
+ import { Cell } from './Cell';
52
+ import { MergedColumnsCell, MergedRowsCell } from './MergedCells';
53
+ import { ACCORDION, ROW_INDEX, UNIQ_ROW_KEY } from '../DataTable/DataTable';
54
+ import ChevronRightM from '@semcore/icon/ChevronRight/m';
55
+ import { ButtonLink } from '@semcore/button';
56
+ import Spin from '@semcore/spin';
57
+ import { isInteractiveElement } from '@semcore/core/lib/utils/isInteractiveElement';
58
+ var ROWS_BUFFER = 20;
59
+ var APROX_ROWS_ON_PAGE = 20;
60
+ var BodyRoot = /*#__PURE__*/function (_Component) {
61
+ _inherits(BodyRoot, _Component);
62
+ var _super = _createSuper(BodyRoot);
63
+ function BodyRoot() {
64
+ var _this;
65
+ _classCallCheck(this, BodyRoot);
66
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67
+ args[_key] = arguments[_key];
68
+ }
69
+ _this = _super.call.apply(_super, [this].concat(args));
70
+ _defineProperty(_assertThisInitialized(_this), "rowsHeightMap", new Map());
71
+ _defineProperty(_assertThisInitialized(_this), "indexForDownIterate", 0);
72
+ _defineProperty(_assertThisInitialized(_this), "indexForUpIterate", 0);
73
+ _defineProperty(_assertThisInitialized(_this), "handleRef", function (index, row) {
74
+ return function (node) {
75
+ if (!_this.rowsHeightMap.has(index) && node) {
76
+ _this.rowsHeightMap.set(index, [0, 0, node]);
77
+ _this.setRowHeight(index, row);
78
+ }
79
+ };
80
+ });
81
+ _defineProperty(_assertThisInitialized(_this), "handleExpandRow", function (row, index) {
82
+ setTimeout(function () {
83
+ _this.setRowHeight(index, row);
84
+ for (var i = index; i < _this.rowsHeightMap.size; i++) {
85
+ _this.setRowHeight(i, row);
86
+ }
87
+ }, 300); // we need to calculate after expanding animation
88
+
89
+ _this.asProps.onExpandRow(row);
90
+ });
91
+ _defineProperty(_assertThisInitialized(_this), "handleClickRow", function (row, index) {
92
+ return function (e) {
93
+ if (!isInteractiveElement(e.target)) {
94
+ _this.handleExpandRow(row, index);
95
+ }
96
+ };
97
+ });
98
+ _defineProperty(_assertThisInitialized(_this), "handleClickCell", function (row, index) {
99
+ return function (e) {
100
+ if (!isInteractiveElement(e.target)) {
101
+ _this.handleExpandRow(row, index);
102
+ }
103
+ };
104
+ });
105
+ return _this;
106
+ }
107
+ _createClass(BodyRoot, [{
108
+ key: "getRowProps",
109
+ value: function getRowProps(props) {
110
+ var _this$asProps = this.asProps,
111
+ use = _this$asProps.use,
112
+ gridTemplateAreas = _this$asProps.gridTemplateAreas,
113
+ gridTemplateColumns = _this$asProps.gridTemplateColumns,
114
+ expandedRows = _this$asProps.expandedRows,
115
+ columns = _this$asProps.columns,
116
+ onExpandRow = _this$asProps.onExpandRow,
117
+ loading = _this$asProps.loading,
118
+ hasGroups = _this$asProps.hasGroups,
119
+ scrollAreaRef = _this$asProps.scrollAreaRef,
120
+ uid = _this$asProps.uid,
121
+ onBackFromAccordion = _this$asProps.onBackFromAccordion,
122
+ rowProps = _this$asProps.rowProps,
123
+ rows = _this$asProps.rows,
124
+ flatRows = _this$asProps.flatRows,
125
+ sideIndents = _this$asProps.sideIndents,
126
+ selectedRows = _this$asProps.selectedRows,
127
+ onSelectRow = _this$asProps.onSelectRow;
128
+ var row = props.row;
129
+ var index = row[ROW_INDEX];
130
+ var rowIndex = Array.from(expandedRows !== null && expandedRows !== void 0 ? expandedRows : []).reduce(function (acc, item) {
131
+ var rowIndex = flatRows.findIndex(function (row) {
132
+ return row[UNIQ_ROW_KEY] === item;
133
+ });
134
+ if (rowIndex < index) {
135
+ var _flatRows$rowIndex;
136
+ var expandedRow = (_flatRows$rowIndex = flatRows[rowIndex]) === null || _flatRows$rowIndex === void 0 ? void 0 : _flatRows$rowIndex[ACCORDION];
137
+ if (Array.isArray(expandedRow)) {
138
+ acc = acc + expandedRow.length;
139
+ } else {
140
+ acc = acc + 1;
141
+ }
142
+ }
143
+ return acc;
144
+ }, index);
145
+ var gridRowIndex = rowIndex + (hasGroups ? 3 : 2); // 1 - for header, 1 - because start not from 0, but from 1
146
+ var ariaRowIndex = rowIndex + 2; // 1 - for header, 1 - because start not from 0, but from 1
147
+
148
+ 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);
149
+ return _objectSpread(_objectSpread({
150
+ onClick: row[ACCORDION] ? this.handleClickRow(row, index) : undefined
151
+ }, rowProps === null || rowProps === void 0 ? void 0 : rowProps(row, index)), {}, {
152
+ use: use,
153
+ uid: uid,
154
+ gridTemplateAreas: gridTemplateAreas,
155
+ gridTemplateColumns: gridTemplateColumns,
156
+ expanded: expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.has(row[UNIQ_ROW_KEY]),
157
+ accordionDataGridArea: accordionDataGridArea,
158
+ columns: columns,
159
+ rowIndex: index,
160
+ ariaRowIndex: ariaRowIndex,
161
+ gridRowIndex: gridRowIndex,
162
+ rows: rows,
163
+ onBackFromAccordion: onBackFromAccordion,
164
+ row: row,
165
+ expandedRows: expandedRows,
166
+ onExpandRow: onExpandRow,
167
+ selectedRows: selectedRows,
168
+ onSelectRow: onSelectRow,
169
+ inert: loading ? '' : undefined,
170
+ scrollAreaRef: scrollAreaRef,
171
+ sideIndents: sideIndents
172
+ });
173
+ }
174
+ }, {
175
+ key: "getCellProps",
176
+ value: function getCellProps(props) {
177
+ var _props$children,
178
+ _value3,
179
+ _this2 = this,
180
+ _value4;
181
+ var _this$asProps2 = this.asProps,
182
+ use = _this$asProps2.use,
183
+ renderCell = _this$asProps2.renderCell,
184
+ expandedRows = _this$asProps2.expandedRows,
185
+ styles = _this$asProps2.styles,
186
+ getI18nText = _this$asProps2.getI18nText,
187
+ virtualScroll = _this$asProps2.virtualScroll,
188
+ tableRef = _this$asProps2.tableRef;
189
+ var SAccordionToggle = ButtonLink;
190
+ var dataKey = props.column.name;
191
+ var cellValue = props.row[dataKey];
192
+ var value = undefined;
193
+ var isMergedRows = cellValue instanceof MergedRowsCell;
194
+ var isMergedColumns = cellValue instanceof MergedColumnsCell;
195
+ if (isMergedColumns || isMergedRows) {
196
+ value = cellValue.value;
197
+ if (isMergedColumns) {
198
+ dataKey = cellValue.dataKey;
199
+ }
200
+ } else {
201
+ value = cellValue;
202
+ }
203
+ var defaultRender = function defaultRender() {
204
+ var _value;
205
+ return /*#__PURE__*/React.isValidElement(value) ? value : (_value = value) === null || _value === void 0 ? void 0 : _value.toString();
206
+ };
207
+ var extraProps = {
208
+ use: use,
209
+ virtualScroll: Boolean(virtualScroll),
210
+ tableRef: tableRef,
211
+ children: (_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : defaultRender()
212
+ };
213
+ if (renderCell) {
214
+ var _value$toString, _value2;
215
+ var external = renderCell({
216
+ columnName: props.column.name,
217
+ row: props.row,
218
+ column: props.column,
219
+ rowIndex: props.rowIndex,
220
+ columnIndex: props.columnIndex,
221
+ dataKey: dataKey,
222
+ defaultRender: defaultRender,
223
+ value: /*#__PURE__*/React.isValidElement(value) ? value : (_value$toString = (_value2 = value) === null || _value2 === void 0 ? void 0 : _value2.toString()) !== null && _value$toString !== void 0 ? _value$toString : '',
224
+ isMergedRows: isMergedRows,
225
+ isMergedColumns: isMergedColumns
226
+ });
227
+ if (this.isReactNode(external) || Array.isArray(external)) {
228
+ extraProps.children = external;
229
+ } else {
230
+ for (var key in external) {
231
+ extraProps[key] = external[key];
232
+ }
233
+ }
234
+ }
235
+ if (props.columnIndex === 0 && props.row[ACCORDION] || (_value3 = value) !== null && _value3 !== void 0 && _value3[ACCORDION]) {
236
+ var _ref2;
237
+ var expanded = expandedRows === null || expandedRows === void 0 ? void 0 : expandedRows.has(props.row[UNIQ_ROW_KEY]);
238
+ extraProps.children = (_ref2 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SAccordionToggle, _ref2.cn("SAccordionToggle", {
239
+ "aria-label": getI18nText('DataTable.Cell.AccordionToggle.expand:aria-label'),
240
+ "expanded": expanded,
241
+ "onClick": function onClick(e) {
242
+ e.stopPropagation();
243
+ _this2.handleExpandRow(props.row, props.rowIndex);
244
+ },
245
+ "color": '--intergalactic-icon-primary-neutral',
246
+ "aria-expanded": expanded,
247
+ "aria-describedby": props.id,
248
+ "aria-controls": props.accordionId
249
+ }), /*#__PURE__*/React.createElement(SAccordionToggle.Addon, {
250
+ tag: ChevronRightM
251
+ })), extraProps.children));
252
+ }
253
+ if ((_value4 = value) !== null && _value4 !== void 0 && _value4[ACCORDION]) {
254
+ extraProps.onClick = this.handleClickCell(props.row, props.rowIndex);
255
+ }
256
+ return extraProps;
257
+ }
258
+ }, {
259
+ key: "render",
260
+ value: function render() {
261
+ var _ref = this.asProps,
262
+ _ref3,
263
+ _this$rowsHeightMap$g5,
264
+ _this3 = this;
265
+ var SBody = Box;
266
+ var SRowGroup = Box;
267
+ var SSpinContainer = Box;
268
+ var _this$asProps3 = this.asProps,
269
+ styles = _this$asProps3.styles,
270
+ loading = _this$asProps3.loading,
271
+ headerHeight = _this$asProps3.headerHeight,
272
+ spinnerRef = _this$asProps3.spinnerRef,
273
+ virtualScroll = _this$asProps3.virtualScroll,
274
+ scrollDirection = _this$asProps3.scrollDirection,
275
+ tableContainerRef = _this$asProps3.tableContainerRef,
276
+ scrollTop = _this$asProps3.scrollTop,
277
+ renderEmptyData = _this$asProps3.renderEmptyData,
278
+ columns = _this$asProps3.columns,
279
+ uid = _this$asProps3.uid,
280
+ rows = _this$asProps3.rows;
281
+ var rowsToRender = rows;
282
+ var startIndex = -1;
283
+ var lastIndex = -1;
284
+ if (virtualScroll) {
285
+ var _virtualScroll$rowsBu, _tableContainerRef$cu, _tableContainerRef$cu2;
286
+ var rowsBuffer = typeof virtualScroll !== 'boolean' && 'rowsBuffer' in virtualScroll ? (_virtualScroll$rowsBu = virtualScroll.rowsBuffer) !== null && _virtualScroll$rowsBu !== void 0 ? _virtualScroll$rowsBu : ROWS_BUFFER : ROWS_BUFFER;
287
+ 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;
288
+ var prevPrepared = scrollDirection === 'up' ? rowsBuffer : 4;
289
+ var nextPrepared = scrollDirection === 'up' ? 4 : rowsBuffer;
290
+ if (typeof virtualScroll === 'boolean' || 'aproxRowsOnPage' in virtualScroll) {
291
+ var _virtualScroll$aproxR;
292
+ var aproxRowsOnPage = typeof virtualScroll !== 'boolean' ? (_virtualScroll$aproxR = virtualScroll.aproxRowsOnPage) !== null && _virtualScroll$aproxR !== void 0 ? _virtualScroll$aproxR : APROX_ROWS_ON_PAGE : APROX_ROWS_ON_PAGE;
293
+ if (scrollDirection === 'down') {
294
+ var _this$rowsHeightMap$g, _this$rowsHeightMap$g2, _lastIndex;
295
+ for (var i = this.indexForDownIterate; i < this.rowsHeightMap.size - 1; i++) {
296
+ var value = this.rowsHeightMap.get(i);
297
+ if (!value) continue;
298
+ var key = i;
299
+ var valueFromToCompare = value[1];
300
+ var valueToToCompare = value[0];
301
+ if (startIndex === -1 && scrollTop < valueFromToCompare) {
302
+ startIndex = Math.max(key - prevPrepared, 0);
303
+ }
304
+ if (startIndex !== -1 && scrollTop + offsetHeight < valueToToCompare) {
305
+ lastIndex = Math.min(key + nextPrepared, rows.length);
306
+ }
307
+ if (startIndex !== -1 && lastIndex !== -1) {
308
+ break;
309
+ }
310
+ }
311
+ 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)) {
312
+ lastIndex = lastIndex + aproxRowsOnPage;
313
+ }
314
+ } else if (scrollDirection === 'up') {
315
+ var _this$rowsHeightMap$g3, _this$rowsHeightMap$g4, _startIndex;
316
+ for (var _i = this.indexForUpIterate; _i > 0; _i--) {
317
+ var _value5 = this.rowsHeightMap.get(_i);
318
+ if (!_value5) continue;
319
+ var _key2 = _i;
320
+ var _valueFromToCompare = _value5[1];
321
+ var _valueToToCompare = _value5[0];
322
+ if (lastIndex === -1 && scrollTop + offsetHeight > _valueToToCompare) {
323
+ lastIndex = Math.min(_key2 + nextPrepared, rows.length);
324
+ }
325
+ if (lastIndex !== -1 && scrollTop < _valueFromToCompare) {
326
+ startIndex = Math.max(_key2 - prevPrepared, 0);
327
+ }
328
+ if (startIndex !== -1 && lastIndex !== -1) {
329
+ break;
330
+ }
331
+ }
332
+ 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)) {
333
+ startIndex = Math.max(startIndex - aproxRowsOnPage, 0);
334
+ }
335
+ }
336
+ if (startIndex === -1) {
337
+ startIndex = scrollTop === 0 ? 0 : Math.max(rows.length - aproxRowsOnPage, 0);
338
+ }
339
+ if (lastIndex === -1) {
340
+ lastIndex = scrollTop === 0 ? aproxRowsOnPage : rows.length;
341
+ }
342
+ this.indexForDownIterate = startIndex;
343
+ this.indexForUpIterate = lastIndex;
344
+ rowsToRender = rows.slice(startIndex, lastIndex);
345
+ } else if ('rowHeight' in virtualScroll) {
346
+ var rowHeight = virtualScroll.rowHeight;
347
+ startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);
348
+ var _lastIndex2 = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, rows.length);
349
+ rowsToRender = rows.slice(startIndex, _lastIndex2);
350
+ }
351
+ }
352
+ startIndex = startIndex === -1 ? 0 : startIndex;
353
+ var rowMarginTop = (_this$rowsHeightMap$g5 = this.rowsHeightMap.get(startIndex - 1)) === null || _this$rowsHeightMap$g5 === void 0 ? void 0 : _this$rowsHeightMap$g5[1];
354
+ var emptyRow = null;
355
+ if (rowsToRender.length === 0) {
356
+ var _emptyRow;
357
+ emptyRow = (_emptyRow = {}, _defineProperty(_emptyRow, UNIQ_ROW_KEY, "".concat(uid, "_empty_data")), _defineProperty(_emptyRow, ROW_INDEX, 0), _defineProperty(_emptyRow, columns[0].name, new MergedColumnsCell(renderEmptyData(), {
358
+ dataKey: columns[0].name,
359
+ size: columns.length
360
+ })), _emptyRow);
361
+ }
362
+ return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SBody, _ref3.cn("SBody", _objectSpread({}, _assignProps({
363
+ "__excludeProps": ['data']
364
+ }, _ref))), emptyRow && /*#__PURE__*/React.createElement(Body.Row, {
365
+ row: emptyRow,
366
+ offset: 0
367
+ }), typeof virtualScroll === 'boolean' && rowMarginTop && /*#__PURE__*/React.createElement(Box, _ref3.cn("Box", {
368
+ "h": rowMarginTop
369
+ })), rowsToRender.map(function (row, index) {
370
+ if (Array.isArray(row)) {
371
+ var _ref4;
372
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SRowGroup, _ref4.cn("SRowGroup", {
373
+ "role": 'rowgroup',
374
+ "key": "gg_".concat(row[0][UNIQ_ROW_KEY]),
375
+ "ref": _this3.handleRef(startIndex + index, row[0])
376
+ }), row.map(function (item, i) {
377
+ return /*#__PURE__*/React.createElement(Body.Row, {
378
+ key: item[UNIQ_ROW_KEY],
379
+ row: item
380
+ });
381
+ }));
382
+ }
383
+ return /*#__PURE__*/React.createElement(Body.Row, {
384
+ key: row[UNIQ_ROW_KEY],
385
+ row: row,
386
+ ref: _this3.handleRef(startIndex + index, row)
387
+ });
388
+ }), loading && /*#__PURE__*/React.createElement(SSpinContainer, _ref3.cn("SSpinContainer", {
389
+ "innerOutline": true,
390
+ "headerHeight": "".concat(headerHeight, "px"),
391
+ "tabIndex": -1,
392
+ "ref": spinnerRef,
393
+ "role": 'row'
394
+ }), /*#__PURE__*/React.createElement(Spin, _ref3.cn("Spin", {
395
+ "size": 'xxl',
396
+ "role": 'gridcell'
397
+ }))));
398
+ }
399
+ }, {
400
+ key: "isReactNode",
401
+ value: function isReactNode(obj) {
402
+ return typeof obj === 'string' || typeof obj === 'number' || /*#__PURE__*/React.isValidElement(obj) || typeof obj === 'boolean' || obj === undefined || obj === null;
403
+ }
404
+ }, {
405
+ key: "setRowHeight",
406
+ value: function setRowHeight(index, row) {
407
+ var _this$rowsHeightMap$g6, _node$children$item;
408
+ var expandedRows = this.asProps.expandedRows;
409
+ var node = (_this$rowsHeightMap$g6 = this.rowsHeightMap.get(index)) === null || _this$rowsHeightMap$g6 === void 0 ? void 0 : _this$rowsHeightMap$g6[2];
410
+ var firstChild = (node === null || node === void 0 ? void 0 : node.role) === 'rowgroup' ? node === null || node === void 0 ? void 0 : (_node$children$item = node.children.item(0)) === null || _node$children$item === void 0 ? void 0 : _node$children$item.children.item(0) : node === null || node === void 0 ? void 0 : node.children.item(0);
411
+ if (node && firstChild instanceof HTMLElement) {
412
+ var offset = firstChild.offsetTop - this.asProps.headerHeight;
413
+ var height = firstChild.getBoundingClientRect().height;
414
+ if (expandedRows.has(row[UNIQ_ROW_KEY]) && node.nextSibling instanceof HTMLElement) {
415
+ height = height + node.nextSibling.getBoundingClientRect().height;
416
+ }
417
+ this.rowsHeightMap.set(index, [offset, offset + height, node]);
418
+ }
419
+ }
420
+ }]);
421
+ return BodyRoot;
422
+ }(Component);
423
+ _defineProperty(BodyRoot, "displayName", 'Body');
424
+ _defineProperty(BodyRoot, "style", style);
425
+ export var Body = createComponent(BodyRoot, {
426
+ Row: Row,
427
+ Cell: Cell
428
+ });
429
+ //# sourceMappingURL=Body.js.map