@synerise/ds-table-new 0.1.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 (232) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +153 -0
  4. package/dist/Table.const.d.ts +20 -0
  5. package/dist/Table.const.js +42 -0
  6. package/dist/Table.d.ts +3 -0
  7. package/dist/Table.js +51 -0
  8. package/dist/Table.styles.d.ts +15 -0
  9. package/dist/Table.styles.js +29 -0
  10. package/dist/Table.types.d.ts +359 -0
  11. package/dist/Table.types.js +1 -0
  12. package/dist/VirtualTable.d.ts +3 -0
  13. package/dist/VirtualTable.js +222 -0
  14. package/dist/components/BaseTable/BaseTable.d.ts +3 -0
  15. package/dist/components/BaseTable/BaseTable.js +114 -0
  16. package/dist/components/BaseTable/BaseTable.styles.d.ts +28 -0
  17. package/dist/components/BaseTable/BaseTable.styles.js +41 -0
  18. package/dist/components/Cell/Action/ActionCell.d.ts +3 -0
  19. package/dist/components/Cell/Action/ActionCell.js +16 -0
  20. package/dist/components/Cell/Action/ActionCell.styles.d.ts +5 -0
  21. package/dist/components/Cell/Action/ActionCell.styles.js +13 -0
  22. package/dist/components/Cell/Action/ActionCell.types.d.ts +13 -0
  23. package/dist/components/Cell/Action/ActionCell.types.js +1 -0
  24. package/dist/components/Cell/AvatarLabel/AvatarLabel.d.ts +4 -0
  25. package/dist/components/Cell/AvatarLabel/AvatarLabel.js +42 -0
  26. package/dist/components/Cell/AvatarLabel/AvatarLabel.styles.d.ts +27 -0
  27. package/dist/components/Cell/AvatarLabel/AvatarLabel.styles.js +49 -0
  28. package/dist/components/Cell/AvatarLabel/AvatarLabel.types.d.ts +22 -0
  29. package/dist/components/Cell/AvatarLabel/AvatarLabel.types.js +1 -0
  30. package/dist/components/Cell/Copyable/Copyable.styles.d.ts +2 -0
  31. package/dist/components/Cell/Copyable/Copyable.styles.js +14 -0
  32. package/dist/components/Cell/Copyable/Copyable.types.d.ts +11 -0
  33. package/dist/components/Cell/Copyable/Copyable.types.js +1 -0
  34. package/dist/components/Cell/Copyable/CopyableCell.d.ts +4 -0
  35. package/dist/components/Cell/Copyable/CopyableCell.js +28 -0
  36. package/dist/components/Cell/Editable/EditableCell.d.ts +4 -0
  37. package/dist/components/Cell/Editable/EditableCell.js +30 -0
  38. package/dist/components/Cell/Editable/EditableCell.styles.d.ts +4 -0
  39. package/dist/components/Cell/Editable/EditableCell.styles.js +14 -0
  40. package/dist/components/Cell/Editable/EditableCell.types.d.ts +11 -0
  41. package/dist/components/Cell/Editable/EditableCell.types.js +1 -0
  42. package/dist/components/Cell/FlagLabel/FlagLabelCell.d.ts +4 -0
  43. package/dist/components/Cell/FlagLabel/FlagLabelCell.js +16 -0
  44. package/dist/components/Cell/FlagLabel/FlagLabelCell.styles.d.ts +1 -0
  45. package/dist/components/Cell/FlagLabel/FlagLabelCell.styles.js +8 -0
  46. package/dist/components/Cell/FlagLabel/FlagLabelCell.types.d.ts +11 -0
  47. package/dist/components/Cell/FlagLabel/FlagLabelCell.types.js +1 -0
  48. package/dist/components/Cell/IconLabel/IconLabel.d.ts +4 -0
  49. package/dist/components/Cell/IconLabel/IconLabel.js +15 -0
  50. package/dist/components/Cell/IconLabel/IconLabel.styles.d.ts +3 -0
  51. package/dist/components/Cell/IconLabel/IconLabel.styles.js +9 -0
  52. package/dist/components/Cell/IconLabel/IconLabel.types.d.ts +13 -0
  53. package/dist/components/Cell/IconLabel/IconLabel.types.js +1 -0
  54. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.d.ts +4 -0
  55. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.js +19 -0
  56. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.styles.d.ts +4 -0
  57. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.styles.js +13 -0
  58. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.types.d.ts +16 -0
  59. package/dist/components/Cell/IconTooltipCell/IconTooltipCell.types.js +1 -0
  60. package/dist/components/Cell/InputNumber/InputNumberCell.d.ts +4 -0
  61. package/dist/components/Cell/InputNumber/InputNumberCell.js +11 -0
  62. package/dist/components/Cell/InputNumber/InputNumberCell.styles.d.ts +3 -0
  63. package/dist/components/Cell/InputNumber/InputNumberCell.styles.js +11 -0
  64. package/dist/components/Cell/InputNumber/InputNumberCell.types.d.ts +7 -0
  65. package/dist/components/Cell/InputNumber/InputNumberCell.types.js +1 -0
  66. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.d.ts +5 -0
  67. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.js +33 -0
  68. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.styles.d.ts +3 -0
  69. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.styles.js +18 -0
  70. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.types.d.ts +22 -0
  71. package/dist/components/Cell/LabelsWithShowMore/LabelsWithShowMore.types.js +1 -0
  72. package/dist/components/Cell/LabelsWithShowMore/Modal/Modal.d.ts +4 -0
  73. package/dist/components/Cell/LabelsWithShowMore/Modal/Modal.js +37 -0
  74. package/dist/components/Cell/LabelsWithShowMore/Modal/Modal.types.d.ts +15 -0
  75. package/dist/components/Cell/LabelsWithShowMore/Modal/Modal.types.js +1 -0
  76. package/dist/components/Cell/Star/StarCell.d.ts +4 -0
  77. package/dist/components/Cell/Star/StarCell.js +25 -0
  78. package/dist/components/Cell/Star/StarCell.styles.d.ts +5 -0
  79. package/dist/components/Cell/Star/StarCell.styles.js +16 -0
  80. package/dist/components/Cell/Star/StarCell.types.d.ts +17 -0
  81. package/dist/components/Cell/Star/StarCell.types.js +1 -0
  82. package/dist/components/Cell/StatusLabel/StatusLabel.d.ts +4 -0
  83. package/dist/components/Cell/StatusLabel/StatusLabel.js +18 -0
  84. package/dist/components/Cell/StatusLabel/StatusLabel.styles.d.ts +4 -0
  85. package/dist/components/Cell/StatusLabel/StatusLabel.styles.js +13 -0
  86. package/dist/components/Cell/StatusLabel/StatusLabel.types.d.ts +14 -0
  87. package/dist/components/Cell/StatusLabel/StatusLabel.types.js +1 -0
  88. package/dist/components/Cell/TagIcon/TagIcon.d.ts +4 -0
  89. package/dist/components/Cell/TagIcon/TagIcon.js +10 -0
  90. package/dist/components/Cell/TagIcon/TagIcon.styles.d.ts +3 -0
  91. package/dist/components/Cell/TagIcon/TagIcon.styles.js +9 -0
  92. package/dist/components/Cell/TagIcon/TagIcon.types.d.ts +11 -0
  93. package/dist/components/Cell/TagIcon/TagIcon.types.js +1 -0
  94. package/dist/components/Cell/TagsGroup/TagsGroup.d.ts +3 -0
  95. package/dist/components/Cell/TagsGroup/TagsGroup.js +26 -0
  96. package/dist/components/Cell/TagsGroup/TagsGroup.styles.d.ts +5 -0
  97. package/dist/components/Cell/TagsGroup/TagsGroup.styles.js +34 -0
  98. package/dist/components/Cell/TagsGroup/TagsGroup.types.d.ts +9 -0
  99. package/dist/components/Cell/TagsGroup/TagsGroup.types.js +1 -0
  100. package/dist/components/Cell/index.d.ts +26 -0
  101. package/dist/components/Cell/index.js +28 -0
  102. package/dist/components/TableBody/TableBody.d.ts +3 -0
  103. package/dist/components/TableBody/TableBody.js +40 -0
  104. package/dist/components/TableBody/TableBody.styles.d.ts +2 -0
  105. package/dist/components/TableBody/TableBody.styles.js +15 -0
  106. package/dist/components/TableBody/TableBodySkeleton/TableBodySkeleton.d.ts +5 -0
  107. package/dist/components/TableBody/TableBodySkeleton/TableBodySkeleton.js +42 -0
  108. package/dist/components/TableBody/TableBodySkeleton/TableBodySkeleton.styles.d.ts +9 -0
  109. package/dist/components/TableBody/TableBodySkeleton/TableBodySkeleton.styles.js +30 -0
  110. package/dist/components/TableBody/TableCell/TableCell.d.ts +16 -0
  111. package/dist/components/TableBody/TableCell/TableCell.js +19 -0
  112. package/dist/components/TableBody/TableCell/TableCell.styles.d.ts +10 -0
  113. package/dist/components/TableBody/TableCell/TableCell.styles.js +18 -0
  114. package/dist/components/TableBody/TableEmptyBody/TableEmptyBody.d.ts +3 -0
  115. package/dist/components/TableBody/TableEmptyBody/TableEmptyBody.js +18 -0
  116. package/dist/components/TableBody/TableEmptyBody/TableEmptyBody.styles.d.ts +4 -0
  117. package/dist/components/TableBody/TableEmptyBody/TableEmptyBody.styles.js +23 -0
  118. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/ErrorItem.d.ts +8 -0
  119. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/ErrorItem.js +19 -0
  120. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/ErrorItem.styles.d.ts +1 -0
  121. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/ErrorItem.styles.js +8 -0
  122. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/InfiniteLoaderRow.d.ts +14 -0
  123. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/InfiniteLoaderRow.js +50 -0
  124. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/LoadingItem.d.ts +5 -0
  125. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/LoadingItem.js +10 -0
  126. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/LoadingItem.styles.d.ts +1 -0
  127. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/LoadingItem.styles.js +9 -0
  128. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/NoMoreItem.d.ts +5 -0
  129. package/dist/components/TableBody/TableRow/InfiniteLoaderRow/NoMoreItem.js +10 -0
  130. package/dist/components/TableBody/TableRow/TableRow.d.ts +5 -0
  131. package/dist/components/TableBody/TableRow/TableRow.js +29 -0
  132. package/dist/components/TableBody/TableRow/TableRow.styles.d.ts +7 -0
  133. package/dist/components/TableBody/TableRow/TableRow.styles.js +15 -0
  134. package/dist/components/TableBody/TableRow/TableRowVirtual.d.ts +5 -0
  135. package/dist/components/TableBody/TableRow/TableRowVirtual.js +88 -0
  136. package/dist/components/TableBody/TableRowSelection/TableRowSelection.d.ts +3 -0
  137. package/dist/components/TableBody/TableRowSelection/TableRowSelection.js +39 -0
  138. package/dist/components/TableColumns/TableColumnSorter/SortIcons/DefaultSortIcon.d.ts +5 -0
  139. package/dist/components/TableColumns/TableColumnSorter/SortIcons/DefaultSortIcon.js +19 -0
  140. package/dist/components/TableColumns/TableColumnSorter/SortIcons/StringSortIcon.d.ts +5 -0
  141. package/dist/components/TableColumns/TableColumnSorter/SortIcons/StringSortIcon.js +19 -0
  142. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.const.d.ts +4 -0
  143. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.const.js +8 -0
  144. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.d.ts +3 -0
  145. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.js +75 -0
  146. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.styles.d.ts +30 -0
  147. package/dist/components/TableColumns/TableColumnSorter/TableColumnSorter.styles.js +11 -0
  148. package/dist/components/TableColumns/TableColumns.d.ts +3 -0
  149. package/dist/components/TableColumns/TableColumns.js +28 -0
  150. package/dist/components/TableColumns/TableColumns.styles.d.ts +18 -0
  151. package/dist/components/TableColumns/TableColumns.styles.js +35 -0
  152. package/dist/components/TableHeader/TableCounter/TableCounter.d.ts +3 -0
  153. package/dist/components/TableHeader/TableCounter/TableCounter.js +33 -0
  154. package/dist/components/TableHeader/TableCounter/TableCounter.styles.d.ts +1 -0
  155. package/dist/components/TableHeader/TableCounter/TableCounter.styles.js +8 -0
  156. package/dist/components/TableHeader/TableHeader.d.ts +3 -0
  157. package/dist/components/TableHeader/TableHeader.js +103 -0
  158. package/dist/components/TableHeader/TableHeader.styles.d.ts +18 -0
  159. package/dist/components/TableHeader/TableHeader.styles.js +48 -0
  160. package/dist/components/TableHeader/TableHeaderSelection/TableHeaderSelection.d.ts +3 -0
  161. package/dist/components/TableHeader/TableHeaderSelection/TableHeaderSelection.js +123 -0
  162. package/dist/components/TableHeader/TableHeaderSelection/TableHeaderSelection.styles.d.ts +8 -0
  163. package/dist/components/TableHeader/TableHeaderSelection/TableHeaderSelection.styles.js +21 -0
  164. package/dist/components/TableHeader/TableLimit/TableLimit.d.ts +3 -0
  165. package/dist/components/TableHeader/TableLimit/TableLimit.js +50 -0
  166. package/dist/components/TableHeader/TableLimit/TableLimit.styles.d.ts +4 -0
  167. package/dist/components/TableHeader/TableLimit/TableLimit.styles.js +24 -0
  168. package/dist/components/TableHeader/TableLimit/TableLimit.types.d.ts +10 -0
  169. package/dist/components/TableHeader/TableLimit/TableLimit.types.js +1 -0
  170. package/dist/components/TableHorizontalScroll/TableHorizontalScroll.d.ts +6 -0
  171. package/dist/components/TableHorizontalScroll/TableHorizontalScroll.js +41 -0
  172. package/dist/components/TableHorizontalScroll/TableHorizontalScroll.styles.d.ts +12 -0
  173. package/dist/components/TableHorizontalScroll/TableHorizontalScroll.styles.js +33 -0
  174. package/dist/components/TableHorizontalScrollBar/TableHorizontalScrollBar.d.ts +6 -0
  175. package/dist/components/TableHorizontalScrollBar/TableHorizontalScrollBar.js +11 -0
  176. package/dist/components/TableHorizontalScrollBar/TableHorizontalScrollBar.styles.d.ts +4 -0
  177. package/dist/components/TableHorizontalScrollBar/TableHorizontalScrollBar.styles.js +14 -0
  178. package/dist/components/TablePagination/TablePagination.d.ts +3 -0
  179. package/dist/components/TablePagination/TablePagination.js +19 -0
  180. package/dist/components/TablePagination/TablePagination.styles.d.ts +1 -0
  181. package/dist/components/TablePagination/TablePagination.styles.js +8 -0
  182. package/dist/contexts/SelectionContext.d.ts +4 -0
  183. package/dist/contexts/SelectionContext.js +10 -0
  184. package/dist/contexts/StickyContext.d.ts +8 -0
  185. package/dist/contexts/StickyContext.js +9 -0
  186. package/dist/contexts/TableContext.d.ts +11 -0
  187. package/dist/contexts/TableContext.js +13 -0
  188. package/dist/hooks/useColumnSizing.d.ts +23 -0
  189. package/dist/hooks/useColumnSizing.js +95 -0
  190. package/dist/hooks/useDefaultTexts.d.ts +2 -0
  191. package/dist/hooks/useDefaultTexts.js +95 -0
  192. package/dist/hooks/useInfiniteScroll.d.ts +13 -0
  193. package/dist/hooks/useInfiniteScroll.js +58 -0
  194. package/dist/hooks/useRowKey.d.ts +4 -0
  195. package/dist/hooks/useRowKey.js +27 -0
  196. package/dist/hooks/useScrollSync.d.ts +2 -0
  197. package/dist/hooks/useScrollSync.js +23 -0
  198. package/dist/hooks/useTable.d.ts +14 -0
  199. package/dist/hooks/useTable.js +168 -0
  200. package/dist/index.d.ts +9 -0
  201. package/dist/index.js +50 -0
  202. package/dist/types/table.d.js +1 -0
  203. package/dist/types/table.d.ts +28 -0
  204. package/dist/utils/arrayToTrueMap.d.ts +1 -0
  205. package/dist/utils/arrayToTrueMap.js +7 -0
  206. package/dist/utils/calculatePixels.d.ts +1 -0
  207. package/dist/utils/calculatePixels.js +21 -0
  208. package/dist/utils/compareKeys.d.ts +1 -0
  209. package/dist/utils/compareKeys.js +16 -0
  210. package/dist/utils/getChildrenColumnName.d.ts +1 -0
  211. package/dist/utils/getChildrenColumnName.js +7 -0
  212. package/dist/utils/getDefaultSkeletonColumns.d.ts +2 -0
  213. package/dist/utils/getDefaultSkeletonColumns.js +58 -0
  214. package/dist/utils/getInfiniteScrollPadding.d.ts +2 -0
  215. package/dist/utils/getInfiniteScrollPadding.js +13 -0
  216. package/dist/utils/getIsRevealed.d.ts +5 -0
  217. package/dist/utils/getIsRevealed.js +9 -0
  218. package/dist/utils/getPaginationConfig.d.ts +10 -0
  219. package/dist/utils/getPaginationConfig.js +19 -0
  220. package/dist/utils/getRecordSelectionStatus.d.ts +5 -0
  221. package/dist/utils/getRecordSelectionStatus.js +13 -0
  222. package/dist/utils/index.d.ts +2 -0
  223. package/dist/utils/index.js +6 -0
  224. package/dist/utils/isRecordSelectable.d.ts +2 -0
  225. package/dist/utils/isRecordSelectable.js +14 -0
  226. package/dist/utils/legacyColumnConfigAdapter.d.ts +3 -0
  227. package/dist/utils/legacyColumnConfigAdapter.js +113 -0
  228. package/dist/utils/processColumns.d.ts +3 -0
  229. package/dist/utils/processColumns.js +24 -0
  230. package/dist/utils/sort.d.ts +3 -0
  231. package/dist/utils/sort.js +14 -0
  232. package/package.json +76 -0
@@ -0,0 +1,9 @@
1
+ const getIsRevealed = ({
2
+ scrollDirection,
3
+ hasData
4
+ }) => {
5
+ return hasData && scrollDirection === "backward";
6
+ };
7
+ export {
8
+ getIsRevealed
9
+ };
@@ -0,0 +1,10 @@
1
+ import { TablePaginationConfig } from '../Table.types';
2
+ export declare const getPaginationConfig: (pagination?: TablePaginationConfig | boolean) => {
3
+ initialState: {
4
+ pagination: {
5
+ pageSize: number;
6
+ };
7
+ };
8
+ } | {
9
+ initialState: {};
10
+ };
@@ -0,0 +1,19 @@
1
+ import { DEFAULT_PAGINATION_CONFIG } from "../Table.const.js";
2
+ const getPaginationConfig = (pagination) => {
3
+ if (!pagination) {
4
+ return {
5
+ initialState: {}
6
+ };
7
+ }
8
+ return pagination === true ? DEFAULT_PAGINATION_CONFIG : {
9
+ initialState: {
10
+ pagination: {
11
+ pageSize: pagination.pageSize
12
+ }
13
+ },
14
+ ...pagination
15
+ };
16
+ };
17
+ export {
18
+ getPaginationConfig
19
+ };
@@ -0,0 +1,5 @@
1
+ import { SelectionConfig } from '../Table.types';
2
+ export declare const getRecordSelectionStatus: <TData>(checkRowSelectionStatus: SelectionConfig<TData>["checkRowSelectionStatus"], record: TData) => {
3
+ unavailable: boolean | undefined;
4
+ disabled: boolean | undefined;
5
+ };
@@ -0,0 +1,13 @@
1
+ const getRecordSelectionStatus = (checkRowSelectionStatus, record) => {
2
+ const {
3
+ unavailable,
4
+ disabled
5
+ } = checkRowSelectionStatus && checkRowSelectionStatus(record) || {};
6
+ return {
7
+ unavailable,
8
+ disabled
9
+ };
10
+ };
11
+ export {
12
+ getRecordSelectionStatus
13
+ };
@@ -0,0 +1,2 @@
1
+ export * from './getRecordSelectionStatus';
2
+ export * from './isRecordSelectable';
@@ -0,0 +1,6 @@
1
+ import { getRecordSelectionStatus } from "./getRecordSelectionStatus.js";
2
+ import { isRecordSelectable } from "./isRecordSelectable.js";
3
+ export {
4
+ getRecordSelectionStatus,
5
+ isRecordSelectable
6
+ };
@@ -0,0 +1,2 @@
1
+ import { SelectionConfig } from '../Table.types';
2
+ export declare const isRecordSelectable: <TData>(record: TData, checkRowSelectionStatus?: SelectionConfig<TData>["checkRowSelectionStatus"]) => boolean;
@@ -0,0 +1,14 @@
1
+ import { getRecordSelectionStatus } from "./getRecordSelectionStatus.js";
2
+ const isRecordSelectable = (record, checkRowSelectionStatus) => {
3
+ if (!checkRowSelectionStatus) {
4
+ return true;
5
+ }
6
+ const {
7
+ unavailable,
8
+ disabled
9
+ } = getRecordSelectionStatus(checkRowSelectionStatus, record);
10
+ return !(unavailable || disabled);
11
+ };
12
+ export {
13
+ isRecordSelectable
14
+ };
@@ -0,0 +1,3 @@
1
+ import { VirtualColumnType as LegacyColumnType } from '@synerise/ds-table';
2
+ import { ColumnDef } from '@tanstack/react-table';
3
+ export declare const legacyColumnConfigAdapter: <DataType, DataValue>(columns: Array<LegacyColumnType<DataType>>) => ColumnDef<DataType, DataValue>[];
@@ -0,0 +1,113 @@
1
+ import { EXPANDED_ROW_PROPERTY } from "../Table.const.js";
2
+ import { calculatePixels } from "./calculatePixels.js";
3
+ const getSortStateApiAdapter = (headerContext) => {
4
+ const sortState = headerContext.table.getState().sorting;
5
+ const legacyColumnSortState = {};
6
+ sortState.forEach((column, index) => {
7
+ legacyColumnSortState[column.id] = {
8
+ sortOrder: column.desc ? "descend" : "ascend",
9
+ multiple: sortState.length > 1 ? index : false
10
+ };
11
+ });
12
+ return {
13
+ columnsSortState: legacyColumnSortState,
14
+ // get sort order for column by key
15
+ getColumnSortOrder: (key) => {
16
+ switch (headerContext.table.getColumn(key)?.getIsSorted()) {
17
+ case "asc":
18
+ return "ascend";
19
+ case "desc":
20
+ return "descend";
21
+ default:
22
+ return null;
23
+ }
24
+ },
25
+ setColumnSortOrder: (key, sort) => {
26
+ const allowMultiple = headerContext.table.getColumn(key)?.columnDef.meta?.enableMultiSort;
27
+ headerContext.table.getColumn(key)?.toggleSorting(sort === "descend", allowMultiple);
28
+ },
29
+ updateColumnsData: () => {
30
+ }
31
+ };
32
+ };
33
+ const DEFAULT_SORT_FN = "text";
34
+ const getSortingConfig = (sorter) => {
35
+ if (!sorter) {
36
+ return {
37
+ enableSorting: false
38
+ };
39
+ }
40
+ if (sorter === true) {
41
+ return {
42
+ sortingFn: DEFAULT_SORT_FN
43
+ };
44
+ }
45
+ let sortFn;
46
+ let enableMultiSort;
47
+ let multiSortOrder;
48
+ if (typeof sorter === "function") {
49
+ sortFn = sorter;
50
+ }
51
+ if ("compare" in sorter && sorter.compare) {
52
+ sortFn = sorter.compare;
53
+ enableMultiSort = !!sorter.multiple;
54
+ multiSortOrder = sorter.multiple;
55
+ }
56
+ return {
57
+ sortingFn: sortFn ? (rowA, rowB, _columnId) => {
58
+ return sortFn(rowA.original, rowB.original);
59
+ } : DEFAULT_SORT_FN,
60
+ enableMultiSort,
61
+ multiSortOrder
62
+ };
63
+ };
64
+ const legacyColumnConfigAdapter = (columns) => {
65
+ return columns.map((column, index) => {
66
+ const customSortRender = column.sortRender && typeof column.sortRender !== "string" ? (headerContext) => {
67
+ const legacySortStateApi = getSortStateApiAdapter(headerContext);
68
+ return column.sortRender && typeof column.sortRender !== "string" && column.sortRender(legacySortStateApi, column);
69
+ } : void 0;
70
+ const {
71
+ multiSortOrder,
72
+ ...sortingConfig
73
+ } = getSortingConfig(column.sorter);
74
+ return {
75
+ accessorKey: `${column.dataIndex}`,
76
+ header: () => {
77
+ return typeof column.title === "function" ? column.title({}) : column.title;
78
+ },
79
+ cell: (info) => {
80
+ return column.render?.(info.getValue(), info.row.original, info.column.getIndex()) || info.getValue();
81
+ },
82
+ meta: {
83
+ minWidth: column.minWidth,
84
+ maxWidth: column.maxWidth,
85
+ width: column.width,
86
+ fixed: column.fixed,
87
+ sortOrder: column.sortOrder,
88
+ sortRender: typeof column.sortRender === "string" ? column.sortRender : void 0,
89
+ renderCustomSortButton: customSortRender,
90
+ multipleSortingOrder: multiSortOrder,
91
+ childCell: (info) => {
92
+ if (column.childRender) {
93
+ const rowData = {
94
+ ...info.row.original,
95
+ [EXPANDED_ROW_PROPERTY]: true,
96
+ index: info.row.index
97
+ };
98
+ return column.childRender(info.getValue(), rowData, info.column.getIndex());
99
+ }
100
+ return column.render?.(info.getValue(), info.row.original, info.column.getIndex()) || info.getValue();
101
+ }
102
+ },
103
+ enablePinning: !!column.fixed,
104
+ ...sortingConfig,
105
+ size: calculatePixels(column.width),
106
+ ...column,
107
+ id: `${column.id || column.key || `${column.dataIndex}-${index}`}`
108
+ };
109
+ });
110
+ };
111
+ export {
112
+ legacyColumnConfigAdapter
113
+ };
@@ -0,0 +1,3 @@
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+ import { TableTexts } from '../Table.types';
3
+ export declare const processColumns: <TData extends object, TValue>(columns: ColumnDef<TData, TValue>[], selection: boolean, texts: TableTexts) => ColumnDef<TData, TValue>[];
@@ -0,0 +1,24 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SELECTION_COLUMN_ID } from "../Table.const.js";
3
+ import { TableRowSelection } from "../components/TableBody/TableRowSelection/TableRowSelection.js";
4
+ const processColumns = (columns, selection, texts) => {
5
+ const selectionColumn = {
6
+ id: SELECTION_COLUMN_ID,
7
+ size: 64,
8
+ minSize: 64,
9
+ maxSize: 64,
10
+ meta: {
11
+ style: {
12
+ paddingRight: "8px"
13
+ }
14
+ },
15
+ header: "",
16
+ cell: ({
17
+ row
18
+ }) => /* @__PURE__ */ jsx(TableRowSelection, { row, texts })
19
+ };
20
+ return selection ? [selectionColumn, ...columns] : columns;
21
+ };
22
+ export {
23
+ processColumns
24
+ };
@@ -0,0 +1,3 @@
1
+ import { Column, SortDirection } from '@tanstack/react-table';
2
+ export declare const isSorted: <TData>(column: Column<TData>) => boolean;
3
+ export declare const getSortOrder: <TData>(column: Column<TData>) => false | SortDirection;
@@ -0,0 +1,14 @@
1
+ const isSorted = (column) => {
2
+ return Boolean(column.columnDef.meta?.sortOrder ?? column.getIsSorted());
3
+ };
4
+ const SORT_ORDER = {
5
+ ascend: "asc",
6
+ descend: "desc"
7
+ };
8
+ const getSortOrder = (column) => {
9
+ return column.columnDef.meta?.sortOrder ? SORT_ORDER[column.columnDef.meta?.sortOrder] : column.getIsSorted();
10
+ };
11
+ export {
12
+ getSortOrder,
13
+ isSorted
14
+ };
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@synerise/ds-table-new",
3
+ "version": "0.1.0",
4
+ "description": "TableNew UI Component for the Synerise Design System",
5
+ "license": "ISC",
6
+ "repository": "Synerise/synerise-design",
7
+ "main": "dist/index.js",
8
+ "files": [
9
+ "/dist",
10
+ "CHANGELOG.md",
11
+ "README.md",
12
+ "package.json",
13
+ "LICENSE.md"
14
+ ],
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "scripts": {
19
+ "build": "vite build",
20
+ "build:watch": "vite build --watch",
21
+ "defs": "tsc --declaration --outDir dist/ --emitDeclarationOnly",
22
+ "prepublish": "pnpm run build",
23
+ "types": "tsc --noEmit",
24
+ "pack:ci": "pnpm pack --pack-destination ../../storybook/storybook-static/static",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "check:circular-dependencies": "madge --circular --extensions ts,tsx,js,jsx --ts-config tsconfig.json src/ --exclude '/dist/'",
28
+ "upgrade:ds": "ncu -f \"@synerise/ds-*\" -u"
29
+ },
30
+ "sideEffects": [
31
+ "dist/style/*",
32
+ "*.less"
33
+ ],
34
+ "types": "dist/index.d.ts",
35
+ "dependencies": {
36
+ "@floating-ui/react": "^0.27.16",
37
+ "@synerise/ds-badge": "^1.0.46",
38
+ "@synerise/ds-button": "^1.5.20",
39
+ "@synerise/ds-checkbox": "^1.2.23",
40
+ "@synerise/ds-copy-icon": "^1.2.4",
41
+ "@synerise/ds-dropdown": "^1.3.4",
42
+ "@synerise/ds-flag": "^1.0.10",
43
+ "@synerise/ds-icon": "^1.15.3",
44
+ "@synerise/ds-inline-alert": "^1.1.17",
45
+ "@synerise/ds-input": "^1.7.0",
46
+ "@synerise/ds-input-number": "^1.2.37",
47
+ "@synerise/ds-loader": "^1.0.15",
48
+ "@synerise/ds-modal": "^1.4.3",
49
+ "@synerise/ds-pagination": "^1.0.55",
50
+ "@synerise/ds-result": "^1.0.51",
51
+ "@synerise/ds-scrollbar": "^1.2.19",
52
+ "@synerise/ds-search": "^1.5.12",
53
+ "@synerise/ds-skeleton": "^1.0.47",
54
+ "@synerise/ds-table": "^1.10.0",
55
+ "@synerise/ds-tag": "^1.4.20",
56
+ "@synerise/ds-tags": "^1.5.30",
57
+ "@synerise/ds-tooltip": "^1.4.12",
58
+ "@synerise/ds-typography": "^1.1.15",
59
+ "@synerise/ds-utils": "^1.8.0",
60
+ "@tanstack/react-table": "^8.21.3",
61
+ "@tanstack/react-virtual": "^3.13.12",
62
+ "unit-to-px": "^1.0.5",
63
+ "uuid": "^10.0.0"
64
+ },
65
+ "devDependencies": {
66
+ "vitest": "4"
67
+ },
68
+ "peerDependencies": {
69
+ "@synerise/ds-core": "*",
70
+ "antd": "^4.24.16",
71
+ "react": ">=16.9.0 <= 18.3.1",
72
+ "react-intl": ">= 3.12.0 <= 6.8",
73
+ "styled-components": "^5.3.3"
74
+ },
75
+ "gitHead": "ce3c6d75efe8573a2b274853636f959b75a6cd32"
76
+ }