impact-ui 4.0.15 → 4.0.17

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 (112) hide show
  1. package/README.md +3 -1
  2. package/dist/_virtual/index13.js +2 -2
  3. package/dist/_virtual/index14.js +2 -2
  4. package/dist/_virtual/index15.js +2 -2
  5. package/dist/components/CreateItemFlow/CreateItemFlow.types.d.ts +39 -16
  6. package/dist/components/CreateItemFlow/CreateItemFlow.types.d.ts.map +1 -1
  7. package/dist/components/CreateItemFlow/index.d.ts +2 -1
  8. package/dist/components/CreateItemFlow/index.d.ts.map +1 -1
  9. package/dist/components/CreateItemFlow/index.js +116 -66
  10. package/dist/components/DatePicker/datePickerDropdown.d.ts.map +1 -1
  11. package/dist/components/DatePicker/datePickerDropdown.js +3 -0
  12. package/dist/components/DatePicker/datePickerFooter.d.ts +3 -1
  13. package/dist/components/DatePicker/datePickerFooter.d.ts.map +1 -1
  14. package/dist/components/DatePicker/datePickerFooter.js +24 -2
  15. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts +1 -1
  16. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts.map +1 -1
  17. package/dist/components/DateRangePicker/dateRangePickerDropdown.js +35 -12
  18. package/dist/components/DateRangePicker/dateRangePickerFooter.d.ts +1 -1
  19. package/dist/components/DateRangePicker/dateRangePickerFooter.d.ts.map +1 -1
  20. package/dist/components/DateRangePicker/dateRangePickerFooter.js +5 -3
  21. package/dist/components/DateRangePicker/index.d.ts.map +1 -1
  22. package/dist/components/DateRangePicker/index.js +2 -0
  23. package/dist/components/DynamicLayout/index.d.ts +9 -12
  24. package/dist/components/DynamicLayout/index.d.ts.map +1 -1
  25. package/dist/components/DynamicLayout/index.js +37 -34
  26. package/dist/components/Header/index.js +2 -2
  27. package/dist/components/NewCreateItemFlow/NewCreateItemFlow.types.d.ts +21 -0
  28. package/dist/components/NewCreateItemFlow/NewCreateItemFlow.types.d.ts.map +1 -0
  29. package/dist/components/NewCreateItemFlow/index.d.ts +5 -0
  30. package/dist/components/NewCreateItemFlow/index.d.ts.map +1 -0
  31. package/dist/components/NewCreateItemFlow/index.js +93 -0
  32. package/dist/components/NewDynamicLayout/NewDynamicLayout.types.d.ts +26 -0
  33. package/dist/components/NewDynamicLayout/NewDynamicLayout.types.d.ts.map +1 -0
  34. package/dist/components/NewDynamicLayout/index.d.ts +15 -0
  35. package/dist/components/NewDynamicLayout/index.d.ts.map +1 -0
  36. package/dist/components/NewDynamicLayout/index.js +45 -0
  37. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.d.ts.map +1 -1
  38. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.js +6 -31
  39. package/dist/components/Notification/NotificationBody/NotificationPanelContent.js +2 -2
  40. package/dist/components/Notification/NotificationBody/NotificationTaskList.js +1 -2
  41. package/dist/components/Notification/index.js +1 -1
  42. package/dist/components/Table/AgGridHeader.d.ts.map +1 -1
  43. package/dist/components/Table/AgGridHeader.js +3 -1
  44. package/dist/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +1 -1
  45. package/dist/components/Table/Table.types.d.ts +4 -0
  46. package/dist/components/Table/Table.types.d.ts.map +1 -1
  47. package/dist/components/Table/filterUtils.d.ts +13 -0
  48. package/dist/components/Table/filterUtils.d.ts.map +1 -1
  49. package/dist/components/Table/filterUtils.js +18 -9
  50. package/dist/components/Table/index.d.ts.map +1 -1
  51. package/dist/components/Table/index.js +15 -5
  52. package/dist/components/Table/tableFunctions.d.ts +1 -0
  53. package/dist/components/Table/tableFunctions.d.ts.map +1 -1
  54. package/dist/components/Table/tableFunctions.js +2 -2
  55. package/dist/components/Table/tableHeader.d.ts +2 -1
  56. package/dist/components/Table/tableHeader.d.ts.map +1 -1
  57. package/dist/components/Table/tableHeader.js +2 -0
  58. package/dist/components/Table/tableMoreOptions.d.ts +2 -1
  59. package/dist/components/Table/tableMoreOptions.d.ts.map +1 -1
  60. package/dist/components/Table/tableMoreOptions.js +58 -14
  61. package/dist/components/Table/tableSettings.d.ts.map +1 -1
  62. package/dist/components/Table/tableSettings.js +3 -2
  63. package/dist/components/TableOld/index.d.ts.map +1 -1
  64. package/dist/components/TableOld/index.js +36 -10
  65. package/dist/components/TableOld/tableFunctions.d.ts +1 -0
  66. package/dist/components/TableOld/tableFunctions.d.ts.map +1 -1
  67. package/dist/components/TableOld/tableFunctions.js +2 -2
  68. package/dist/components/TableOld/tableHeader.d.ts +2 -1
  69. package/dist/components/TableOld/tableHeader.d.ts.map +1 -1
  70. package/dist/components/TableOld/tableHeader.js +2 -0
  71. package/dist/components/index.d.ts +5 -1
  72. package/dist/components/index.d.ts.map +1 -1
  73. package/dist/components/index.js +4 -0
  74. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts +17 -0
  75. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.d.ts.map +1 -0
  76. package/dist/components/shared/tableColumnSettings/agGridColumnSettingsApi.js +52 -0
  77. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.d.ts +12 -0
  78. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.d.ts.map +1 -0
  79. package/dist/components/shared/tableColumnSettings/columnsSettingsColumnRow.js +264 -0
  80. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.d.ts +39 -0
  81. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.d.ts.map +1 -0
  82. package/dist/components/shared/tableColumnSettings/columnsSettingsVirtualList.js +298 -0
  83. package/dist/components/shared/tableColumnSettings/columnsTabV36.d.ts +2 -0
  84. package/dist/components/shared/tableColumnSettings/columnsTabV36.d.ts.map +1 -0
  85. package/dist/components/shared/tableColumnSettings/columnsTabV36.js +1531 -0
  86. package/dist/components/shared/tableColumnSettings/index.d.ts +4 -0
  87. package/dist/components/shared/tableColumnSettings/index.d.ts.map +1 -0
  88. package/dist/components/shared/tableColumnSettings/tableSettingsV36.d.ts +41 -0
  89. package/dist/components/shared/tableColumnSettings/tableSettingsV36.d.ts.map +1 -0
  90. package/dist/components/shared/tableColumnSettings/tableSettingsV36.js +328 -0
  91. package/dist/i18n/I18nContext.d.ts.map +1 -1
  92. package/dist/i18n/I18nContext.js +1 -0
  93. package/dist/locales/de-DE.json.d.ts +12 -0
  94. package/dist/locales/de-DE.json.js +12 -0
  95. package/dist/locales/en-US.json.d.ts +13 -1
  96. package/dist/locales/en-US.json.js +13 -1
  97. package/dist/locales/es-ES.json.d.ts +678 -0
  98. package/dist/locales/es-ES.json.js +611 -0
  99. package/dist/locales/index.d.ts.map +1 -1
  100. package/dist/locales/index.js +11 -3
  101. package/dist/mcp-component-registry.json +102 -60
  102. package/dist/node_modules/@impactsmartsuite/impact-icons/dist/index.js +128 -75
  103. package/dist/node_modules/call-bind/index.js +1 -1
  104. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  105. package/dist/node_modules/moment/dist/locale/es.js +98 -0
  106. package/dist/node_modules/react-with-styles-interface-css/dist/index.js +1 -1
  107. package/dist/stories/LocaleDictionaryCollapse.d.ts.map +1 -1
  108. package/dist/stories/tableStoryDefaults.d.ts +18 -0
  109. package/dist/stories/tableStoryDefaults.d.ts.map +1 -0
  110. package/dist/stories/tableStoryManyColumns.d.ts +44 -0
  111. package/dist/stories/tableStoryManyColumns.d.ts.map +1 -0
  112. package/package.json +1 -1
@@ -0,0 +1,298 @@
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
+ };
@@ -0,0 +1,2 @@
1
+ export declare const ColumnsV36: import('react').ForwardRefExoticComponent<import('react').RefAttributes<unknown>>;
2
+ //# sourceMappingURL=columnsTabV36.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnsTabV36.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/tableColumnSettings/columnsTabV36.tsx"],"names":[],"mappings":"AAugBA,eAAO,MAAM,UAAU,mFA48CrB,CAAC"}