@layers-app/shared 0.0.36 → 0.0.38
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/{KanbanLayout-B8RukpT8.js → KanbanLayout-_hW8P-S9.js} +1 -1
- package/dist/{TimeLine--HywOpKf.js → TimeLine-DCVt4pFB.js} +3 -3
- package/dist/components/ColorPicker/ColorPicker.d.ts +5 -0
- package/dist/components/CommentsPanel/components/CommentActionMenu.d.ts +6 -0
- package/dist/components/CommentsPanel/components/CommentsUploadFilesPreview.d.ts +2 -1
- package/dist/components/Copyright/index.d.ts +9 -0
- package/dist/components/Logotype.d.ts +4 -2
- package/dist/components/NotPublicPanel/NotPublicPanel.d.ts +1 -2
- package/dist/components/SearchFilters/SearchFilters.d.ts +4 -2
- package/dist/components/SearchFilters/components/Type.d.ts +3 -2
- package/dist/components/SearchFilters/types.d.ts +1 -1
- package/dist/components/TemplatesModal/components/SelectedTemplate.d.ts +7 -0
- package/dist/components/TemplatesModal/components/Template.d.ts +9 -0
- package/dist/components/TemplatesModal/components/Templates.d.ts +7 -0
- package/dist/components/TemplatesModal/data.d.ts +13 -0
- package/dist/components/TemplatesModal/index.d.ts +7 -0
- package/dist/components/TemplatesModal/types.d.ts +16 -0
- package/dist/components/table/FrontTable.d.ts +35 -0
- package/dist/components/table/api.d.ts +31 -0
- package/dist/components/table/components/Table.d.ts +1 -0
- package/dist/components/table/components/TableAggregation.d.ts +1 -0
- package/dist/components/table/components/TableCell.d.ts +11 -0
- package/dist/components/table/components/TableHeaderCell.d.ts +17 -0
- package/dist/components/table/components/TableHeaders.d.ts +1 -0
- package/dist/components/table/components/TableMenu.d.ts +4 -0
- package/dist/components/table/components/TablePagination.d.ts +1 -0
- package/dist/components/table/components/TablePanel.d.ts +1 -0
- package/dist/components/table/components/TableRow.d.ts +14 -0
- package/dist/components/table/components/TableRows.d.ts +14 -0
- package/dist/components/table/components/TableSearch.d.ts +1 -0
- package/dist/components/table/components/TableSkeleton.d.ts +11 -0
- package/dist/components/table/components/TableTitle.d.ts +16 -0
- package/dist/components/table/constants.d.ts +25 -0
- package/dist/components/table/export.d.ts +9 -0
- package/dist/components/table/helpers/columns.d.ts +28 -0
- package/dist/components/table/helpers/formatters.d.ts +76 -0
- package/dist/components/table/hooks/TableProvider.d.ts +57 -0
- package/dist/components/table/hooks/useColumnsResizing.d.ts +5 -0
- package/dist/components/table/hooks/useCreateTable.d.ts +52 -0
- package/dist/components/table/hooks/useSaveRowCount.d.ts +1 -0
- package/dist/components/table/hooks/useSorting.d.ts +2 -0
- package/dist/components/table/hooks/useTableStore.d.ts +51 -0
- package/dist/components/table/selectors.d.ts +1837 -0
- package/dist/components/table/store.d.ts +83 -0
- package/dist/components/table/types.d.ts +99 -0
- package/dist/index-B17e6b8n.js +67033 -0
- package/dist/index.d.ts +10 -0
- package/dist/{index.esm-DbeiBKnb.js → index.esm-Ci1yhzNS.js} +1 -1
- package/dist/index.js +170 -120
- package/dist/index.umd.cjs +558 -118
- package/dist/store/accessOptionsControl.d.ts +6 -0
- package/dist/utils/getPlanBadgeColor.d.ts +6 -0
- package/dist/utils/queryParams.d.ts +2 -0
- package/package.json +2 -2
- package/dist/index-D_nxhqe0.js +0 -39586
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { StoreApi, UseBoundStore } from 'zustand';
|
|
2
|
+
import { TableAPI } from './api';
|
|
3
|
+
import { TableColumnState, TableProps, TableSortModel } from './types';
|
|
4
|
+
export type UseStore = UseBoundStore<StoreApi<Store>>;
|
|
5
|
+
export type Store = {
|
|
6
|
+
sort: TableSortModel | null;
|
|
7
|
+
page: number;
|
|
8
|
+
pageSize: number;
|
|
9
|
+
selected: string[];
|
|
10
|
+
expanded: string[];
|
|
11
|
+
pinnedTop: string[];
|
|
12
|
+
pinnedBottom: string[];
|
|
13
|
+
search: string;
|
|
14
|
+
columnsState: Partial<Record<string, Partial<TableColumnState>>>;
|
|
15
|
+
columnsOrder: string[];
|
|
16
|
+
props: Required<TableProps>;
|
|
17
|
+
rootRef: HTMLDivElement | null;
|
|
18
|
+
scrollRef: HTMLDivElement | null;
|
|
19
|
+
api: TableAPI;
|
|
20
|
+
};
|
|
21
|
+
export type CreateTableStoreProps = {
|
|
22
|
+
defaultPage?: number;
|
|
23
|
+
defaultSort?: TableSortModel;
|
|
24
|
+
defaultPageSize?: number;
|
|
25
|
+
defaultSearch?: string;
|
|
26
|
+
defaultPinnedTop?: string[];
|
|
27
|
+
defaultPinnedBottom?: string[];
|
|
28
|
+
id?: string;
|
|
29
|
+
saveState?: boolean;
|
|
30
|
+
defaultColumnsOrder?: string[];
|
|
31
|
+
};
|
|
32
|
+
export declare const createTableStore: (props?: CreateTableStoreProps) => {
|
|
33
|
+
useStore: UseBoundStore<Omit<StoreApi<Store>, "persist"> & {
|
|
34
|
+
persist: {
|
|
35
|
+
setOptions: (options: Partial<import('zustand/middleware').PersistOptions<Store, {
|
|
36
|
+
sort: TableSortModel | null;
|
|
37
|
+
search: string;
|
|
38
|
+
pageSize: number;
|
|
39
|
+
columnsOrder: string[];
|
|
40
|
+
}>>) => void;
|
|
41
|
+
clearStorage: () => void;
|
|
42
|
+
rehydrate: () => Promise<void> | void;
|
|
43
|
+
hasHydrated: () => boolean;
|
|
44
|
+
onHydrate: (fn: (state: Store) => void) => () => void;
|
|
45
|
+
onFinishHydration: (fn: (state: Store) => void) => () => void;
|
|
46
|
+
getOptions: () => Partial<import('zustand/middleware').PersistOptions<Store, {
|
|
47
|
+
sort: TableSortModel | null;
|
|
48
|
+
search: string;
|
|
49
|
+
pageSize: number;
|
|
50
|
+
columnsOrder: string[];
|
|
51
|
+
}>>;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
api: {
|
|
55
|
+
setPageSize: (v: number) => void;
|
|
56
|
+
setPage: (v: number) => void;
|
|
57
|
+
setSort: (v: TableSortModel | null) => void;
|
|
58
|
+
downloadCSV: () => void;
|
|
59
|
+
downloadExcel: () => void;
|
|
60
|
+
setSelected: (selected: string[]) => void;
|
|
61
|
+
toggleColumn: (v: string) => void;
|
|
62
|
+
setVisibleColumns: (v: string[]) => void;
|
|
63
|
+
setSearch: (v: string) => void;
|
|
64
|
+
setPrevPage: () => void;
|
|
65
|
+
setNextPage: () => void;
|
|
66
|
+
setColumnWidth: (field: string, setWidth: number) => void;
|
|
67
|
+
toggleRowExpand: (id: string) => void;
|
|
68
|
+
setRootRef: (rootRef: HTMLDivElement) => void;
|
|
69
|
+
setScrollRef: (scrollRef: HTMLDivElement) => void;
|
|
70
|
+
calculateColumnWidths: (clear?: boolean) => void;
|
|
71
|
+
selectVisibleRows: () => void;
|
|
72
|
+
unselectVisibleRows: () => void;
|
|
73
|
+
unselectRow: (id: string) => void;
|
|
74
|
+
selectRow: (id: string) => void;
|
|
75
|
+
setAutosize: () => void;
|
|
76
|
+
removeAutosize: () => void;
|
|
77
|
+
setColumnsOrder: (columnsOrder: string[]) => void;
|
|
78
|
+
setColumnOrder: (columnId: string, index: number) => void;
|
|
79
|
+
moveColumnLeft: (columnId: string) => void;
|
|
80
|
+
moveColumnRight: (columnId: string) => void;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export type CreateTableReturn = ReturnType<typeof createTableStore>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { Numbers } from './helpers/formatters';
|
|
3
|
+
export type TableProps<ITEM extends TableRowModel = TableRowModel> = {
|
|
4
|
+
rows: ITEM[];
|
|
5
|
+
columns: TableColumnsProp<ITEM>;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
selection?: boolean;
|
|
8
|
+
sorting?: boolean;
|
|
9
|
+
searching?: boolean;
|
|
10
|
+
pagination?: boolean;
|
|
11
|
+
expanding?: boolean;
|
|
12
|
+
virtualization?: boolean;
|
|
13
|
+
pageSizeOptions?: number[];
|
|
14
|
+
rowCount?: number | null;
|
|
15
|
+
rowHeight?: number;
|
|
16
|
+
headerHeight?: number;
|
|
17
|
+
exportFileName?: string;
|
|
18
|
+
};
|
|
19
|
+
export type TableRowModel = {
|
|
20
|
+
id: string;
|
|
21
|
+
__children?: TableRowModel[];
|
|
22
|
+
};
|
|
23
|
+
export type TableColumnAlign = 'left' | 'right' | 'center';
|
|
24
|
+
export type TableColumnPin = 'left' | 'right';
|
|
25
|
+
export type TableRowPin = 'left' | 'right';
|
|
26
|
+
export type TableExportSettings<ITEM = TableRowModel> = {
|
|
27
|
+
header?: string;
|
|
28
|
+
value?: (item: ITEM, value: any) => string | number | null;
|
|
29
|
+
};
|
|
30
|
+
export declare const tableColumnNumberTypes: readonly ["number", "currency", "percent", "ratio"];
|
|
31
|
+
export type TableColumnNumberType = (typeof tableColumnNumberTypes)[number];
|
|
32
|
+
export declare const tableColumnDateTypes: readonly ["day", "month", "quarter", "year", "datetime", "date"];
|
|
33
|
+
export type TableColumnDateType = (typeof tableColumnDateTypes)[number];
|
|
34
|
+
export type TableColumnType = 'string' | 'boolean' | TableColumnNumberType | TableColumnDateType;
|
|
35
|
+
export type TableColumnsProp<ITEM extends TableRowModel = TableRowModel> = TableColumnDef<ITEM>[];
|
|
36
|
+
export type TableColumnDef<ITEM extends TableRowModel = TableRowModel> = {
|
|
37
|
+
field: string;
|
|
38
|
+
sortField?: string;
|
|
39
|
+
header: ReactNode;
|
|
40
|
+
headerTooltip?: ReactNode;
|
|
41
|
+
hidden?: boolean;
|
|
42
|
+
minWidth?: number;
|
|
43
|
+
maxWidth?: number;
|
|
44
|
+
align?: TableColumnAlign;
|
|
45
|
+
render?: (item: ITEM, value: any) => ReactNode;
|
|
46
|
+
cellStyle?: CSSProperties;
|
|
47
|
+
fullCellStyle?: CSSProperties;
|
|
48
|
+
headerStyle?: CSSProperties;
|
|
49
|
+
headerContentStyle?: CSSProperties;
|
|
50
|
+
sortable?: boolean;
|
|
51
|
+
pinned?: TableColumnPin;
|
|
52
|
+
resizable?: boolean;
|
|
53
|
+
exportable?: boolean;
|
|
54
|
+
filterable?: boolean;
|
|
55
|
+
filters?: {
|
|
56
|
+
field: string;
|
|
57
|
+
title: string;
|
|
58
|
+
type?: TableColumnType;
|
|
59
|
+
}[];
|
|
60
|
+
group?: string;
|
|
61
|
+
exportSettings?: TableExportSettings<ITEM> | TableExportSettings<ITEM>[];
|
|
62
|
+
management?: {
|
|
63
|
+
show: boolean;
|
|
64
|
+
};
|
|
65
|
+
ignoreOrder?: boolean;
|
|
66
|
+
width?: number;
|
|
67
|
+
flex?: number;
|
|
68
|
+
children?: TableColumnDef<ITEM>[];
|
|
69
|
+
aggregation?: {
|
|
70
|
+
type?: 'sum' | 'avg' | 'min' | 'max' | 'count';
|
|
71
|
+
render?: (value: ITEM[]) => ReactNode;
|
|
72
|
+
};
|
|
73
|
+
type?: TableColumnType | ({
|
|
74
|
+
type: 'number' | 'ratio';
|
|
75
|
+
} & Numbers.FormatterProps) | ({
|
|
76
|
+
type: 'percent';
|
|
77
|
+
} & Numbers.FormatterProps) | ({
|
|
78
|
+
type: 'currency';
|
|
79
|
+
} & Numbers.FormatterProps) | ({
|
|
80
|
+
type: 'date';
|
|
81
|
+
} & DateColumnProps);
|
|
82
|
+
};
|
|
83
|
+
export type TableSortDirection = 'desc' | 'asc';
|
|
84
|
+
export type TableSortModel = {
|
|
85
|
+
field: string;
|
|
86
|
+
sort: TableSortDirection;
|
|
87
|
+
};
|
|
88
|
+
export type TableColumnState<ITEM extends TableRowModel = TableRowModel> = TableColumnDef<ITEM> & {
|
|
89
|
+
id: string;
|
|
90
|
+
computedWidth?: number;
|
|
91
|
+
setWidth?: number;
|
|
92
|
+
finalWidth?: number;
|
|
93
|
+
};
|
|
94
|
+
export type RowMeta = {
|
|
95
|
+
main: boolean;
|
|
96
|
+
};
|
|
97
|
+
export type DateColumnProps = {
|
|
98
|
+
format?: string;
|
|
99
|
+
};
|