@tap-payments/os-micro-frontend-shared 0.1.376-test.1-test.2 → 0.1.376-test.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.
Files changed (68) hide show
  1. package/build/components/FilterDropdown/FilterDropdown.d.ts +11 -4
  2. package/build/components/FilterDropdown/FilterDropdown.js +18 -4
  3. package/build/components/FilterDropdown/style.js +1 -1
  4. package/build/components/MultiDatakeyDonut/MultiDatakeyDonut.d.ts +12 -0
  5. package/build/components/MultiDatakeyDonut/MultiDatakeyDonut.js +19 -0
  6. package/build/components/MultiDatakeyDonut/index.d.ts +1 -0
  7. package/build/components/MultiDatakeyDonut/index.js +1 -0
  8. package/build/components/MultiDatakeyDonut/style.d.ts +10 -0
  9. package/build/components/MultiDatakeyDonut/style.js +23 -0
  10. package/build/components/RangeCalender/RangeCalender.js +4 -2
  11. package/build/components/TableHeader/FiltersRow.d.ts +1 -1
  12. package/build/components/TableHeader/FiltersRow.js +2 -4
  13. package/build/components/TableHeader/TableHeader.d.ts +1 -1
  14. package/build/components/TableHeader/TableHeader.js +2 -2
  15. package/build/components/TableHeader/TableView/CustomViews.js +1 -1
  16. package/build/components/TableHeader/TableView/TableView.js +1 -0
  17. package/build/components/TableHeader/TableView/hooks/index.d.ts +0 -6
  18. package/build/components/TableHeader/TableView/hooks/index.js +0 -6
  19. package/build/components/TableHeader/TableView/index.d.ts +3 -12
  20. package/build/components/TableHeader/TableView/index.js +3 -13
  21. package/build/components/TableHeader/index.d.ts +0 -1
  22. package/build/components/TableHeader/type.d.ts +1 -15
  23. package/build/components/index.d.ts +1 -0
  24. package/build/components/index.js +1 -0
  25. package/build/constants/assets.d.ts +3 -1
  26. package/build/constants/assets.js +3 -1
  27. package/build/types/index.d.ts +1 -0
  28. package/build/types/index.js +1 -0
  29. package/build/types/toggleOptions.d.ts +2 -0
  30. package/build/utils/date.d.ts +5 -0
  31. package/build/utils/date.js +37 -0
  32. package/package.json +1 -2
  33. package/build/components/TableHeader/TableView/CreateViewDialog.d.ts +0 -3
  34. package/build/components/TableHeader/TableView/CreateViewDialog.js +0 -91
  35. package/build/components/TableHeader/TableView/ViewSelector.d.ts +0 -5
  36. package/build/components/TableHeader/TableView/ViewSelector.js +0 -81
  37. package/build/components/TableHeader/TableView/ViewsDropdown.d.ts +0 -5
  38. package/build/components/TableHeader/TableView/ViewsDropdown.js +0 -198
  39. package/build/components/TableHeader/TableView/components/ColumnList.d.ts +0 -3
  40. package/build/components/TableHeader/TableView/components/ColumnList.js +0 -70
  41. package/build/components/TableHeader/TableView/components/ViewsSubmenu.d.ts +0 -3
  42. package/build/components/TableHeader/TableView/components/ViewsSubmenu.js +0 -71
  43. package/build/components/TableHeader/TableView/components/index.d.ts +0 -2
  44. package/build/components/TableHeader/TableView/components/index.js +0 -2
  45. package/build/components/TableHeader/TableView/constants.d.ts +0 -10
  46. package/build/components/TableHeader/TableView/constants.js +0 -10
  47. package/build/components/TableHeader/TableView/data.d.ts +0 -5
  48. package/build/components/TableHeader/TableView/data.js +0 -48
  49. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.d.ts +0 -22
  50. package/build/components/TableHeader/TableView/hooks/useCreateViewDialog.js +0 -86
  51. package/build/components/TableHeader/TableView/hooks/useDialogPosition.d.ts +0 -8
  52. package/build/components/TableHeader/TableView/hooks/useDialogPosition.js +0 -16
  53. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.d.ts +0 -7
  54. package/build/components/TableHeader/TableView/hooks/useNestedSubmenu.js +0 -34
  55. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.d.ts +0 -6
  56. package/build/components/TableHeader/TableView/hooks/useOriginalColumns.js +0 -18
  57. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.d.ts +0 -8
  58. package/build/components/TableHeader/TableView/hooks/useSubmenuHover.js +0 -43
  59. package/build/components/TableHeader/TableView/hooks/useViewSelector.d.ts +0 -50
  60. package/build/components/TableHeader/TableView/hooks/useViewSelector.js +0 -239
  61. package/build/components/TableHeader/TableView/hooks/useViewsManager.d.ts +0 -20
  62. package/build/components/TableHeader/TableView/hooks/useViewsManager.js +0 -96
  63. package/build/components/TableHeader/TableView/styles.d.ts +0 -127
  64. package/build/components/TableHeader/TableView/styles.js +0 -426
  65. package/build/components/TableHeader/TableView/types.d.ts +0 -183
  66. package/build/components/TableHeader/TableView/utils.d.ts +0 -121
  67. package/build/components/TableHeader/TableView/utils.js +0 -463
  68. /package/build/{components/TableHeader/TableView/types.js → types/toggleOptions.js} +0 -0
@@ -1,91 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import React, { useState } from 'react';
12
- import { Box, Typography, CircularProgress, Dialog } from '@mui/material';
13
- import { useTranslation } from 'react-i18next';
14
- import Draggable from 'react-draggable';
15
- import { InputBase } from '../../index.js';
16
- import { useToast } from '../../../hooks/index.js';
17
- import Toolbar, { StyledHeaderWrapperStyled } from '../../Toolbar';
18
- import { CloseIcon } from '../../ToolbarIcon';
19
- import { TEMPLATE_NAME_MAX_LENGTH } from './constants';
20
- import { DialogContentWrapper, ScrollableContent, TitleSection, FooterBar, CreateButtonWrapper, DeleteButton, CreateButton, getDialogPaperStyle, dialogSx, } from './styles';
21
- import { DIALOG_WIDTH, DIALOG_HEIGHT } from './constants';
22
- import { useCreateViewDialog } from './hooks';
23
- import { ColumnList } from './components/ColumnList';
24
- import { convertColumnsToLayoutSection } from './utils';
25
- function CreateViewDialog({ open, onClose, onCreate, availableColumns = [], defaultColumns = [], editingView, onDelete, tableViews = [], mode = 'sheet', }) {
26
- const { t } = useTranslation();
27
- const toast = useToast();
28
- const [isDeleting, setIsDeleting] = useState(false);
29
- const [isLoading, setIsLoading] = useState(false);
30
- // Reset loading state when dialog closes
31
- React.useEffect(() => {
32
- if (!open) {
33
- setIsDeleting(false);
34
- setIsLoading(false);
35
- }
36
- }, [open]);
37
- const { templateName, setTemplateName, selectedColumns, columnNames, allSelected, someSelected, isNameValid, hoveredColumn, anchorEl, openSubmenu, closeSubmenu, cancelClose, handleReorder, handleColumnToggle, handleSubItemToggle, handleSelectAll, handleResetToDefault, } = useCreateViewDialog({
38
- open,
39
- availableColumns,
40
- defaultColumns,
41
- editingView,
42
- tableViews,
43
- });
44
- const handleCreate = () => __awaiter(this, void 0, void 0, function* () {
45
- if (!isNameValid || isLoading || isDeleting)
46
- return;
47
- setIsLoading(true);
48
- try {
49
- const columnsToCreate = selectedColumns.filter((col) => col.selected);
50
- const layout = convertColumnsToLayoutSection(columnsToCreate, mode);
51
- yield (onCreate === null || onCreate === void 0 ? void 0 : onCreate({ name: templateName, selectedColumns: columnsToCreate, layout }));
52
- onClose();
53
- }
54
- catch (error) {
55
- const errorMessage = error instanceof Error ? error.message : 'Failed to save view. Please try again.';
56
- toast.error(errorMessage);
57
- }
58
- finally {
59
- setIsLoading(false);
60
- }
61
- });
62
- const handleDelete = () => __awaiter(this, void 0, void 0, function* () {
63
- if (!editingView || isDeleting || isLoading)
64
- return;
65
- const templateId = editingView.templateId || editingView.id;
66
- setIsDeleting(true);
67
- try {
68
- yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(templateId));
69
- onClose();
70
- }
71
- catch (error) {
72
- const errorMessage = error instanceof Error ? error.message : 'Failed to delete view. Please try again.';
73
- toast.error(errorMessage);
74
- }
75
- finally {
76
- setIsDeleting(false);
77
- }
78
- });
79
- if (!open)
80
- return null;
81
- return (_jsx(Draggable, Object.assign({ handle: "#draggable-dialog-title", cancel: '[class*="MuiDialogContent-root"]' }, { children: _jsxs(Dialog, Object.assign({ disableEnforceFocus: true, open: open, onClose: onClose, hideBackdrop: true, PaperProps: { style: getDialogPaperStyle(DIALOG_WIDTH, DIALOG_HEIGHT) }, sx: dialogSx, TransitionProps: {
82
- timeout: 0,
83
- }, slotProps: {
84
- backdrop: {
85
- sx: {
86
- transition: 'none',
87
- },
88
- },
89
- } }, { children: [_jsx(StyledHeaderWrapperStyled, Object.assign({ id: "draggable-dialog-title", style: { cursor: 'move' } }, { children: _jsx(Toolbar, { isHovered: true, title: editingView ? 'Edit Custom View' : t('createCustomView') || 'Create Custom View', leftActions: _jsx(CloseIcon, { onClick: onClose }) }) })), _jsxs(DialogContentWrapper, { children: [_jsxs(ScrollableContent, { children: [_jsxs(TitleSection, { children: [_jsxs(Box, { children: [_jsx(Typography, Object.assign({ sx: { fontSize: 24, fontWeight: 700, color: '#9F9F9F', lineHeight: '0.7' } }, { children: "Custom" })), _jsx(Typography, Object.assign({ sx: { fontSize: 24, fontWeight: 700, color: '#20232B', lineHeight: 1.2 } }, { children: "View" }))] }), editingView && (_jsx(DeleteButton, Object.assign({ onClick: handleDelete, disabled: isDeleting || isLoading }, { children: isDeleting ? (_jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 1 } }, { children: [_jsx(CircularProgress, { size: 14, color: "inherit" }), _jsx("span", { children: "Deleting..." })] }))) : ('Delete View') })))] }), _jsx(Box, Object.assign({ sx: { mb: 3 } }, { children: _jsx(InputBase, { name: "templateName", label: "Name", value: templateName, onChange: (value) => setTemplateName(value), hasError: false, inputProps: { maxLength: TEMPLATE_NAME_MAX_LENGTH }, required: true }) })), _jsx(ColumnList, { selectedColumns: selectedColumns, columnNames: columnNames, allSelected: allSelected, someSelected: someSelected, hoveredColumn: hoveredColumn, anchorEl: anchorEl, onReorder: handleReorder, onColumnToggle: handleColumnToggle, onSubItemToggle: handleSubItemToggle, onSelectAll: handleSelectAll, onResetToDefault: handleResetToDefault, onSubmenuEnter: openSubmenu, onSubmenuLeave: closeSubmenu, onCancelClose: cancelClose })] }), _jsx(FooterBar, {}), _jsx(CreateButtonWrapper, { children: _jsx(CreateButton, Object.assign({ variant: "contained", onClick: handleCreate, disabled: !isNameValid || isLoading || isDeleting, title: !isNameValid ? `Name is required. Current: "${templateName}"` : undefined }, { children: isLoading ? (_jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 1 } }, { children: [_jsx(CircularProgress, { size: 14, color: "inherit" }), _jsx("span", { children: editingView ? 'Saving...' : 'Creating...' })] }))) : editingView ? ('Update View') : ('Create View') })) })] })] })) })));
90
- }
91
- export default CreateViewDialog;
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import type { ViewSelectorProps } from './types';
3
- declare function ViewSelector({ onViewChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, templates, lang, }: ViewSelectorProps): import("react/jsx-runtime").JSX.Element;
4
- declare const _default: import("react").MemoExoticComponent<typeof ViewSelector>;
5
- export default _default;
@@ -1,81 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
- import { memo, useCallback } from 'react';
12
- import { useTranslation } from 'react-i18next';
13
- import ClickAwayListener from '@mui/material/ClickAwayListener';
14
- import { Icon, StyledButton } from '../../index.js';
15
- import { viewIcon } from '../../../constants/index.js';
16
- import ViewsDropdown from './ViewsDropdown';
17
- import CreateViewDialog from './CreateViewDialog';
18
- import { ViewWrapper } from './styles';
19
- import { useViewsManager } from './hooks';
20
- import { useViewSelector } from './hooks/useViewSelector';
21
- function ViewSelector({ onViewChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', templates, lang = 'en', }) {
22
- const { t } = useTranslation();
23
- // Use tableMode directly - no conversion needed
24
- const { defaultColumns, updateDefaultColumns, defaultTemplate, customViews, allTemplates, setInternalCustomViews } = useViewsManager({
25
- tableMode,
26
- templates,
27
- lang,
28
- });
29
- // Callback when default template is modified and saved
30
- const handleSaveDefaultColumns = useCallback((columns) => __awaiter(this, void 0, void 0, function* () {
31
- if (!(defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.templateId))
32
- return;
33
- // Update local state first
34
- updateDefaultColumns(columns);
35
- // Build layout for API
36
- // Map TableMode to layout section code: 'default' → 'Advanced', 'sheet' → 'Sheet'
37
- const layout = {
38
- code: tableMode === 'sheet' ? 'Sheet' : 'Advanced',
39
- columns: columns.map((col, idx) => {
40
- var _a, _b;
41
- return ({
42
- code: col.name,
43
- name: [{ text: typeof col.label === 'string' ? col.label : col.name, lang }],
44
- order: idx + 1,
45
- default: (_a = col.selected) !== null && _a !== void 0 ? _a : false,
46
- fields: (_b = col.menuItems) === null || _b === void 0 ? void 0 : _b.map((item) => {
47
- var _a;
48
- return ({
49
- code: item.name,
50
- name: [{ text: typeof item.label === 'string' ? item.label : item.name, lang }],
51
- order: null,
52
- default: (_a = item.selected) !== null && _a !== void 0 ? _a : false,
53
- });
54
- }),
55
- });
56
- }),
57
- };
58
- // Call parent to persist
59
- yield (onEditCustomView === null || onEditCustomView === void 0 ? void 0 : onEditCustomView(defaultTemplate.templateId, {
60
- name: defaultTemplate.label,
61
- selectedColumns: columns,
62
- layout,
63
- }));
64
- }), [defaultTemplate, tableMode, lang, onEditCustomView, updateDefaultColumns]);
65
- const { anchorViewEl, defaultViewEl, setDefaultViewElement, isCreateDialogOpen, editingView, selectedViewInfo, shouldUseCurrentState, currentViewColumns, handleViewButtonClick, handleCloseViewDropdown, handleSelectedViewInfo, handleOpenCreateDialog, handleOpenEditDialog, handleCloseCreateDialog, handleSaveView, handleDeleteView, handleResetViews, updateSelectedView, updateCurrentViewColumns, } = useViewSelector({
66
- mode: tableMode,
67
- onViewChange,
68
- onCreateCustomView,
69
- onEditCustomView,
70
- onDeleteCustomView,
71
- customViews,
72
- defaultColumns,
73
- defaultTemplate,
74
- allTemplates,
75
- setInternalCustomViews,
76
- });
77
- return (_jsxs(_Fragment, { children: [_jsx(ClickAwayListener, Object.assign({ onClickAway: handleCloseViewDropdown }, { children: _jsxs(ViewWrapper, Object.assign({ sx: { width: '32px' }, "data-testid": "ViewSelector" }, { children: [_jsx(StyledButton, Object.assign({ title: t('tableView'), "data-testid": "ViewSelector_button", onClick: handleViewButtonClick }, { children: _jsx(Icon, { src: viewIcon, alt: "view", sx: { width: 14, height: 14 } }) })), _jsx(ViewsDropdown, { open: Boolean(defaultViewEl), anchorEl: anchorViewEl, setSelectedViewInfo: handleSelectedViewInfo, selectedViewInfo: selectedViewInfo, onSelect: (e) => {
78
- setDefaultViewElement(defaultViewEl ? null : e.currentTarget);
79
- }, setViews: handleResetViews, onCreateCustomView: handleOpenCreateDialog, customViews: customViews, onEditCustomView: handleOpenEditDialog, onSaveDefaultColumns: handleSaveDefaultColumns, defaultColumns: defaultColumns, setDefaultColumns: updateDefaultColumns, updateSelectedView: updateSelectedView, mode: tableMode, defaultTemplate: defaultTemplate })] })) })), _jsx(CreateViewDialog, { open: isCreateDialogOpen, onClose: handleCloseCreateDialog, availableColumns: defaultColumns, defaultColumns: defaultColumns, onCreate: handleSaveView, editingView: editingView, onDelete: handleDeleteView, tableViews: shouldUseCurrentState ? currentViewColumns : undefined, mode: tableMode })] }));
80
- }
81
- export default memo(ViewSelector);
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { ViewsDropdownProps } from './types';
3
- declare function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews, onEditCustomView, onSaveDefaultColumns, defaultColumns, setDefaultColumns, updateSelectedView, mode, defaultTemplate, }: Readonly<ViewsDropdownProps>): import("react/jsx-runtime").JSX.Element;
4
- declare const _default: React.MemoExoticComponent<typeof ViewsDropdown>;
5
- export default _default;
@@ -1,198 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useMemo } from 'react';
3
- import Popper from '@mui/material/Popper';
4
- import Box from '@mui/material/Box';
5
- import Typography from '@mui/material/Typography';
6
- import Divider from '@mui/material/Divider';
7
- import Button from '@mui/material/Button';
8
- import { useTranslation } from 'react-i18next';
9
- import { bluePlusIcon, editIcon, smallBlueCheckIcon, blackRightArrowIcon } from '../../../constants/index.js';
10
- import { Menu, Tooltip } from '../../index.js';
11
- import { useSubmenuHover, useOriginalColumns } from './hooks';
12
- import { MAX_CUSTOM_VIEWS } from './constants';
13
- import { ViewsSubmenu } from './components/ViewsSubmenu';
14
- import { ListStyled, DropdownStyled, MenuItem as StyledMenuItem, Space, SpaceAfter, SubmenuContainer, SaveCustomViewBox, SaveCustomViewInnerBox, ButtonsContainer, CancelButtonSx, OkayButtonSx, ModifiedTextSx, } from './styles';
15
- import { deepCloneColumns, toggleSingleColumn, toggleSubItem, getSubmenuItems, hasSubmenu, areAllCurrentColumnsSelected, areSomeCurrentColumnsSelected, toggleAllCurrentColumns, areColumnsEqual, } from './utils';
16
- function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews = [], onEditCustomView, onSaveDefaultColumns, defaultColumns = [], setDefaultColumns, updateSelectedView, mode = 'default', defaultTemplate, }) {
17
- const { t } = useTranslation();
18
- const { hoveredColumn: hoveredItem, anchorEl: submenuAnchorEl, openSubmenu: handleMenuItemHover, closeSubmenu: handleMenuItemLeave, cancelClose: handleSubmenuEnter, forceClose: forceCloseSubmenu, } = useSubmenuHover();
19
- const [hoveredCustomView, setHoveredCustomView] = React.useState(null);
20
- const [isModified, setIsModified] = React.useState(false);
21
- // Track original columns when submenu opens
22
- const { originalColumns, saveOriginalState, clearOriginalState } = useOriginalColumns(defaultColumns);
23
- // Build the view list (default template + custom views)
24
- // Use actual defaultTemplate from props instead of static defaultViewList
25
- const viewList = useMemo(() => {
26
- const list = [];
27
- if (defaultTemplate) {
28
- list.push(defaultTemplate);
29
- }
30
- return [...list, ...customViews];
31
- }, [defaultTemplate, customViews]);
32
- // Get columns for hovered submenu
33
- const currentSubmenuColumns = useMemo(() => {
34
- if (!hoveredItem)
35
- return [];
36
- const item = viewList.find((i) => i.id === hoveredItem);
37
- return item ? getSubmenuItems(item, defaultColumns) : [];
38
- }, [hoveredItem, defaultColumns, viewList]);
39
- const allCurrentSelected = useMemo(() => areAllCurrentColumnsSelected(currentSubmenuColumns), [currentSubmenuColumns]);
40
- const someCurrentSelected = useMemo(() => areSomeCurrentColumnsSelected(currentSubmenuColumns, allCurrentSelected), [currentSubmenuColumns, allCurrentSelected]);
41
- // Check if columns have been modified from original
42
- const hasChanges = useMemo(() => {
43
- if (originalColumns.length === 0)
44
- return false;
45
- return !areColumnsEqual(defaultColumns, originalColumns);
46
- }, [defaultColumns, originalColumns]);
47
- // Handle clicking on a view item
48
- const handleViewClick = (item) => {
49
- forceCloseSubmenu();
50
- clearOriginalState();
51
- let viewToPass;
52
- if (item.default) {
53
- // For default template, use defaultColumns (which is the default template's working copy)
54
- const columns = defaultColumns.length > 0 ? defaultColumns : (defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.submenu) || [];
55
- viewToPass = Object.assign(Object.assign({}, item), { submenu: deepCloneColumns(columns), columns: columns.map((col) => col.name) });
56
- }
57
- else if (item.isCustom) {
58
- viewToPass = item;
59
- }
60
- setSelectedViewInfo(item, viewToPass);
61
- };
62
- // Toggle column selection
63
- const toggleColumnSelection = (columnName) => {
64
- if (!setDefaultColumns)
65
- return;
66
- const newColumns = toggleSingleColumn(defaultColumns, columnName);
67
- setDefaultColumns(newColumns);
68
- };
69
- // Toggle nested item
70
- const toggleNestedItem = (columnName, subItemName) => {
71
- if (!setDefaultColumns)
72
- return;
73
- const newColumns = toggleSubItem(defaultColumns, columnName, subItemName);
74
- setDefaultColumns(newColumns);
75
- };
76
- // Reorder columns
77
- const handleReorder = (reorderedColumnNames) => {
78
- if (!setDefaultColumns)
79
- return;
80
- const reorderedColumns = reorderedColumnNames
81
- .map((name) => defaultColumns.find((column) => column.name === name))
82
- .filter((column) => Boolean(column));
83
- setDefaultColumns(reorderedColumns);
84
- };
85
- // Select all columns
86
- const handleSelectAll = () => {
87
- if (!setDefaultColumns)
88
- return;
89
- const newColumns = toggleAllCurrentColumns(defaultColumns, !allCurrentSelected);
90
- setDefaultColumns(newColumns);
91
- };
92
- // Reset to original
93
- const handleReset = () => {
94
- if (!setDefaultColumns || originalColumns.length === 0)
95
- return;
96
- setDefaultColumns(deepCloneColumns(originalColumns));
97
- };
98
- // Open submenu
99
- const handleOpenSubmenu = (itemId, element) => {
100
- saveOriginalState();
101
- handleMenuItemHover(itemId, element);
102
- };
103
- // Close submenu and restore if no changes saved
104
- const handleSubmenuLeave = () => {
105
- // Restore original columns if not saved
106
- if (originalColumns.length > 0 && setDefaultColumns) {
107
- setDefaultColumns(deepCloneColumns(originalColumns));
108
- }
109
- clearOriginalState();
110
- forceCloseSubmenu();
111
- };
112
- // Cancel changes
113
- const handleCancel = () => {
114
- if (setDefaultColumns && originalColumns.length > 0) {
115
- setDefaultColumns(deepCloneColumns(originalColumns));
116
- }
117
- clearOriginalState();
118
- forceCloseSubmenu();
119
- };
120
- // Save changes
121
- const handleOkay = () => {
122
- var _a;
123
- // Check if we're viewing the default template
124
- const isViewingDefault = selectedViewInfo.id === (defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.id) || selectedViewInfo.id === 'default' || (defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.default) === true;
125
- console.log('🔵 handleOkay:', {
126
- isViewingDefault,
127
- hasChanges,
128
- selectedViewInfoId: selectedViewInfo.id,
129
- defaultTemplateId: defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.id,
130
- columnsCount: defaultColumns.length,
131
- });
132
- if (isViewingDefault && defaultTemplate && defaultColumns.length > 0) {
133
- // Save changes if any
134
- if (hasChanges) {
135
- onSaveDefaultColumns === null || onSaveDefaultColumns === void 0 ? void 0 : onSaveDefaultColumns(defaultColumns);
136
- setIsModified(true);
137
- }
138
- // ALWAYS update the selected view to reflect current column state
139
- // CRITICAL: Create a NEW object with NEW array references to trigger re-renders
140
- if (updateSelectedView) {
141
- const updatedView = Object.assign(Object.assign({}, defaultTemplate), { id: defaultTemplate.id + '', submenu: [...deepCloneColumns(defaultColumns)], columns: [...defaultColumns.map((col) => col.name)] });
142
- console.log('🟢 Calling updateSelectedView with:', (_a = updatedView.submenu) === null || _a === void 0 ? void 0 : _a.length, 'columns');
143
- updateSelectedView(updatedView);
144
- }
145
- }
146
- clearOriginalState();
147
- forceCloseSubmenu();
148
- };
149
- // Save as custom view
150
- const handleSaveAsCustomView = (e) => {
151
- e.stopPropagation();
152
- clearOriginalState();
153
- forceCloseSubmenu();
154
- onCreateCustomView === null || onCreateCustomView === void 0 ? void 0 : onCreateCustomView(true);
155
- };
156
- const shouldDimNewCustomView = customViews.length >= MAX_CUSTOM_VIEWS;
157
- return (_jsxs(DropdownStyled, Object.assign({ "data-testid": "ViewsDropdown" }, { children: [_jsx(Popper, Object.assign({ open: open, anchorEl: anchorEl, placement: "bottom-start" }, { children: _jsxs(ListStyled, { children: [_jsx(Typography, Object.assign({ sx: {
158
- paddingX: 1.25,
159
- py: 1.1,
160
- fontWeight: 500,
161
- fontSize: 11,
162
- color: '#8D8D94',
163
- } }, { children: "View" })), _jsx(Divider, {}), viewList.map((item) => (_jsxs(StyledMenuItem, Object.assign({ onMouseEnter: (e) => {
164
- if (item.isCustom) {
165
- setHoveredCustomView(item.id);
166
- }
167
- else if (hasSubmenu(item, defaultColumns)) {
168
- handleOpenSubmenu(item.id, e.currentTarget);
169
- }
170
- }, onMouseLeave: () => {
171
- if (item.isCustom) {
172
- setHoveredCustomView(null);
173
- }
174
- else if (hasSubmenu(item, defaultColumns)) {
175
- handleMenuItemLeave();
176
- }
177
- }, onClick: () => handleViewClick(item), sx: { position: 'relative', cursor: 'pointer', pr: 1.5 } }, { children: [item.id === selectedViewInfo.id ? _jsx("img", { style: { width: 15, height: 15 }, src: smallBlueCheckIcon, alt: "check" }) : _jsx(Space, {}), _jsxs("span", Object.assign({ style: { flex: 1, fontSize: 11 } }, { children: [item.label, item.default && item.id === selectedViewInfo.id && isModified && _jsx("span", Object.assign({ style: ModifiedTextSx }, { children: "(Modified)" }))] })), item.isCustom && hoveredCustomView === item.id && (_jsx("img", { src: editIcon, alt: "edit", style: { width: 12, height: 12, cursor: 'pointer' }, onClick: (e) => {
178
- e.stopPropagation();
179
- onEditCustomView === null || onEditCustomView === void 0 ? void 0 : onEditCustomView(item);
180
- } })), !item.isCustom && hasSubmenu(item, defaultColumns) && _jsx("img", { src: blackRightArrowIcon, alt: "arrow", style: { height: 12 } })] }), item.id))), _jsx(Tooltip, Object.assign({ title: "Limit reached. Delete a view to create a new one.", placement: "left", disableHoverListener: !shouldDimNewCustomView }, { children: _jsxs(StyledMenuItem, Object.assign({ sx: {
181
- border: 'none',
182
- opacity: shouldDimNewCustomView ? 0.5 : 1,
183
- cursor: shouldDimNewCustomView ? 'not-allowed' : 'pointer',
184
- }, onClick: (e) => {
185
- if (shouldDimNewCustomView) {
186
- e.stopPropagation();
187
- return;
188
- }
189
- e.stopPropagation();
190
- handleSubmenuLeave();
191
- onCreateCustomView === null || onCreateCustomView === void 0 ? void 0 : onCreateCustomView(false);
192
- } }, { children: [_jsx(Space, {}), _jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 0.5 } }, { children: [_jsx("img", { src: bluePlusIcon, alt: "icon", style: { opacity: shouldDimNewCustomView ? 0.5 : 1, width: 10, height: 10 } }), _jsx("span", Object.assign({ style: { color: shouldDimNewCustomView ? '#999' : '#1F88D0', fontSize: 11, fontWeight: 500 } }, { children: t('New Custom View') }))] })), _jsx(SpaceAfter, {})] })) }))] }) })), hoveredItem && submenuAnchorEl && currentSubmenuColumns.length > 0 && (_jsx(Menu, Object.assign({ open: Boolean(hoveredItem), anchorEl: submenuAnchorEl, placement: "auto-end", onMouseEnter: handleSubmenuEnter, onMouseLeave: handleSubmenuLeave, modifiers: [
193
- { name: 'offset', options: { offset: [-4, 0] } },
194
- { name: 'preventOverflow', enabled: true },
195
- { name: 'flip', enabled: true },
196
- ] }, { children: _jsxs(SubmenuContainer, { children: [_jsx(ViewsSubmenu, { columns: currentSubmenuColumns, allCurrentSelected: allCurrentSelected, someCurrentSelected: someCurrentSelected, onSelectAll: handleSelectAll, onReset: handleReset, onColumnToggle: toggleColumnSelection, onNestedItemToggle: toggleNestedItem, onReorder: handleReorder, anchorEl: submenuAnchorEl, isModified: hasChanges }), _jsx(SaveCustomViewBox, { children: _jsx(Tooltip, Object.assign({ title: "Limit reached. Delete a view to create a new one.", placement: "left", disableHoverListener: !shouldDimNewCustomView }, { children: _jsxs(SaveCustomViewInnerBox, Object.assign({ disabled: shouldDimNewCustomView, onClick: shouldDimNewCustomView ? undefined : handleSaveAsCustomView }, { children: [_jsx(Typography, Object.assign({ sx: { fontSize: 11, color: 'text.secondary' } }, { children: "Save as a custom view" })), _jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 0.5 } }, { children: [_jsx("img", { src: bluePlusIcon, alt: "add", style: { width: 10, height: 10, opacity: shouldDimNewCustomView ? 0.5 : 1 } }), _jsx(Typography, Object.assign({ sx: { fontSize: 10, fontWeight: 600, color: shouldDimNewCustomView ? '#999' : '#1F88D0' } }, { children: "Custom View" }))] }))] })) })) }), _jsxs(ButtonsContainer, { children: [_jsx(Button, Object.assign({ variant: "text", onClick: handleCancel, sx: CancelButtonSx }, { children: "Cancel" })), _jsx(Button, Object.assign({ variant: "contained", onClick: handleOkay, sx: OkayButtonSx }, { children: "Okay" }))] })] }) })))] })));
197
- }
198
- export default React.memo(ViewsDropdown);
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import type { ColumnListProps } from '../types';
3
- export declare const ColumnList: React.FC<ColumnListProps>;
@@ -1,70 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { Box, Typography, Link, Popper, Divider } from '@mui/material';
4
- import { Reorder } from 'framer-motion';
5
- import { dragIcon, rightArrow, viewIcon } from '../../../../constants/index.js';
6
- import { Checkbox, MenuItem } from '../../../index.js';
7
- import { isDateColumn, getColumnCheckState } from '../utils';
8
- import { ColumnListContainer, SelectAllHeader, ColumnItemRow, DragIconWrapper, CheckboxWrapper, SubmenuPaper, checkboxSx } from '../styles';
9
- export const ColumnList = ({ selectedColumns, columnNames, allSelected, someSelected, hoveredColumn, anchorEl, onReorder, onColumnToggle, onSubItemToggle, onSelectAll, onResetToDefault, onSubmenuEnter, onSubmenuLeave, onCancelClose, }) => {
10
- return (_jsxs(ColumnListContainer, { children: [_jsxs(SelectAllHeader, { children: [_jsx(DragIconWrapper, { children: _jsx("img", { src: viewIcon, alt: "drag", style: { width: 16, height: 16, opacity: 0.5 } }) }), _jsx(CheckboxWrapper, Object.assign({ onClick: (e) => {
11
- e.stopPropagation();
12
- onSelectAll();
13
- } }, { children: _jsx(Checkbox, { checked: allSelected, indeterminate: someSelected, size: "small", sx: checkboxSx, onChange: (e) => {
14
- e.stopPropagation();
15
- onSelectAll();
16
- }, onClick: (e) => {
17
- e.stopPropagation();
18
- } }) })), _jsx(Typography, Object.assign({ onClick: (e) => {
19
- e.stopPropagation();
20
- onSelectAll();
21
- }, sx: { flex: 1, fontSize: 13, fontWeight: 500, color: 'text.primary', ml: 0.75, cursor: 'pointer' } }, { children: "Select All" })), _jsx(Link, Object.assign({ component: "button", type: "button", onClick: (e) => {
22
- e.stopPropagation();
23
- onResetToDefault();
24
- }, underline: "none", sx: { fontSize: 13, fontWeight: 500, cursor: 'pointer', color: 'common.blue' } }, { children: "Reset to default" }))] }), _jsx(Box, Object.assign({ sx: { flex: 1, overflowY: 'auto', minHeight: 0 } }, { children: _jsx(Reorder.Group, Object.assign({ axis: "y", onReorder: onReorder, values: columnNames, style: { listStyle: 'none', padding: 0, margin: 0 } }, { children: selectedColumns.map((column) => {
25
- var _a;
26
- const isDate = isDateColumn(column.name);
27
- const hasSubmenu = column.menuItems && column.menuItems.length > 0;
28
- const { checked, indeterminate } = getColumnCheckState(column);
29
- return (_jsxs(Reorder.Item, Object.assign({ value: column.name, drag: !isDate, dragListener: !isDate, transition: { duration: 0 }, whileDrag: { zIndex: 9999, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', scale: 1 }, style: {
30
- listStyle: 'none',
31
- margin: 0,
32
- padding: 0,
33
- position: 'relative',
34
- zIndex: 1,
35
- backgroundColor: '#fff',
36
- width: '100%',
37
- willChange: 'transform',
38
- }, onDragStart: (e) => {
39
- const target = e.target;
40
- if (target.closest('[role="checkbox"]') ||
41
- target.closest('input[type="checkbox"]') ||
42
- target.closest('[class*="CheckboxWrapper"]')) {
43
- e.preventDefault();
44
- }
45
- } }, { children: [_jsxs(ColumnItemRow, Object.assign({ isHovered: hoveredColumn === column.name, isDate: isDate, onMouseEnter: (e) => hasSubmenu && onSubmenuEnter(column.name, e.currentTarget), onMouseLeave: () => hasSubmenu && onSubmenuLeave(), onClick: (e) => {
46
- if (e.target.closest('[role="checkbox"]') || e.target.closest('input[type="checkbox"]')) {
47
- e.stopPropagation();
48
- }
49
- }, sx: { width: '100%', position: 'relative' } }, { children: [_jsx(DragIconWrapper, { children: _jsx("img", { src: dragIcon, alt: "drag", draggable: false, style: { width: 16, height: 16, cursor: isDate ? 'default' : 'grab', pointerEvents: 'none' } }) }), _jsx(CheckboxWrapper, Object.assign({ onMouseDown: (e) => {
50
- e.stopPropagation();
51
- }, onPointerDown: (e) => {
52
- e.stopPropagation();
53
- } }, { children: _jsx(Checkbox, { checked: checked, indeterminate: indeterminate, onChange: (e) => {
54
- e.stopPropagation();
55
- onColumnToggle(column.name);
56
- }, onClick: (e) => {
57
- e.stopPropagation();
58
- }, disabled: isDate, size: "small", sx: checkboxSx }) })), _jsx(Typography, Object.assign({ sx: { flex: 1, fontSize: 13, fontWeight: 400, color: 'text.primary', ml: 1 } }, { children: column.label || column.name })), hasSubmenu && (_jsx(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', ml: 1, flexShrink: 0 } }, { children: _jsx("img", { src: rightArrow, alt: "arrow", style: { width: 12, height: 12 } }) })))] })), hasSubmenu && (_jsx(Popper, Object.assign({ open: hoveredColumn === column.name, anchorEl: anchorEl, placement: "right-start", sx: { zIndex: 10000 }, modifiers: [
59
- {
60
- name: 'offset',
61
- options: {
62
- offset: [0, 0],
63
- },
64
- },
65
- ] }, { children: _jsxs(Box, Object.assign({ onMouseEnter: onCancelClose, onMouseLeave: onSubmenuLeave, sx: { display: 'flex', pl: 0.5 } }, { children: [_jsx(Box, { sx: { width: 8, height: '100%', position: 'absolute', left: -8, top: 0, bottom: 0 } }), _jsx(SubmenuPaper, { children: (_a = column.menuItems) === null || _a === void 0 ? void 0 : _a.map((subItem, subItemIndex) => {
66
- var _a, _b;
67
- return (_jsxs(React.Fragment, { children: [_jsx(MenuItem, Object.assign({ isSelected: subItem.selected, onClick: () => onSubItemToggle(column.name, subItem.name) }, { children: subItem.label || subItem.name })), subItemIndex < ((_b = (_a = column.menuItems) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1 && _jsx(Divider, {})] }, subItem.name));
68
- }) })] })) })))] }), column.name));
69
- }) })) }))] }));
70
- };
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import type { ViewsSubmenuProps } from '../types';
3
- export declare const ViewsSubmenu: React.FC<ViewsSubmenuProps>;
@@ -1,71 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React, { useMemo } from 'react';
3
- import { Box, Typography, Divider, Popper } from '@mui/material';
4
- import { Reorder } from 'framer-motion';
5
- import { Checkbox, MenuItem } from '../../../index.js';
6
- import { blackRightArrowIcon } from '../../../../constants/index.js';
7
- import { getColumnCheckState, isDateColumn } from '../utils';
8
- import { ResetHeaderBox, ResetCheckboxSx, ColumnItemsContainer, SubmenuPaper } from '../styles';
9
- import { useNestedSubmenu } from '../hooks/useNestedSubmenu';
10
- export const ViewsSubmenu = ({ columns, allCurrentSelected, someCurrentSelected, onSelectAll, onReset, onColumnToggle, onNestedItemToggle, onReorder, anchorEl, isModified = false, }) => {
11
- const { hoveredNestedColumn, nestedSubmenuAnchorEl, openNestedSubmenu, closeNestedSubmenu, cancelNestedClose } = useNestedSubmenu();
12
- const columnNames = useMemo(() => columns.map((col) => col.name), [columns]);
13
- return (_jsxs(_Fragment, { children: [_jsxs(ResetHeaderBox, { children: [_jsx(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 1 } }, { children: _jsx(Checkbox, { checked: allCurrentSelected, indeterminate: someCurrentSelected, onChange: (e) => {
14
- e.stopPropagation();
15
- onSelectAll();
16
- }, onClick: (e) => {
17
- e.stopPropagation();
18
- }, sx: ResetCheckboxSx }) })), _jsx(Typography, Object.assign({ component: "button", onClick: (e) => {
19
- e.stopPropagation();
20
- onReset();
21
- }, sx: {
22
- fontSize: 11,
23
- fontWeight: 500,
24
- color: '#1F88D0',
25
- background: 'none',
26
- border: 'none',
27
- cursor: 'pointer',
28
- padding: 0,
29
- opacity: isModified ? 1 : 0.5,
30
- '&:hover': {
31
- textDecoration: 'underline',
32
- },
33
- } }, { children: "Reset" }))] }), _jsx(Divider, {}), _jsx(ColumnItemsContainer, { children: _jsx(Reorder.Group, Object.assign({ axis: "y", onReorder: onReorder, values: columnNames, style: { listStyle: 'none', padding: 0, margin: 0 } }, { children: columns.map((column, columnIndex) => {
34
- var _a;
35
- const hasNestedSubmenu = column.menuItems && column.menuItems.length > 0;
36
- const { checked, indeterminate } = getColumnCheckState(column);
37
- const isDate = isDateColumn(column.name);
38
- return (_jsxs(Reorder.Item, Object.assign({ value: column.name, drag: !isDate, dragListener: !isDate, transition: { duration: 0 }, whileDrag: { zIndex: 9999, boxShadow: '0 4px 12px rgba(0,0,0,0.15)', scale: 1.02 }, style: {
39
- listStyle: 'none',
40
- margin: 0,
41
- padding: 0,
42
- position: 'relative',
43
- zIndex: 1,
44
- backgroundColor: '#fff',
45
- width: '100%',
46
- willChange: 'transform',
47
- }, onDragStart: (e) => {
48
- const target = e.target;
49
- if (target.closest('[role="checkbox"]') ||
50
- target.closest('input[type="checkbox"]') ||
51
- target.closest('[class*="CheckboxWrapper"]')) {
52
- e.preventDefault();
53
- }
54
- } }, { children: [_jsxs(Box, Object.assign({ sx: { position: 'relative' }, onMouseEnter: (e) => hasNestedSubmenu && openNestedSubmenu(column.name, e.currentTarget), onMouseLeave: () => hasNestedSubmenu && closeNestedSubmenu() }, { children: [_jsxs(Box, Object.assign({ sx: {
55
- display: 'flex',
56
- alignItems: 'center',
57
- justifyContent: 'space-between',
58
- width: '100%',
59
- } }, { children: [_jsx(MenuItem, Object.assign({ isSelected: hasNestedSubmenu ? checked : column.selected, isIndeterminate: hasNestedSubmenu ? indeterminate : false, onClick: () => onColumnToggle(column.name), sx: { flex: 1, display: 'flex', alignItems: 'center' } }, { children: _jsx("span", { children: column.label || column.name }) })), hasNestedSubmenu && (_jsx(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', pr: 1, pointerEvents: 'none' } }, { children: _jsx("img", { src: blackRightArrowIcon, alt: "arrow", style: { height: 12 } }) })))] })), hasNestedSubmenu && (_jsx(Popper, Object.assign({ open: hoveredNestedColumn === column.name, anchorEl: nestedSubmenuAnchorEl, placement: "right-start", sx: { zIndex: 10000 }, modifiers: [
60
- {
61
- name: 'offset',
62
- options: {
63
- offset: [0, 0],
64
- },
65
- },
66
- ] }, { children: _jsxs(Box, Object.assign({ onMouseEnter: cancelNestedClose, onMouseLeave: closeNestedSubmenu, sx: { display: 'flex', pl: 0.5 } }, { children: [_jsx(Box, { sx: { width: 8, height: '100%', position: 'absolute', left: -8, top: 0, bottom: 0 } }), _jsx(SubmenuPaper, { children: (_a = column.menuItems) === null || _a === void 0 ? void 0 : _a.map((subItem, subItemIndex) => {
67
- var _a, _b;
68
- return (_jsxs(React.Fragment, { children: [_jsx(MenuItem, Object.assign({ isSelected: subItem.selected, onClick: () => onNestedItemToggle(column.name, subItem.name) }, { children: subItem.label || subItem.name })), subItemIndex < ((_b = (_a = column.menuItems) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1 && _jsx(Divider, {})] }, subItem.name));
69
- }) })] })) })))] })), columnIndex < columns.length - 1 && _jsx(Divider, {})] }), column.name));
70
- }) })) })] }));
71
- };
@@ -1,2 +0,0 @@
1
- export { ColumnList } from './ColumnList';
2
- export { ViewsSubmenu } from './ViewsSubmenu';
@@ -1,2 +0,0 @@
1
- export { ColumnList } from './ColumnList';
2
- export { ViewsSubmenu } from './ViewsSubmenu';
@@ -1,10 +0,0 @@
1
- export declare const DIALOG_WIDTH = 450;
2
- export declare const DIALOG_HEIGHT = 600;
3
- export declare const SUBMENU_CLOSE_DELAY = 150;
4
- export declare const MAX_CUSTOM_VIEWS = 3;
5
- export declare const TEMPLATE_NAME_MAX_LENGTH = 20;
6
- export declare const DATE_COLUMN_CONFIG: {
7
- readonly name: "date";
8
- readonly label: "Date";
9
- readonly selected: true;
10
- };
@@ -1,10 +0,0 @@
1
- export const DIALOG_WIDTH = 450;
2
- export const DIALOG_HEIGHT = 600;
3
- export const SUBMENU_CLOSE_DELAY = 150;
4
- export const MAX_CUSTOM_VIEWS = 3;
5
- export const TEMPLATE_NAME_MAX_LENGTH = 20;
6
- export const DATE_COLUMN_CONFIG = {
7
- name: 'date',
8
- label: 'Date',
9
- selected: true,
10
- };
@@ -1,5 +0,0 @@
1
- import type { ColumnViewProps } from '../../../types/index.js';
2
- import type { ViewMenuItem } from './types';
3
- export declare const advancedColumns: ColumnViewProps[];
4
- export declare const sheetColumns: ColumnViewProps[];
5
- export declare const defaultViewList: ViewMenuItem[];