@tap-payments/os-micro-frontend-shared 0.1.417 → 0.1.418-test.8-test.1-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.
- package/build/components/AnimatedSpinnerIcon/style.d.ts +0 -1
- package/build/components/Chip/style.d.ts +0 -1
- package/build/components/CountBadge/style.d.ts +0 -1
- package/build/components/Dialog/style.d.ts +0 -1
- package/build/components/FlippingCard/style.d.ts +0 -1
- package/build/components/ImageWrapper/ImageWrapper.d.ts +0 -1
- package/build/components/JSONViewer/style.d.ts +0 -1
- package/build/components/LeftPeekRightExpandingChip/style.d.ts +0 -1
- package/build/components/RightLeftExpandingCenterChip/style.d.ts +0 -1
- package/build/components/SearchButton/styles.d.ts +0 -1
- package/build/components/StatusIcons/AuthIcons/style.d.ts +0 -1
- package/build/components/StatusIcons/AuthorizationAutoIcons/style.d.ts +0 -1
- package/build/components/StatusIcons/ChargeStatusIcon/style.d.ts +0 -1
- package/build/components/StatusIcons/SourceIcons/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/ActionCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/AgreementCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/ApplicationStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/AuthenticationCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/AuthenticationStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/AuthenticationTypeCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/BalanceCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/ChannelsCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/CheckoutStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/DestinationStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/DueDateCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/IDButton/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/IntentsStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/PayoutReportCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/PayoutStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/ProductsCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/ReferenceCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/RefundChargeCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/RefundStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/SalesChannelCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/SegmentsCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/StatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/TokenStatusCell/style.d.ts +0 -1
- package/build/components/TableCells/CustomCells/style.d.ts +0 -1
- package/build/components/TableHeader/TableView/CreateViewDialog.js +2 -2
- package/build/components/TableHeader/TableView/ViewsMenu.d.ts +1 -1
- package/build/components/TableHeader/TableView/ViewsMenu.js +5 -20
- package/build/components/TableHeader/TableView/hooks/index.d.ts +2 -0
- package/build/components/TableHeader/TableView/hooks/index.js +1 -0
- package/build/components/TableHeader/TableView/hooks/useCustomTableViews.d.ts +9 -0
- package/build/components/TableHeader/TableView/hooks/useCustomTableViews.js +126 -0
- package/build/components/TableHeader/TableView/hooks/useViewsMenu.d.ts +1 -1
- package/build/components/TableHeader/TableView/hooks/useViewsMenu.js +28 -26
- package/build/components/TableHeader/TableView/index.d.ts +3 -2
- package/build/components/TableHeader/TableView/index.js +2 -2
- package/build/components/TableHeader/TableView/types.d.ts +40 -3
- package/build/components/TableHeader/TableView/utils/index.d.ts +3 -1
- package/build/components/TableHeader/TableView/utils/index.js +2 -1
- package/build/components/TableHeader/TableView/utils/templateState.d.ts +12 -0
- package/build/components/TableHeader/TableView/utils/templateState.js +30 -0
- package/build/components/TableHeader/TableView/utils/templateToColumnsView.d.ts +1 -1
- package/build/components/TableHeader/TableView/utils/templateToColumnsView.js +2 -3
- package/build/components/TableHeader/TableView/utils/viewMenu.d.ts +3 -21
- package/build/components/TableHeader/TableView/utils/viewMenu.js +1 -2
- package/build/components/TableHeader/index.d.ts +2 -1
- package/build/components/TableHeader/index.js +1 -1
- package/build/components/TableHeader/type.d.ts +2 -1
- package/build/components/TableReports/components/DownloadButton/style.d.ts +0 -1
- package/build/components/TableReports/style.d.ts +0 -1
- package/build/components/VirtualTables/SheetViewVirtualTable/SheetViewVirtualTable.js +10 -3
- package/build/components/VirtualTables/SheetViewVirtualTable/components/SheetViewIndexCell.d.ts +9 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/components/SheetViewIndexCell.js +27 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/components/index.d.ts +1 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/components/index.js +1 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/constants.d.ts +3 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/constants.js +3 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/utils/columns.d.ts +7 -0
- package/build/components/VirtualTables/SheetViewVirtualTable/utils/columns.js +22 -0
- package/build/components/VirtualTables/VirtualTable/VirtualTable.js +4 -1
- package/build/components/VirtualTables/components/TableHeader/components/TableCell/TableCell.js +1 -1
- package/build/components/VirtualTables/components/TableRow.js +2 -2
- package/build/components/VirtualTables/components/style.d.ts +0 -1
- package/build/components/index.d.ts +1 -1
- package/build/components/index.js +1 -1
- package/build/utils/columns.d.ts +4 -0
- package/build/utils/columns.js +22 -0
- package/package.json +3 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
import { GetSourceAnimationFunction } from './type';
|
|
4
3
|
export declare const ChipStyled: import("@emotion/styled").StyledComponent<import("react").RefAttributes<unknown> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
5
4
|
variant?: import("./type").ChipVariant | undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledSourceImage: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const PaymentSourcesContainer: import("@emotion/styled").StyledComponent<{
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledSourceImage: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const PaymentSourcesContainer: import("@emotion/styled").StyledComponent<{
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
import { TableMode } from '../../../../types/index.js';
|
|
4
3
|
export declare const ActionCellContainer: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
|
|
5
4
|
tableMode?: TableMode | undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const AgreementCellContainer: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledAgreementCardIcon: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const CardContainer: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledAppsCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const AppsStatusContainer: import("@emotion/styled").StyledComponent<{
|
|
5
4
|
hidden?: boolean | undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const AuthIcon: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
4
3
|
export declare const AuthCellContainer: import("@emotion/styled").StyledComponent<{
|
|
5
4
|
hidden?: boolean | undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledSourceImage: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const PaymentSourcesContainer: import("@emotion/styled").StyledComponent<{
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledDownloadFileImageWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
|
|
4
3
|
isTextShown?: boolean | undefined;
|
|
5
4
|
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledSourceImage: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const ReferenceSourcesContainer: import("@emotion/styled").StyledComponent<{
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const StyledSourceImage: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
5
4
|
export declare const SalesChannelsContainer: import("@emotion/styled").StyledComponent<{
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const StyledSourceCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
4
3
|
export declare const ReferenceSourcesContainer: import("@emotion/styled").StyledComponent<{
|
|
5
4
|
hidden?: boolean | undefined;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
2
|
export declare const GeographyBox: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
4
3
|
variant?: "Global" | "Regional" | "Local" | undefined;
|
|
5
4
|
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
@@ -62,10 +62,10 @@ function CreateViewDialog({ open, onClose, onCreate, availableColumns = [], defa
|
|
|
62
62
|
const handleDelete = () => __awaiter(this, void 0, void 0, function* () {
|
|
63
63
|
if (!editingView || isDeleting || isLoading)
|
|
64
64
|
return;
|
|
65
|
-
const
|
|
65
|
+
const viewId = editingView.id;
|
|
66
66
|
setIsDeleting(true);
|
|
67
67
|
try {
|
|
68
|
-
yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(
|
|
68
|
+
yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(viewId));
|
|
69
69
|
onClose();
|
|
70
70
|
}
|
|
71
71
|
catch (error) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { ViewsMenuProps } from './types';
|
|
3
|
-
declare function ViewsMenu({ onViewChange, templates, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, lang, }: ViewsMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function ViewsMenu({ onViewChange, templates, onCreateCustomView, onEditCustomView, onDeleteCustomView, onUpdateDefaultView, tableMode, lang, }: ViewsMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare const _default: import("react").MemoExoticComponent<typeof ViewsMenu>;
|
|
5
5
|
export default _default;
|
|
@@ -1,12 +1,3 @@
|
|
|
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
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
2
|
import { memo, useCallback, useState } from 'react';
|
|
12
3
|
import { useTranslation } from 'react-i18next';
|
|
@@ -18,8 +9,7 @@ import CreateViewDialog from './CreateViewDialog';
|
|
|
18
9
|
import { ViewWrapper } from './styles';
|
|
19
10
|
import { useViewsManager } from './hooks';
|
|
20
11
|
import { useViewsMenu } from './hooks/useViewsMenu';
|
|
21
|
-
|
|
22
|
-
function ViewsMenu({ onViewChange, templates, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', lang = 'en', }) {
|
|
12
|
+
function ViewsMenu({ onViewChange, templates, onCreateCustomView, onEditCustomView, onDeleteCustomView, onUpdateDefaultView, tableMode = 'default', lang = 'en', }) {
|
|
23
13
|
var _a;
|
|
24
14
|
const { t } = useTranslation();
|
|
25
15
|
const [modifiedModes, setModifiedModes] = useState({});
|
|
@@ -38,17 +28,12 @@ function ViewsMenu({ onViewChange, templates, onCreateCustomView, onEditCustomVi
|
|
|
38
28
|
defaultTemplate,
|
|
39
29
|
allTemplates,
|
|
40
30
|
});
|
|
41
|
-
const handleSaveDefaultColumns = useCallback((columns) =>
|
|
42
|
-
if (!(defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.
|
|
31
|
+
const handleSaveDefaultColumns = useCallback((columns) => {
|
|
32
|
+
if (!(defaultTemplate === null || defaultTemplate === void 0 ? void 0 : defaultTemplate.id))
|
|
43
33
|
return;
|
|
44
|
-
|
|
45
|
-
yield (onEditCustomView === null || onEditCustomView === void 0 ? void 0 : onEditCustomView(defaultTemplate.templateId, {
|
|
46
|
-
name: defaultTemplate.label,
|
|
47
|
-
selectedColumns: columns,
|
|
48
|
-
layout,
|
|
49
|
-
}));
|
|
34
|
+
onUpdateDefaultView === null || onUpdateDefaultView === void 0 ? void 0 : onUpdateDefaultView(columns);
|
|
50
35
|
setModifiedModes((current) => (Object.assign(Object.assign({}, current), { [tableMode]: true })));
|
|
51
|
-
}
|
|
36
|
+
}, [defaultTemplate, tableMode, onUpdateDefaultView]);
|
|
52
37
|
return (_jsxs(_Fragment, { children: [_jsx(ClickAwayListener, Object.assign({ onClickAway: handleCloseViewDropdown }, { children: _jsxs(ViewWrapper, Object.assign({ sx: { width: '32px' }, "data-testid": "ViewsMenu" }, { children: [_jsx(StyledButton, Object.assign({ title: t('tableView'), "data-testid": "ViewsMenu_button", onClick: handleViewButtonClick }, { children: _jsx(Icon, { src: viewIcon, alt: "view", sx: { width: 14, height: 14 } }) })), _jsx(ViewsDropdown, { open: Boolean(anchorEl), anchorEl: anchorEl, onClose: handleCloseViewDropdown, defaultModified: (_a = modifiedModes[tableMode]) !== null && _a !== void 0 ? _a : false, onMarkDefaultModified: () => {
|
|
53
38
|
setModifiedModes((current) => (Object.assign(Object.assign({}, current), { [tableMode]: true })));
|
|
54
39
|
}, setSelectedViewInfo: handleSelectedViewInfo, selectedViewInfo: selectedViewInfo, onCreateCustomView: handleOpenCreateDialog, customViews: customViews, onEditCustomView: handleOpenEditDialog, onSaveDefaultColumns: handleSaveDefaultColumns, defaultColumns: defaultColumns, updateSelectedView: updateSelectedView, baseDefaultColumns: baseDefaultColumns, mode: tableMode, defaultTemplate: defaultTemplate })] })) })), _jsx(CreateViewDialog, { open: isCreateDialogOpen, onClose: handleCloseCreateDialog, availableColumns: defaultColumns, defaultColumns: defaultColumns, onCreate: handleSaveView, editingView: editingView, onDelete: handleDeleteView, tableViews: shouldUseCurrentState ? initialColumnsForCreate !== null && initialColumnsForCreate !== void 0 ? initialColumnsForCreate : currentViewColumns : undefined, mode: tableMode })] }));
|
|
@@ -7,3 +7,5 @@ export { useSubmenuHover } from './useSubmenuHover';
|
|
|
7
7
|
export { useOriginalColumns } from './useOriginalColumns';
|
|
8
8
|
export { useNestedSubmenu } from './useNestedSubmenu';
|
|
9
9
|
export { useCreateViewDialog } from './useCreateViewDialog';
|
|
10
|
+
export { useCustomTableViews } from './useCustomTableViews';
|
|
11
|
+
export type { UseTableViewsProps, ColumnModifier } from './useCustomTableViews';
|
|
@@ -7,3 +7,4 @@ export { useSubmenuHover } from './useSubmenuHover';
|
|
|
7
7
|
export { useOriginalColumns } from './useOriginalColumns';
|
|
8
8
|
export { useNestedSubmenu } from './useNestedSubmenu';
|
|
9
9
|
export { useCreateViewDialog } from './useCreateViewDialog';
|
|
10
|
+
export { useCustomTableViews } from './useCustomTableViews';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ColumnsView } from '../../../../types/index.js';
|
|
2
|
+
import type { ViewMenuItem, UseTableViewsProps, CustomViewsConfigResult } from '../types';
|
|
3
|
+
export type { ColumnModifier, UseTableViewsProps, CustomViewsConfigResult } from '../types';
|
|
4
|
+
export declare function useCustomTableViews({ templates, setTemplates, createTemplate, updateTemplate, deleteTemplate, tableMode, lang, columnModifiers, }: UseTableViewsProps): {
|
|
5
|
+
customViews: CustomViewsConfigResult;
|
|
6
|
+
onViewChange: (view?: ViewMenuItem) => void;
|
|
7
|
+
columnsViewData: ColumnsView[];
|
|
8
|
+
selectedViewId: string | undefined;
|
|
9
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
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 { useCallback, useMemo, useState } from 'react';
|
|
11
|
+
import { updateColumnSelection } from '../../../../utils/index.js';
|
|
12
|
+
import { handleTemplateUpdate, templateToViewMenuItem, mapColumnsToLayoutSection, convertTemplateToColumnsView, convertTemplatesToColumnsView, isTemplateMatchingId, replaceTemplateInList, updateCurrentTemplate, } from '../utils';
|
|
13
|
+
export function useCustomTableViews({ templates, setTemplates, createTemplate, updateTemplate, deleteTemplate, tableMode, lang = 'en', columnModifiers, }) {
|
|
14
|
+
const [selectedView, setSelectedView] = useState(undefined);
|
|
15
|
+
const onCreateCustomView = useCallback(({ name, layout }) => __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
var _a;
|
|
17
|
+
const created = yield createTemplate({ name, layout: [layout] });
|
|
18
|
+
if (created) {
|
|
19
|
+
const normalized = handleTemplateUpdate(created);
|
|
20
|
+
setTemplates((prev) => [...prev, normalized]);
|
|
21
|
+
setSelectedView(templateToViewMenuItem(normalized, tableMode));
|
|
22
|
+
return { id: created.id, name: (_a = created.name) !== null && _a !== void 0 ? _a : '' };
|
|
23
|
+
}
|
|
24
|
+
}), [createTemplate, setTemplates, tableMode]);
|
|
25
|
+
const onDeleteCustomView = useCallback((templateId) => __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
yield deleteTemplate(templateId);
|
|
27
|
+
setTemplates((prev) => prev.filter((t) => !isTemplateMatchingId(t, templateId)));
|
|
28
|
+
setSelectedView((current) => ((current === null || current === void 0 ? void 0 : current.id) === templateId ? undefined : current));
|
|
29
|
+
}), [deleteTemplate, setTemplates]);
|
|
30
|
+
const onUpdateDefaultView = useCallback((columns) => {
|
|
31
|
+
const defaultTemplate = templates.find((t) => t.default);
|
|
32
|
+
if (!defaultTemplate)
|
|
33
|
+
return;
|
|
34
|
+
const layout = mapColumnsToLayoutSection(columns, tableMode, lang);
|
|
35
|
+
const { name, layout: mergedLayout } = updateCurrentTemplate(defaultTemplate, { layout });
|
|
36
|
+
const updatedDefault = Object.assign(Object.assign({}, defaultTemplate), { name, layout: mergedLayout });
|
|
37
|
+
setTemplates((prev) => replaceTemplateInList(prev, (t) => t.default, updatedDefault));
|
|
38
|
+
}, [templates, tableMode, lang, setTemplates]);
|
|
39
|
+
const onEditCustomView = useCallback((viewId, data) => __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const template = templates.find((t) => isTemplateMatchingId(t, viewId));
|
|
41
|
+
const { name, layout } = updateCurrentTemplate(template, data);
|
|
42
|
+
const updated = yield updateTemplate(viewId, { name, layout });
|
|
43
|
+
if (updated) {
|
|
44
|
+
const normalized = handleTemplateUpdate(updated);
|
|
45
|
+
setTemplates((prev) => replaceTemplateInList(prev, (t) => isTemplateMatchingId(t, viewId), normalized));
|
|
46
|
+
setSelectedView(templateToViewMenuItem(normalized, tableMode));
|
|
47
|
+
}
|
|
48
|
+
}), [templates, tableMode, updateTemplate, setTemplates]);
|
|
49
|
+
const customViews = useMemo(() => ({
|
|
50
|
+
templates,
|
|
51
|
+
onCreateCustomView,
|
|
52
|
+
onEditCustomView,
|
|
53
|
+
onDeleteCustomView,
|
|
54
|
+
onUpdateDefaultView,
|
|
55
|
+
}), [templates, onCreateCustomView, onEditCustomView, onDeleteCustomView, onUpdateDefaultView]);
|
|
56
|
+
const onViewChange = useCallback((view) => {
|
|
57
|
+
setSelectedView(view);
|
|
58
|
+
}, []);
|
|
59
|
+
const selectedViewSignature = useMemo(() => {
|
|
60
|
+
var _a, _b, _c;
|
|
61
|
+
if (!selectedView)
|
|
62
|
+
return '';
|
|
63
|
+
const submenuSignature = ((_a = selectedView.submenu) !== null && _a !== void 0 ? _a : []).map((item) => {
|
|
64
|
+
var _a;
|
|
65
|
+
return ({
|
|
66
|
+
name: item.name,
|
|
67
|
+
selected: item.selected,
|
|
68
|
+
menuItems: ((_a = item.menuItems) !== null && _a !== void 0 ? _a : []).map((menuItem) => ({
|
|
69
|
+
name: menuItem.name,
|
|
70
|
+
selected: menuItem.selected,
|
|
71
|
+
})),
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
const columnsSignature = (_b = selectedView.columns) !== null && _b !== void 0 ? _b : [];
|
|
75
|
+
const viewWithLayout = selectedView;
|
|
76
|
+
const layoutSignature = ((_c = viewWithLayout.layout) !== null && _c !== void 0 ? _c : []).map((layout) => {
|
|
77
|
+
var _a;
|
|
78
|
+
return ({
|
|
79
|
+
code: layout.code,
|
|
80
|
+
columns: ((_a = layout.columns) !== null && _a !== void 0 ? _a : []).map((col) => col.code),
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
return JSON.stringify({
|
|
84
|
+
id: selectedView.id,
|
|
85
|
+
columns: columnsSignature,
|
|
86
|
+
submenu: submenuSignature,
|
|
87
|
+
layout: layoutSignature,
|
|
88
|
+
});
|
|
89
|
+
}, [selectedView]);
|
|
90
|
+
const columnsViewData = useMemo(() => {
|
|
91
|
+
const currentSelectedView = selectedView;
|
|
92
|
+
let templateColumnsView = [];
|
|
93
|
+
if (currentSelectedView) {
|
|
94
|
+
const viewWithLayout = currentSelectedView;
|
|
95
|
+
const hasLayout = !!viewWithLayout.layout;
|
|
96
|
+
templateColumnsView = convertTemplateToColumnsView(viewWithLayout, tableMode);
|
|
97
|
+
if (templateColumnsView.length === 0 && !hasLayout && (templates === null || templates === void 0 ? void 0 : templates.length) > 0) {
|
|
98
|
+
templateColumnsView = convertTemplatesToColumnsView(templates, tableMode);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (templateColumnsView.length === 0 && !currentSelectedView && (templates === null || templates === void 0 ? void 0 : templates.length) > 0) {
|
|
102
|
+
templateColumnsView = convertTemplatesToColumnsView(templates, tableMode);
|
|
103
|
+
}
|
|
104
|
+
if (templateColumnsView.length === 0) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
if (columnModifiers === null || columnModifiers === void 0 ? void 0 : columnModifiers.length) {
|
|
108
|
+
let result = templateColumnsView;
|
|
109
|
+
for (const mod of columnModifiers) {
|
|
110
|
+
result = updateColumnSelection({
|
|
111
|
+
columnsViewData: result,
|
|
112
|
+
columnsName: mod.columnsName,
|
|
113
|
+
selected: mod.selected,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
return templateColumnsView;
|
|
119
|
+
}, [tableMode, templates, selectedView === null || selectedView === void 0 ? void 0 : selectedView.id, selectedViewSignature, columnModifiers]);
|
|
120
|
+
return {
|
|
121
|
+
customViews,
|
|
122
|
+
onViewChange,
|
|
123
|
+
columnsViewData,
|
|
124
|
+
selectedViewId: selectedView === null || selectedView === void 0 ? void 0 : selectedView.id,
|
|
125
|
+
};
|
|
126
|
+
}
|