@carto/ps-react-ui 4.3.0-widgets.0 → 5.0.0-widgets.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.js +25 -23
- package/dist/components.js.map +1 -1
- package/dist/error-zHOU_QIB.js +38 -0
- package/dist/error-zHOU_QIB.js.map +1 -0
- package/dist/exports-Cr43OCul.js +51 -0
- package/dist/exports-Cr43OCul.js.map +1 -0
- package/dist/{lasso-tool-BC-rsMMW.js → lasso-tool-CYn3ivf-.js} +165 -183
- package/dist/lasso-tool-CYn3ivf-.js.map +1 -0
- package/dist/no-data-Cz80hEWj.js +61 -0
- package/dist/no-data-Cz80hEWj.js.map +1 -0
- package/dist/options-D9wflre6.js +49 -0
- package/dist/options-D9wflre6.js.map +1 -0
- package/dist/row-C_m1ovHv.js +35 -0
- package/dist/row-C_m1ovHv.js.map +1 -0
- package/dist/series-6xp-KQ0S.js +91 -0
- package/dist/series-6xp-KQ0S.js.map +1 -0
- package/dist/{smart-tooltip-BSlcAkBM.js → smart-tooltip-BEtBaIdz.js} +2 -2
- package/dist/{smart-tooltip-BSlcAkBM.js.map → smart-tooltip-BEtBaIdz.js.map} +1 -1
- package/dist/styles-dOu_pRNb.js +77 -0
- package/dist/styles-dOu_pRNb.js.map +1 -0
- package/dist/tooltip-BDnrRKrp.js +25 -0
- package/dist/tooltip-BDnrRKrp.js.map +1 -0
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/use-debounce.d.ts +19 -0
- package/dist/types/hooks/use-widget-ref.d.ts +17 -0
- package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +5 -11
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +3 -8
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
- package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
- package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
- package/dist/types/widgets/actions/download/download.d.ts +1 -1
- package/dist/types/widgets/actions/download/exports.d.ts +1 -1
- package/dist/types/widgets/actions/download/types.d.ts +3 -11
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/styles.d.ts +6 -0
- package/dist/types/widgets/actions/fullscreen/types.d.ts +8 -9
- package/dist/types/widgets/actions/index.d.ts +14 -1
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
- package/dist/types/widgets/actions/lock-selection/types.d.ts +38 -0
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
- package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
- package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
- package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
- package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
- package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
- package/dist/types/widgets/actions/searcher/types.d.ts +64 -0
- package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
- package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
- package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
- package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
- package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
- package/dist/types/widgets/bar/config.d.ts +5 -4
- package/dist/types/widgets/bar/index.d.ts +2 -2
- package/dist/types/widgets/bar/types.d.ts +6 -12
- package/dist/types/widgets/category/category-ui.d.ts +2 -0
- package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
- package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
- package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
- package/dist/types/widgets/category/components/index.d.ts +10 -0
- package/dist/types/widgets/category/config.d.ts +15 -0
- package/dist/types/widgets/category/index.d.ts +6 -0
- package/dist/types/widgets/category/skeleton.d.ts +1 -0
- package/dist/types/widgets/category/style.d.ts +121 -0
- package/dist/types/widgets/category/types.d.ts +33 -0
- package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
- package/dist/types/widgets/echart/index.d.ts +2 -2
- package/dist/types/widgets/echart/options.d.ts +2 -3
- package/dist/types/widgets/echart/types.d.ts +11 -10
- package/dist/types/widgets/echart/utils.d.ts +22 -16
- package/dist/types/widgets/error/error.d.ts +2 -0
- package/dist/types/widgets/error/index.d.ts +2 -0
- package/dist/types/widgets/error/types.d.ts +12 -0
- package/dist/types/widgets/formula/components/row.d.ts +1 -1
- package/dist/types/widgets/formula/config.d.ts +4 -2
- package/dist/types/widgets/formula/index.d.ts +2 -1
- package/dist/types/widgets/formula/types.d.ts +6 -18
- package/dist/types/widgets/histogram/config.d.ts +5 -4
- package/dist/types/widgets/histogram/index.d.ts +2 -2
- package/dist/types/widgets/histogram/types.d.ts +6 -12
- package/dist/types/widgets/index.d.ts +6 -4
- package/dist/types/widgets/markdown/config.d.ts +4 -2
- package/dist/types/widgets/markdown/index.d.ts +2 -2
- package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
- package/dist/types/widgets/markdown/types.d.ts +6 -16
- package/dist/types/widgets/no-data/index.d.ts +2 -0
- package/dist/types/widgets/no-data/no-data.d.ts +35 -0
- package/dist/types/widgets/no-data/style.d.ts +6 -0
- package/dist/types/widgets/no-data/types.d.ts +67 -0
- package/dist/types/widgets/note/note.d.ts +1 -1
- package/dist/types/widgets/note/style.d.ts +12 -1
- package/dist/types/widgets/note/types.d.ts +4 -3
- package/dist/types/widgets/pie/config.d.ts +5 -4
- package/dist/types/widgets/pie/index.d.ts +2 -2
- package/dist/types/widgets/pie/types.d.ts +6 -12
- package/dist/types/widgets/range/config.d.ts +6 -2
- package/dist/types/widgets/range/index.d.ts +2 -1
- package/dist/types/widgets/range/types.d.ts +6 -17
- package/dist/types/widgets/root/index.d.ts +2 -1
- package/dist/types/widgets/root/root.d.ts +1 -1
- package/dist/types/widgets/root/types.d.ts +6 -12
- package/dist/types/widgets/root/utils.d.ts +1 -0
- package/dist/types/widgets/scatterplot/config.d.ts +5 -4
- package/dist/types/widgets/scatterplot/index.d.ts +2 -2
- package/dist/types/widgets/scatterplot/types.d.ts +6 -12
- package/dist/types/widgets/selection-summary/index.d.ts +2 -0
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
- package/dist/types/widgets/selection-summary/style.d.ts +9 -0
- package/dist/types/widgets/selection-summary/types.d.ts +13 -0
- package/dist/types/widgets/spread/config.d.ts +10 -2
- package/dist/types/widgets/spread/index.d.ts +2 -1
- package/dist/types/widgets/spread/types.d.ts +6 -18
- package/dist/types/widgets/stores/index.d.ts +2 -0
- package/dist/types/widgets/stores/types.d.ts +179 -12
- package/dist/types/widgets/stores/widget-store.d.ts +2 -27
- package/dist/types/widgets/subheader/index.d.ts +2 -0
- package/dist/types/widgets/subheader/style.d.ts +19 -0
- package/dist/types/widgets/subheader/subheader.d.ts +2 -0
- package/dist/types/widgets/subheader/types.d.ts +10 -0
- package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
- package/dist/types/widgets/table/components/cell.d.ts +16 -0
- package/dist/types/widgets/table/components/index.d.ts +4 -0
- package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
- package/dist/types/widgets/table/components/pagination.d.ts +5 -0
- package/dist/types/widgets/table/components/row.d.ts +5 -0
- package/dist/types/widgets/table/config.d.ts +11 -0
- package/dist/types/widgets/table/helpers.d.ts +38 -0
- package/dist/types/widgets/table/helpers.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/index.d.ts +6 -0
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +45 -0
- package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-selection.d.ts +32 -0
- package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-sort.d.ts +29 -0
- package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
- package/dist/types/widgets/table/index.d.ts +13 -0
- package/dist/types/widgets/table/serializer.d.ts +16 -0
- package/dist/types/widgets/table/skeleton.d.ts +10 -0
- package/dist/types/widgets/table/style.d.ts +33 -0
- package/dist/types/widgets/table/table-ui.d.ts +32 -0
- package/dist/types/widgets/table/types.d.ts +201 -0
- package/dist/types/widgets/timeseries/config.d.ts +5 -4
- package/dist/types/widgets/timeseries/index.d.ts +2 -2
- package/dist/types/widgets/timeseries/types.d.ts +6 -12
- package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
- package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
- package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
- package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
- package/dist/types/widgets/wrapper/index.d.ts +2 -2
- package/dist/types/widgets/wrapper/styles.d.ts +6 -0
- package/dist/types/widgets/wrapper/types.d.ts +7 -5
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
- package/dist/utils-Dv5Z47UQ.js +144 -0
- package/dist/utils-Dv5Z47UQ.js.map +1 -0
- package/dist/widget-store-DNyVElxd.js +190 -0
- package/dist/widget-store-DNyVElxd.js.map +1 -0
- package/dist/widgets/actions.js +826 -6
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +189 -4
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +460 -0
- package/dist/widgets/category.js.map +1 -0
- package/dist/widgets/echart.js +120 -8
- package/dist/widgets/echart.js.map +1 -1
- package/dist/widgets/error.js +5 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/formula.js +117 -20
- package/dist/widgets/formula.js.map +1 -1
- package/dist/widgets/histogram.js +172 -4
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/markdown.js +127 -0
- package/dist/widgets/markdown.js.map +1 -0
- package/dist/widgets/no-data.js +5 -0
- package/dist/widgets/no-data.js.map +1 -0
- package/dist/widgets/note.js +121 -2
- package/dist/widgets/note.js.map +1 -1
- package/dist/widgets/pie.js +213 -4
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +210 -12
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/root.js +65 -2
- package/dist/widgets/root.js.map +1 -1
- package/dist/widgets/scatterplot.js +219 -4
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/selection-summary.js +40 -0
- package/dist/widgets/selection-summary.js.map +1 -0
- package/dist/widgets/skeleton-loader.js +21 -2
- package/dist/widgets/skeleton-loader.js.map +1 -1
- package/dist/widgets/spread.js +162 -17
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/stores.js +5 -0
- package/dist/widgets/stores.js.map +1 -0
- package/dist/widgets/subheader.js +52 -0
- package/dist/widgets/subheader.js.map +1 -0
- package/dist/widgets/table.js +691 -0
- package/dist/widgets/table.js.map +1 -0
- package/dist/widgets/timeseries.js +171 -4
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/toolbar-actions.js +6106 -0
- package/dist/widgets/toolbar-actions.js.map +1 -0
- package/dist/widgets/wrapper.js +292 -6
- package/dist/widgets/wrapper.js.map +1 -1
- package/dist/widgets.js +6 -83
- package/dist/widgets.js.map +1 -1
- package/package.json +46 -6
- package/dist/const-BLV7Tvte.js +0 -758
- package/dist/const-BLV7Tvte.js.map +0 -1
- package/dist/download-KroQ0SWg.js +0 -195
- package/dist/download-KroQ0SWg.js.map +0 -1
- package/dist/echart-CqfROFu3.js +0 -214
- package/dist/echart-CqfROFu3.js.map +0 -1
- package/dist/formula-ui-ChzvMEOG.js +0 -52
- package/dist/formula-ui-ChzvMEOG.js.map +0 -1
- package/dist/lasso-tool-BC-rsMMW.js.map +0 -1
- package/dist/markdown-n_tOtoiT.js +0 -27
- package/dist/markdown-n_tOtoiT.js.map +0 -1
- package/dist/markdown-ui-BBrzzd7Y.js +0 -62
- package/dist/markdown-ui-BBrzzd7Y.js.map +0 -1
- package/dist/note-DF-n70TX.js +0 -101
- package/dist/note-DF-n70TX.js.map +0 -1
- package/dist/range-ui-CtUX11Xm.js +0 -146
- package/dist/range-ui-CtUX11Xm.js.map +0 -1
- package/dist/root-L_WZnJY5.js +0 -46
- package/dist/root-L_WZnJY5.js.map +0 -1
- package/dist/row-DQaSxmDV.js +0 -18
- package/dist/row-DQaSxmDV.js.map +0 -1
- package/dist/series-CsyEPq-X.js +0 -83
- package/dist/series-CsyEPq-X.js.map +0 -1
- package/dist/skeleton-BSPcEvfq.js +0 -27
- package/dist/skeleton-BSPcEvfq.js.map +0 -1
- package/dist/skeleton-C4rOYTy-.js +0 -78
- package/dist/skeleton-C4rOYTy-.js.map +0 -1
- package/dist/skeleton-C9Jqc241.js +0 -82
- package/dist/skeleton-C9Jqc241.js.map +0 -1
- package/dist/skeleton-D-zHBBIw.js +0 -64
- package/dist/skeleton-D-zHBBIw.js.map +0 -1
- package/dist/skeleton-DMP-IwaJ.js +0 -109
- package/dist/skeleton-DMP-IwaJ.js.map +0 -1
- package/dist/skeleton-DRorqowB.js +0 -22
- package/dist/skeleton-DRorqowB.js.map +0 -1
- package/dist/skeleton-DsZhv-AH.js +0 -89
- package/dist/skeleton-DsZhv-AH.js.map +0 -1
- package/dist/skeleton-Dx3FCer0.js +0 -13
- package/dist/skeleton-Dx3FCer0.js.map +0 -1
- package/dist/skeleton-QVDdb1c2.js +0 -21
- package/dist/skeleton-QVDdb1c2.js.map +0 -1
- package/dist/skeleton-loader-DWC1-EAx.js +0 -23
- package/dist/skeleton-loader-DWC1-EAx.js.map +0 -1
- package/dist/spread-ui-BjzH190y.js +0 -82
- package/dist/spread-ui-BjzH190y.js.map +0 -1
- package/dist/style-BGeCtQkP.js +0 -19
- package/dist/style-BGeCtQkP.js.map +0 -1
- package/dist/style-C7v1iwqD.js +0 -34
- package/dist/style-C7v1iwqD.js.map +0 -1
- package/dist/styles-cohnxh9F.js +0 -23
- package/dist/styles-cohnxh9F.js.map +0 -1
- package/dist/types/widgets/config-loader/index.d.ts +0 -2
- package/dist/types/widgets/config-loader/types.d.ts +0 -12
- package/dist/types/widgets/config-loader/use-config.d.ts +0 -5
- package/dist/types/widgets/widget/const.d.ts +0 -2
- package/dist/types/widgets/widget/types.d.ts +0 -47
- package/dist/types/widgets/widget/widget.d.ts +0 -2
- package/dist/use-config-BYEOiIcu.js +0 -43
- package/dist/use-config-BYEOiIcu.js.map +0 -1
- package/dist/widget-store-yDO2ul8g.js +0 -44
- package/dist/widget-store-yDO2ul8g.js.map +0 -1
- package/dist/widgets/config-loader.js +0 -5
- package/dist/widgets/config-loader.js.map +0 -1
- package/dist/wrapper-57csMybC.js +0 -265
- package/dist/wrapper-57csMybC.js.map +0 -1
|
@@ -1,25 +1,135 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Sort direction for table columns
|
|
4
|
+
*/
|
|
5
|
+
export type StoreSortDirection = 'asc' | 'desc';
|
|
6
|
+
/**
|
|
7
|
+
* Pagination mode for tables
|
|
8
|
+
*/
|
|
9
|
+
export type StorePaginationMode = 'local' | 'remote';
|
|
10
|
+
/**
|
|
11
|
+
* Sort mode for tables
|
|
12
|
+
*/
|
|
13
|
+
export type StoreSortMode = 'local' | 'remote';
|
|
14
|
+
/**
|
|
15
|
+
* Table pagination state stored in widget store
|
|
16
|
+
*/
|
|
17
|
+
export interface TablePaginationStoreState {
|
|
18
|
+
/** Current page (0-indexed) */
|
|
19
|
+
page: number;
|
|
20
|
+
/** Rows per page */
|
|
21
|
+
rowsPerPage: number;
|
|
22
|
+
/** Available rows per page options */
|
|
23
|
+
rowsPerPageOptions: number[];
|
|
24
|
+
/** Pagination mode: local or remote */
|
|
25
|
+
mode: StorePaginationMode;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Table sort state stored in widget store
|
|
29
|
+
*/
|
|
30
|
+
export interface TableSortStoreState {
|
|
31
|
+
/** Column ID being sorted */
|
|
32
|
+
columnId: string | null;
|
|
33
|
+
/** Sort direction */
|
|
34
|
+
direction: StoreSortDirection;
|
|
35
|
+
/** Sort mode: local or remote */
|
|
36
|
+
mode: StoreSortMode;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Table selection state stored in widget store
|
|
40
|
+
*/
|
|
41
|
+
export interface TableSelectionStoreState {
|
|
42
|
+
/** Set of selected row IDs */
|
|
43
|
+
selectedIds: Set<string | number>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Combined table state for widget store
|
|
47
|
+
*/
|
|
48
|
+
export interface TableStoreState {
|
|
49
|
+
pagination?: TablePaginationStoreState;
|
|
50
|
+
sort?: TableSortStoreState;
|
|
51
|
+
selection?: TableSelectionStoreState;
|
|
52
|
+
}
|
|
2
53
|
export interface WidgetsStoreProps {
|
|
3
54
|
/** Unique identifier for the widget */
|
|
4
55
|
id: string;
|
|
5
56
|
/** Type of widget */
|
|
6
57
|
type: string;
|
|
7
|
-
/** Widget
|
|
8
|
-
|
|
58
|
+
/** Widget data - flexible to accommodate different widget types */
|
|
59
|
+
data: unknown;
|
|
9
60
|
/** Loading state */
|
|
10
61
|
isLoading: boolean;
|
|
11
62
|
/** Fetching state (e.g., for async data) */
|
|
12
|
-
isFetching
|
|
63
|
+
isFetching: boolean;
|
|
13
64
|
/** Error message if any */
|
|
14
|
-
error?:
|
|
65
|
+
error?: {
|
|
66
|
+
title?: string;
|
|
67
|
+
message?: string;
|
|
68
|
+
};
|
|
15
69
|
/** Whether widget is visible */
|
|
16
|
-
visible
|
|
17
|
-
/** Widget data - flexible to accommodate different widget types */
|
|
18
|
-
data?: unknown;
|
|
19
|
-
/** Additional notes about the widget */
|
|
20
|
-
note?: string;
|
|
70
|
+
visible?: boolean;
|
|
21
71
|
/** Reference to the widget ui instance */
|
|
22
72
|
refUI?: RefObject<HTMLElement | null>;
|
|
73
|
+
/** Registered tools for the widget's transformation pipeline */
|
|
74
|
+
registeredTools?: ToolRegistration[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Tool transformation function type
|
|
78
|
+
* Can be synchronous or asynchronous to support remote operations
|
|
79
|
+
*/
|
|
80
|
+
export type ToolTransformFunction = (data: unknown, config?: Record<string, unknown>) => Promise<unknown> | unknown;
|
|
81
|
+
/**
|
|
82
|
+
* Tool registration for widget pipeline
|
|
83
|
+
*
|
|
84
|
+
* @example Basic tool registration
|
|
85
|
+
* ```typescript
|
|
86
|
+
* registerTool(widgetId, {
|
|
87
|
+
* id: 'searcher',
|
|
88
|
+
* order: 10,
|
|
89
|
+
* enabled: true,
|
|
90
|
+
* fn: (data) => filterData(data),
|
|
91
|
+
* })
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @example Tool with dependencies
|
|
95
|
+
* ```typescript
|
|
96
|
+
* registerTool(widgetId, {
|
|
97
|
+
* id: 'lock-selection',
|
|
98
|
+
* order: 20,
|
|
99
|
+
* enabled: true,
|
|
100
|
+
* fn: (data) => lockData(data),
|
|
101
|
+
* disables: ['searcher', 'relative-data'], // Disable these when active
|
|
102
|
+
* })
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* Dependency Management:
|
|
106
|
+
* - Multiple tools can disable the same target (reference counting)
|
|
107
|
+
* - Target is only re-enabled when ALL disabling tools are inactive
|
|
108
|
+
* - Original enabled state is preserved and restored
|
|
109
|
+
* - Circular dependencies are detected and throw errors
|
|
110
|
+
*/
|
|
111
|
+
export interface ToolRegistration {
|
|
112
|
+
/** Unique tool identifier (e.g., 'searcher', 'relative-data') */
|
|
113
|
+
id: string;
|
|
114
|
+
/** Execution priority - lower numbers execute first */
|
|
115
|
+
order: number;
|
|
116
|
+
/** Transformation function */
|
|
117
|
+
fn: ToolTransformFunction;
|
|
118
|
+
/** Whether tool is currently enabled */
|
|
119
|
+
enabled: boolean;
|
|
120
|
+
/** Tool-specific configuration */
|
|
121
|
+
config?: Record<string, unknown>;
|
|
122
|
+
/**
|
|
123
|
+
* Array of tool IDs to disable when this tool is active.
|
|
124
|
+
* During pipeline execution, if this tool is enabled, any tools listed
|
|
125
|
+
* in this array will be excluded from the pipeline.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* disables: ['searcher', 'relative-data']
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
disables?: string[];
|
|
23
133
|
}
|
|
24
134
|
/**
|
|
25
135
|
* Base widget state interface
|
|
@@ -30,7 +140,7 @@ export type BaseWidgetState<T> = WidgetsStoreProps & T;
|
|
|
30
140
|
*/
|
|
31
141
|
export type WidgetState = BaseWidgetState<unknown>;
|
|
32
142
|
/**
|
|
33
|
-
* Widget store state
|
|
143
|
+
* Widget store state with tool registration
|
|
34
144
|
*/
|
|
35
145
|
export interface WidgetStoreState {
|
|
36
146
|
/** Map of widget id to widget state */
|
|
@@ -44,9 +154,9 @@ export interface WidgetStoreActions {
|
|
|
44
154
|
* Add or update a widget in the store
|
|
45
155
|
* @param id - Widget ID
|
|
46
156
|
* @param widget - Widget state properties to merge (accepts any object structure)
|
|
47
|
-
* @template T -
|
|
157
|
+
* @template T - Type of the widget state for type-safe access
|
|
48
158
|
*/
|
|
49
|
-
setWidget: <T
|
|
159
|
+
setWidget: <T = any>(id: WidgetState['id'], widget: Partial<T>) => void;
|
|
50
160
|
/**
|
|
51
161
|
* Remove a widget from the store
|
|
52
162
|
* @param id - Widget ID to remove
|
|
@@ -62,6 +172,63 @@ export interface WidgetStoreActions {
|
|
|
62
172
|
* @returns Widget state or undefined if not found
|
|
63
173
|
*/
|
|
64
174
|
getWidget: <T extends WidgetState = WidgetState>(id: WidgetState['id']) => T | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Set table pagination state for a widget
|
|
177
|
+
* @param id - Widget ID
|
|
178
|
+
* @param pagination - Partial pagination state to merge
|
|
179
|
+
*/
|
|
180
|
+
setTablePagination: (id: WidgetState['id'], pagination: Partial<TablePaginationStoreState>) => void;
|
|
181
|
+
/**
|
|
182
|
+
* Set table sort state for a widget
|
|
183
|
+
* @param id - Widget ID
|
|
184
|
+
* @param sort - Partial sort state to merge
|
|
185
|
+
*/
|
|
186
|
+
setTableSort: (id: WidgetState['id'], sort: Partial<TableSortStoreState>) => void;
|
|
187
|
+
/**
|
|
188
|
+
* Set table selection state for a widget
|
|
189
|
+
* @param id - Widget ID
|
|
190
|
+
* @param selection - Partial selection state to merge
|
|
191
|
+
*/
|
|
192
|
+
setTableSelection: (id: WidgetState['id'], selection: Partial<TableSelectionStoreState>) => void;
|
|
193
|
+
/**
|
|
194
|
+
* Get table state for a widget
|
|
195
|
+
* @param id - Widget ID
|
|
196
|
+
* @returns Table state or undefined if not found
|
|
197
|
+
*/
|
|
198
|
+
getTableState: (id: WidgetState['id']) => TableStoreState | undefined;
|
|
199
|
+
/**
|
|
200
|
+
* Register a tool with the widget's transformation pipeline
|
|
201
|
+
* @param widgetId - Widget ID
|
|
202
|
+
* @param tool - Tool registration object
|
|
203
|
+
*/
|
|
204
|
+
registerTool: (widgetId: string, tool: ToolRegistration) => void;
|
|
205
|
+
/**
|
|
206
|
+
* Unregister a tool from the widget's transformation pipeline
|
|
207
|
+
* @param widgetId - Widget ID
|
|
208
|
+
* @param toolId - Tool ID to remove
|
|
209
|
+
*/
|
|
210
|
+
unregisterTool: (widgetId: string, toolId: string) => void;
|
|
211
|
+
/**
|
|
212
|
+
* Update tool configuration
|
|
213
|
+
* @param widgetId - Widget ID
|
|
214
|
+
* @param toolId - Tool ID
|
|
215
|
+
* @param config - New configuration to merge
|
|
216
|
+
*/
|
|
217
|
+
updateToolConfig: (widgetId: string, toolId: string, config: Record<string, unknown>) => void;
|
|
218
|
+
/**
|
|
219
|
+
* Set tool enabled state
|
|
220
|
+
* @param widgetId - Widget ID
|
|
221
|
+
* @param toolId - Tool ID
|
|
222
|
+
* @param enabled - Whether tool should be enabled
|
|
223
|
+
*/
|
|
224
|
+
setToolEnabled: (widgetId: string, toolId: string, enabled: boolean) => void;
|
|
225
|
+
/**
|
|
226
|
+
* Execute the tool transformation pipeline
|
|
227
|
+
* Supports both synchronous and asynchronous tools
|
|
228
|
+
* @param widgetId - Widget ID
|
|
229
|
+
* @param sourceData - Original data to transform
|
|
230
|
+
*/
|
|
231
|
+
executeToolPipeline: (widgetId: string, sourceData: unknown) => Promise<void>;
|
|
65
232
|
}
|
|
66
233
|
/**
|
|
67
234
|
* Complete widget store interface
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WidgetStore } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Zustand store for managing widget state across the application.
|
|
4
4
|
*
|
|
@@ -36,29 +36,4 @@ import { WidgetState, WidgetStore } from './types';
|
|
|
36
36
|
* const formulaWidgets = getWidgetsByType('formula')
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
|
-
export declare const useWidgetStore: import('zustand').UseBoundStore<
|
|
40
|
-
setState(partial: WidgetStore | Partial<WidgetStore> | ((state: WidgetStore) => WidgetStore | Partial<WidgetStore>), replace?: false | undefined, action?: (string | {
|
|
41
|
-
[x: string]: unknown;
|
|
42
|
-
[x: number]: unknown;
|
|
43
|
-
[x: symbol]: unknown;
|
|
44
|
-
type: string;
|
|
45
|
-
}) | undefined): void;
|
|
46
|
-
setState(state: WidgetStore | ((state: WidgetStore) => WidgetStore), replace: true, action?: (string | {
|
|
47
|
-
[x: string]: unknown;
|
|
48
|
-
[x: number]: unknown;
|
|
49
|
-
[x: symbol]: unknown;
|
|
50
|
-
type: string;
|
|
51
|
-
}) | undefined): void;
|
|
52
|
-
devtools: {
|
|
53
|
-
cleanup: () => void;
|
|
54
|
-
};
|
|
55
|
-
}>;
|
|
56
|
-
/** Hook to get a specific widget by ID
|
|
57
|
-
* @param id - Widget ID
|
|
58
|
-
* @returns Widget state or undefined if not found
|
|
59
|
-
* @example
|
|
60
|
-
* ```tsx
|
|
61
|
-
* const widget = useWidget('widget-1')
|
|
62
|
-
* ```
|
|
63
|
-
*/
|
|
64
|
-
export declare const useWidget: <T extends WidgetState>(id: string) => T | undefined;
|
|
39
|
+
export declare const useWidgetStore: import('zustand').UseBoundStore<import('zustand').StoreApi<WidgetStore>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Theme } from '@mui/material';
|
|
2
|
+
export declare const styles: {
|
|
3
|
+
root: {
|
|
4
|
+
display: "flex";
|
|
5
|
+
alignItems: "center";
|
|
6
|
+
gap: ({ spacing }: Theme) => string;
|
|
7
|
+
minHeight: ({ spacing }: Theme) => string;
|
|
8
|
+
};
|
|
9
|
+
slotLeft: {
|
|
10
|
+
flexShrink: number;
|
|
11
|
+
};
|
|
12
|
+
slotRight: {
|
|
13
|
+
flexGrow: number;
|
|
14
|
+
display: "flex";
|
|
15
|
+
justifyContent: "flex-end";
|
|
16
|
+
alignItems: "center";
|
|
17
|
+
gap: ({ spacing }: Theme) => string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export interface SubheaderComponentProps {
|
|
4
|
+
/** Content for the left slot */
|
|
5
|
+
slotLeft?: ReactNode;
|
|
6
|
+
/** Content for the right slot*/
|
|
7
|
+
slotRight?: ReactNode;
|
|
8
|
+
/** Custom styles */
|
|
9
|
+
sx?: SxProps<Theme>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CellHeaderProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Table cell header component with optional sorting and select-all checkbox
|
|
4
|
+
*/
|
|
5
|
+
export declare function CellHeader({ column, sortState, onSort, isSelectAll, isAllSelected, isIndeterminate, onSelectAll, }: CellHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TableColumn } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Props for Cell component
|
|
4
|
+
*/
|
|
5
|
+
export interface CellProps {
|
|
6
|
+
/** Column definition */
|
|
7
|
+
column: TableColumn;
|
|
8
|
+
/** Cell value */
|
|
9
|
+
value: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Table cell component with automatic markdown support for string values
|
|
13
|
+
* Markdown is rendered when the raw value is a string and no formatter is defined.
|
|
14
|
+
* If a formatter is used, its output is rendered directly without markdown parsing.
|
|
15
|
+
*/
|
|
16
|
+
export declare function Cell({ column, value }: CellProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PaginationActionsProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Custom pagination actions with first/prev/next/last buttons
|
|
4
|
+
*/
|
|
5
|
+
export declare function PaginationActions({ count, page, rowsPerPage, onPageChange, }: PaginationActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RowProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Table row component with selection and hover support
|
|
4
|
+
*/
|
|
5
|
+
export declare function Row({ row, columns, isSelected, selectable, onClick, onSelect, onMouseEnter, onMouseLeave, }: RowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConfigProps } from '../root/types';
|
|
2
|
+
import { TableDownloadConfig, TableWidgetConfig, TableColumn } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Default table download configuration
|
|
5
|
+
* Supports PNG export (screenshot) and CSV export (data)
|
|
6
|
+
*/
|
|
7
|
+
export declare function tableDownloadConfig({ refUI, }: ConfigProps): TableDownloadConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Default table widget configuration
|
|
10
|
+
*/
|
|
11
|
+
export declare function tableConfig(columns?: TableColumn[]): TableWidgetConfig;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Get formatted cell value for display
|
|
4
|
+
* Handles primitives, arrays, objects, and custom formatters
|
|
5
|
+
*
|
|
6
|
+
* @param cellValue - Raw cell value
|
|
7
|
+
* @param formatter - Optional formatter function
|
|
8
|
+
* @returns Formatted value for display
|
|
9
|
+
*/
|
|
10
|
+
export declare function getCellValue<T>(cellValue: T): ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Compare two values for sorting
|
|
13
|
+
* Handles strings, numbers, and other types
|
|
14
|
+
*
|
|
15
|
+
* @param a - First value
|
|
16
|
+
* @param b - Second value
|
|
17
|
+
* @param direction - Sort direction
|
|
18
|
+
* @returns Comparison result (-1, 0, 1)
|
|
19
|
+
*/
|
|
20
|
+
export declare function compareValues(a: unknown, b: unknown, direction: 'asc' | 'desc'): number;
|
|
21
|
+
/**
|
|
22
|
+
* Sort data array by column
|
|
23
|
+
*
|
|
24
|
+
* @param data - Data array to sort
|
|
25
|
+
* @param columnId - Column ID to sort by
|
|
26
|
+
* @param direction - Sort direction
|
|
27
|
+
* @returns Sorted data array (new array, does not mutate original)
|
|
28
|
+
*/
|
|
29
|
+
export declare function sortData<T extends Record<string, unknown>>(data: T[], columnId: string, direction: 'asc' | 'desc'): T[];
|
|
30
|
+
/**
|
|
31
|
+
* Paginate data array
|
|
32
|
+
*
|
|
33
|
+
* @param data - Data array to paginate
|
|
34
|
+
* @param page - Current page (0-indexed)
|
|
35
|
+
* @param rowsPerPage - Number of rows per page
|
|
36
|
+
* @returns Paginated data slice
|
|
37
|
+
*/
|
|
38
|
+
export declare function paginateData<T>(data: T[], page: number, rowsPerPage: number): T[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { usePagination } from './use-pagination';
|
|
2
|
+
export { useSort } from './use-sort';
|
|
3
|
+
export { useSelection } from './use-selection';
|
|
4
|
+
export type { UsePaginationOptions, UsePaginationResult, } from './use-pagination';
|
|
5
|
+
export type { UseSortOptions, UseSortResult } from './use-sort';
|
|
6
|
+
export type { UseSelectionOptions, UseSelectionResult } from './use-selection';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { TableRow, PaginationMode } from '../types';
|
|
2
|
+
export interface UsePaginationOptions {
|
|
3
|
+
/** Pagination mode: local or remote */
|
|
4
|
+
mode: PaginationMode;
|
|
5
|
+
/** Initial page (0-indexed) */
|
|
6
|
+
initialPage?: number;
|
|
7
|
+
/** Initial rows per page */
|
|
8
|
+
initialRowsPerPage?: number;
|
|
9
|
+
/** Available rows per page options */
|
|
10
|
+
rowsPerPageOptions?: number[];
|
|
11
|
+
/** Total rows (for remote pagination) */
|
|
12
|
+
total?: number;
|
|
13
|
+
/** Callback when page changes (for remote pagination) */
|
|
14
|
+
onPageChange?: (page: number, rowsPerPage: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface UsePaginationResult<T> {
|
|
17
|
+
/** Current page (0-indexed) */
|
|
18
|
+
page: number;
|
|
19
|
+
/** Rows per page */
|
|
20
|
+
rowsPerPage: number;
|
|
21
|
+
/** Total row count */
|
|
22
|
+
total: number;
|
|
23
|
+
/** Available rows per page options */
|
|
24
|
+
rowsPerPageOptions: number[];
|
|
25
|
+
/** Paginated data (for local mode) */
|
|
26
|
+
paginatedData: T[];
|
|
27
|
+
/** Set current page */
|
|
28
|
+
setPage: (page: number) => void;
|
|
29
|
+
/** Set rows per page */
|
|
30
|
+
setRowsPerPage: (rowsPerPage: number) => void;
|
|
31
|
+
/** Go to first page */
|
|
32
|
+
goToFirstPage: () => void;
|
|
33
|
+
/** Go to last page */
|
|
34
|
+
goToLastPage: () => void;
|
|
35
|
+
/** Go to next page */
|
|
36
|
+
goToNextPage: () => void;
|
|
37
|
+
/** Go to previous page */
|
|
38
|
+
goToPreviousPage: () => void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Hook for managing table pagination
|
|
42
|
+
* Supports both local (client-side) and remote (server-side) pagination
|
|
43
|
+
* State is persisted in the widget store for the given widgetId
|
|
44
|
+
*/
|
|
45
|
+
export declare function usePagination<T extends TableRow>(widgetId: string, data: T[], options: UsePaginationOptions): UsePaginationResult<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TableRow } from '../types';
|
|
2
|
+
export interface UseSelectionOptions {
|
|
3
|
+
/** Initial selected IDs */
|
|
4
|
+
initialSelectedIds?: Set<string | number>;
|
|
5
|
+
/** Callback when selection changes */
|
|
6
|
+
onSelectionChange?: (selectedIds: Set<string | number>) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface UseSelectionResult {
|
|
9
|
+
/** Set of selected row IDs */
|
|
10
|
+
selectedIds: Set<string | number>;
|
|
11
|
+
/** Check if a row is selected */
|
|
12
|
+
isSelected: (id: string | number) => boolean;
|
|
13
|
+
/** Check if all provided rows are selected */
|
|
14
|
+
isAllSelected: (rows: TableRow[]) => boolean;
|
|
15
|
+
/** Check if some but not all rows are selected (for indeterminate state) */
|
|
16
|
+
isIndeterminate: (rows: TableRow[]) => boolean;
|
|
17
|
+
/** Toggle selection of a single row */
|
|
18
|
+
toggleRow: (id: string | number) => void;
|
|
19
|
+
/** Toggle selection of all provided rows */
|
|
20
|
+
toggleAll: (rows: TableRow[]) => void;
|
|
21
|
+
/** Select specific rows */
|
|
22
|
+
selectRows: (ids: (string | number)[]) => void;
|
|
23
|
+
/** Deselect specific rows */
|
|
24
|
+
deselectRows: (ids: (string | number)[]) => void;
|
|
25
|
+
/** Clear all selections */
|
|
26
|
+
clearSelection: () => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Hook for managing table row selection
|
|
30
|
+
* Selection persists across pagination and is stored in the widget store
|
|
31
|
+
*/
|
|
32
|
+
export declare function useSelection(widgetId: string, options?: UseSelectionOptions): UseSelectionResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TableRow, SortMode, SortDirection, SortState } from '../types';
|
|
2
|
+
export interface UseSortOptions {
|
|
3
|
+
/** Sort mode: local or remote */
|
|
4
|
+
mode: SortMode;
|
|
5
|
+
/** Initial sort column ID */
|
|
6
|
+
initialColumnId?: string | null;
|
|
7
|
+
/** Initial sort direction */
|
|
8
|
+
initialDirection?: SortDirection;
|
|
9
|
+
/** Callback when sort changes (for remote sorting) */
|
|
10
|
+
onSortChange?: (columnId: string, direction: SortDirection) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface UseSortResult<T> {
|
|
13
|
+
/** Current sort state */
|
|
14
|
+
sortState: SortState;
|
|
15
|
+
/** Sorted data (for local mode) */
|
|
16
|
+
sortedData: T[];
|
|
17
|
+
/** Toggle sort on a column */
|
|
18
|
+
toggleSort: (columnId: string) => void;
|
|
19
|
+
/** Set sort state directly */
|
|
20
|
+
setSort: (columnId: string | null, direction: SortDirection) => void;
|
|
21
|
+
/** Clear sort */
|
|
22
|
+
clearSort: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Hook for managing table sorting
|
|
26
|
+
* Supports both local (client-side) and remote (server-side) sorting
|
|
27
|
+
* State is persisted in the widget store for the given widgetId
|
|
28
|
+
*/
|
|
29
|
+
export declare function useSort<T extends TableRow>(widgetId: string, data: T[], options: UseSortOptions): UseSortResult<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { CellHeader } from './components/cell-header';
|
|
2
|
+
export { Row } from './components/row';
|
|
3
|
+
export { Pagination } from './components/pagination';
|
|
4
|
+
export { PaginationActions } from './components/pagination-actions';
|
|
5
|
+
export { Table } from './table-ui';
|
|
6
|
+
export { usePagination, useSort, useSelection } from './hooks';
|
|
7
|
+
export { tableConfig, tableDownloadConfig } from './config';
|
|
8
|
+
export { TableSkeleton } from './skeleton';
|
|
9
|
+
export { sanitizeTableRow, sanitizeTableData } from './serializer';
|
|
10
|
+
export { getCellValue, compareValues, sortData, paginateData } from './helpers';
|
|
11
|
+
export { styles as tableStyles } from './style';
|
|
12
|
+
export type { TableUIProps, TableColumn, TableRow, TableWidgetData, TablePaginationState, SortDirection, SortState, PaginationMode, SortMode, TableWidgetConfig, TableWidgetState, TableDownloadConfig, TableProps, CellHeaderProps, RowProps, PaginationProps, PaginationActionsProps, } from './types';
|
|
13
|
+
export type { UsePaginationOptions, UsePaginationResult, UseSortOptions, UseSortResult, UseSelectionOptions, UseSelectionResult, } from './hooks';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TableRow, TableWidgetData } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Sanitizes a table row by ensuring all values are serializable.
|
|
4
|
+
* Converts ReactNode and function values to undefined.
|
|
5
|
+
*
|
|
6
|
+
* @param row - The table row to sanitize
|
|
7
|
+
* @returns A sanitized table row
|
|
8
|
+
*/
|
|
9
|
+
export declare function sanitizeTableRow(row: TableRow): TableRow;
|
|
10
|
+
/**
|
|
11
|
+
* Sanitizes table widget data by ensuring all rows are serializable.
|
|
12
|
+
*
|
|
13
|
+
* @param data - The table data to sanitize
|
|
14
|
+
* @returns Sanitized table data
|
|
15
|
+
*/
|
|
16
|
+
export declare function sanitizeTableData(data: TableWidgetData | undefined): TableWidgetData | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface TableSkeletonProps {
|
|
2
|
+
/** Number of columns to display */
|
|
3
|
+
columns?: number;
|
|
4
|
+
/** Number of rows to display */
|
|
5
|
+
rows?: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Table skeleton loader component
|
|
9
|
+
*/
|
|
10
|
+
export declare function TableSkeleton({ columns, rows }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Theme } from '@mui/material';
|
|
2
|
+
export declare const styles: {
|
|
3
|
+
container: {
|
|
4
|
+
width: string;
|
|
5
|
+
overflow: "auto";
|
|
6
|
+
};
|
|
7
|
+
table: {
|
|
8
|
+
minWidth: number;
|
|
9
|
+
};
|
|
10
|
+
headerCell: {
|
|
11
|
+
fontWeight: number;
|
|
12
|
+
backgroundColor: (theme: Theme) => string;
|
|
13
|
+
};
|
|
14
|
+
row: {
|
|
15
|
+
'&:last-child td, &:last-child th': {
|
|
16
|
+
border: number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
rowHover: {
|
|
20
|
+
'&:hover': {
|
|
21
|
+
backgroundColor: (theme: Theme) => string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
rowSelected: {
|
|
25
|
+
backgroundColor: (theme: Theme) => string;
|
|
26
|
+
'&:hover': {
|
|
27
|
+
backgroundColor: (theme: Theme) => string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
pagination: {
|
|
31
|
+
borderTop: (theme: Theme) => string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TableCell, TableProps as MuiTableProps } from '@mui/material';
|
|
2
|
+
import { Ref } from 'react';
|
|
3
|
+
import { TableUIProps } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Props for the base Table component
|
|
6
|
+
*/
|
|
7
|
+
export interface TableComponentProps extends MuiTableProps {
|
|
8
|
+
/** Table element ref */
|
|
9
|
+
ref?: Ref<HTMLTableElement>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Base Table component with compound component pattern
|
|
13
|
+
* Provides Table.Head, Table.Body, Table.Row, Table.Cell, Table.CellHeader, Table.Pagination
|
|
14
|
+
*/
|
|
15
|
+
declare function Table({ children, ref, stickyHeader, ...props }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare namespace Table {
|
|
17
|
+
var Head: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").TableHeadTypeMap<{}, "thead">>;
|
|
18
|
+
var CellHeader: typeof import(".").CellHeader;
|
|
19
|
+
var Body: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").TableBodyTypeMap<{}, "tbody">>;
|
|
20
|
+
var Row: typeof import(".").Row;
|
|
21
|
+
var Cell: typeof TableCell;
|
|
22
|
+
var Container: typeof TableContainer;
|
|
23
|
+
var Paper: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").PaperTypeMap<{}, "div">>;
|
|
24
|
+
var Pagination: typeof import(".").Pagination;
|
|
25
|
+
var PaginationActions: typeof import(".").PaginationActions;
|
|
26
|
+
}
|
|
27
|
+
export { Table };
|
|
28
|
+
/**
|
|
29
|
+
* TableContainer widget component
|
|
30
|
+
* Integrates with widget store and provides ref registration using custom hook
|
|
31
|
+
*/
|
|
32
|
+
declare function TableContainer(props: TableUIProps): import("react/jsx-runtime").JSX.Element;
|