impact-ui 4.0.6 → 4.0.7-alpha.2
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.
- package/dist/_virtual/index3.js +4 -2
- package/dist/_virtual/index4.js +3 -3
- package/dist/_virtual/index5.js +2 -4
- package/dist/components/Accordion/index.d.ts.map +1 -1
- package/dist/components/Accordion/index.js +1 -0
- package/dist/components/BottomSheet/index.d.ts.map +1 -1
- package/dist/components/BottomSheet/index.js +27 -21
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +1 -0
- package/dist/components/Chatbot/Chatbot.types.d.ts +12 -1
- package/dist/components/Chatbot/Chatbot.types.d.ts.map +1 -1
- package/dist/components/Chatbot/chatInput.d.ts.map +1 -1
- package/dist/components/Chatbot/chatInput.js +22 -4
- package/dist/components/Chatbot/chatbotModuleMenu.d.ts +1 -1
- package/dist/components/Chatbot/chatbotModuleMenu.d.ts.map +1 -1
- package/dist/components/Chatbot/chatbotModuleMenu.js +162 -186
- package/dist/components/Chatbot/conversationScreen.d.ts +1 -1
- package/dist/components/Chatbot/conversationScreen.d.ts.map +1 -1
- package/dist/components/Chatbot/conversationScreen.js +7 -3
- package/dist/components/Chatbot/customScreen.d.ts +1 -1
- package/dist/components/Chatbot/customScreen.d.ts.map +1 -1
- package/dist/components/Chatbot/customScreen.js +26 -25
- package/dist/components/Chatbot/index.d.ts.map +1 -1
- package/dist/components/Chatbot/index.js +340 -242
- package/dist/components/Chatbot/newChatComponent.d.ts +1 -1
- package/dist/components/Chatbot/newChatComponent.d.ts.map +1 -1
- package/dist/components/Chatbot/newChatComponent.js +5 -2
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Chips/index.js +1 -1
- package/dist/components/CommentsPanel/CommentsPanel.impl.d.ts +2 -6
- package/dist/components/CommentsPanel/CommentsPanel.impl.d.ts.map +1 -1
- package/dist/components/CommentsPanel/CommentsPanel.impl.js +7 -2
- package/dist/components/CommentsPanel/CommentsPanel.types.d.ts +2 -2
- package/dist/components/CommentsPanel/CommentsPanel.types.d.ts.map +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/DateRangePicker/index.js +1 -1
- package/dist/components/FilterPanel/index.js +1 -1
- package/dist/components/Header/index.js +1 -1
- package/dist/components/HomePage/index.js +1 -1
- package/dist/components/Input/index.js +1 -1
- package/dist/components/KeyboardShortCuts/ShortcutLandingPage.js +1 -1
- package/dist/components/KeyboardShortCuts/ShortcutModal.js +1 -1
- package/dist/components/KeyboardShortCuts/allSetBox.js +1 -1
- package/dist/components/KeyboardShortCuts/index.js +1 -1
- package/dist/components/KeyboardShortCuts/tutorial.js +1 -1
- package/dist/components/Menu/IconMenuItem.d.ts.map +1 -1
- package/dist/components/Menu/IconMenuItem.js +2 -1
- package/dist/components/Menu/MenuHeaderInfo.js +1 -1
- package/dist/components/Menu/NestedMenuItem.js +2 -2
- package/dist/components/Menu/index.js +1 -1
- package/dist/components/Menu/nestedMenuItemsFromObject.js +1 -1
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/MonthPicker/index.js +1 -1
- package/dist/components/MonthRangePicker/index.js +1 -1
- package/dist/components/Notification/NotificationBody/NotificationList/NotificationList.js +1 -1
- package/dist/components/Notification/index.js +1 -1
- package/dist/components/Panel/index.js +1 -1
- package/dist/components/Prompt/index.js +1 -1
- package/dist/components/RadioButtonGroup/index.js +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Stepper/index.js +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Table/tableFunctions.d.ts.map +1 -1
- package/dist/components/Table/tableFunctions.js +105 -174
- package/dist/components/TableChat/components/TableChatLeftSection/TableChatChannelHeader.js +1 -1
- package/dist/components/TableOld/index.d.ts.map +1 -1
- package/dist/components/TableOld/index.js +2 -1
- package/dist/components/TableOld/tableFunctions.d.ts.map +1 -1
- package/dist/components/TableOld/tableFunctions.js +104 -173
- package/dist/components/TextArea/index.js +1 -1
- package/dist/components/common/HelperText/index.js +1 -1
- package/dist/hooks/useDraggableResizable.d.ts +104 -0
- package/dist/hooks/useDraggableResizable.d.ts.map +1 -0
- package/dist/hooks/useDraggableResizable.js +323 -0
- package/dist/hooks/useMediaQuery.d.ts +9 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/mcp-component-registry.json +1 -1
- package/dist/node_modules/@mui/system/colorManipulator.js +2 -2
- package/dist/node_modules/react-is/index.js +1 -1
- package/dist/stories/LocaleDictionaryCollapse.d.ts +6 -0
- package/dist/stories/LocaleDictionaryCollapse.d.ts.map +1 -0
- package/dist/utils/assetBase.d.ts +1 -0
- package/dist/utils/assetBase.d.ts.map +1 -1
- package/dist/utils/assetBase.js +4 -7
- package/dist/utils/assetBaseDefault.d.ts +11 -0
- package/dist/utils/assetBaseDefault.d.ts.map +1 -0
- package/dist/utils/assetBaseDefault.js +9 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/onResize.d.ts +24 -0
- package/dist/utils/onResize.d.ts.map +1 -0
- package/dist/utils/onResize.js +28 -0
- package/package.json +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableFunctions.d.ts","sourceRoot":"","sources":["../../../src/components/TableOld/tableFunctions.tsx"],"names":[],"mappings":"AAoDA,eAAO,MAAM,oBAAoB,GAAI,WAAM,SAQ1C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,WAAM,EAAE,aAAQ,SAK5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAM,SAK9C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,eAAU,EAAE,WAAM,EAAE,QAAG,SAM/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsItC,CAAC;
|
|
1
|
+
{"version":3,"file":"tableFunctions.d.ts","sourceRoot":"","sources":["../../../src/components/TableOld/tableFunctions.tsx"],"names":[],"mappings":"AAoDA,eAAO,MAAM,oBAAoB,GAAI,WAAM,SAQ1C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,WAAM,EAAE,aAAQ,SAK5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAM,SAK9C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,eAAU,EAAE,WAAM,EAAE,QAAG,SAM/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsItC,CAAC;AAiEF,eAAO,MAAM,OAAO,mFA0xClB,CAAC;AAEH,eAAO,MAAM,yBAAyB,GAAI,iBAAY,WAgBrD,CAAC"}
|
|
@@ -182,6 +182,34 @@ const getMainMenuItems = (params) => {
|
|
|
182
182
|
});
|
|
183
183
|
return columnMenuItems;
|
|
184
184
|
};
|
|
185
|
+
const filterColumnsByText = (columns, searchText) => {
|
|
186
|
+
if (!searchText) return columns;
|
|
187
|
+
return columns.map((column) => {
|
|
188
|
+
var _a;
|
|
189
|
+
const matches = (_a = column.headerName) == null ? void 0 : _a.toLowerCase().includes(searchText);
|
|
190
|
+
if (matches) {
|
|
191
|
+
return {
|
|
192
|
+
...column,
|
|
193
|
+
isVisible: column.isVisible
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
const filteredChildren = column.children ? filterColumnsByText(column.children, searchText) : null;
|
|
197
|
+
if ((filteredChildren == null ? void 0 : filteredChildren.length) > 0) {
|
|
198
|
+
return {
|
|
199
|
+
...column,
|
|
200
|
+
children: filteredChildren,
|
|
201
|
+
isVisible: column.isVisible
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return null;
|
|
205
|
+
}).filter(Boolean);
|
|
206
|
+
};
|
|
207
|
+
const isColumnTreeVisible = (columns) => columns.some(
|
|
208
|
+
(column) => {
|
|
209
|
+
var _a;
|
|
210
|
+
return ((_a = column.children) == null ? void 0 : _a.length) > 0 ? isColumnTreeVisible(column.children) : column.isVisible;
|
|
211
|
+
}
|
|
212
|
+
);
|
|
185
213
|
const SortableColumnItem = ({ column, level, renderFn, dragIconClass, onToggle, ...props }) => {
|
|
186
214
|
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
|
|
187
215
|
id: column.colId
|
|
@@ -237,6 +265,7 @@ const Columns = forwardRef((props, ref) => {
|
|
|
237
265
|
const [deleteView, setDeleteView] = useState(null);
|
|
238
266
|
const [selectedView, setSelectedView] = useState(null);
|
|
239
267
|
const isColumnPinnedRef = useRef(false);
|
|
268
|
+
const searchTextRef = useRef("");
|
|
240
269
|
useEffect(() => {
|
|
241
270
|
const views = props.savedViewsOptions ?? [];
|
|
242
271
|
setSavedViewsOptions(views);
|
|
@@ -324,10 +353,11 @@ const Columns = forwardRef((props, ref) => {
|
|
|
324
353
|
},
|
|
325
354
|
{ frozColumn: [], scrollColumn: [] }
|
|
326
355
|
);
|
|
356
|
+
const activeSearchText = searchTextRef.current;
|
|
327
357
|
setFrozenColumn(frozColumn);
|
|
328
|
-
setFilteredFrozenColumns(frozColumn);
|
|
358
|
+
setFilteredFrozenColumns(filterColumnsByText(frozColumn, activeSearchText));
|
|
329
359
|
setScrollableColumn(scrollColumn);
|
|
330
|
-
setFilteredScrollableColumns(scrollColumn);
|
|
360
|
+
setFilteredScrollableColumns(filterColumnsByText(scrollColumn, activeSearchText));
|
|
331
361
|
}, [getColumnDefs, ref, props.column, t]);
|
|
332
362
|
const debouncedUpdateColumnState = useMemo(
|
|
333
363
|
() => debounce(updateColumnState, 100),
|
|
@@ -377,131 +407,62 @@ const Columns = forwardRef((props, ref) => {
|
|
|
377
407
|
}, [filteredFrozenColumns, filteredScrollableColumns]);
|
|
378
408
|
const handleSearchChange = (e) => {
|
|
379
409
|
const searchText2 = e.target.value.toLowerCase();
|
|
380
|
-
|
|
381
|
-
return columns.map((column) => {
|
|
382
|
-
const matches = column.headerName.toLowerCase().includes(searchText3);
|
|
383
|
-
const filteredChildren = column.children ? filterColumns(column.children, searchText3) : null;
|
|
384
|
-
if (matches || (filteredChildren == null ? void 0 : filteredChildren.length) > 0) {
|
|
385
|
-
return {
|
|
386
|
-
...column,
|
|
387
|
-
children: filteredChildren,
|
|
388
|
-
isVisible: column.isVisible
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
return null;
|
|
392
|
-
}).filter(Boolean);
|
|
393
|
-
};
|
|
394
|
-
const filteredFrozenColumns2 = filterColumns(frozenColumn, searchText2);
|
|
395
|
-
const filteredScrollableColumns2 = filterColumns(scrollableColumn, searchText2);
|
|
410
|
+
searchTextRef.current = searchText2;
|
|
396
411
|
setSearchText(searchText2);
|
|
397
|
-
setFilteredFrozenColumns(
|
|
398
|
-
setFilteredScrollableColumns(
|
|
412
|
+
setFilteredFrozenColumns(filterColumnsByText(frozenColumn, searchText2));
|
|
413
|
+
setFilteredScrollableColumns(filterColumnsByText(scrollableColumn, searchText2));
|
|
399
414
|
};
|
|
400
415
|
useEffect(() => {
|
|
401
|
-
const isAnyScrollableColumnVisible = filteredScrollableColumns
|
|
402
|
-
|
|
403
|
-
return column.children.some((child) => child.isVisible);
|
|
404
|
-
}
|
|
405
|
-
return column.isVisible;
|
|
406
|
-
});
|
|
407
|
-
const isAnyFrozenColumnVisible = filteredFrozenColumns.some((column) => {
|
|
408
|
-
if (column.children) {
|
|
409
|
-
return column.children.some((child) => child.isVisible);
|
|
410
|
-
}
|
|
411
|
-
return column.isVisible;
|
|
412
|
-
});
|
|
416
|
+
const isAnyScrollableColumnVisible = isColumnTreeVisible(filteredScrollableColumns);
|
|
417
|
+
const isAnyFrozenColumnVisible = isColumnTreeVisible(filteredFrozenColumns);
|
|
413
418
|
setMainChecked(isAnyScrollableColumnVisible);
|
|
414
419
|
setAllColumnvisisbility(isAnyFrozenColumnVisible || isAnyScrollableColumnVisible);
|
|
415
420
|
}, [filteredFrozenColumns, filteredScrollableColumns]);
|
|
416
|
-
const
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
const
|
|
428
|
-
var _a2, _b2, _c2, _d2;
|
|
421
|
+
const setSubtreeVisibility = (columns, visibility) => columns.map((column) => {
|
|
422
|
+
var _a2, _b2, _c2;
|
|
423
|
+
(_b2 = (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.columnApi) == null ? void 0 : _b2.setColumnVisible(column.colId, visibility);
|
|
424
|
+
return {
|
|
425
|
+
...column,
|
|
426
|
+
isVisible: visibility,
|
|
427
|
+
children: ((_c2 = column.children) == null ? void 0 : _c2.length) > 0 ? setSubtreeVisibility(column.children, visibility) : column.children
|
|
428
|
+
};
|
|
429
|
+
});
|
|
430
|
+
const applyVisibilityToggle = (columns, colId) => {
|
|
431
|
+
let changed = false;
|
|
432
|
+
const updated = columns.map((column) => {
|
|
433
|
+
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
434
|
+
if (changed) return column;
|
|
429
435
|
if (column.colId === colId) {
|
|
430
|
-
|
|
431
|
-
const
|
|
436
|
+
changed = true;
|
|
437
|
+
const newVisibility = !column.isVisible;
|
|
432
438
|
(_b2 = (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.columnApi) == null ? void 0 : _b2.setColumnVisible(column.colId, newVisibility);
|
|
433
439
|
return {
|
|
434
440
|
...column,
|
|
435
441
|
isVisible: newVisibility,
|
|
436
|
-
children:
|
|
442
|
+
children: ((_c2 = column.children) == null ? void 0 : _c2.length) > 0 ? setSubtreeVisibility(column.children, newVisibility) : column.children
|
|
437
443
|
};
|
|
438
444
|
}
|
|
439
|
-
if (column.children) {
|
|
440
|
-
const
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
children: updatedChildren
|
|
447
|
-
};
|
|
445
|
+
if (((_d2 = column.children) == null ? void 0 : _d2.length) > 0) {
|
|
446
|
+
const result = applyVisibilityToggle(column.children, colId);
|
|
447
|
+
if (!result.changed) return column;
|
|
448
|
+
changed = true;
|
|
449
|
+
const isAnyChildVisible = isColumnTreeVisible(result.columns);
|
|
450
|
+
(_f2 = (_e2 = ref == null ? void 0 : ref.current) == null ? void 0 : _e2.columnApi) == null ? void 0 : _f2.setColumnVisible(column.colId, isAnyChildVisible);
|
|
451
|
+
return { ...column, isVisible: isAnyChildVisible, children: result.columns };
|
|
448
452
|
}
|
|
449
453
|
return column;
|
|
450
454
|
});
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
const newCols = updatedColumns.filter((col) => !prevColIds.has(col.colId));
|
|
458
|
-
return [...merged, ...newCols];
|
|
459
|
-
});
|
|
455
|
+
return { columns: updated, changed };
|
|
456
|
+
};
|
|
457
|
+
const toggleColumnVisibilityFrozen = (colId) => {
|
|
458
|
+
const { columns } = applyVisibilityToggle(frozenColumn, colId);
|
|
459
|
+
setFrozenColumn(columns);
|
|
460
|
+
setFilteredFrozenColumns(filterColumnsByText(columns, searchTextRef.current));
|
|
460
461
|
};
|
|
461
462
|
const toggleColumnVisibilityScroll = (colId) => {
|
|
462
|
-
const
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
(_b2 = (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.columnApi) == null ? void 0 : _b2.setColumnVisible(column.colId, parentVisibility);
|
|
466
|
-
return {
|
|
467
|
-
...column,
|
|
468
|
-
isVisible: parentVisibility,
|
|
469
|
-
children: updatedChildren
|
|
470
|
-
};
|
|
471
|
-
});
|
|
472
|
-
const updateVisibility = (columns, parentVisibility = null) => columns.map((column) => {
|
|
473
|
-
var _a2, _b2, _c2, _d2;
|
|
474
|
-
if (column.colId === colId) {
|
|
475
|
-
const newVisibility = parentVisibility !== null ? parentVisibility : !column.isVisible;
|
|
476
|
-
const updatedChildren = column.children ? updateChildrenVisibility(column.children, newVisibility) : null;
|
|
477
|
-
(_b2 = (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.columnApi) == null ? void 0 : _b2.setColumnVisible(column.colId, newVisibility);
|
|
478
|
-
return {
|
|
479
|
-
...column,
|
|
480
|
-
isVisible: newVisibility,
|
|
481
|
-
children: updatedChildren
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
if (column.children) {
|
|
485
|
-
const updatedChildren = updateVisibility(column.children);
|
|
486
|
-
const isAnyChildVisible = updatedChildren.some((child) => child.isVisible);
|
|
487
|
-
(_d2 = (_c2 = ref == null ? void 0 : ref.current) == null ? void 0 : _c2.columnApi) == null ? void 0 : _d2.setColumnVisible(column.colId, isAnyChildVisible);
|
|
488
|
-
return {
|
|
489
|
-
...column,
|
|
490
|
-
isVisible: isAnyChildVisible,
|
|
491
|
-
children: updatedChildren
|
|
492
|
-
};
|
|
493
|
-
}
|
|
494
|
-
return column;
|
|
495
|
-
});
|
|
496
|
-
const updatedColumns = updateVisibility(filteredScrollableColumns);
|
|
497
|
-
setFilteredScrollableColumns(updatedColumns);
|
|
498
|
-
setScrollableColumn((prev) => {
|
|
499
|
-
const updatedMap = Object.fromEntries(updatedColumns.map((col) => [col.colId, col]));
|
|
500
|
-
const merged = prev.map((col) => updatedMap[col.colId] ? updatedMap[col.colId] : col);
|
|
501
|
-
const prevColIds = new Set(prev.map((col) => col.colId));
|
|
502
|
-
const newCols = updatedColumns.filter((col) => !prevColIds.has(col.colId));
|
|
503
|
-
return [...merged, ...newCols];
|
|
504
|
-
});
|
|
463
|
+
const { columns } = applyVisibilityToggle(scrollableColumn, colId);
|
|
464
|
+
setScrollableColumn(columns);
|
|
465
|
+
setFilteredScrollableColumns(filterColumnsByText(columns, searchTextRef.current));
|
|
505
466
|
};
|
|
506
467
|
const toggleScrollableCollapse = (e) => {
|
|
507
468
|
e.stopPropagation();
|
|
@@ -511,75 +472,45 @@ const Columns = forwardRef((props, ref) => {
|
|
|
511
472
|
e.stopPropagation();
|
|
512
473
|
setCollapsedcolumn(!collapsedColumn);
|
|
513
474
|
};
|
|
475
|
+
const applyBulkVisibility = (columns, visibility, allowedIds) => columns.map((column) => {
|
|
476
|
+
var _a2, _b2, _c2, _d2, _e2;
|
|
477
|
+
const isAllowed = !allowedIds || allowedIds.has(column.colId);
|
|
478
|
+
if (((_a2 = column.children) == null ? void 0 : _a2.length) > 0) {
|
|
479
|
+
const children = applyBulkVisibility(
|
|
480
|
+
column.children,
|
|
481
|
+
visibility,
|
|
482
|
+
isAllowed ? null : allowedIds
|
|
483
|
+
);
|
|
484
|
+
const isAnyChildVisible = isColumnTreeVisible(children);
|
|
485
|
+
(_c2 = (_b2 = ref == null ? void 0 : ref.current) == null ? void 0 : _b2.columnApi) == null ? void 0 : _c2.setColumnVisible(column.colId, isAnyChildVisible);
|
|
486
|
+
return { ...column, isVisible: isAnyChildVisible, children };
|
|
487
|
+
}
|
|
488
|
+
if (!isAllowed) return column;
|
|
489
|
+
(_e2 = (_d2 = ref == null ? void 0 : ref.current) == null ? void 0 : _d2.columnApi) == null ? void 0 : _e2.setColumnVisible(column.colId, visibility);
|
|
490
|
+
return { ...column, isVisible: visibility };
|
|
491
|
+
});
|
|
514
492
|
const onMainCheckboxChange = () => {
|
|
515
|
-
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
(_b2 = (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.columnApi) == null ? void 0 : _b2.setColumnVisible(column.colId, visibility);
|
|
520
|
-
if (column.children) {
|
|
521
|
-
updateVisibility(column.children, visibility);
|
|
522
|
-
}
|
|
523
|
-
return {
|
|
524
|
-
...column,
|
|
525
|
-
isVisible: visibility,
|
|
526
|
-
children: column.children ? updateVisibility(column.children, visibility) : null
|
|
527
|
-
};
|
|
528
|
-
});
|
|
529
|
-
};
|
|
530
|
-
const updatedColumns = updateVisibility(filteredScrollableColumns, !mainChecked);
|
|
531
|
-
setFilteredScrollableColumns(updatedColumns);
|
|
532
|
-
setScrollableColumn((prev) => {
|
|
533
|
-
const updatedMap = Object.fromEntries(updatedColumns.map((col) => [col.colId, col]));
|
|
534
|
-
const merged = prev.map((col) => updatedMap[col.colId] ? updatedMap[col.colId] : col);
|
|
535
|
-
const prevColIds = new Set(prev.map((col) => col.colId));
|
|
536
|
-
const newCols = updatedColumns.filter((col) => !prevColIds.has(col.colId));
|
|
537
|
-
return [...merged, ...newCols];
|
|
538
|
-
});
|
|
493
|
+
const listedIds = new Set(getAllColumnIds(filteredScrollableColumns));
|
|
494
|
+
const updatedColumns = applyBulkVisibility(scrollableColumn, !mainChecked, listedIds);
|
|
495
|
+
setScrollableColumn(updatedColumns);
|
|
496
|
+
setFilteredScrollableColumns(filterColumnsByText(updatedColumns, searchTextRef.current));
|
|
539
497
|
};
|
|
540
498
|
const onAllColumnCheckBoxChange = () => {
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
const
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
}
|
|
550
|
-
return {
|
|
551
|
-
...column,
|
|
552
|
-
isVisible: visibility,
|
|
553
|
-
children: column.children ? updateColumnVisibility(column.children, visibility) : null
|
|
554
|
-
};
|
|
555
|
-
});
|
|
556
|
-
};
|
|
557
|
-
const updatedFrozenColumns = updateColumnVisibility(
|
|
558
|
-
filteredFrozenColumns,
|
|
559
|
-
!allColumnVisibility
|
|
499
|
+
const visibility = !allColumnVisibility;
|
|
500
|
+
const listedFrozenIds = new Set(getAllColumnIds(filteredFrozenColumns));
|
|
501
|
+
const listedScrollableIds = new Set(getAllColumnIds(filteredScrollableColumns));
|
|
502
|
+
const updatedFrozenColumns = applyBulkVisibility(frozenColumn, visibility, listedFrozenIds);
|
|
503
|
+
const updatedScrollableColumns = applyBulkVisibility(
|
|
504
|
+
scrollableColumn,
|
|
505
|
+
visibility,
|
|
506
|
+
listedScrollableIds
|
|
560
507
|
);
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
508
|
+
setFrozenColumn(updatedFrozenColumns);
|
|
509
|
+
setScrollableColumn(updatedScrollableColumns);
|
|
510
|
+
setFilteredFrozenColumns(filterColumnsByText(updatedFrozenColumns, searchTextRef.current));
|
|
511
|
+
setFilteredScrollableColumns(
|
|
512
|
+
filterColumnsByText(updatedScrollableColumns, searchTextRef.current)
|
|
564
513
|
);
|
|
565
|
-
setFilteredFrozenColumns(updatedFrozenColumns);
|
|
566
|
-
setFilteredScrollableColumns(updatedScrollableColumns);
|
|
567
|
-
setFrozenColumn((prev) => {
|
|
568
|
-
const updatedMap = Object.fromEntries(updatedFrozenColumns.map((col) => [col.colId, col]));
|
|
569
|
-
const merged = prev.map((col) => updatedMap[col.colId] ? updatedMap[col.colId] : col);
|
|
570
|
-
const prevColIds = new Set(prev.map((col) => col.colId));
|
|
571
|
-
const newCols = updatedFrozenColumns.filter((col) => !prevColIds.has(col.colId));
|
|
572
|
-
return [...merged, ...newCols];
|
|
573
|
-
});
|
|
574
|
-
setScrollableColumn((prev) => {
|
|
575
|
-
const updatedMap = Object.fromEntries(
|
|
576
|
-
updatedScrollableColumns.map((col) => [col.colId, col])
|
|
577
|
-
);
|
|
578
|
-
const merged = prev.map((col) => updatedMap[col.colId] ? updatedMap[col.colId] : col);
|
|
579
|
-
const prevColIds = new Set(prev.map((col) => col.colId));
|
|
580
|
-
const newCols = updatedScrollableColumns.filter((col) => !prevColIds.has(col.colId));
|
|
581
|
-
return [...merged, ...newCols];
|
|
582
|
-
});
|
|
583
514
|
};
|
|
584
515
|
const toggleScrollColumnCollapse = (colId) => {
|
|
585
516
|
setCollapsedScrollColumns((prev) => ({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes ia-shimmer-horizontal{0%{background-position:100% 0}to{background-position:0 0}}@keyframes ia-shimmer-vertical{0%{background-position:0 100%}to{background-position:0 0}}@property --ia-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ia-shimmer-circular{0%{--ia-shimmer-angle:0deg}to{--ia-shimmer-angle:360deg}}.ia-shimmer{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ltr{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ltr{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--rtl{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(270deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--rtl{animation:none;background-image:linear-gradient(270deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--btt{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--btt{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ttb{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ttb{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--circular{background-color:#e8edf5;background-repeat:no-repeat;--ia-shimmer-angle:0deg;animation:ia-shimmer-circular 1.6s linear infinite;background-image:conic-gradient(from var(--ia-shimmer-angle),#eceef4 0deg,#e8edf5 80deg,#d5dbe8 160deg,#e8edf5 260deg,#eceef4 1turn);background-size:100% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--circular{animation:none;background-image:conic-gradient(from 0deg,#eceef4,#e8edf5,#d5dbe8,#e8edf5 1turn)}}.impact_textarea_label{color:#60697d;font-size:12px;padding-bottom:6px}.impact_textarea{margin-top:6px}.impact_textarea textarea{border:1px solid #d9dde7;border-radius:8px;min-height:100px;min-width:240px;padding:12px;position:relative;resize:none}.impact_textarea textarea:focus-visible{box-shadow:0 0 0 var(--ia-focus-ring-offset,2px) var(--ia-focus-bg,#fff),0 0 0 calc(var(--ia-focus-ring-offset, 2px) + var(--ia-focus-ring-width, 2px)) var(--ia-focus-color,#4259ee);outline:none;transition:box-shadow .15s ease-in-out}.impact_textarea textarea:focus:not(:focus-visible){box-shadow:none;outline:none}.impact_textarea textarea:focus,.impact_textarea textarea:hover{border:1px solid #4259ee;outline:none}.impact_textarea_btm_container{display:flex;justify-content:space-between;margin-top:6px}.impact_textarea_btm_container .left_secondary_label_container,.impact_textarea_btm_container .right_numeric_container{color:#5f6673;font-size:10px}.impact_textarea_disabled .impact_textarea_label{color:#b4bac7}.impact_textarea_disabled textarea{background:#f8f9fb;color:#d9dde7;pointer-events:none}.impact_textarea_disabled .impact_textarea_btm_container .left_secondary_label_container{color:#b4bac7;text-align:start}.impact_textarea_disabled .impact_textarea_btm_container .right_numeric_container{color:#b4bac7}.impact_textarea_error textarea{color:#ab3939}textarea{font-family:Manrope,sans-serif!important}.impact_textarea_disabled textarea::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#b4bac7}.impact_textarea_error .left_secondary_label_container,.impact_textarea_error .right_numeric_container{color:#ab3939}.impact_textarea_error textarea,.impact_textarea_error textarea:focus,.impact_textarea_error textarea:hover{border:1px solid #ec4c5c}.impact_textarea_error textarea{background:url(https://impact-kit.
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@keyframes ia-shimmer-horizontal{0%{background-position:100% 0}to{background-position:0 0}}@keyframes ia-shimmer-vertical{0%{background-position:0 100%}to{background-position:0 0}}@property --ia-shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ia-shimmer-circular{0%{--ia-shimmer-angle:0deg}to{--ia-shimmer-angle:360deg}}.ia-shimmer{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ltr{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(90deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ltr{animation:none;background-image:linear-gradient(90deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--rtl{animation:ia-shimmer-horizontal 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(270deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:300% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--rtl{animation:none;background-image:linear-gradient(270deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--btt{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:reverse;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--btt{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--ttb{animation:ia-shimmer-vertical 1.6s ease-in-out infinite;animation-direction:normal;background-color:#e8edf5;background-image:linear-gradient(0deg,#e8edf5,#eceef4 22%,#e8edf5 48%,#d5dbe8 62%,#e8edf5);background-repeat:no-repeat;background-size:100% 300%}@media (prefers-reduced-motion:reduce){.ia-shimmer--ttb{animation:none;background-image:linear-gradient(0deg,#e8edf5,#eceef4 40%,#d5dbe8);background-size:100% 100%}}.ia-shimmer--circular{background-color:#e8edf5;background-repeat:no-repeat;--ia-shimmer-angle:0deg;animation:ia-shimmer-circular 1.6s linear infinite;background-image:conic-gradient(from var(--ia-shimmer-angle),#eceef4 0deg,#e8edf5 80deg,#d5dbe8 160deg,#e8edf5 260deg,#eceef4 1turn);background-size:100% 100%}@media (prefers-reduced-motion:reduce){.ia-shimmer--circular{animation:none;background-image:conic-gradient(from 0deg,#eceef4,#e8edf5,#d5dbe8,#e8edf5 1turn)}}.impact_textarea_label{color:#60697d;font-size:12px;padding-bottom:6px}.impact_textarea{margin-top:6px}.impact_textarea textarea{border:1px solid #d9dde7;border-radius:8px;min-height:100px;min-width:240px;padding:12px;position:relative;resize:none}.impact_textarea textarea:focus-visible{box-shadow:0 0 0 var(--ia-focus-ring-offset,2px) var(--ia-focus-bg,#fff),0 0 0 calc(var(--ia-focus-ring-offset, 2px) + var(--ia-focus-ring-width, 2px)) var(--ia-focus-color,#4259ee);outline:none;transition:box-shadow .15s ease-in-out}.impact_textarea textarea:focus:not(:focus-visible){box-shadow:none;outline:none}.impact_textarea textarea:focus,.impact_textarea textarea:hover{border:1px solid #4259ee;outline:none}.impact_textarea_btm_container{display:flex;justify-content:space-between;margin-top:6px}.impact_textarea_btm_container .left_secondary_label_container,.impact_textarea_btm_container .right_numeric_container{color:#5f6673;font-size:10px}.impact_textarea_disabled .impact_textarea_label{color:#b4bac7}.impact_textarea_disabled textarea{background:#f8f9fb;color:#d9dde7;pointer-events:none}.impact_textarea_disabled .impact_textarea_btm_container .left_secondary_label_container{color:#b4bac7;text-align:start}.impact_textarea_disabled .impact_textarea_btm_container .right_numeric_container{color:#b4bac7}.impact_textarea_error textarea{color:#ab3939}textarea{font-family:Manrope,sans-serif!important}.impact_textarea_disabled textarea::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#b4bac7}.impact_textarea_error .left_secondary_label_container,.impact_textarea_error .right_numeric_container{color:#ab3939}.impact_textarea_error textarea,.impact_textarea_error textarea:focus,.impact_textarea_error textarea:hover{border:1px solid #ec4c5c}.impact_textarea_error textarea{background:url(https://impact-kit.iaproducts.ai/api/v1/files/uploads/impact-ui/prod/icons/material-symbols_error.svg) no-repeat;background-position:top 12px right 12px;background-size:16px;padding-right:34px}.impact_textarea_success textarea{background:url(https://impact-kit.iaproducts.ai/api/v1/files/uploads/impact-ui/prod/icons/success-icon.svg) no-repeat;background-position:top 12px right 12px;background-size:16px;padding-right:34px}.impact_textarea_success textarea,.impact_textarea_success textarea:focus,.impact_textarea_success textarea:hover{border:1px solid #108431}.impact_textarea_success .left_secondary_label_container,.impact_textarea_success .right_numeric_container{color:#26734b}.impact_textarea_warning textarea{background:url(https://impact-kit.iaproducts.ai/api/v1/files/uploads/impact-ui/prod/icons/warning-fill.svg) no-repeat;background-position:top 12px right 12px;background-size:16px;border:1px solid #ffe174;padding-right:34px}.impact_textarea_warning textarea:focus,.impact_textarea_warning textarea:hover{border:1px solid #ffe174}.impact_textarea_warning .left_secondary_label_container,.impact_textarea_warning .right_numeric_container{color:#9d831c}.impact_textarea textarea::placeholder{color:#b4bac7;font-weight:400;transition:font-weight .2s ease}.impact_textarea_disabled textarea::placeholder{color:#b4bac7}.impact_textarea textarea:focus::placeholder{color:#0000}')),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}}();
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode(".MuiFormHelperText-root{background:url(https://impact-kit.iaproducts.ai/api/v1/files/uploads/impact-ui/prod/icons/info-icon.svg) no-repeat;background-position:0;color:#7a8294!important;font-family:Manrope,sans-serif!important;margin-left:0!important;overflow:hidden;padding-left:14px;text-overflow:ellipsis;white-space:nowrap}.MuiFormHelperText-root.Mui-error{background:url(https://impact-kit.iaproducts.ai/api/v1/files/uploads/impact-ui/prod/icons/info-red.svg) no-repeat;background-position:0;color:#e15554!important}")),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useRef, useState, useEffect } from "react";
|
|
4
4
|
import { Tooltip } from "../../Tooltip/index.js";
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { KeyboardEvent as ReactKeyboardEvent, PointerEvent as ReactPointerEvent } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface Rect {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export type ResizeDirection = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw';
|
|
10
|
+
export declare const BOTTOM_VIEWPORT_MARGIN = 24;
|
|
11
|
+
export interface ViewportMargin {
|
|
12
|
+
top: number;
|
|
13
|
+
right: number;
|
|
14
|
+
bottom: number;
|
|
15
|
+
left: number;
|
|
16
|
+
}
|
|
17
|
+
/** Accepts a single number (all sides) or per-side overrides. */
|
|
18
|
+
export type ViewportMarginInput = number | Partial<ViewportMargin>;
|
|
19
|
+
export interface UseDraggableResizableOptions {
|
|
20
|
+
/** Starting position/size. Only read once on mount (use `setRect`/`collapseTo` to change later). */
|
|
21
|
+
initialRect: Rect;
|
|
22
|
+
minWidth?: number;
|
|
23
|
+
minHeight?: number;
|
|
24
|
+
maxWidth?: number;
|
|
25
|
+
maxHeight?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Gap kept clear between the panel and the viewport edges while dragging/resizing, so it
|
|
28
|
+
* stops short of the edge instead of touching it. Pass a number for a uniform margin, or
|
|
29
|
+
* per-side values (e.g. `{ top: 56, bottom: 24 }` to also clear a fixed app header).
|
|
30
|
+
* Pass `0` for docked panels that should sit flush with the viewport.
|
|
31
|
+
* @default 0
|
|
32
|
+
*/
|
|
33
|
+
viewportMargin?: ViewportMarginInput;
|
|
34
|
+
/** Disables both dragging and resizing (e.g. while in a "full width" mode). */
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
onChange?: (rect: Rect) => void;
|
|
37
|
+
onDragEnd?: (rect: Rect) => void;
|
|
38
|
+
onResizeEnd?: (rect: Rect) => void;
|
|
39
|
+
}
|
|
40
|
+
export interface HandleProps {
|
|
41
|
+
onPointerDown: (e: ReactPointerEvent) => void;
|
|
42
|
+
onKeyDown: (e: ReactKeyboardEvent) => void;
|
|
43
|
+
}
|
|
44
|
+
/** Viewport corner the collapsed panel is pinned to. */
|
|
45
|
+
export type CollapseAnchor = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
46
|
+
export interface CollapseOptions {
|
|
47
|
+
/** @default 'bottom-right' */
|
|
48
|
+
anchor?: CollapseAnchor;
|
|
49
|
+
/**
|
|
50
|
+
* Margin to inset the collapsed panel from the viewport edges. Pass this when the margin
|
|
51
|
+
* changes in the same event that triggers the collapse - the `viewportMargin` *prop* is
|
|
52
|
+
* still the pre-update value at that point (React batches state), so relying on it would
|
|
53
|
+
* anchor against the wrong gap.
|
|
54
|
+
*/
|
|
55
|
+
viewportMargin?: ViewportMarginInput;
|
|
56
|
+
}
|
|
57
|
+
export interface UseDraggableResizableResult {
|
|
58
|
+
rect: Rect;
|
|
59
|
+
isDragging: boolean;
|
|
60
|
+
isResizing: boolean;
|
|
61
|
+
isCollapsed: boolean;
|
|
62
|
+
setRect: (updater: Rect | ((prev: Rect) => Rect)) => void;
|
|
63
|
+
/** Spread onto the element that should act as the "title bar" drag handle. */
|
|
64
|
+
dragHandleProps: HandleProps;
|
|
65
|
+
/** Spread onto one of the 8 resize handle elements. */
|
|
66
|
+
getResizeHandleProps: (direction: ResizeDirection) => HandleProps & {
|
|
67
|
+
role: 'separator';
|
|
68
|
+
tabIndex: 0;
|
|
69
|
+
'aria-orientation': 'horizontal' | 'vertical';
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Shrink to a fixed compact size pinned to a viewport corner (default: bottom-right),
|
|
73
|
+
* remembering the current rect so `restore()` can bring it back.
|
|
74
|
+
*/
|
|
75
|
+
collapseTo: (size: {
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
}, options?: CollapseOptions) => void;
|
|
79
|
+
/** Restore the rect that was active before the last `collapseTo` call. */
|
|
80
|
+
restore: () => void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Headless drag + 8-direction resize behavior for a floating panel (think: Google Meet's
|
|
84
|
+
* pop-out mini window). Framework-agnostic logic lives here so any component (chatbot,
|
|
85
|
+
* modal, side panel, etc.) can opt in just by spreading `dragHandleProps` /
|
|
86
|
+
* `getResizeHandleProps(direction)` onto its own markup.
|
|
87
|
+
*
|
|
88
|
+
* Implementation notes (see chat discussion for rationale):
|
|
89
|
+
* - Uses Pointer Events + `setPointerCapture` (works for mouse, touch, and pen) instead of
|
|
90
|
+
* plain `mousedown`/`mousemove`, and keeps receiving events on the same element even if the
|
|
91
|
+
* pointer moves faster than layout, so there is no need for `document`-level listeners.
|
|
92
|
+
* - Batches state updates via `requestAnimationFrame` so dragging/resizing doesn't trigger a
|
|
93
|
+
* React re-render on every single pixel of pointer movement.
|
|
94
|
+
* - Clamps the rect to the viewport (recomputed on every move, not just drag-start) so the
|
|
95
|
+
* panel can never be dragged/resized off-screen on any edge, and always keeps a small margin
|
|
96
|
+
* clear at the bottom of the viewport.
|
|
97
|
+
* - Toggles a `no-select`/`col-resize`-style class on `<body>` while interacting, and always
|
|
98
|
+
* cleans up listeners + that class on `pointerup`/`pointercancel` and on unmount, even if the
|
|
99
|
+
* consumer unmounts mid-drag.
|
|
100
|
+
* - Resize handles expose `role="separator"` + keyboard nudging (arrow keys, Shift for a
|
|
101
|
+
* larger step) for accessibility.
|
|
102
|
+
*/
|
|
103
|
+
export declare function useDraggableResizable({ initialRect, minWidth, minHeight, maxWidth, maxHeight, viewportMargin, disabled, onChange, onDragEnd, onResizeEnd, }: UseDraggableResizableOptions): UseDraggableResizableResult;
|
|
104
|
+
//# sourceMappingURL=useDraggableResizable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDraggableResizable.d.ts","sourceRoot":"","sources":["../../src/hooks/useDraggableResizable.ts"],"names":[],"mappings":"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"}
|