@natoora-libs/core 0.2.0-vini-dev-1 → 0.2.1-dev-doug-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/TableDesktop-aJHXhRuv.d.cts +126 -0
- package/dist/TableDesktop-aJHXhRuv.d.ts +126 -0
- package/dist/chunk-IXEF6LYV.js +33 -0
- package/dist/chunk-IXEF6LYV.js.map +1 -0
- package/dist/chunk-N3IUZVB7.js +21 -0
- package/dist/chunk-N3IUZVB7.js.map +1 -0
- package/dist/components/index.cjs +2177 -1711
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +37 -79
- package/dist/components/index.d.ts +37 -79
- package/dist/components/index.js +1973 -1524
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/index.cjs +34 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.cts +12 -2
- package/dist/hooks/index.d.ts +12 -2
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/utils/index.cjs +47 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +12 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ChangeEvent, FC, RefObject, ReactNode, ComponentType } from 'react';
|
|
3
|
+
import { SelectChangeEvent } from '@mui/material';
|
|
4
|
+
|
|
5
|
+
type TableDesktopFooterProps = {
|
|
6
|
+
numPages: number;
|
|
7
|
+
page: number;
|
|
8
|
+
onPageChange: (event: ChangeEvent<unknown>, page: number) => void;
|
|
9
|
+
pageSize?: number;
|
|
10
|
+
pageSizeOptions?: number[];
|
|
11
|
+
onPageSizeChange?: (event: SelectChangeEvent<number>) => void;
|
|
12
|
+
refetchData?: () => Promise<unknown>;
|
|
13
|
+
isFetching: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare const TableDesktopFooter: FC<TableDesktopFooterProps>;
|
|
16
|
+
|
|
17
|
+
type BulkChanges = {
|
|
18
|
+
field: string;
|
|
19
|
+
value: string | number | boolean;
|
|
20
|
+
label: string | number | boolean;
|
|
21
|
+
}[];
|
|
22
|
+
type TableColumnConfigurationMenuProps = {
|
|
23
|
+
anchorEl: HTMLElement | null;
|
|
24
|
+
onCloseMenu: () => void;
|
|
25
|
+
};
|
|
26
|
+
type ExportCsvDialogProps = {
|
|
27
|
+
headCells: HeadCell[];
|
|
28
|
+
headerFilters: HeaderFilters;
|
|
29
|
+
totalDataCount?: number;
|
|
30
|
+
isOpen: boolean;
|
|
31
|
+
onCloseDialog: () => void;
|
|
32
|
+
};
|
|
33
|
+
type BulkChangesDialogProps = {
|
|
34
|
+
bulkChanges: BulkChanges;
|
|
35
|
+
selectedRows: (string | number)[];
|
|
36
|
+
shouldUpdateAll: boolean;
|
|
37
|
+
visibleEditableColumns: HeadCell[];
|
|
38
|
+
isBulkChangesDialogOpen: boolean;
|
|
39
|
+
onCloseDialog: () => void;
|
|
40
|
+
refetchData: () => Promise<unknown>;
|
|
41
|
+
};
|
|
42
|
+
type TableDesktopToolbarProps = {
|
|
43
|
+
toolbarLabel?: string;
|
|
44
|
+
headCells: HeadCell[];
|
|
45
|
+
headerFilters: HeaderFilters;
|
|
46
|
+
selectedRows: (string | number)[];
|
|
47
|
+
isDataEmpty: boolean;
|
|
48
|
+
totalDataCount?: number;
|
|
49
|
+
isRowsFromAllPagesSelected: boolean;
|
|
50
|
+
refetchData?: () => Promise<unknown>;
|
|
51
|
+
tableToolbarMenuButtonRef: RefObject<HTMLButtonElement | null>;
|
|
52
|
+
tableToolbarMenuAnchor: HTMLElement | null;
|
|
53
|
+
onClickToolbarMenuOpen: () => void;
|
|
54
|
+
onCloseMenu: () => void;
|
|
55
|
+
disableBulkChangesMode?: boolean;
|
|
56
|
+
isBulkChangesMode: boolean;
|
|
57
|
+
onChangeBulkChangesMode: (checked: boolean) => void;
|
|
58
|
+
renderExportCsvDialog?: (props: ExportCsvDialogProps) => ReactNode;
|
|
59
|
+
renderBulkChangesDialog?: (props: BulkChangesDialogProps) => ReactNode;
|
|
60
|
+
renderTableColumnConfigurationMenu?: (props: TableColumnConfigurationMenuProps) => ReactNode;
|
|
61
|
+
renderInfoIcons?: ReactNode;
|
|
62
|
+
};
|
|
63
|
+
declare const TableDesktopToolbar: FC<TableDesktopToolbarProps>;
|
|
64
|
+
|
|
65
|
+
type Order = 'asc' | 'desc';
|
|
66
|
+
type EditableCellType = 'select' | 'checkbox' | 'text' | 'numeric';
|
|
67
|
+
type HeaderFilterObject = {
|
|
68
|
+
id: number | string;
|
|
69
|
+
[key: string]: number | string;
|
|
70
|
+
};
|
|
71
|
+
type HeaderFilterOptions = string[] | HeaderFilterObject[];
|
|
72
|
+
type HeaderFilters = {
|
|
73
|
+
[key: string]: HeaderFilterOptions;
|
|
74
|
+
};
|
|
75
|
+
type HeadCell = {
|
|
76
|
+
id: string;
|
|
77
|
+
label?: string;
|
|
78
|
+
labelTooltip?: string;
|
|
79
|
+
fieldName?: string;
|
|
80
|
+
numeric?: boolean;
|
|
81
|
+
disablePadding?: boolean;
|
|
82
|
+
width?: number | string;
|
|
83
|
+
enabled?: boolean;
|
|
84
|
+
disableSort?: boolean;
|
|
85
|
+
renderHeader?: ReactNode;
|
|
86
|
+
editableCellType?: EditableCellType;
|
|
87
|
+
validateInput?: (value: string | null) => boolean;
|
|
88
|
+
onUpdateEditableCell?: (rowId: number, field: string, value: string | number | boolean, label: string | number | boolean) => void;
|
|
89
|
+
filterType?: "default" | "autocomplete" | "boolean";
|
|
90
|
+
filterOptions?: HeaderFilterOptions;
|
|
91
|
+
refetchFilterOptions?: () => void;
|
|
92
|
+
isFetchingFilterOptions?: boolean;
|
|
93
|
+
onAutocompleteSearch?: (value: string) => void;
|
|
94
|
+
};
|
|
95
|
+
type TableDesktopProps = {
|
|
96
|
+
data: any[];
|
|
97
|
+
headCells: HeadCell[];
|
|
98
|
+
RenderItem: ComponentType<any>;
|
|
99
|
+
renderToolbar?: (props: TableDesktopToolbarProps) => ReactNode;
|
|
100
|
+
renderFooter?: (props: {
|
|
101
|
+
refetchData: TableDesktopFooterProps['refetchData'];
|
|
102
|
+
isFetching: TableDesktopFooterProps['isFetching'];
|
|
103
|
+
}) => ReactNode;
|
|
104
|
+
appliedFilters?: any;
|
|
105
|
+
headerFilters?: HeaderFilters;
|
|
106
|
+
children?: ReactNode;
|
|
107
|
+
height?: number | string;
|
|
108
|
+
rowHeight?: number;
|
|
109
|
+
rowsPerPage?: number;
|
|
110
|
+
totalDataCount?: number;
|
|
111
|
+
isLoading?: boolean;
|
|
112
|
+
enableEditMode?: boolean;
|
|
113
|
+
disableInternalSort?: boolean;
|
|
114
|
+
updateSort?: (sortField: string, sortDir: Order) => void;
|
|
115
|
+
showClearFilterButton?: boolean;
|
|
116
|
+
handleClickOnClearFiltersButton?: () => void;
|
|
117
|
+
deleteItem?: (id: number, contentTypeName?: string, appTypeName?: string) => void;
|
|
118
|
+
keyField?: string;
|
|
119
|
+
tableLayout?: 'fixed' | 'auto';
|
|
120
|
+
onApplyFilters?: (updatedFilters: HeaderFilters, shouldSave: boolean) => void;
|
|
121
|
+
refetchData?: () => Promise<unknown>;
|
|
122
|
+
shouldShowCheckOnFilter?: (columnId: string, filterOption?: string | HeaderFilterObject) => boolean;
|
|
123
|
+
};
|
|
124
|
+
declare const TableDesktop: ({ data, headCells, RenderItem, renderToolbar, renderFooter, appliedFilters, headerFilters, children, height, rowHeight, rowsPerPage, totalDataCount, isLoading, enableEditMode, disableInternalSort, updateSort, showClearFilterButton, handleClickOnClearFiltersButton, deleteItem, keyField, tableLayout, onApplyFilters, shouldShowCheckOnFilter, refetchData, }: TableDesktopProps) => react_jsx_runtime.JSX.Element;
|
|
125
|
+
|
|
126
|
+
export { type BulkChanges as B, type EditableCellType as E, type HeadCell as H, type Order as O, type TableDesktopProps as T, type HeaderFilters as a, type HeaderFilterOptions as b, type HeaderFilterObject as c, TableDesktop as d, TableDesktopFooter as e, type TableDesktopFooterProps as f, TableDesktopToolbar as g, type TableDesktopToolbarProps as h, type TableColumnConfigurationMenuProps as i, type BulkChangesDialogProps as j, type ExportCsvDialogProps as k };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ChangeEvent, FC, RefObject, ReactNode, ComponentType } from 'react';
|
|
3
|
+
import { SelectChangeEvent } from '@mui/material';
|
|
4
|
+
|
|
5
|
+
type TableDesktopFooterProps = {
|
|
6
|
+
numPages: number;
|
|
7
|
+
page: number;
|
|
8
|
+
onPageChange: (event: ChangeEvent<unknown>, page: number) => void;
|
|
9
|
+
pageSize?: number;
|
|
10
|
+
pageSizeOptions?: number[];
|
|
11
|
+
onPageSizeChange?: (event: SelectChangeEvent<number>) => void;
|
|
12
|
+
refetchData?: () => Promise<unknown>;
|
|
13
|
+
isFetching: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare const TableDesktopFooter: FC<TableDesktopFooterProps>;
|
|
16
|
+
|
|
17
|
+
type BulkChanges = {
|
|
18
|
+
field: string;
|
|
19
|
+
value: string | number | boolean;
|
|
20
|
+
label: string | number | boolean;
|
|
21
|
+
}[];
|
|
22
|
+
type TableColumnConfigurationMenuProps = {
|
|
23
|
+
anchorEl: HTMLElement | null;
|
|
24
|
+
onCloseMenu: () => void;
|
|
25
|
+
};
|
|
26
|
+
type ExportCsvDialogProps = {
|
|
27
|
+
headCells: HeadCell[];
|
|
28
|
+
headerFilters: HeaderFilters;
|
|
29
|
+
totalDataCount?: number;
|
|
30
|
+
isOpen: boolean;
|
|
31
|
+
onCloseDialog: () => void;
|
|
32
|
+
};
|
|
33
|
+
type BulkChangesDialogProps = {
|
|
34
|
+
bulkChanges: BulkChanges;
|
|
35
|
+
selectedRows: (string | number)[];
|
|
36
|
+
shouldUpdateAll: boolean;
|
|
37
|
+
visibleEditableColumns: HeadCell[];
|
|
38
|
+
isBulkChangesDialogOpen: boolean;
|
|
39
|
+
onCloseDialog: () => void;
|
|
40
|
+
refetchData: () => Promise<unknown>;
|
|
41
|
+
};
|
|
42
|
+
type TableDesktopToolbarProps = {
|
|
43
|
+
toolbarLabel?: string;
|
|
44
|
+
headCells: HeadCell[];
|
|
45
|
+
headerFilters: HeaderFilters;
|
|
46
|
+
selectedRows: (string | number)[];
|
|
47
|
+
isDataEmpty: boolean;
|
|
48
|
+
totalDataCount?: number;
|
|
49
|
+
isRowsFromAllPagesSelected: boolean;
|
|
50
|
+
refetchData?: () => Promise<unknown>;
|
|
51
|
+
tableToolbarMenuButtonRef: RefObject<HTMLButtonElement | null>;
|
|
52
|
+
tableToolbarMenuAnchor: HTMLElement | null;
|
|
53
|
+
onClickToolbarMenuOpen: () => void;
|
|
54
|
+
onCloseMenu: () => void;
|
|
55
|
+
disableBulkChangesMode?: boolean;
|
|
56
|
+
isBulkChangesMode: boolean;
|
|
57
|
+
onChangeBulkChangesMode: (checked: boolean) => void;
|
|
58
|
+
renderExportCsvDialog?: (props: ExportCsvDialogProps) => ReactNode;
|
|
59
|
+
renderBulkChangesDialog?: (props: BulkChangesDialogProps) => ReactNode;
|
|
60
|
+
renderTableColumnConfigurationMenu?: (props: TableColumnConfigurationMenuProps) => ReactNode;
|
|
61
|
+
renderInfoIcons?: ReactNode;
|
|
62
|
+
};
|
|
63
|
+
declare const TableDesktopToolbar: FC<TableDesktopToolbarProps>;
|
|
64
|
+
|
|
65
|
+
type Order = 'asc' | 'desc';
|
|
66
|
+
type EditableCellType = 'select' | 'checkbox' | 'text' | 'numeric';
|
|
67
|
+
type HeaderFilterObject = {
|
|
68
|
+
id: number | string;
|
|
69
|
+
[key: string]: number | string;
|
|
70
|
+
};
|
|
71
|
+
type HeaderFilterOptions = string[] | HeaderFilterObject[];
|
|
72
|
+
type HeaderFilters = {
|
|
73
|
+
[key: string]: HeaderFilterOptions;
|
|
74
|
+
};
|
|
75
|
+
type HeadCell = {
|
|
76
|
+
id: string;
|
|
77
|
+
label?: string;
|
|
78
|
+
labelTooltip?: string;
|
|
79
|
+
fieldName?: string;
|
|
80
|
+
numeric?: boolean;
|
|
81
|
+
disablePadding?: boolean;
|
|
82
|
+
width?: number | string;
|
|
83
|
+
enabled?: boolean;
|
|
84
|
+
disableSort?: boolean;
|
|
85
|
+
renderHeader?: ReactNode;
|
|
86
|
+
editableCellType?: EditableCellType;
|
|
87
|
+
validateInput?: (value: string | null) => boolean;
|
|
88
|
+
onUpdateEditableCell?: (rowId: number, field: string, value: string | number | boolean, label: string | number | boolean) => void;
|
|
89
|
+
filterType?: "default" | "autocomplete" | "boolean";
|
|
90
|
+
filterOptions?: HeaderFilterOptions;
|
|
91
|
+
refetchFilterOptions?: () => void;
|
|
92
|
+
isFetchingFilterOptions?: boolean;
|
|
93
|
+
onAutocompleteSearch?: (value: string) => void;
|
|
94
|
+
};
|
|
95
|
+
type TableDesktopProps = {
|
|
96
|
+
data: any[];
|
|
97
|
+
headCells: HeadCell[];
|
|
98
|
+
RenderItem: ComponentType<any>;
|
|
99
|
+
renderToolbar?: (props: TableDesktopToolbarProps) => ReactNode;
|
|
100
|
+
renderFooter?: (props: {
|
|
101
|
+
refetchData: TableDesktopFooterProps['refetchData'];
|
|
102
|
+
isFetching: TableDesktopFooterProps['isFetching'];
|
|
103
|
+
}) => ReactNode;
|
|
104
|
+
appliedFilters?: any;
|
|
105
|
+
headerFilters?: HeaderFilters;
|
|
106
|
+
children?: ReactNode;
|
|
107
|
+
height?: number | string;
|
|
108
|
+
rowHeight?: number;
|
|
109
|
+
rowsPerPage?: number;
|
|
110
|
+
totalDataCount?: number;
|
|
111
|
+
isLoading?: boolean;
|
|
112
|
+
enableEditMode?: boolean;
|
|
113
|
+
disableInternalSort?: boolean;
|
|
114
|
+
updateSort?: (sortField: string, sortDir: Order) => void;
|
|
115
|
+
showClearFilterButton?: boolean;
|
|
116
|
+
handleClickOnClearFiltersButton?: () => void;
|
|
117
|
+
deleteItem?: (id: number, contentTypeName?: string, appTypeName?: string) => void;
|
|
118
|
+
keyField?: string;
|
|
119
|
+
tableLayout?: 'fixed' | 'auto';
|
|
120
|
+
onApplyFilters?: (updatedFilters: HeaderFilters, shouldSave: boolean) => void;
|
|
121
|
+
refetchData?: () => Promise<unknown>;
|
|
122
|
+
shouldShowCheckOnFilter?: (columnId: string, filterOption?: string | HeaderFilterObject) => boolean;
|
|
123
|
+
};
|
|
124
|
+
declare const TableDesktop: ({ data, headCells, RenderItem, renderToolbar, renderFooter, appliedFilters, headerFilters, children, height, rowHeight, rowsPerPage, totalDataCount, isLoading, enableEditMode, disableInternalSort, updateSort, showClearFilterButton, handleClickOnClearFiltersButton, deleteItem, keyField, tableLayout, onApplyFilters, shouldShowCheckOnFilter, refetchData, }: TableDesktopProps) => react_jsx_runtime.JSX.Element;
|
|
125
|
+
|
|
126
|
+
export { type BulkChanges as B, type EditableCellType as E, type HeadCell as H, type Order as O, type TableDesktopProps as T, type HeaderFilters as a, type HeaderFilterOptions as b, type HeaderFilterObject as c, TableDesktop as d, TableDesktopFooter as e, type TableDesktopFooterProps as f, TableDesktopToolbar as g, type TableDesktopToolbarProps as h, type TableColumnConfigurationMenuProps as i, type BulkChangesDialogProps as j, type ExportCsvDialogProps as k };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// src/hooks/useDynamicScroll/useDynamicScroll.ts
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
var useDynamicScroll = ({
|
|
4
|
+
scrollRef,
|
|
5
|
+
scrollAmount = 300,
|
|
6
|
+
effectDependencies
|
|
7
|
+
}) => {
|
|
8
|
+
const [isScrollable, setIsScrollable] = useState(false);
|
|
9
|
+
const checkIfScrollNeeded = useCallback(() => {
|
|
10
|
+
if (scrollRef.current) {
|
|
11
|
+
const { scrollWidth, clientWidth } = scrollRef.current;
|
|
12
|
+
setIsScrollable(scrollWidth > clientWidth);
|
|
13
|
+
}
|
|
14
|
+
}, []);
|
|
15
|
+
const scroll = (direction) => {
|
|
16
|
+
if (scrollRef?.current) {
|
|
17
|
+
scrollRef.current.scrollLeft += direction === "left" ? -scrollAmount : scrollAmount;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
checkIfScrollNeeded();
|
|
22
|
+
window.addEventListener("resize", checkIfScrollNeeded);
|
|
23
|
+
return () => {
|
|
24
|
+
window.removeEventListener("resize", checkIfScrollNeeded);
|
|
25
|
+
};
|
|
26
|
+
}, [checkIfScrollNeeded, ...effectDependencies]);
|
|
27
|
+
return { isScrollable, scroll };
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {
|
|
31
|
+
useDynamicScroll
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=chunk-IXEF6LYV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useDynamicScroll/useDynamicScroll.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useState } from 'react';\n\ntype useDynamicScrollParams = {\n scrollRef: RefObject<HTMLDivElement | null>;\n scrollAmount?: number;\n effectDependencies: unknown[];\n};\n\nexport const useDynamicScroll = ({\n scrollRef,\n scrollAmount = 300,\n effectDependencies,\n}: useDynamicScrollParams) => {\n const [isScrollable, setIsScrollable] = useState(false);\n\n const checkIfScrollNeeded = useCallback(() => {\n if (scrollRef.current) {\n const { scrollWidth, clientWidth } = scrollRef.current;\n setIsScrollable(scrollWidth > clientWidth);\n }\n }, []);\n\n const scroll = (direction: 'left' | 'right') => {\n if (scrollRef?.current) {\n scrollRef.current.scrollLeft +=\n direction === 'left' ? -scrollAmount : scrollAmount;\n }\n };\n\n useEffect(() => {\n checkIfScrollNeeded();\n\n window.addEventListener('resize', checkIfScrollNeeded);\n\n return () => {\n window.removeEventListener('resize', checkIfScrollNeeded);\n };\n }, [checkIfScrollNeeded, ...effectDependencies]);\n\n return { isScrollable, scroll };\n};\n"],"mappings":";AAAA,SAAoB,aAAa,WAAW,gBAAgB;AAQrD,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA,eAAe;AAAA,EACf;AACF,MAA8B;AAC5B,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAEtD,QAAM,sBAAsB,YAAY,MAAM;AAC5C,QAAI,UAAU,SAAS;AACrB,YAAM,EAAE,aAAa,YAAY,IAAI,UAAU;AAC/C,sBAAgB,cAAc,WAAW;AAAA,IAC3C;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,SAAS,CAAC,cAAgC;AAC9C,QAAI,WAAW,SAAS;AACtB,gBAAU,QAAQ,cAChB,cAAc,SAAS,CAAC,eAAe;AAAA,IAC3C;AAAA,EACF;AAEA,YAAU,MAAM;AACd,wBAAoB;AAEpB,WAAO,iBAAiB,UAAU,mBAAmB;AAErD,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,mBAAmB;AAAA,IAC1D;AAAA,EACF,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;AAE/C,SAAO,EAAE,cAAc,OAAO;AAChC;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/utils/flattenTableFilters/flattenTableFilters.ts
|
|
2
|
+
var getFlattenedFiltersLabels = (filters, fieldName) => {
|
|
3
|
+
return filters.map((value) => {
|
|
4
|
+
if (typeof value === "object") {
|
|
5
|
+
return value[fieldName] ?? "";
|
|
6
|
+
}
|
|
7
|
+
return value;
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var getFlattenedFiltersIds = (filters) => Object.fromEntries(
|
|
11
|
+
Object.entries(filters).map(([id, values]) => [
|
|
12
|
+
id,
|
|
13
|
+
values.map((value) => typeof value === "object" ? value.id : value)
|
|
14
|
+
])
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
getFlattenedFiltersLabels,
|
|
19
|
+
getFlattenedFiltersIds
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-N3IUZVB7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/flattenTableFilters/flattenTableFilters.ts"],"sourcesContent":["import {\n HeaderFilterObject,\n HeaderFilters,\n} from '@/components/TableDesktop/TableDesktop';\n\nexport type FlattenedFilterIds = {\n [key: string]: (string | number)[];\n};\n\nexport const getFlattenedFiltersLabels = (\n filters: string[] | HeaderFilterObject[],\n fieldName: string,\n): (string | number)[] => {\n return filters.map((value: string | HeaderFilterObject) => {\n if (typeof value === 'object') {\n return value[fieldName] ?? '';\n }\n return value;\n });\n};\n\nexport const getFlattenedFiltersIds = (\n filters: HeaderFilters,\n): FlattenedFilterIds =>\n Object.fromEntries(\n Object.entries(filters).map(([id, values]) => [\n id,\n values.map((value) => (typeof value === 'object' ? value.id : value)),\n ]),\n );\n"],"mappings":";AASO,IAAM,4BAA4B,CACvC,SACA,cACwB;AACxB,SAAO,QAAQ,IAAI,CAAC,UAAuC;AACzD,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,MAAM,SAAS,KAAK;AAAA,IAC7B;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAEO,IAAM,yBAAyB,CACpC,YAEA,OAAO;AAAA,EACL,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,MAAM,MAAM;AAAA,IAC5C;AAAA,IACA,OAAO,IAAI,CAAC,UAAW,OAAO,UAAU,WAAW,MAAM,KAAK,KAAM;AAAA,EACtE,CAAC;AACH;","names":[]}
|