impact-ui 4.0.18 → 5.0.0-alpha.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 (178) hide show
  1. package/README.md +8 -9
  2. package/dist/_virtual/_commonjsHelpers.js +0 -2
  3. package/dist/components/Input/index.js +2 -2
  4. package/dist/components/KeyboardShortCuts/ShortcutLandingPage.js +1 -1
  5. package/dist/components/KeyboardShortCuts/ShortcutModal.js +1 -1
  6. package/dist/components/KeyboardShortCuts/allSetBox.js +1 -1
  7. package/dist/components/KeyboardShortCuts/index.d.ts.map +1 -1
  8. package/dist/components/KeyboardShortCuts/index.js +38 -112
  9. package/dist/components/KeyboardShortCuts/tutorial.js +1 -1
  10. package/dist/components/OnboardingTour/index.d.ts +61 -0
  11. package/dist/components/OnboardingTour/index.d.ts.map +1 -0
  12. package/dist/components/OnboardingTour/index.js +232 -0
  13. package/dist/components/OnboardingTour/productTourList.d.ts +39 -0
  14. package/dist/components/OnboardingTour/productTourList.d.ts.map +1 -0
  15. package/dist/components/OnboardingTour/productTourList.js +86 -0
  16. package/dist/components/OnboardingTour/tooltipCard.d.ts +45 -0
  17. package/dist/components/OnboardingTour/tooltipCard.d.ts.map +1 -0
  18. package/dist/components/OnboardingTour/tooltipCard.js +96 -0
  19. package/dist/components/OnboardingTour/useTooltipCardPosition.d.ts +29 -0
  20. package/dist/components/OnboardingTour/useTooltipCardPosition.d.ts.map +1 -0
  21. package/dist/components/OnboardingTour/useTooltipCardPosition.js +221 -0
  22. package/dist/components/Select/index.d.ts.map +1 -1
  23. package/dist/components/Select/index.js +14 -5
  24. package/dist/components/{Table → TableV36}/AdvanceSearchModalItem.d.ts +3 -1
  25. package/dist/components/TableV36/AdvanceSearchModalItem.d.ts.map +1 -0
  26. package/dist/components/{Table → TableV36}/AdvanceSortModal.d.ts +3 -1
  27. package/dist/components/TableV36/AdvanceSortModal.d.ts.map +1 -0
  28. package/dist/components/{Table → TableV36}/AdvanceSortModal.js +41 -37
  29. package/dist/components/{Table → TableV36}/AgGridHeader.d.ts +2 -1
  30. package/dist/components/TableV36/AgGridHeader.d.ts.map +1 -0
  31. package/dist/components/{Table → TableV36}/AgGridHeader.js +93 -105
  32. package/dist/components/TableV36/AgGridHeaderGroup.d.ts +3 -0
  33. package/dist/components/TableV36/AgGridHeaderGroup.d.ts.map +1 -0
  34. package/dist/components/TableV36/AgGridHeaderGroup.js +29 -0
  35. package/dist/components/TableV36/CellTooltip.d.ts +14 -0
  36. package/dist/components/TableV36/CellTooltip.d.ts.map +1 -0
  37. package/dist/components/TableV36/CellTooltip.js +11 -0
  38. package/dist/components/{Table → TableV36}/CommentsPortal.d.ts +5 -3
  39. package/dist/components/TableV36/CommentsPortal.d.ts.map +1 -0
  40. package/dist/components/{Table → TableV36}/CommentsPortal.js +6 -10
  41. package/dist/components/TableV36/HighlightedText.d.ts +11 -0
  42. package/dist/components/TableV36/HighlightedText.d.ts.map +1 -0
  43. package/dist/components/TableV36/HighlightedText.js +20 -0
  44. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts.map +1 -0
  45. package/dist/components/{Table → TableV36}/NewAdvanceSearchModal/NewAdvanceSearchModal.js +26 -26
  46. package/dist/components/{Table → TableV36}/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts +5 -4
  47. package/dist/components/TableV36/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts.map +1 -0
  48. package/dist/components/{Table → TableV36}/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +19 -43
  49. package/dist/components/{Table → TableV36}/NoComments.d.ts +3 -1
  50. package/dist/components/TableV36/NoComments.d.ts.map +1 -0
  51. package/dist/components/{Table → TableV36}/NoComments.js +3 -5
  52. package/dist/components/TableV36/Table.types.d.ts +127 -0
  53. package/dist/components/TableV36/Table.types.d.ts.map +1 -0
  54. package/dist/components/TableV36/TableSkeletonCell.d.ts +18 -0
  55. package/dist/components/TableV36/TableSkeletonCell.d.ts.map +1 -0
  56. package/dist/components/TableV36/TableSkeletonCell.js +38 -0
  57. package/dist/components/TableV36/TableV36PortalContext.d.ts +6 -0
  58. package/dist/components/TableV36/TableV36PortalContext.d.ts.map +1 -0
  59. package/dist/components/TableV36/TableV36PortalContext.js +10 -0
  60. package/dist/components/{TableOld → TableV36}/actionBar.d.ts +3 -1
  61. package/dist/components/TableV36/actionBar.d.ts.map +1 -0
  62. package/dist/components/{Table → TableV36}/actionBar.js +1 -5
  63. package/dist/components/{Table → TableV36}/advanceSearchModal.d.ts +3 -1
  64. package/dist/components/TableV36/advanceSearchModal.d.ts.map +1 -0
  65. package/dist/components/{Table → TableV36}/filterUtils.d.ts +2 -56
  66. package/dist/components/TableV36/filterUtils.d.ts.map +1 -0
  67. package/dist/components/{Table → TableV36}/filterUtils.js +17 -100
  68. package/dist/components/TableV36/index.d.ts +3 -0
  69. package/dist/components/TableV36/index.d.ts.map +1 -0
  70. package/dist/components/TableV36/index.js +1858 -0
  71. package/dist/components/TableV36/mockData.d.ts.map +1 -0
  72. package/dist/components/TableV36/resolveTableLoadingOptions.d.ts +62 -0
  73. package/dist/components/TableV36/resolveTableLoadingOptions.d.ts.map +1 -0
  74. package/dist/components/TableV36/resolveTableLoadingOptions.js +52 -0
  75. package/dist/components/TableV36/resolveTableLoadingOptions.test.d.ts +2 -0
  76. package/dist/components/TableV36/resolveTableLoadingOptions.test.d.ts.map +1 -0
  77. package/dist/components/{TableOld → TableV36}/tableFunctions.d.ts +14 -10
  78. package/dist/components/TableV36/tableFunctions.d.ts.map +1 -0
  79. package/dist/components/{shared/tableColumnSettings/columnsTabV36.js → TableV36/tableFunctions.js} +666 -292
  80. package/dist/components/{Table → TableV36}/tableHeader.d.ts +7 -3
  81. package/dist/components/TableV36/tableHeader.d.ts.map +1 -0
  82. package/dist/components/{Table → TableV36}/tableHeader.js +26 -30
  83. package/dist/components/{TableOld → TableV36}/tableIcons.d.ts.map +1 -1
  84. package/dist/components/{Table → TableV36}/tableMoreOptions.d.ts +7 -3
  85. package/dist/components/TableV36/tableMoreOptions.d.ts.map +1 -0
  86. package/dist/components/{Table → TableV36}/tableMoreOptions.js +66 -86
  87. package/dist/components/{Table → TableV36}/tablePagination.d.ts +3 -1
  88. package/dist/components/TableV36/tablePagination.d.ts.map +1 -0
  89. package/dist/components/{Table → TableV36}/tablePagination.js +9 -16
  90. package/dist/components/{Table → TableV36}/tableSettings.d.ts +6 -3
  91. package/dist/components/TableV36/tableSettings.d.ts.map +1 -0
  92. package/dist/components/{shared/tableColumnSettings/tableSettingsV36.js → TableV36/tableSettings.js} +34 -40
  93. package/dist/components/TableV36/tableUtils.d.ts +17 -0
  94. package/dist/components/TableV36/tableUtils.d.ts.map +1 -0
  95. package/dist/components/TableV36/tableUtils.js +60 -0
  96. package/dist/components/TableV36/withCommentIcon.d.ts +13 -0
  97. package/dist/components/TableV36/withCommentIcon.d.ts.map +1 -0
  98. package/dist/components/TableV36/withCommentIcon.js +134 -0
  99. package/dist/components/TextArea/index.js +1 -1
  100. package/dist/components/index.d.ts +3 -2
  101. package/dist/components/index.d.ts.map +1 -1
  102. package/dist/components/index.js +4 -4
  103. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts +2 -4
  104. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts.map +1 -1
  105. package/dist/mcp-component-registry.json +268 -337
  106. package/dist/node_modules/@impactsmartsuite/impact-icons/dist/index.js +250 -115
  107. package/dist/stories/tableStoryDefaults.d.ts +1 -1
  108. package/dist/stories/tableStoryDefaults.d.ts.map +1 -1
  109. package/dist/stories/tableStoryManyColumns.d.ts +1 -1
  110. package/dist/stories/tableV36ChatApiMock.d.ts +420 -0
  111. package/dist/stories/tableV36ChatApiMock.d.ts.map +1 -0
  112. package/dist/utils/helper.js +0 -60
  113. package/package.json +8 -8
  114. package/dist/_virtual/lodash.js +0 -4
  115. package/dist/components/Table/AdvanceSearchModalItem.d.ts.map +0 -1
  116. package/dist/components/Table/AdvanceSearchModalItem.js +0 -313
  117. package/dist/components/Table/AdvanceSortModal.d.ts.map +0 -1
  118. package/dist/components/Table/AgGridHeader.d.ts.map +0 -1
  119. package/dist/components/Table/CommentsPortal.d.ts.map +0 -1
  120. package/dist/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts.map +0 -1
  121. package/dist/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModalItem.d.ts.map +0 -1
  122. package/dist/components/Table/NoComments.d.ts.map +0 -1
  123. package/dist/components/Table/Table.types.d.ts +0 -40
  124. package/dist/components/Table/Table.types.d.ts.map +0 -1
  125. package/dist/components/Table/actionBar.d.ts +0 -7
  126. package/dist/components/Table/actionBar.d.ts.map +0 -1
  127. package/dist/components/Table/advanceSearchModal.d.ts.map +0 -1
  128. package/dist/components/Table/advanceSearchModal.js +0 -601
  129. package/dist/components/Table/agGridLocale.d.ts +0 -33
  130. package/dist/components/Table/agGridLocale.d.ts.map +0 -1
  131. package/dist/components/Table/agGridLocale.js +0 -59
  132. package/dist/components/Table/filterUtils.d.ts.map +0 -1
  133. package/dist/components/Table/filterUtils.test.d.ts +0 -2
  134. package/dist/components/Table/filterUtils.test.d.ts.map +0 -1
  135. package/dist/components/Table/index.d.ts +0 -4
  136. package/dist/components/Table/index.d.ts.map +0 -1
  137. package/dist/components/Table/index.js +0 -1441
  138. package/dist/components/Table/mockData.d.ts.map +0 -1
  139. package/dist/components/Table/tableFunctions.d.ts +0 -57
  140. package/dist/components/Table/tableFunctions.d.ts.map +0 -1
  141. package/dist/components/Table/tableFunctions.js +0 -1317
  142. package/dist/components/Table/tableHeader.d.ts.map +0 -1
  143. package/dist/components/Table/tableIcons.d.ts.map +0 -1
  144. package/dist/components/Table/tableMoreOptions.d.ts.map +0 -1
  145. package/dist/components/Table/tablePagination.d.ts.map +0 -1
  146. package/dist/components/Table/tableSettings.d.ts.map +0 -1
  147. package/dist/components/Table/tableSettings.js +0 -282
  148. package/dist/components/Table/withCommentIcon.d.ts +0 -2
  149. package/dist/components/Table/withCommentIcon.d.ts.map +0 -1
  150. package/dist/components/Table/withCommentIcon.js +0 -88
  151. package/dist/components/TableOld/AgGridHeader.d.ts +0 -14
  152. package/dist/components/TableOld/AgGridHeader.d.ts.map +0 -1
  153. package/dist/components/TableOld/AgGridHeader.js +0 -496
  154. package/dist/components/TableOld/actionBar.d.ts.map +0 -1
  155. package/dist/components/TableOld/actionBar.js +0 -35
  156. package/dist/components/TableOld/index.d.ts +0 -3
  157. package/dist/components/TableOld/index.d.ts.map +0 -1
  158. package/dist/components/TableOld/index.js +0 -645
  159. package/dist/components/TableOld/mockData.d.ts +0 -39
  160. package/dist/components/TableOld/mockData.d.ts.map +0 -1
  161. package/dist/components/TableOld/tableFunctions.d.ts.map +0 -1
  162. package/dist/components/TableOld/tableFunctions.js +0 -1321
  163. package/dist/components/TableOld/tableHeader.d.ts +0 -53
  164. package/dist/components/TableOld/tableHeader.d.ts.map +0 -1
  165. package/dist/components/TableOld/tableHeader.js +0 -229
  166. package/dist/components/TableOld/tableIcons.d.ts +0 -5
  167. package/dist/components/TableOld/tablePagination.d.ts +0 -8
  168. package/dist/components/TableOld/tablePagination.d.ts.map +0 -1
  169. package/dist/components/TableOld/tablePagination.js +0 -80
  170. package/dist/components/TableOld/tableSettings.d.ts +0 -11
  171. package/dist/components/TableOld/tableSettings.d.ts.map +0 -1
  172. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.js +0 -52
  173. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.js +0 -264
  174. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.js +0 -298
  175. package/dist/node_modules/lodash/lodash.js +0 -5486
  176. /package/dist/components/{Table → TableV36}/NewAdvanceSearchModal/NewAdvanceSearchModal.d.ts +0 -0
  177. /package/dist/components/{Table → TableV36}/mockData.d.ts +0 -0
  178. /package/dist/components/{Table → TableV36}/tableIcons.d.ts +0 -0
@@ -1,264 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { memo, useMemo, useCallback } from "react";
3
- import { useSortable } from "@dnd-kit/sortable";
4
- import { CSS } from "@dnd-kit/utilities";
5
- import default_1 from "../../../node_modules/@mui/icons-material/KeyboardArrowRight.js";
6
- import default_1$1 from "../../../node_modules/@mui/icons-material/KeyboardArrowUp.js";
7
- import { Checkbox } from "../../Checkbox/index.js";
8
- import { useTranslation } from "../../../i18n/useTranslation.js";
9
- import IconButton from "../../../node_modules/@mui/material/IconButton/IconButton.js";
10
- import DragIndicator from "../../../node_modules/@mui/icons-material/esm/DragIndicator.js";
11
- const capitalizeHeader = (name) => name ? name.charAt(0).toUpperCase() + name.slice(1) : "";
12
- const SETTINGS_COLUMN_INDENT_STEP = 28;
13
- const SETTINGS_SCROLL_COLUMN_INDENT_BASE = 48;
14
- const SETTINGS_FROZEN_COLUMN_INDENT_BASE = 20;
15
- const getSettingsRowPaddingLeft = (rowClassName, level) => {
16
- const isFrozen = rowClassName == null ? void 0 : rowClassName.includes("frozen-columns-list-item");
17
- const base = isFrozen ? SETTINGS_FROZEN_COLUMN_INDENT_BASE : SETTINGS_SCROLL_COLUMN_INDENT_BASE;
18
- return base + level * SETTINGS_COLUMN_INDENT_STEP;
19
- };
20
- const ColumnRowContent = memo(function ColumnRowContent2({
21
- column,
22
- level,
23
- isCollapsed,
24
- hasChildren,
25
- isIndeterminate,
26
- checkboxChecked,
27
- reserveCollapseSlot,
28
- rowClassName,
29
- dragIconClass,
30
- onToggleCollapse,
31
- onToggleVisibility,
32
- onKeyboardReorder,
33
- dragHandleProps,
34
- isOverlay
35
- }) {
36
- const { t } = useTranslation();
37
- const rowStyle = useMemo(
38
- () => ({
39
- ["--indent-level"]: level,
40
- // Inline padding wins over legacy Table.scss (8px / 50px list) in virtualized lists.
41
- paddingLeft: `${getSettingsRowPaddingLeft(rowClassName, level)}px`,
42
- boxSizing: "border-box"
43
- }),
44
- [level, rowClassName]
45
- );
46
- const handleCollapseClick = useCallback(
47
- (e) => {
48
- e.stopPropagation();
49
- onToggleCollapse == null ? void 0 : onToggleCollapse(column.colId);
50
- },
51
- [onToggleCollapse, column.colId]
52
- );
53
- const handleVisibilityChange = useCallback(() => {
54
- onToggleVisibility == null ? void 0 : onToggleVisibility(column.colId);
55
- }, [onToggleVisibility, column.colId]);
56
- const handleRowKeyDown = useCallback(
57
- (e) => {
58
- var _a, _b, _c, _d;
59
- if (isOverlay) return;
60
- const current = e.currentTarget;
61
- if (e.altKey && (e.key === "ArrowUp" || e.key === "ArrowDown")) {
62
- e.preventDefault();
63
- onKeyboardReorder == null ? void 0 : onKeyboardReorder(column.colId, e.key === "ArrowUp" ? -1 : 1);
64
- return;
65
- }
66
- switch (e.key) {
67
- case "ArrowDown": {
68
- e.preventDefault();
69
- const next = (_b = (_a = current.parentElement) == null ? void 0 : _a.nextElementSibling) == null ? void 0 : _b.querySelector('[role="treeitem"]');
70
- next == null ? void 0 : next.focus();
71
- break;
72
- }
73
- case "ArrowUp": {
74
- e.preventDefault();
75
- const prev = (_d = (_c = current.parentElement) == null ? void 0 : _c.previousElementSibling) == null ? void 0 : _d.querySelector('[role="treeitem"]');
76
- prev == null ? void 0 : prev.focus();
77
- break;
78
- }
79
- case "ArrowRight": {
80
- if (hasChildren && isCollapsed) {
81
- e.preventDefault();
82
- onToggleCollapse == null ? void 0 : onToggleCollapse(column.colId);
83
- }
84
- break;
85
- }
86
- case "ArrowLeft": {
87
- if (hasChildren && !isCollapsed) {
88
- e.preventDefault();
89
- onToggleCollapse == null ? void 0 : onToggleCollapse(column.colId);
90
- }
91
- break;
92
- }
93
- case "Enter":
94
- case " ": {
95
- if (column.disabled) break;
96
- e.preventDefault();
97
- onToggleVisibility == null ? void 0 : onToggleVisibility(column.colId);
98
- break;
99
- }
100
- }
101
- },
102
- [
103
- isOverlay,
104
- level,
105
- hasChildren,
106
- isCollapsed,
107
- onToggleCollapse,
108
- onToggleVisibility,
109
- onKeyboardReorder,
110
- column.colId,
111
- column.disabled
112
- ]
113
- );
114
- return /* @__PURE__ */ jsxs(
115
- "div",
116
- {
117
- "aria-checked": isIndeterminate ? "mixed" : checkboxChecked,
118
- "aria-expanded": hasChildren ? !isCollapsed : void 0,
119
- "aria-label": column.headerName,
120
- "aria-roledescription": !isOverlay && dragHandleProps ? t("table.columns.sortableRole") : void 0,
121
- "aria-selected": !!checkboxChecked,
122
- className: rowClassName,
123
- "data-col-id": column.colId,
124
- role: "treeitem",
125
- style: rowStyle,
126
- tabIndex: isOverlay ? -1 : 0,
127
- onKeyDown: handleRowKeyDown,
128
- children: [
129
- /* @__PURE__ */ jsxs("div", { className: "table-setting-column-leading", children: [
130
- reserveCollapseSlot && /* @__PURE__ */ jsx("span", { "aria-hidden": !hasChildren, className: "table-setting-column-collapse-slot", children: hasChildren ? /* @__PURE__ */ jsx(
131
- IconButton,
132
- {
133
- "aria-label": isCollapsed ? t("table.columns.expandGroup") : t("table.columns.collapseGroup"),
134
- className: "table-setting-column-collapse-btn",
135
- onClick: handleCollapseClick,
136
- children: isCollapsed ? /* @__PURE__ */ jsx(default_1, {}) : /* @__PURE__ */ jsx(default_1$1, {})
137
- }
138
- ) : null }),
139
- /* @__PURE__ */ jsx(
140
- Checkbox,
141
- {
142
- checked: checkboxChecked,
143
- disabled: column.disabled || isOverlay,
144
- variant: isIndeterminate ? "dashed" : "default",
145
- onChange: handleVisibilityChange
146
- }
147
- )
148
- ] }),
149
- /* @__PURE__ */ jsxs("div", { className: "table-setting-column-trailing", children: [
150
- dragHandleProps && /* @__PURE__ */ jsx(
151
- "span",
152
- {
153
- className: "table-setting-column-drag-handle",
154
- ...dragHandleProps,
155
- "aria-label": t("table.columns.reorder", { name: column.headerName }),
156
- children: /* @__PURE__ */ jsx(DragIndicator, { className: dragIconClass })
157
- }
158
- ),
159
- /* @__PURE__ */ jsx("span", { className: "table-setting-column-name", children: capitalizeHeader(column.headerName) })
160
- ] })
161
- ]
162
- }
163
- );
164
- });
165
- const areSortablePropsEqual = (prev, next) => prev.column.colId === next.column.colId && prev.column.isVisible === next.column.isVisible && prev.column.headerName === next.column.headerName && prev.column.disabled === next.column.disabled && prev.isIndeterminate === next.isIndeterminate && prev.checkboxChecked === next.checkboxChecked && prev.reserveCollapseSlot === next.reserveCollapseSlot && prev.level === next.level && prev.isCollapsed === next.isCollapsed && prev.hasChildren === next.hasChildren && prev.rowClassName === next.rowClassName && prev.dragIconClass === next.dragIconClass && prev.onToggleCollapse === next.onToggleCollapse && prev.onToggleVisibility === next.onToggleVisibility && prev.onKeyboardReorder === next.onKeyboardReorder && prev.children === next.children;
166
- const SortableColumnItem = memo(function SortableColumnItem2({
167
- column,
168
- level,
169
- isCollapsed,
170
- hasChildren,
171
- isIndeterminate,
172
- checkboxChecked,
173
- reserveCollapseSlot,
174
- rowClassName,
175
- dragIconClass,
176
- onToggleCollapse,
177
- onToggleVisibility,
178
- onKeyboardReorder,
179
- children
180
- }) {
181
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
182
- id: column.colId
183
- });
184
- const style = useMemo(
185
- () => ({
186
- transform: CSS.Transform.toString(transform),
187
- transition,
188
- opacity: isDragging ? 0 : void 0,
189
- zIndex: isDragging ? 0 : void 0
190
- }),
191
- [transform, transition, isDragging]
192
- );
193
- return /* @__PURE__ */ jsxs(
194
- "div",
195
- {
196
- ref: setNodeRef,
197
- className: isDragging ? "table-setting-column-sortable--dragging" : void 0,
198
- style,
199
- children: [
200
- /* @__PURE__ */ jsx(
201
- ColumnRowContent,
202
- {
203
- checkboxChecked,
204
- column,
205
- dragHandleProps: { ...attributes, ...listeners },
206
- dragIconClass,
207
- hasChildren,
208
- isCollapsed,
209
- isIndeterminate,
210
- level,
211
- reserveCollapseSlot,
212
- rowClassName,
213
- onKeyboardReorder,
214
- onToggleCollapse,
215
- onToggleVisibility
216
- }
217
- ),
218
- hasChildren && !isCollapsed && children
219
- ]
220
- }
221
- );
222
- }, areSortablePropsEqual);
223
- const NestedColumnItem = memo(function NestedColumnItem2({
224
- column,
225
- level,
226
- isCollapsed,
227
- hasChildren,
228
- isIndeterminate,
229
- checkboxChecked,
230
- reserveCollapseSlot,
231
- rowClassName,
232
- dragIconClass,
233
- onToggleCollapse,
234
- onToggleVisibility,
235
- children
236
- }) {
237
- return /* @__PURE__ */ jsxs("div", { children: [
238
- /* @__PURE__ */ jsx(
239
- ColumnRowContent,
240
- {
241
- checkboxChecked,
242
- column,
243
- dragIconClass,
244
- hasChildren,
245
- isCollapsed,
246
- isIndeterminate,
247
- level,
248
- reserveCollapseSlot,
249
- rowClassName,
250
- onToggleCollapse,
251
- onToggleVisibility
252
- }
253
- ),
254
- hasChildren && !isCollapsed && children
255
- ] });
256
- });
257
- export {
258
- NestedColumnItem,
259
- SETTINGS_COLUMN_INDENT_STEP,
260
- SETTINGS_FROZEN_COLUMN_INDENT_BASE,
261
- SETTINGS_SCROLL_COLUMN_INDENT_BASE,
262
- SortableColumnItem,
263
- capitalizeHeader
264
- };
@@ -1,298 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import React__default, { useRef, useCallback, useEffect, useLayoutEffect, memo } from "react";
3
- import { FixedSizeList } from "react-window";
4
- import { SortableColumnItem, NestedColumnItem } from "./columnsSettingsColumnRow.js";
5
- import { useTranslation } from "../../../i18n/useTranslation.js";
6
- const SETTINGS_ROW_HEIGHT = 28;
7
- const SETTINGS_VIRTUALIZE_THRESHOLD = 300;
8
- const SETTINGS_FROZEN_LIST_MAX_HEIGHT = 204;
9
- const SETTINGS_SCROLL_LIST_MAX_HEIGHT = 408;
10
- const SETTINGS_FROZEN_SECTION_CHROME = 31;
11
- const SETTINGS_SCROLL_SECTION_CHROME = 68;
12
- const SETTINGS_SECTION_GAP = 8;
13
- const SETTINGS_LIST_SAFETY_MARGIN = 4;
14
- const SETTINGS_MIN_LIST_HEIGHT = SETTINGS_ROW_HEIGHT * 2;
15
- const SETTINGS_FROZEN_HEIGHT_SHARE = 0.35;
16
- const SETTINGS_AUTO_SCROLL_EDGE = 36;
17
- const SETTINGS_AUTO_SCROLL_STEP = 16;
18
- const scrollListTowardPointer = (listEl, clientY) => {
19
- if (!listEl || clientY == null) return false;
20
- const rect = listEl.getBoundingClientRect();
21
- if (clientY < rect.top || clientY > rect.bottom) return false;
22
- if (clientY - rect.top < SETTINGS_AUTO_SCROLL_EDGE) {
23
- listEl.scrollTop -= SETTINGS_AUTO_SCROLL_STEP;
24
- return true;
25
- }
26
- if (rect.bottom - clientY < SETTINGS_AUTO_SCROLL_EDGE) {
27
- listEl.scrollTop += SETTINGS_AUTO_SCROLL_STEP;
28
- return true;
29
- }
30
- return false;
31
- };
32
- const buildCheckStateMap = (columnGroups) => {
33
- const map = /* @__PURE__ */ new Map();
34
- const visit = (column) => {
35
- var _a;
36
- if (!((_a = column.children) == null ? void 0 : _a.length)) {
37
- map.set(column.colId, { checked: !!column.isVisible, indeterminate: false });
38
- return { leaves: 1, visible: column.isVisible ? 1 : 0 };
39
- }
40
- let leaves = 0;
41
- let visible = 0;
42
- column.children.forEach((child) => {
43
- const result = visit(child);
44
- leaves += result.leaves;
45
- visible += result.visible;
46
- });
47
- map.set(column.colId, {
48
- checked: visible > 0,
49
- indeterminate: visible > 0 && visible < leaves
50
- });
51
- return { leaves, visible };
52
- };
53
- columnGroups.forEach((columns) => (columns || []).forEach(visit));
54
- return map;
55
- };
56
- const flattenColumnRows = (columns, collapsedMap, section) => {
57
- const rows = [];
58
- const walk = (cols, level) => {
59
- (cols || []).forEach((column) => {
60
- if (level === 0 && column.headerName === "N/A") return;
61
- const hasChildren = Array.isArray(column.children) && column.children.length > 0;
62
- const isCollapsed = !!collapsedMap[column.colId];
63
- rows.push({ column, level, section, hasChildren, isCollapsed });
64
- if (hasChildren && !isCollapsed) {
65
- walk(column.children, level + 1);
66
- }
67
- });
68
- };
69
- walk(columns, 0);
70
- return rows;
71
- };
72
- const computeSettingsListHeights = ({
73
- shouldVirtualize,
74
- listViewportHeight,
75
- frozenRowCount,
76
- scrollableRowCount
77
- }) => {
78
- const frozenNatural = frozenRowCount * SETTINGS_ROW_HEIGHT;
79
- const scrollNatural = scrollableRowCount * SETTINGS_ROW_HEIGHT;
80
- if (!shouldVirtualize || !listViewportHeight) {
81
- return {
82
- frozen: Math.min(frozenNatural, SETTINGS_FROZEN_LIST_MAX_HEIGHT),
83
- scrollable: Math.min(scrollNatural, SETTINGS_SCROLL_LIST_MAX_HEIGHT)
84
- };
85
- }
86
- const hasFrozen = frozenRowCount > 0;
87
- const hasScrollable = scrollableRowCount > 0;
88
- const chrome = (hasFrozen ? SETTINGS_FROZEN_SECTION_CHROME : 0) + (hasScrollable ? SETTINGS_SCROLL_SECTION_CHROME : 0) + (hasFrozen && hasScrollable ? SETTINGS_SECTION_GAP : 0) + SETTINGS_LIST_SAFETY_MARGIN;
89
- const available = listViewportHeight - chrome;
90
- if (frozenNatural + scrollNatural <= available) {
91
- return { frozen: frozenNatural, scrollable: scrollNatural };
92
- }
93
- if (!hasFrozen || !hasScrollable) {
94
- const single = Math.max(SETTINGS_MIN_LIST_HEIGHT, available);
95
- return {
96
- frozen: hasFrozen ? single : 0,
97
- scrollable: hasScrollable ? single : 0
98
- };
99
- }
100
- const frozenCap = Math.max(
101
- SETTINGS_MIN_LIST_HEIGHT,
102
- Math.floor(available * SETTINGS_FROZEN_HEIGHT_SHARE)
103
- );
104
- const frozen = Math.min(frozenNatural, frozenCap);
105
- return {
106
- frozen,
107
- scrollable: Math.max(SETTINGS_MIN_LIST_HEIGHT, available - frozen)
108
- };
109
- };
110
- const VirtualizedColumnRow = memo(function VirtualizedColumnRow2({ index, style, data }) {
111
- const { column, level, section, hasChildren, isCollapsed } = data.rows[index];
112
- const isFrozen = section === "frozen";
113
- const checkState = data.checkStateMap.get(column.colId) || {
114
- checked: !!column.isVisible,
115
- indeterminate: false
116
- };
117
- const rowProps = {
118
- checkboxChecked: checkState.checked,
119
- column,
120
- dragIconClass: isFrozen ? "table-setting-frozen-columns-list-drag-icon" : "table-setting-scroll-columns-list-drag-icon",
121
- hasChildren,
122
- isCollapsed,
123
- isIndeterminate: checkState.indeterminate,
124
- level,
125
- reserveCollapseSlot: isFrozen ? hasChildren : true,
126
- rowClassName: isFrozen ? "table-setting-frozen-columns-list-item" : "table-setting-scroll-inner-column",
127
- onToggleCollapse: isFrozen ? data.onToggleFrozenCollapse : data.onToggleScrollCollapse,
128
- onToggleVisibility: isFrozen ? data.onToggleVisibilityFrozen : data.onToggleVisibilityScroll
129
- };
130
- return /* @__PURE__ */ jsx("div", { className: "table-setting-column-virtual-row", style, children: column.isVisible !== false ? /* @__PURE__ */ jsx(SortableColumnItem, { ...rowProps, onKeyboardReorder: data.onKeyboardReorder }) : /* @__PURE__ */ jsx(NestedColumnItem, { ...rowProps }) });
131
- });
132
- const getVirtualRowKey = (index, data) => data.rows[index].column.colId;
133
- const createTreeListOuter = (labelKey) => {
134
- const TreeListOuter = React__default.forwardRef((props, ref) => {
135
- const { t } = useTranslation();
136
- return /* @__PURE__ */ jsx("div", { ref, "aria-label": t(labelKey), role: "tree", ...props });
137
- });
138
- TreeListOuter.displayName = `TreeListOuter(${labelKey})`;
139
- return TreeListOuter;
140
- };
141
- const FrozenListOuter = createTreeListOuter("table.columns.frozen");
142
- const ScrollableListOuter = createTreeListOuter("table.columns.scrollable");
143
- const getScrollRange = (el) => Math.max(0, el.scrollHeight - el.clientHeight);
144
- const getListScrollRange = (rowCount, viewportHeight) => Math.max(0, rowCount * SETTINGS_ROW_HEIGHT - viewportHeight);
145
- const VirtualColumnList = ({
146
- className,
147
- itemData,
148
- maxHeight,
149
- outerElementType,
150
- outerRef,
151
- rows
152
- }) => {
153
- const fixedListRef = useRef(null);
154
- const listOuterRef = useRef(null);
155
- const scrollbarRef = useRef(null);
156
- const isDraggingBarRef = useRef(false);
157
- const releaseBarRef = useRef(null);
158
- const listScrollRangeRef = useRef(0);
159
- const setOuterRef = useCallback(
160
- (node) => {
161
- listOuterRef.current = node;
162
- if (typeof outerRef === "function") {
163
- outerRef(node);
164
- } else if (outerRef) {
165
- outerRef.current = node;
166
- }
167
- },
168
- [outerRef]
169
- );
170
- const scrollListToOffset = useCallback((offset) => {
171
- var _a;
172
- const range = listScrollRangeRef.current;
173
- const clamped = Math.max(0, Math.min(offset, range));
174
- if ((_a = fixedListRef.current) == null ? void 0 : _a.scrollTo) {
175
- fixedListRef.current.scrollTo(clamped);
176
- } else if (listOuterRef.current) {
177
- listOuterRef.current.scrollTop = clamped;
178
- }
179
- }, []);
180
- const syncBarToListOffset = useCallback((listOffset) => {
181
- const bar = scrollbarRef.current;
182
- const listRange = listScrollRangeRef.current;
183
- if (!bar || listRange <= 0) return;
184
- const barRange = getScrollRange(bar);
185
- const ratio = listOffset / listRange;
186
- bar.scrollTop = ratio * barRange;
187
- }, []);
188
- const handleScrollbarPointerDown = useCallback((event) => {
189
- isDraggingBarRef.current = true;
190
- if (event.currentTarget.setPointerCapture) {
191
- event.currentTarget.setPointerCapture(event.pointerId);
192
- }
193
- const release = (ev) => {
194
- var _a;
195
- isDraggingBarRef.current = false;
196
- if (((_a = scrollbarRef.current) == null ? void 0 : _a.releasePointerCapture) && (ev == null ? void 0 : ev.pointerId) != null) {
197
- try {
198
- scrollbarRef.current.releasePointerCapture(ev.pointerId);
199
- } catch {
200
- }
201
- }
202
- window.removeEventListener("pointerup", release);
203
- window.removeEventListener("pointercancel", release);
204
- releaseBarRef.current = null;
205
- };
206
- releaseBarRef.current = release;
207
- window.addEventListener("pointerup", release);
208
- window.addEventListener("pointercancel", release);
209
- }, []);
210
- useEffect(() => () => {
211
- var _a;
212
- return (_a = releaseBarRef.current) == null ? void 0 : _a.call(releaseBarRef);
213
- }, []);
214
- const handleListScroll = useCallback(
215
- ({ scrollOffset }) => {
216
- if (isDraggingBarRef.current) return;
217
- syncBarToListOffset(scrollOffset);
218
- },
219
- [syncBarToListOffset]
220
- );
221
- const handleScrollbarScroll = useCallback(
222
- (event) => {
223
- const bar = event.currentTarget;
224
- const barRange = getScrollRange(bar);
225
- const listRange = listScrollRangeRef.current;
226
- if (barRange <= 0 || listRange <= 0) return;
227
- const ratio = bar.scrollTop / barRange;
228
- scrollListToOffset(ratio * listRange);
229
- },
230
- [scrollListToOffset]
231
- );
232
- const contentHeight = rows.length * SETTINGS_ROW_HEIGHT;
233
- const height = Math.max(
234
- SETTINGS_ROW_HEIGHT,
235
- Math.min(contentHeight || SETTINGS_ROW_HEIGHT, maxHeight)
236
- );
237
- const needsScrollbar = rows.length > 0 && contentHeight > height;
238
- listScrollRangeRef.current = getListScrollRange(rows.length, height);
239
- useLayoutEffect(() => {
240
- var _a;
241
- if (!needsScrollbar) return;
242
- const listOffset = ((_a = listOuterRef.current) == null ? void 0 : _a.scrollTop) ?? 0;
243
- syncBarToListOffset(listOffset);
244
- }, [needsScrollbar, height, rows.length, syncBarToListOffset]);
245
- if (rows.length === 0) return null;
246
- return /* @__PURE__ */ jsxs(
247
- "div",
248
- {
249
- className: `table-setting-column-virtual-wrapper ${needsScrollbar ? "has-detached-scrollbar" : ""}`,
250
- style: { height },
251
- children: [
252
- /* @__PURE__ */ jsx(
253
- FixedSizeList,
254
- {
255
- ref: fixedListRef,
256
- className: `${className} table-setting-column-virtual-list`,
257
- height,
258
- itemCount: rows.length,
259
- itemData,
260
- itemKey: getVirtualRowKey,
261
- itemSize: SETTINGS_ROW_HEIGHT,
262
- outerElementType,
263
- outerRef: setOuterRef,
264
- overscanCount: 8,
265
- width: "100%",
266
- onScroll: handleListScroll,
267
- children: VirtualizedColumnRow
268
- }
269
- ),
270
- needsScrollbar && /* @__PURE__ */ jsx(
271
- "div",
272
- {
273
- ref: scrollbarRef,
274
- "aria-hidden": "true",
275
- className: "table-setting-column-virtual-scrollbar",
276
- style: { height },
277
- onPointerDown: handleScrollbarPointerDown,
278
- onScroll: handleScrollbarScroll,
279
- children: /* @__PURE__ */ jsx("div", { style: { height: contentHeight, width: 1 } })
280
- }
281
- )
282
- ]
283
- }
284
- );
285
- };
286
- export {
287
- FrozenListOuter,
288
- SETTINGS_FROZEN_LIST_MAX_HEIGHT,
289
- SETTINGS_ROW_HEIGHT,
290
- SETTINGS_SCROLL_LIST_MAX_HEIGHT,
291
- SETTINGS_VIRTUALIZE_THRESHOLD,
292
- ScrollableListOuter,
293
- VirtualColumnList,
294
- buildCheckStateMap,
295
- computeSettingsListHeights,
296
- flattenColumnRows,
297
- scrollListTowardPointer
298
- };