@semcore/data-table 4.51.0-prerelease.0 → 4.51.0-prerelease.1

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 (236) hide show
  1. package/lib/cjs/Body.js +477 -0
  2. package/lib/cjs/Body.js.map +1 -0
  3. package/lib/cjs/DataTable.js +629 -0
  4. package/lib/cjs/DataTable.js.map +1 -0
  5. package/lib/cjs/Head.js +398 -0
  6. package/lib/cjs/Head.js.map +1 -0
  7. package/lib/cjs/index.js +15 -38
  8. package/lib/cjs/index.js.map +1 -1
  9. package/lib/cjs/style/data-table.shadow.css +413 -0
  10. package/lib/cjs/style/scroll-shadows.shadow.css +5 -50
  11. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +5 -4
  12. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  13. package/lib/cjs/translations/de.json +1 -6
  14. package/lib/cjs/translations/en.json +1 -6
  15. package/lib/cjs/translations/es.json +1 -6
  16. package/lib/cjs/translations/fr.json +1 -6
  17. package/lib/cjs/translations/it.json +1 -6
  18. package/lib/cjs/translations/ja.json +1 -6
  19. package/lib/cjs/translations/ko.json +1 -6
  20. package/lib/cjs/translations/nl.json +1 -6
  21. package/lib/cjs/translations/pl.json +1 -6
  22. package/lib/cjs/translations/pt.json +1 -6
  23. package/lib/cjs/translations/sv.json +1 -6
  24. package/lib/cjs/translations/tr.json +1 -6
  25. package/lib/cjs/translations/vi.json +1 -6
  26. package/lib/cjs/translations/zh.json +1 -6
  27. package/lib/cjs/types.js +4 -0
  28. package/lib/cjs/types.js.map +1 -0
  29. package/lib/cjs/utils.js +57 -0
  30. package/lib/cjs/utils.js.map +1 -0
  31. package/lib/es6/Body.js +469 -0
  32. package/lib/es6/Body.js.map +1 -0
  33. package/lib/es6/DataTable.js +619 -0
  34. package/lib/es6/DataTable.js.map +1 -0
  35. package/lib/es6/Head.js +390 -0
  36. package/lib/es6/Head.js.map +1 -0
  37. package/lib/es6/index.js +2 -7
  38. package/lib/es6/index.js.map +1 -1
  39. package/lib/es6/style/data-table.shadow.css +413 -0
  40. package/lib/es6/style/scroll-shadows.shadow.css +5 -50
  41. package/lib/es6/translations/__intergalactic-dynamic-locales.js +2 -2
  42. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  43. package/lib/es6/translations/de.json +1 -6
  44. package/lib/es6/translations/en.json +1 -6
  45. package/lib/es6/translations/es.json +1 -6
  46. package/lib/es6/translations/fr.json +1 -6
  47. package/lib/es6/translations/it.json +1 -6
  48. package/lib/es6/translations/ja.json +1 -6
  49. package/lib/es6/translations/ko.json +1 -6
  50. package/lib/es6/translations/nl.json +1 -6
  51. package/lib/es6/translations/pl.json +1 -6
  52. package/lib/es6/translations/pt.json +1 -6
  53. package/lib/es6/translations/sv.json +1 -6
  54. package/lib/es6/translations/tr.json +1 -6
  55. package/lib/es6/translations/vi.json +1 -6
  56. package/lib/es6/translations/zh.json +1 -6
  57. package/lib/es6/types.js +2 -0
  58. package/lib/es6/types.js.map +1 -0
  59. package/lib/es6/utils.js +48 -0
  60. package/lib/es6/utils.js.map +1 -0
  61. package/lib/esm/Body.mjs +430 -0
  62. package/lib/esm/DataTable.mjs +589 -0
  63. package/lib/esm/Head.mjs +368 -0
  64. package/lib/esm/index.mjs +5 -12
  65. package/lib/esm/style/data-table.shadow.css +413 -0
  66. package/lib/esm/style/scroll-shadows.shadow.css +5 -50
  67. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +2 -2
  68. package/lib/esm/translations/de.json.mjs +1 -6
  69. package/lib/esm/translations/en.json.mjs +1 -6
  70. package/lib/esm/translations/es.json.mjs +1 -6
  71. package/lib/esm/translations/fr.json.mjs +1 -6
  72. package/lib/esm/translations/it.json.mjs +1 -6
  73. package/lib/esm/translations/ja.json.mjs +1 -6
  74. package/lib/esm/translations/ko.json.mjs +1 -6
  75. package/lib/esm/translations/nl.json.mjs +1 -6
  76. package/lib/esm/translations/pl.json.mjs +1 -6
  77. package/lib/esm/translations/pt.json.mjs +1 -6
  78. package/lib/esm/translations/sv.json.mjs +1 -6
  79. package/lib/esm/translations/tr.json.mjs +1 -6
  80. package/lib/esm/translations/vi.json.mjs +1 -6
  81. package/lib/esm/translations/zh.json.mjs +1 -6
  82. package/lib/esm/utils.mjs +52 -0
  83. package/lib/types/Body.d.ts +61 -0
  84. package/lib/types/DataTable.d.ts +205 -0
  85. package/lib/types/Head.d.ts +45 -0
  86. package/lib/types/index.d.ts +2 -10
  87. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +0 -70
  88. package/lib/types/types.d.ts +73 -0
  89. package/lib/types/utils.d.ts +4 -0
  90. package/package.json +6 -6
  91. package/lib/cjs/components/AccordionRows/AccordionRows.js +0 -177
  92. package/lib/cjs/components/AccordionRows/AccordionRows.js.map +0 -1
  93. package/lib/cjs/components/Body/Body.js +0 -445
  94. package/lib/cjs/components/Body/Body.js.map +0 -1
  95. package/lib/cjs/components/Body/Body.types.js +0 -2
  96. package/lib/cjs/components/Body/Body.types.js.map +0 -1
  97. package/lib/cjs/components/Body/Cell.js +0 -205
  98. package/lib/cjs/components/Body/Cell.js.map +0 -1
  99. package/lib/cjs/components/Body/Cell.types.js +0 -2
  100. package/lib/cjs/components/Body/Cell.types.js.map +0 -1
  101. package/lib/cjs/components/Body/LimitOverlay.js +0 -191
  102. package/lib/cjs/components/Body/LimitOverlay.js.map +0 -1
  103. package/lib/cjs/components/Body/MergedCells.js +0 -31
  104. package/lib/cjs/components/Body/MergedCells.js.map +0 -1
  105. package/lib/cjs/components/Body/Row.js +0 -630
  106. package/lib/cjs/components/Body/Row.js.map +0 -1
  107. package/lib/cjs/components/Body/Row.types.js +0 -2
  108. package/lib/cjs/components/Body/Row.types.js.map +0 -1
  109. package/lib/cjs/components/Body/RowGroup.js +0 -118
  110. package/lib/cjs/components/Body/RowGroup.js.map +0 -1
  111. package/lib/cjs/components/Body/style.shadow.css +0 -367
  112. package/lib/cjs/components/DataTable/DataTable.js +0 -1303
  113. package/lib/cjs/components/DataTable/DataTable.js.map +0 -1
  114. package/lib/cjs/components/DataTable/DataTable.types.js +0 -2
  115. package/lib/cjs/components/DataTable/DataTable.types.js.map +0 -1
  116. package/lib/cjs/components/DataTable/ScrollBars.js +0 -63
  117. package/lib/cjs/components/DataTable/ScrollBars.js.map +0 -1
  118. package/lib/cjs/components/DataTable/dataTable.shadow.css +0 -43
  119. package/lib/cjs/components/Head/Column.js +0 -350
  120. package/lib/cjs/components/Head/Column.js.map +0 -1
  121. package/lib/cjs/components/Head/Column.types.js +0 -2
  122. package/lib/cjs/components/Head/Column.types.js.map +0 -1
  123. package/lib/cjs/components/Head/Group.js +0 -116
  124. package/lib/cjs/components/Head/Group.js.map +0 -1
  125. package/lib/cjs/components/Head/Group.type.js +0 -2
  126. package/lib/cjs/components/Head/Group.type.js.map +0 -1
  127. package/lib/cjs/components/Head/Head.js +0 -350
  128. package/lib/cjs/components/Head/Head.js.map +0 -1
  129. package/lib/cjs/components/Head/Head.types.js +0 -2
  130. package/lib/cjs/components/Head/Head.types.js.map +0 -1
  131. package/lib/cjs/components/Head/style.shadow.css +0 -292
  132. package/lib/cjs/components/RowSelector/RowsSelector.js +0 -132
  133. package/lib/cjs/components/RowSelector/RowsSelector.js.map +0 -1
  134. package/lib/cjs/components/RowSelector/SRAnnouncer.js +0 -62
  135. package/lib/cjs/components/RowSelector/SRAnnouncer.js.map +0 -1
  136. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js +0 -39
  137. package/lib/cjs/components/RowSelector/SRReactiveAnnouncer.js.map +0 -1
  138. package/lib/cjs/enhancers/focusableCell.js +0 -76
  139. package/lib/cjs/enhancers/focusableCell.js.map +0 -1
  140. package/lib/cjs/store/SelectableRows.js +0 -211
  141. package/lib/cjs/store/SelectableRows.js.map +0 -1
  142. package/lib/es6/components/AccordionRows/AccordionRows.js +0 -171
  143. package/lib/es6/components/AccordionRows/AccordionRows.js.map +0 -1
  144. package/lib/es6/components/Body/Body.js +0 -439
  145. package/lib/es6/components/Body/Body.js.map +0 -1
  146. package/lib/es6/components/Body/Body.types.js +0 -2
  147. package/lib/es6/components/Body/Body.types.js.map +0 -1
  148. package/lib/es6/components/Body/Cell.js +0 -199
  149. package/lib/es6/components/Body/Cell.js.map +0 -1
  150. package/lib/es6/components/Body/Cell.types.js +0 -2
  151. package/lib/es6/components/Body/Cell.types.js.map +0 -1
  152. package/lib/es6/components/Body/LimitOverlay.js +0 -184
  153. package/lib/es6/components/Body/LimitOverlay.js.map +0 -1
  154. package/lib/es6/components/Body/MergedCells.js +0 -24
  155. package/lib/es6/components/Body/MergedCells.js.map +0 -1
  156. package/lib/es6/components/Body/Row.js +0 -624
  157. package/lib/es6/components/Body/Row.js.map +0 -1
  158. package/lib/es6/components/Body/Row.types.js +0 -2
  159. package/lib/es6/components/Body/Row.types.js.map +0 -1
  160. package/lib/es6/components/Body/RowGroup.js +0 -111
  161. package/lib/es6/components/Body/RowGroup.js.map +0 -1
  162. package/lib/es6/components/Body/style.shadow.css +0 -367
  163. package/lib/es6/components/DataTable/DataTable.js +0 -1298
  164. package/lib/es6/components/DataTable/DataTable.js.map +0 -1
  165. package/lib/es6/components/DataTable/DataTable.types.js +0 -2
  166. package/lib/es6/components/DataTable/DataTable.types.js.map +0 -1
  167. package/lib/es6/components/DataTable/ScrollBars.js +0 -57
  168. package/lib/es6/components/DataTable/ScrollBars.js.map +0 -1
  169. package/lib/es6/components/DataTable/dataTable.shadow.css +0 -43
  170. package/lib/es6/components/Head/Column.js +0 -344
  171. package/lib/es6/components/Head/Column.js.map +0 -1
  172. package/lib/es6/components/Head/Column.types.js +0 -2
  173. package/lib/es6/components/Head/Column.types.js.map +0 -1
  174. package/lib/es6/components/Head/Group.js +0 -111
  175. package/lib/es6/components/Head/Group.js.map +0 -1
  176. package/lib/es6/components/Head/Group.type.js +0 -2
  177. package/lib/es6/components/Head/Group.type.js.map +0 -1
  178. package/lib/es6/components/Head/Head.js +0 -345
  179. package/lib/es6/components/Head/Head.js.map +0 -1
  180. package/lib/es6/components/Head/Head.types.js +0 -2
  181. package/lib/es6/components/Head/Head.types.js.map +0 -1
  182. package/lib/es6/components/Head/style.shadow.css +0 -292
  183. package/lib/es6/components/RowSelector/RowsSelector.js +0 -125
  184. package/lib/es6/components/RowSelector/RowsSelector.js.map +0 -1
  185. package/lib/es6/components/RowSelector/SRAnnouncer.js +0 -55
  186. package/lib/es6/components/RowSelector/SRAnnouncer.js.map +0 -1
  187. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js +0 -32
  188. package/lib/es6/components/RowSelector/SRReactiveAnnouncer.js.map +0 -1
  189. package/lib/es6/enhancers/focusableCell.js +0 -69
  190. package/lib/es6/enhancers/focusableCell.js.map +0 -1
  191. package/lib/es6/store/SelectableRows.js +0 -204
  192. package/lib/es6/store/SelectableRows.js.map +0 -1
  193. package/lib/esm/components/AccordionRows/AccordionRows.mjs +0 -155
  194. package/lib/esm/components/Body/Body.mjs +0 -395
  195. package/lib/esm/components/Body/Cell.mjs +0 -192
  196. package/lib/esm/components/Body/LimitOverlay.mjs +0 -179
  197. package/lib/esm/components/Body/MergedCells.mjs +0 -27
  198. package/lib/esm/components/Body/Row.mjs +0 -556
  199. package/lib/esm/components/Body/RowGroup.mjs +0 -113
  200. package/lib/esm/components/Body/style.shadow.css +0 -367
  201. package/lib/esm/components/DataTable/DataTable.mjs +0 -1216
  202. package/lib/esm/components/DataTable/ScrollBars.mjs +0 -61
  203. package/lib/esm/components/DataTable/dataTable.shadow.css +0 -43
  204. package/lib/esm/components/Head/Column.mjs +0 -321
  205. package/lib/esm/components/Head/Group.mjs +0 -111
  206. package/lib/esm/components/Head/Head.mjs +0 -307
  207. package/lib/esm/components/Head/style.shadow.css +0 -292
  208. package/lib/esm/components/RowSelector/RowsSelector.mjs +0 -105
  209. package/lib/esm/components/RowSelector/SRAnnouncer.mjs +0 -51
  210. package/lib/esm/components/RowSelector/SRReactiveAnnouncer.mjs +0 -31
  211. package/lib/esm/enhancers/focusableCell.mjs +0 -72
  212. package/lib/esm/store/SelectableRows.mjs +0 -201
  213. package/lib/types/components/AccordionRows/AccordionRows.d.ts +0 -41
  214. package/lib/types/components/Body/Body.d.ts +0 -6
  215. package/lib/types/components/Body/Body.types.d.ts +0 -87
  216. package/lib/types/components/Body/Cell.d.ts +0 -1
  217. package/lib/types/components/Body/Cell.types.d.ts +0 -36
  218. package/lib/types/components/Body/LimitOverlay.d.ts +0 -17
  219. package/lib/types/components/Body/MergedCells.d.ts +0 -17
  220. package/lib/types/components/Body/Row.d.ts +0 -47
  221. package/lib/types/components/Body/Row.types.d.ts +0 -74
  222. package/lib/types/components/Body/RowGroup.d.ts +0 -19
  223. package/lib/types/components/DataTable/DataTable.d.ts +0 -14
  224. package/lib/types/components/DataTable/DataTable.types.d.ts +0 -202
  225. package/lib/types/components/DataTable/ScrollBars.d.ts +0 -11
  226. package/lib/types/components/Head/Column.d.ts +0 -39
  227. package/lib/types/components/Head/Column.types.d.ts +0 -85
  228. package/lib/types/components/Head/Group.d.ts +0 -15
  229. package/lib/types/components/Head/Group.type.d.ts +0 -18
  230. package/lib/types/components/Head/Head.d.ts +0 -9
  231. package/lib/types/components/Head/Head.types.d.ts +0 -58
  232. package/lib/types/components/RowSelector/RowsSelector.d.ts +0 -32
  233. package/lib/types/components/RowSelector/SRAnnouncer.d.ts +0 -10
  234. package/lib/types/components/RowSelector/SRReactiveAnnouncer.d.ts +0 -8
  235. package/lib/types/enhancers/focusableCell.d.ts +0 -9
  236. package/lib/types/store/SelectableRows.d.ts +0 -60
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "Umożliwia sortowanie",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "Pokaż szczegóły",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ukryj szczegóły",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "Wszystkie przedmioty",
6
- "DataTable.allItemsSelected:aria-live": "Wszystkie przedmioty wybrane",
7
- "DataTable.allItemsDeselected:aria-live": "Wszystkie przedmioty odznaczone"
2
+ "sortableColumn": "Umożliwia sortowanie"
8
3
  }
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "Classificável",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "Exibir detalhes",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ocultar detalhes",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "Todos os itens",
6
- "DataTable.allItemsSelected:aria-live": "Todos os itens selecionados",
7
- "DataTable.allItemsDeselected:aria-live": "Todos os itens desmarcados"
2
+ "sortableColumn": "Classificável"
8
3
  }
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "Sorterbar",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "Visa detaljer",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "Dölj detaljer",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "Alla objekt",
6
- "DataTable.allItemsSelected:aria-live": "Alla objekt valda",
7
- "DataTable.allItemsDeselected:aria-live": "Alla objekt avmarkerade"
2
+ "sortableColumn": "Sorterbar"
8
3
  }
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "Sıralanabilir",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "Detayları göster",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "Detayları gizle",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "Tüm öğeler",
6
- "DataTable.allItemsSelected:aria-live": "Tüm öğeler seçildi",
7
- "DataTable.allItemsDeselected:aria-live": "Tüm öğeler seçilmedi"
2
+ "sortableColumn": "Sıralanabilir"
8
3
  }
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "Có thể sắp xếp",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "Hiển thị chi tiết",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "Ẩn bớt",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "Tất cả các mục",
6
- "DataTable.allItemsSelected:aria-live": "Tất cả các mục đã được chọn",
7
- "DataTable.allItemsDeselected:aria-live": "Tất cả các mục đã được bỏ chọn"
2
+ "sortableColumn": "Có thể sắp xếp"
8
3
  }
@@ -1,8 +1,3 @@
1
1
  {
2
- "sortableColumn": "可排序",
3
- "DataTable.Cell.AccordionToggle.expand:aria-label": "显示详细信息",
4
- "DataTable.Cell.AccordionToggle.collapse:aria-label": "隐藏详细信息",
5
- "DataTable.Header.selectAllCheckbox:aria-label": "所有项目",
6
- "DataTable.allItemsSelected:aria-live": "所有项目已选择",
7
- "DataTable.allItemsDeselected:aria-live": "所有项目已取消选择"
2
+ "sortableColumn": "可排序"
8
3
  }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ var _DataTable = require("./DataTable");
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":["_DataTable","require"],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\nimport { Property } from 'csstype';\nimport { FlexProps } from '@semcore/flex-box';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n varWidth: string;\n setVar: boolean;\n data?: unknown;\n vBorders?: boolean;\n borderLeft?: boolean;\n borderRight?: boolean;\n props: {\n name: string;\n ref: React.RefObject<HTMLElement>;\n } & FlexProps &\n Partial<{\n flex: Property.Flex;\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n forwardRef: React.Ref<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n vBorders: boolean;\n borderLeft: Property.BorderLeft;\n borderRight: Property.BorderLeft;\n changeSortSize?: boolean;\n sortSizeRecalculation?: boolean;\n }> &\n Props;\n columns: Column[];\n parentColumns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'fixed' | 'data'> & {\n cssVar: string | string[];\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n\nexport type RowIndex = number;\nexport type ColIndex = number;\n"],"mappings":";;AACA,IAAAA,UAAA,GAAAC,OAAA"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getScrollOffsetValue = exports.getFixedStyle = exports.flattenColumns = void 0;
7
+ var getScrollOffsetValue = function getScrollOffsetValue(columns) {
8
+ return columns.reduce(function (acc, column) {
9
+ if (column.fixed === 'left') {
10
+ acc[0] += column.width;
11
+ }
12
+ if (column.fixed === 'right') {
13
+ acc[1] += column.width;
14
+ }
15
+ return acc;
16
+ }, [0, 0]);
17
+ };
18
+ exports.getScrollOffsetValue = getScrollOffsetValue;
19
+ var flattenColumns = function flattenColumns(columns) {
20
+ return columns.reduce(function (acc, column) {
21
+ var hasNestedColumns = 'columns' in column && column.columns.length > 0;
22
+ var columns = hasNestedColumns ? flattenColumns(column.columns) : [column];
23
+ acc = acc.concat(columns);
24
+ return acc;
25
+ }, []);
26
+ };
27
+ exports.flattenColumns = flattenColumns;
28
+ var getFixedStyle = function getFixedStyle(cell, columns) {
29
+ var side = cell.fixed;
30
+ if (!side) return [undefined, undefined];
31
+ var names = cell.name.split('/');
32
+ var nameSideMap = {
33
+ left: names[0],
34
+ right: names[names.length - 1]
35
+ };
36
+ var name = nameSideMap[side];
37
+ var index = columns.findIndex(function (column) {
38
+ return column.name === name;
39
+ });
40
+ if (index === -1) return [undefined, undefined];
41
+ var startIndexSideMap = {
42
+ left: 0,
43
+ right: index + 1
44
+ };
45
+ var endIndexSideMap = {
46
+ left: index,
47
+ right: columns.length
48
+ };
49
+ var columnsFixed = columns.slice(startIndexSideMap[side], endIndexSideMap[side]);
50
+ 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(' + '), ")")];
55
+ };
56
+ exports.getFixedStyle = getFixedStyle;
57
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,469 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
5
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
6
+ import _typeof from "@babel/runtime/helpers/typeof";
7
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
8
+ import _createClass from "@babel/runtime/helpers/createClass";
9
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
10
+ import _inherits from "@babel/runtime/helpers/inherits";
11
+ import _createSuper from "@babel/runtime/helpers/createSuper";
12
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
13
+ import { sstyled as _sstyled } from "@semcore/utils/lib/core/index";
14
+ import { assignProps as _assignProps } from "@semcore/core";
15
+ var _excluded = ["childrenPropsGetter"],
16
+ _excluded2 = ["childrenPropsGetter"];
17
+ import React from 'react';
18
+ import { Component, sstyled, Root } from '@semcore/core';
19
+ import { Box, Flex } from '@semcore/flex-box';
20
+ import ScrollArea, { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';
21
+ import { getFixedStyle, getScrollOffsetValue } from './utils';
22
+ import assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
23
+ import trottle from '@semcore/utils/lib/rafTrottle';
24
+ import { forkRef } from '@semcore/utils/lib/ref';
25
+ import canUseDOM from '@semcore/utils/lib/canUseDOM';
26
+ import { SORT_ICON_WIDTH } from './Head';
27
+ /*!__reshadow-styles__:"./style/scroll-shadows.shadow.css"*/
28
+ var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_xlwvi_gg_:after,.___SShadowHorizontal_xlwvi_gg_:before,.___SShadowVertical_xlwvi_gg_:after,.___SShadowVertical_xlwvi_gg_:before{z-index:1}", /*__inner_css_end__*/"xlwvi_gg_"),
29
+ /*__reshadow_css_end__*/
30
+ {
31
+ "__SShadowHorizontal": "___SShadowHorizontal_xlwvi_gg_",
32
+ "__SShadowVertical": "___SShadowVertical_xlwvi_gg_"
33
+ });
34
+ import { getFocusableIn } from '@semcore/utils/lib/focus-lock/getFocusableIn';
35
+ var testEnv = process.env.NODE_ENV === 'test';
36
+ var getCellsByColumn = function getCellsByColumn(cells) {
37
+ var flattenCells = cells.flat(20);
38
+ return Object.fromEntries(flattenCells.map(function (cell) {
39
+ return [cell.name, cell.data];
40
+ }));
41
+ };
42
+ var displayContents = {
43
+ display: 'contents'
44
+ };
45
+ var Body = /*#__PURE__*/function (_Component) {
46
+ _inherits(Body, _Component);
47
+ var _super = _createSuper(Body);
48
+ function Body() {
49
+ var _this;
50
+ _classCallCheck(this, Body);
51
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
52
+ args[_key] = arguments[_key];
53
+ }
54
+ _this = _super.call.apply(_super, [this].concat(args));
55
+ _defineProperty(_assertThisInitialized(_this), "state", {
56
+ rowHeight: undefined,
57
+ scrollAreaHeight: undefined,
58
+ scrollOffset: 0
59
+ });
60
+ _defineProperty(_assertThisInitialized(_this), "scrollContainerRef", /*#__PURE__*/React.createRef());
61
+ _defineProperty(_assertThisInitialized(_this), "firstRowRef", /*#__PURE__*/React.createRef());
62
+ _defineProperty(_assertThisInitialized(_this), "firstRowResizeObserver", null);
63
+ _defineProperty(_assertThisInitialized(_this), "lockedCell", [null, false]);
64
+ _defineProperty(_assertThisInitialized(_this), "getRowHeight", function () {
65
+ var virtualScroll = _this.asProps.virtualScroll;
66
+ var rowHeightFromProps = _typeof(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
67
+ return rowHeightFromProps || _this.state.rowHeight;
68
+ });
69
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
70
+ if (e.currentTarget === _this.lockedCell[0]) {
71
+ var focusableChildren = Array.from(_this.lockedCell[0].children).flatMap(function (node) {
72
+ return getFocusableIn(node);
73
+ });
74
+ if (_this.lockedCell[1]) {
75
+ if (e.key === 'Escape') {
76
+ var _this$lockedCell$;
77
+ (_this$lockedCell$ = _this.lockedCell[0]) === null || _this$lockedCell$ === void 0 ? void 0 : _this$lockedCell$.focus();
78
+ _this.lockedCell[1] = false;
79
+ }
80
+ if (e.key.startsWith('Arrow')) {
81
+ e.stopPropagation();
82
+ e.preventDefault();
83
+ }
84
+ if (e.key === 'Tab') {
85
+ if (e.target === focusableChildren[0] && e.shiftKey) {
86
+ var _focusableChildren;
87
+ (_focusableChildren = focusableChildren[focusableChildren.length - 1]) === null || _focusableChildren === void 0 ? void 0 : _focusableChildren.focus();
88
+ e.preventDefault();
89
+ } else if (e.target === focusableChildren[focusableChildren.length - 1] && !e.shiftKey) {
90
+ var _focusableChildren$;
91
+ (_focusableChildren$ = focusableChildren[0]) === null || _focusableChildren$ === void 0 ? void 0 : _focusableChildren$.focus();
92
+ e.preventDefault();
93
+ }
94
+ e.stopPropagation();
95
+ }
96
+ } else if (e.key === 'Enter') {
97
+ var _focusableChildren$2;
98
+ e.preventDefault();
99
+ e.stopPropagation();
100
+ _this.lockedCell[1] = true;
101
+ (_focusableChildren$2 = focusableChildren[0]) === null || _focusableChildren$2 === void 0 ? void 0 : _focusableChildren$2.focus();
102
+ }
103
+ }
104
+ });
105
+ _defineProperty(_assertThisInitialized(_this), "onFocusCell", function (e) {
106
+ if (e.target === e.currentTarget && e.target.matches(':focus-visible')) {
107
+ var focusableChildren = Array.from(e.currentTarget.children).flatMap(function (node) {
108
+ return getFocusableIn(node);
109
+ });
110
+ if (focusableChildren.length === 1) {
111
+ focusableChildren[0].focus();
112
+ } else if (focusableChildren.length > 1) {
113
+ _this.lockedCell = [e.currentTarget, false];
114
+ }
115
+ }
116
+ });
117
+ _defineProperty(_assertThisInitialized(_this), "handleFirstRowResize", trottle(function (entries) {
118
+ var contentRect = entries[0].contentRect;
119
+ var height = contentRect.height;
120
+ _this.setState(function (oldState) {
121
+ if (oldState.rowHeight === height) return oldState;
122
+ return {
123
+ rowHeight: height
124
+ };
125
+ });
126
+ }));
127
+ _defineProperty(_assertThisInitialized(_this), "handleScrollAreaResize", trottle(function (entries) {
128
+ var virtualScroll = _this.asProps.virtualScroll;
129
+ if (!virtualScroll) return;
130
+ var contentRect = entries[0].contentRect;
131
+ var height = contentRect.height;
132
+ _this.setState(function (oldState) {
133
+ if (oldState.scrollAreaHeight === height) return oldState;
134
+ return {
135
+ scrollAreaHeight: height
136
+ };
137
+ });
138
+ }));
139
+ _defineProperty(_assertThisInitialized(_this), "handleScrollAreaScroll", function (event) {
140
+ var _ref6 = event.target,
141
+ scrollTop = _ref6.scrollTop;
142
+ var virtualScroll = _this.asProps.virtualScroll;
143
+ if (virtualScroll) {
144
+ _this.setState(function (oldState) {
145
+ if (oldState.scrollOffset === scrollTop) return oldState;
146
+ return {
147
+ scrollOffset: scrollTop
148
+ };
149
+ });
150
+ }
151
+ });
152
+ _defineProperty(_assertThisInitialized(_this), "setupRowSizeObserver", function () {
153
+ if (!_this.firstRowRef.current) return;
154
+ if (!_this.asProps.virtualScroll) return;
155
+ if (canUseDOM()) {
156
+ _this.firstRowResizeObserver = new ResizeObserver(_this.handleFirstRowResize);
157
+ _this.firstRowResizeObserver.observe(_this.firstRowRef.current);
158
+ }
159
+ });
160
+ _defineProperty(_assertThisInitialized(_this), "handleBodyTransitionEnd", trottle(function () {
161
+ /**
162
+ * We need this to recalculate ScrollArea sizes after end of transition
163
+ */
164
+ _this.forceUpdate();
165
+ }));
166
+ return _this;
167
+ }
168
+ _createClass(Body, [{
169
+ key: "renderCells",
170
+ value: function renderCells(cells, rowData, dataIndex) {
171
+ var _this2 = this;
172
+ var SCell = Flex;
173
+ var _this$asProps = this.asProps,
174
+ styles = _this$asProps.styles,
175
+ columns = _this$asProps.columns,
176
+ use = _this$asProps.use,
177
+ uid = _this$asProps.uid;
178
+ return cells.map(function (cell, cellIndex) {
179
+ if (Array.isArray(cell)) {
180
+ var _ref2;
181
+ var SGroupCell = 'div';
182
+ return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SGroupCell, _ref2.cn("SGroupCell", {
183
+ "key": "".concat(cellIndex),
184
+ "data-ui-name": 'group-cell'
185
+ }), _this2.renderRows(cell, true));
186
+ } else {
187
+ var _ref3, _column$parentColumns, _column$props, _column$props$ref$cur, _column$props2, _column$props2$ref$cu, _column$props3, _column$props4;
188
+ var nameParts = cell.name.split('/');
189
+ var firstName = nameParts[0];
190
+ var lastName = nameParts[nameParts.length - 1];
191
+ var firstColumn = columns.find(function (c) {
192
+ return c.name === firstName;
193
+ });
194
+ var lastColumn = columns.find(function (c) {
195
+ return c.name === lastName;
196
+ });
197
+ var column = columns.find(function (c) {
198
+ return c.name === cell.name;
199
+ });
200
+ var _getFixedStyle = getFixedStyle(cell, columns),
201
+ _getFixedStyle2 = _slicedToArray(_getFixedStyle, 2),
202
+ name = _getFixedStyle2[0],
203
+ value = _getFixedStyle2[1];
204
+ var parentColumnNames = (_column$parentColumns = column === null || column === void 0 ? void 0 : column.parentColumns.map(function (column) {
205
+ return column.name;
206
+ })) !== null && _column$parentColumns !== void 0 ? _column$parentColumns : [];
207
+ var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
208
+ return "var(".concat(name, ")");
209
+ });
210
+ var columnWMin = column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : (_column$props$ref$cur = _column$props.ref.current) === null || _column$props$ref$cur === void 0 ? void 0 : _column$props$ref$cur.style.getPropertyValue('min-width');
211
+ var columnWMax = column === null || column === void 0 ? void 0 : (_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : (_column$props2$ref$cu = _column$props2.ref.current) === null || _column$props2$ref$cu === void 0 ? void 0 : _column$props2$ref$cu.style.getPropertyValue('max-width');
212
+ var _props = {
213
+ name: cell.name,
214
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, cell.data),
215
+ justifyContent: column === null || column === void 0 ? void 0 : (_column$props3 = column.props) === null || _column$props3 === void 0 ? void 0 : _column$props3.justifyContent,
216
+ alignItems: column === null || column === void 0 ? void 0 : (_column$props4 = column.props) === null || _column$props4 === void 0 ? void 0 : _column$props4.alignItems,
217
+ borderLeft: firstColumn === null || firstColumn === void 0 ? void 0 : firstColumn.borderLeft,
218
+ borderRight: lastColumn === null || lastColumn === void 0 ? void 0 : lastColumn.borderRight,
219
+ style: {
220
+ width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")"),
221
+ minWidth: columnWMin,
222
+ maxWidth: columnWMax && column !== null && column !== void 0 && column.sortable ? "calc(".concat(SORT_ICON_WIDTH, "px + ").concat(columnWMax, ")") : columnWMax
223
+ }
224
+ };
225
+ if (name !== undefined && value !== undefined) {
226
+ _props.style[name] = value;
227
+ }
228
+ var _iterator = _createForOfIteratorHelper(cell.cellPropsLayers || []),
229
+ _step;
230
+ try {
231
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
232
+ var cellPropLayer = _step.value;
233
+ var _cellPropLayer$childr = cellPropLayer.childrenPropsGetter,
234
+ childrenPropsGetter = _cellPropLayer$childr === void 0 ? function (p) {
235
+ return p;
236
+ } : _cellPropLayer$childr,
237
+ other = _objectWithoutProperties(cellPropLayer, _excluded);
238
+ var propsCell = assignProps(other, _props);
239
+ _props = assignProps(childrenPropsGetter(propsCell, rowData, dataIndex), propsCell);
240
+ }
241
+ } catch (err) {
242
+ _iterator.e(err);
243
+ } finally {
244
+ _iterator.f();
245
+ }
246
+ var headerIds = [cell.name].concat(_toConsumableArray(parentColumnNames)).filter(Boolean).map(function (name) {
247
+ return "igc-table-".concat(uid, "-").concat(name);
248
+ });
249
+ var ariaColspan = nameParts.length;
250
+ return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SCell, _ref3.cn("SCell", _objectSpread(_objectSpread({
251
+ "key": cell.name,
252
+ "role": 'gridcell',
253
+ "headers": headerIds.join(' '),
254
+ "__excludeProps": ['data']
255
+ }, _props), {}, {
256
+ "fixed": cell.fixed,
257
+ "theme": _props.theme,
258
+ "use": use,
259
+ "borderLeft": _props.borderLeft,
260
+ "borderRight": _props.borderRight,
261
+ "tabIndex": -1,
262
+ "onKeyDown": _this2.handleKeyDown,
263
+ "onFocus": _this2.onFocusCell,
264
+ "aria-colindex": cellIndex + 1,
265
+ "aria-colspan": ariaColspan === 1 ? undefined : ariaColspan
266
+ })));
267
+ }
268
+ }, []);
269
+ }
270
+ }, {
271
+ key: "renderRow",
272
+ value: function renderRow(cells, _ref7) {
273
+ var _ref4;
274
+ var dataIndex = _ref7.dataIndex,
275
+ topOffset = _ref7.topOffset,
276
+ _ref7$nested = _ref7.nested,
277
+ nested = _ref7$nested === void 0 ? false : _ref7$nested;
278
+ var SRow = Box;
279
+ var _this$asProps2 = this.asProps,
280
+ styles = _this$asProps2.styles,
281
+ rowPropsLayers = _this$asProps2.rowPropsLayers,
282
+ uniqueKey = _this$asProps2.uniqueKey,
283
+ virtualScroll = _this$asProps2.virtualScroll;
284
+ var rowHeightFromProps = _typeof(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
285
+ var rowData = cells.flatRowData || getCellsByColumn(cells);
286
+ var key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : "row_".concat(dataIndex);
287
+ var needToMeasureHeight = dataIndex === 0 && !rowHeightFromProps;
288
+ var props = {
289
+ children: this.renderCells(cells, rowData, dataIndex),
290
+ theme: undefined,
291
+ active: undefined,
292
+ positioned: topOffset !== undefined,
293
+ top: topOffset,
294
+ ref: needToMeasureHeight ? this.firstRowRef : undefined,
295
+ key: key,
296
+ 'aria-rowindex': !nested ? dataIndex + 2 : undefined
297
+ };
298
+ var _iterator2 = _createForOfIteratorHelper(rowPropsLayers),
299
+ _step2;
300
+ try {
301
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
302
+ var rowPropsLayer = _step2.value;
303
+ var _rowPropsLayer$childr = rowPropsLayer.childrenPropsGetter,
304
+ childrenPropsGetter = _rowPropsLayer$childr === void 0 ? function (p) {
305
+ return p;
306
+ } : _rowPropsLayer$childr,
307
+ other = _objectWithoutProperties(rowPropsLayer, _excluded2);
308
+ var propsRow = assignProps(other, props);
309
+ props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);
310
+ }
311
+ } catch (err) {
312
+ _iterator2.e(err);
313
+ } finally {
314
+ _iterator2.f();
315
+ }
316
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SRow, _ref4.cn("SRow", _objectSpread({
317
+ "data-nested": nested.toString(),
318
+ "role": !nested ? 'row' : undefined,
319
+ "__excludeProps": ['data']
320
+ }, props)));
321
+ }
322
+ }, {
323
+ key: "renderRows",
324
+ value: function renderRows(rows) {
325
+ var _this3 = this;
326
+ var nested = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
327
+ return rows.map(function (cells, dataIndex) {
328
+ return _this3.renderRow(cells, {
329
+ dataIndex: dataIndex,
330
+ nested: nested
331
+ });
332
+ });
333
+ }
334
+ }, {
335
+ key: "renderVirtualizedRows",
336
+ value: function renderVirtualizedRows(rows) {
337
+ var _ref8,
338
+ _this4 = this;
339
+ if (rows.length === 0) return [];
340
+ var virtualScroll = this.asProps.virtualScroll;
341
+ var _this$state = this.state,
342
+ scrollOffset = _this$state.scrollOffset,
343
+ scrollAreaHeight = _this$state.scrollAreaHeight;
344
+ var rowHeight = this.getRowHeight();
345
+ var tollerance = (_ref8 = _typeof(virtualScroll) === 'object' ? virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.tollerance : 2) !== null && _ref8 !== void 0 ? _ref8 : 2;
346
+ var startIndex = Math.max(Math.floor(scrollOffset / rowHeight) - tollerance, 0);
347
+ var lastIndex = Math.min(Math.ceil((scrollOffset + scrollAreaHeight) / rowHeight) + tollerance, rows.length);
348
+ var rowHeightFromProps = _typeof(virtualScroll) === 'object' && (virtualScroll === null || virtualScroll === void 0 ? void 0 : virtualScroll.rowHeight);
349
+ var needToMeasureFirstRowHeight = !rowHeightFromProps;
350
+ var firstRow = {
351
+ cells: rows[0],
352
+ dataIndex: 0,
353
+ topOffset: 0
354
+ };
355
+ var visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];
356
+ var processedVisibleRows = visibleRows.map(function (cells, index) {
357
+ return {
358
+ cells: cells,
359
+ dataIndex: startIndex + index,
360
+ topOffset: rowHeight * (startIndex + index)
361
+ };
362
+ });
363
+ if (needToMeasureFirstRowHeight && startIndex !== 0) {
364
+ processedVisibleRows.unshift(firstRow);
365
+ }
366
+ return processedVisibleRows.map(function (_ref9) {
367
+ var cells = _ref9.cells,
368
+ dataIndex = _ref9.dataIndex,
369
+ topOffset = _ref9.topOffset;
370
+ return _this4.renderRow(cells, {
371
+ dataIndex: dataIndex,
372
+ topOffset: topOffset,
373
+ nested: false
374
+ });
375
+ });
376
+ }
377
+ }, {
378
+ key: "componentWillUnmount",
379
+ value: function componentWillUnmount() {
380
+ var _this$firstRowResizeO;
381
+ (_this$firstRowResizeO = this.firstRowResizeObserver) === null || _this$firstRowResizeO === void 0 ? void 0 : _this$firstRowResizeO.disconnect();
382
+ }
383
+ }, {
384
+ key: "render",
385
+ value: function render() {
386
+ var _ref = this.asProps,
387
+ _ref5;
388
+ var SBody = Box;
389
+ var SBodyWrapper = Box;
390
+ var SHeightHold = Box;
391
+ var _this$asProps3 = this.asProps,
392
+ Children = _this$asProps3.Children,
393
+ styles = _this$asProps3.styles,
394
+ rows = _this$asProps3.rows,
395
+ columns = _this$asProps3.columns,
396
+ $scrollRef = _this$asProps3.$scrollRef,
397
+ virtualScroll = _this$asProps3.virtualScroll,
398
+ onResize = _this$asProps3.onResize,
399
+ onScroll = _this$asProps3.onScroll,
400
+ disabledScroll = _this$asProps3.disabledScroll,
401
+ renderRows = _this$asProps3.renderRows,
402
+ animationsDisabled = _this$asProps3.animationsDisabled,
403
+ scrollContainerRef = _this$asProps3.scrollContainerRef;
404
+ var columnsInitialized = columns.reduce(function (sum, _ref10) {
405
+ var width = _ref10.width;
406
+ return sum + width;
407
+ }, 0) > 0 || testEnv;
408
+ var _getScrollOffsetValue = getScrollOffsetValue(columns),
409
+ _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
410
+ offsetLeftSum = _getScrollOffsetValue2[0],
411
+ offsetRightSum = _getScrollOffsetValue2[1];
412
+ var rowHeight = this.getRowHeight();
413
+ var holdHeight = rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;
414
+ if (virtualScroll && columnsInitialized && !rowHeight) {
415
+ requestAnimationFrame(this.setupRowSizeObserver);
416
+ }
417
+ var body = (_ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SBody, _ref5.cn("SBody", _objectSpread({}, _assignProps({
418
+ "animationsDisabled": animationsDisabled,
419
+ "onTransitionEnd": this.handleBodyTransitionEnd
420
+ }, _ref))), renderRows ? renderRows({
421
+ rows: rows,
422
+ columns: columns,
423
+ renderRow: this.renderRow.bind(this)
424
+ }) || null : /*#__PURE__*/React.createElement(React.Fragment, null, holdHeight ? /*#__PURE__*/React.createElement(SHeightHold, _ref5.cn("SHeightHold", {
425
+ "hMin": holdHeight,
426
+ "aria-hidden": true
427
+ })) : null, virtualScroll ? this.renderVirtualizedRows(rows) : this.renderRows(rows))));
428
+ if (disabledScroll) {
429
+ return /*#__PURE__*/React.createElement(SBodyWrapper, null, body);
430
+ }
431
+ var scrollContainerRefs = [$scrollRef, this.scrollContainerRef];
432
+ if (scrollContainerRef) {
433
+ scrollContainerRefs.push(scrollContainerRef);
434
+ }
435
+ return /*#__PURE__*/React.createElement(hideScrollBarsFromScreenReadersContext.Provider, {
436
+ value: true
437
+ }, /*#__PURE__*/React.createElement(SBodyWrapper, _ref5.cn("SBodyWrapper", {}), /*#__PURE__*/React.createElement(ScrollArea, _ref5.cn("ScrollArea", {
438
+ "shadow": true,
439
+ "leftOffset": offsetLeftSum,
440
+ "rightOffset": offsetRightSum,
441
+ "onResize": callAllEventHandlers(onResize, this.handleScrollAreaResize),
442
+ "onScroll": callAllEventHandlers(onScroll, this.handleScrollAreaScroll),
443
+ "styles": scrollStyles
444
+ }), /*#__PURE__*/React.createElement(ScrollArea.Container, {
445
+ ref: forkRef.apply(void 0, scrollContainerRefs),
446
+ role: "rowgroup",
447
+ focusRingTopOffset: '3px',
448
+ tabIndex: -1
449
+ }, body), /*#__PURE__*/React.createElement("div", _ref5.cn("div", {
450
+ "style": displayContents
451
+ }), /*#__PURE__*/React.createElement("div", _ref5.cn("div", {
452
+ "style": displayContents
453
+ }), /*#__PURE__*/React.createElement("div", _ref5.cn("div", {
454
+ "style": displayContents
455
+ }), /*#__PURE__*/React.createElement(ScrollArea.Bar, {
456
+ orientation: "horizontal",
457
+ bottom: 0,
458
+ container: this.scrollContainerRef
459
+ }), /*#__PURE__*/React.createElement(ScrollArea.Bar, {
460
+ orientation: "vertical",
461
+ w: '12px',
462
+ zIndex: 2
463
+ }))))), Children.origin));
464
+ }
465
+ }]);
466
+ return Body;
467
+ }(Component);
468
+ export default Body;
469
+ //# sourceMappingURL=Body.js.map