@hkyhy/marsun-components-core 0.1.29 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/components/Auth/UserProfileCard/UserProfileCard.d.ts +7 -1
  2. package/dist/components/Auth/UserProfileCard/UserProfileCard.js +59 -28
  3. package/dist/components/Auth/UserProfileCard/UserProfileCard.js.map +1 -1
  4. package/dist/components/Auth/UserProfileCard/style.module.scss.js +16 -10
  5. package/dist/components/Auth/UserProfileCard/style.module.scss.js.map +1 -1
  6. package/dist/components/Filter/CommonFilter/index.js +88 -53
  7. package/dist/components/Filter/CommonFilter/index.js.map +1 -1
  8. package/dist/components/Filter/FilterCascader/index.d.ts +40 -0
  9. package/dist/components/Filter/FilterCascader/index.js +318 -0
  10. package/dist/components/Filter/FilterCascader/index.js.map +1 -0
  11. package/dist/components/Filter/FilterCascader/style.module.scss.js +14 -0
  12. package/dist/components/Filter/FilterCascader/style.module.scss.js.map +1 -0
  13. package/dist/components/Filter/FilterDatePicker/index.js +102 -84
  14. package/dist/components/Filter/FilterDatePicker/index.js.map +1 -1
  15. package/dist/components/Filter/FilterDateRange/index.js +84 -66
  16. package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
  17. package/dist/components/Filter/FilterInput/index.js +51 -33
  18. package/dist/components/Filter/FilterInput/index.js.map +1 -1
  19. package/dist/components/Filter/FilterNumberRange/index.js +87 -69
  20. package/dist/components/Filter/FilterNumberRange/index.js.map +1 -1
  21. package/dist/components/Filter/FilterPopover/index.d.ts +2 -0
  22. package/dist/components/Filter/FilterPopover/index.js +22 -21
  23. package/dist/components/Filter/FilterPopover/index.js.map +1 -1
  24. package/dist/components/Filter/FilterSelect/index.d.ts +20 -2
  25. package/dist/components/Filter/FilterSelect/index.js +237 -194
  26. package/dist/components/Filter/FilterSelect/index.js.map +1 -1
  27. package/dist/components/Filter/FilterSelect/style.module.scss.js +16 -14
  28. package/dist/components/Filter/FilterSelect/style.module.scss.js.map +1 -1
  29. package/dist/components/Filter/FilterTreeSelect/index.d.ts +18 -1
  30. package/dist/components/Filter/FilterTreeSelect/index.js +278 -218
  31. package/dist/components/Filter/FilterTreeSelect/index.js.map +1 -1
  32. package/dist/components/Filter/FilterTreeSelect/style.module.scss.js +15 -13
  33. package/dist/components/Filter/FilterTreeSelect/style.module.scss.js.map +1 -1
  34. package/dist/components/Filter/FilterTrigger/index.d.ts +3 -0
  35. package/dist/components/Filter/FilterTrigger/index.js +59 -26
  36. package/dist/components/Filter/FilterTrigger/index.js.map +1 -1
  37. package/dist/components/Filter/FilterTrigger/style.module.scss.js +5 -4
  38. package/dist/components/Filter/FilterTrigger/style.module.scss.js.map +1 -1
  39. package/dist/components/Filter/index.d.ts +7 -3
  40. package/dist/components/Filter/types.d.ts +27 -1
  41. package/dist/components/Filter/types.js +24 -7
  42. package/dist/components/Filter/types.js.map +1 -1
  43. package/dist/components/Filter/useFilterState.d.ts +37 -5
  44. package/dist/components/Filter/useFilterState.js +74 -23
  45. package/dist/components/Filter/useFilterState.js.map +1 -1
  46. package/dist/components/Table/ColumnConfigPanel.d.ts +13 -0
  47. package/dist/components/Table/ColumnConfigPanel.js +260 -0
  48. package/dist/components/Table/ColumnConfigPanel.js.map +1 -0
  49. package/dist/components/Table/Table.d.ts +16 -2
  50. package/dist/components/Table/Table.js +106 -28
  51. package/dist/components/Table/Table.js.map +1 -1
  52. package/dist/components/Table/columnConfig.module.scss.js +38 -0
  53. package/dist/components/Table/columnConfig.module.scss.js.map +1 -0
  54. package/dist/components/Table/columnConfigTypes.d.ts +22 -0
  55. package/dist/components/Table/columnConfigUtils.d.ts +25 -0
  56. package/dist/components/Table/columnConfigUtils.js +141 -0
  57. package/dist/components/Table/columnConfigUtils.js.map +1 -0
  58. package/dist/components/Table/index.d.ts +2 -1
  59. package/dist/index.js +289 -276
  60. package/dist/index.js.map +1 -1
  61. package/dist/marsun-components-core.css +1 -1
  62. package/dist/styles/global.css +1 -1
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { Table as AntTable } from 'antd';\nimport type { TableProps as AntTableProps } from 'antd';\nimport classNames from 'classnames';\nimport { Empty } from '../Empty';\nimport styles from './style.module.scss';\n\nexport type TableProps<RecordType extends object = Record<string, unknown>> =\n AntTableProps<RecordType>;\n\nconst DEFAULT_SCROLL = { x: 'max-content' as const };\n\nfunction defaultShowTotal(total: number): string {\n return `共 ${total} 项`;\n}\n\n/**\n * 基于 antd Table 的列表表格包装。\n * 默认:横向滚动 max-content、受控分页 showSizeChanger + showTotal、空态 Empty。\n */\nfunction Table<RecordType extends object = Record<string, unknown>>({\n className,\n scroll,\n pagination,\n locale,\n ...rest\n}: TableProps<RecordType>) {\n const mergedPagination =\n pagination === false\n ? false\n : {\n showSizeChanger: true,\n showTotal: defaultShowTotal,\n ...(pagination && typeof pagination === 'object' ? pagination : {}),\n };\n\n const mergedLocale = {\n emptyText: <Empty iconType=\"simple\" description=\"暂无数据\" />,\n ...locale,\n };\n\n return (\n <AntTable<RecordType>\n className={classNames('marsun-table', styles['marsun-table'], className)}\n scroll={scroll === undefined ? DEFAULT_SCROLL : scroll}\n pagination={mergedPagination}\n locale={mergedLocale}\n {...rest}\n />\n );\n}\n\nexport default Table;\n"],"names":["DEFAULT_SCROLL","defaultShowTotal","total","Table","className","scroll","pagination","locale","rest","mergedPagination","mergedLocale","jsx","Empty","AntTable","classNames","styles"],"mappings":";;;;;AASA,MAAMA,IAAiB,EAAE,GAAG,cAAA;AAE5B,SAASC,EAAiBC,GAAuB;AAC/C,SAAO,KAAKA,CAAK;AACnB;AAMA,SAASC,EAA2D;AAAA,EAClE,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GAA2B;AACzB,QAAMC,IACJH,MAAe,KACX,KACA;AAAA,IACE,iBAAiB;AAAA,IACjB,WAAWL;AAAA,IACX,GAAIK,KAAc,OAAOA,KAAe,WAAWA,IAAa,CAAA;AAAA,EAAC,GAGnEI,IAAe;AAAA,IACnB,WAAW,gBAAAC,EAACC,GAAA,EAAM,UAAS,UAAS,aAAY,QAAO;AAAA,IACvD,GAAGL;AAAA,EAAA;AAGL,SACE,gBAAAI;AAAA,IAACE;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAW,gBAAgBC,EAAO,cAAc,GAAGX,CAAS;AAAA,MACvE,QAAQC,MAAW,SAAYL,IAAiBK;AAAA,MAChD,YAAYI;AAAA,MACZ,QAAQC;AAAA,MACP,GAAGF;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"Table.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Table as AntTable } from 'antd';\nimport type { TableProps as AntTableProps } from 'antd';\nimport type { ColumnsType, ColumnType } from 'antd/es/table';\nimport classNames from 'classnames';\nimport { Empty } from '../Empty';\nimport { ColumnConfigTrigger } from './ColumnConfigPanel';\nimport type {\n TableColumnConfigFetcher,\n TableColumnConfigItem,\n TableColumnConfigSaver,\n} from './columnConfigTypes';\nimport {\n applyColumnConfig,\n columnsToConfig,\n columnsToPanelItems,\n COLUMN_CONFIG_COL_KEY,\n} from './columnConfigUtils';\nimport styles from './style.module.scss';\nimport gearStyles from './columnConfig.module.scss';\n\nexport type { TableColumnConfigItem, TableColumnConfigFetcher, TableColumnConfigSaver };\n\nexport type TableProps<RecordType extends object = Record<string, unknown>> =\n AntTableProps<RecordType> & {\n /** 稳定偏好 key;业务列表必填 */\n tableName?: string;\n /** 是否启用「编辑表格」列配置;默认 !!tableName */\n columnConfigEnabled?: boolean;\n fetchColumnConfig?: TableColumnConfigFetcher;\n saveColumnConfig?: TableColumnConfigSaver;\n onColumnConfigChange?: (items: TableColumnConfigItem[]) => void;\n };\n\nconst DEFAULT_SCROLL = { x: 'max-content' as const };\nconst CONFIG_COL_WIDTH = 40;\n\nfunction defaultShowTotal(total: number): string {\n return `共 ${total} 项`;\n}\n\n/**\n * 基于 antd Table 的列表表格包装。\n * 默认:横向滚动 max-content、受控分页 showSizeChanger + showTotal、空态 Empty。\n * tableName + columnConfigEnabled 时在最右侧追加独立齿轮列(跨多级表头高度)。\n */\nfunction Table<RecordType extends object = Record<string, unknown>>({\n className,\n scroll,\n pagination,\n locale,\n columns,\n tableName,\n columnConfigEnabled,\n fetchColumnConfig,\n saveColumnConfig,\n onColumnConfigChange,\n ...rest\n}: TableProps<RecordType>) {\n const enableConfig = columnConfigEnabled ?? Boolean(tableName);\n const defaultColumnsRef = useRef(columns);\n const [savedConfig, setSavedConfig] = useState<TableColumnConfigItem[] | null>(null);\n const [configOpen, setConfigOpen] = useState(false);\n const [loaded, setLoaded] = useState(!enableConfig);\n\n useEffect(() => {\n defaultColumnsRef.current = columns;\n }, [columns]);\n\n useEffect(() => {\n if (!enableConfig || !tableName || !fetchColumnConfig) {\n setLoaded(true);\n return;\n }\n let cancelled = false;\n setLoaded(false);\n fetchColumnConfig(tableName)\n .then((items) => {\n if (!cancelled) setSavedConfig(items?.length ? items : null);\n })\n .catch(() => {\n if (!cancelled) setSavedConfig(null);\n })\n .finally(() => {\n if (!cancelled) setLoaded(true);\n });\n return () => {\n cancelled = true;\n };\n }, [enableConfig, tableName, fetchColumnConfig]);\n\n const appliedColumns = useMemo(() => {\n const base = (columns || []) as ColumnsType<RecordType>;\n if (!enableConfig) return base;\n return applyColumnConfig(base, savedConfig);\n }, [columns, enableConfig, savedConfig]);\n\n const defaultPanelItems = useMemo(\n () =>\n columnsToPanelItems(\n (defaultColumnsRef.current || columns) as ColumnsType<Record<string, unknown>>,\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- 随 columns 结构变\n [columns],\n );\n\n const handleConfirm = useCallback(\n async (items: TableColumnConfigItem[]) => {\n if (tableName && saveColumnConfig) {\n await saveColumnConfig(tableName, items);\n }\n setSavedConfig(items);\n onColumnConfigChange?.(items);\n },\n [tableName, saveColumnConfig, onColumnConfigChange],\n );\n\n const displayColumns = useMemo(() => {\n if (!enableConfig || !loaded) return appliedColumns;\n const gearCol: ColumnType<RecordType> = {\n key: COLUMN_CONFIG_COL_KEY,\n width: CONFIG_COL_WIDTH,\n fixed: 'right',\n align: 'center',\n className: gearStyles.configCol,\n onHeaderCell: () => ({ className: gearStyles.configColHeader }),\n title: (\n <ColumnConfigTrigger\n open={configOpen}\n onOpenChange={setConfigOpen}\n defaultItems={defaultPanelItems}\n savedConfig={savedConfig}\n onConfirm={handleConfirm}\n />\n ),\n render: () => null,\n };\n return [...appliedColumns, gearCol] as ColumnsType<RecordType>;\n }, [\n enableConfig,\n loaded,\n appliedColumns,\n configOpen,\n defaultPanelItems,\n savedConfig,\n handleConfirm,\n ]);\n\n const mergedPagination =\n pagination === false\n ? false\n : {\n showSizeChanger: true,\n showTotal: defaultShowTotal,\n ...(pagination && typeof pagination === 'object' ? pagination : {}),\n };\n\n const mergedLocale = {\n emptyText: <Empty iconType=\"simple\" description=\"暂无数据\" />,\n ...locale,\n };\n\n return (\n <AntTable<RecordType>\n className={classNames('marsun-table', styles['marsun-table'], className)}\n scroll={scroll === undefined ? DEFAULT_SCROLL : scroll}\n pagination={mergedPagination}\n locale={mergedLocale}\n columns={displayColumns}\n {...rest}\n />\n );\n}\n\nexport default Table;\n\n/** 导出工具:业务侧也可手动生成默认配置 */\nexport { columnsToConfig, applyColumnConfig, COLUMN_CONFIG_COL_KEY };\n"],"names":["DEFAULT_SCROLL","CONFIG_COL_WIDTH","defaultShowTotal","total","Table","className","scroll","pagination","locale","columns","tableName","columnConfigEnabled","fetchColumnConfig","saveColumnConfig","onColumnConfigChange","rest","enableConfig","defaultColumnsRef","useRef","savedConfig","setSavedConfig","useState","configOpen","setConfigOpen","loaded","setLoaded","useEffect","cancelled","items","appliedColumns","useMemo","base","applyColumnConfig","defaultPanelItems","columnsToPanelItems","handleConfirm","useCallback","displayColumns","gearCol","COLUMN_CONFIG_COL_KEY","gearStyles","jsx","ColumnConfigTrigger","mergedPagination","mergedLocale","Empty","AntTable","classNames","styles"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ const t = "_overlay_g3qto_1", o = "_panel_g3qto_5", e = "_header_g3qto_13", _ = "_title_g3qto_22", l = "_resetBtn_g3qto_28", s = "_collapse_g3qto_45", n = "_search_g3qto_60", c = "_list_g3qto_64", g = "_listItem_g3qto_72", r = "_row_g3qto_76", a = "_grip_g3qto_88", i = "_label_g3qto_96", q = "_footer_g3qto_100", f = "_gearBtn_g3qto_108", p = "_configCol_g3qto_129", d = "_configColHeader_g3qto_133", h = {
2
+ overlay: t,
3
+ panel: o,
4
+ header: e,
5
+ title: _,
6
+ resetBtn: l,
7
+ collapse: s,
8
+ search: n,
9
+ list: c,
10
+ listItem: g,
11
+ row: r,
12
+ grip: a,
13
+ label: i,
14
+ footer: q,
15
+ gearBtn: f,
16
+ configCol: p,
17
+ configColHeader: d
18
+ };
19
+ export {
20
+ s as collapse,
21
+ p as configCol,
22
+ d as configColHeader,
23
+ h as default,
24
+ q as footer,
25
+ f as gearBtn,
26
+ a as grip,
27
+ e as header,
28
+ i as label,
29
+ c as list,
30
+ g as listItem,
31
+ t as overlay,
32
+ o as panel,
33
+ l as resetBtn,
34
+ r as row,
35
+ n as search,
36
+ _ as title
37
+ };
38
+ //# sourceMappingURL=columnConfig.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnConfig.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,22 @@
1
+ import { ColumnType, ColumnsType } from 'antd/es/table';
2
+ /** 与 user_key 持久化一致的列配置项(支持多级 children) */
3
+ export type TableColumnConfigItem = {
4
+ id: string;
5
+ hidden?: boolean;
6
+ width?: number;
7
+ children?: TableColumnConfigItem[];
8
+ };
9
+ export type TableColumnConfigFetcher = (tableName: string) => Promise<TableColumnConfigItem[] | null | undefined>;
10
+ export type TableColumnConfigSaver = (tableName: string, items: TableColumnConfigItem[]) => Promise<void>;
11
+ export type ColumnConfigPanelItem = {
12
+ id: string;
13
+ title: unknown;
14
+ label: string;
15
+ hidden: boolean;
16
+ children?: ColumnConfigPanelItem[];
17
+ };
18
+ export type ColumnTypeAny = ColumnType<Record<string, unknown>> & {
19
+ key?: React.Key;
20
+ children?: ColumnsType<Record<string, unknown>>;
21
+ fixed?: 'left' | 'right' | boolean;
22
+ };
@@ -0,0 +1,25 @@
1
+ import { ColumnsType } from 'antd/es/table';
2
+ import { ColumnConfigPanelItem, TableColumnConfigItem } from './columnConfigTypes';
3
+ /** 列配置齿轮列 key;不进面板 / 持久化 */
4
+ export declare const COLUMN_CONFIG_COL_KEY = "__marsun_column_config";
5
+ /** 叶子相对父级的短 id:TGCV_finished → finished;否则用完整 key */
6
+ export declare function shortChildId(parentId: string, childKey: string): string;
7
+ /** 从 columns 生成默认配置(全部显示,保持树结构;子 id 用短名) */
8
+ export declare function columnsToConfig(columns: ColumnsType<Record<string, unknown>> | undefined, parentId?: string): TableColumnConfigItem[];
9
+ /** columns → 面板树(含 title 文案);子 id 用短名与持久化一致 */
10
+ export declare function columnsToPanelItems(columns: ColumnsType<Record<string, unknown>> | undefined, hiddenIds?: Set<string>, parentId?: string): ColumnConfigPanelItem[];
11
+ /** 按配置重排列并过滤 hidden;子列相对父列解析 */
12
+ export declare function applyColumnConfig<RecordType extends object>(columns: ColumnsType<RecordType> | undefined, config: TableColumnConfigItem[] | null | undefined): ColumnsType<RecordType>;
13
+ /** 找最右可见叶子列路径(用于挂齿轮) */
14
+ export declare function findRightmostLeafPath(columns: ColumnsType<Record<string, unknown>> | undefined): number[] | null;
15
+ export declare function getColumnFixed(columns: ColumnsType<Record<string, unknown>> | undefined, path: number[]): 'left' | 'right' | boolean | undefined;
16
+ /** 在指定 path 的叶子 title 上注入节点 */
17
+ export declare function injectTitleAtPath<RecordType extends object>(columns: ColumnsType<RecordType>, path: number[], inject: (originalTitle: unknown) => unknown): ColumnsType<RecordType>;
18
+ /** 面板草稿 → 持久化 config(hidden 的也写入,保证顺序可恢复) */
19
+ export declare function panelItemsToConfig(items: ColumnConfigPanelItem[]): TableColumnConfigItem[];
20
+ /** 用已保存 config 给面板打 hidden 标记,并按 config 排序 */
21
+ export declare function mergePanelWithConfig(defaults: ColumnConfigPanelItem[], config: TableColumnConfigItem[] | null | undefined): ColumnConfigPanelItem[];
22
+ export declare function splitVisibleHidden(items: ColumnConfigPanelItem[]): {
23
+ visible: ColumnConfigPanelItem[];
24
+ hidden: ColumnConfigPanelItem[];
25
+ };
@@ -0,0 +1,141 @@
1
+ const v = "__marsun_column_config";
2
+ function p(n, e) {
3
+ return n.key != null && String(n.key) !== "" ? String(n.key) : n.dataIndex != null ? Array.isArray(n.dataIndex) ? n.dataIndex.join(".") : String(n.dataIndex) : `__col_${e}`;
4
+ }
5
+ function _(n, e) {
6
+ return p(n, e) === v;
7
+ }
8
+ function C(n, e) {
9
+ const r = `${n}_`;
10
+ return e.startsWith(r) ? e.slice(r.length) : e;
11
+ }
12
+ function I(n) {
13
+ return n == null ? "" : typeof n == "string" || typeof n == "number" ? String(n) : "";
14
+ }
15
+ function S(n, e) {
16
+ return n != null && n.length ? n.map((r, i) => {
17
+ var s;
18
+ if (_(r, i)) return null;
19
+ const l = p(r, i), o = e ? C(e, l) : l, t = (s = r.children) != null && s.length ? S(r.children, l) : void 0;
20
+ return t != null && t.length ? { id: o, children: t } : { id: o };
21
+ }).filter(Boolean) : [];
22
+ }
23
+ function k(n, e, r) {
24
+ return n != null && n.length ? n.map((i, l) => {
25
+ var d;
26
+ if (_(i, l)) return null;
27
+ const o = p(i, l), t = r ? C(r, o) : o, s = I(i.title) || t, h = (d = i.children) != null && d.length ? k(i.children, e, o) : void 0, g = !!((h == null ? void 0 : h.length) && h.every((u) => u.hidden || !1));
28
+ return {
29
+ id: t,
30
+ title: i.title,
31
+ label: s,
32
+ hidden: !!g,
33
+ children: h
34
+ };
35
+ }).filter(Boolean) : [];
36
+ }
37
+ function b(n) {
38
+ var e;
39
+ return !!(n.hidden || (e = n.children) != null && e.length && n.children.every(b));
40
+ }
41
+ function x(n, e) {
42
+ return (n.children || []).find((i, l) => {
43
+ const o = p(i, l), t = p(n, 0);
44
+ return C(String(n.key ?? ""), o) === e || C(t, o) === e || o === e || o.endsWith(`_${e}`);
45
+ });
46
+ }
47
+ function A(n, e) {
48
+ if (!(n != null && n.length)) return n || [];
49
+ if (!(e != null && e.length)) return n;
50
+ const r = /* @__PURE__ */ new Map();
51
+ n.forEach((l, o) => {
52
+ r.set(p(l, o), l);
53
+ });
54
+ const i = (l, o, t) => {
55
+ var c, g;
56
+ const s = [], h = /* @__PURE__ */ new Set();
57
+ for (const d of l) {
58
+ if (b(d)) {
59
+ h.add(d.id);
60
+ continue;
61
+ }
62
+ let u;
63
+ if (t ? u = x(t, d.id) : u = r.get(d.id), !!u)
64
+ if (h.add(d.id), (c = d.children) != null && c.length && ((g = u.children) != null && g.length)) {
65
+ const a = i(d.children, u.children, u);
66
+ if (!a.length) continue;
67
+ s.push({ ...u, children: a });
68
+ } else {
69
+ const a = { ...u };
70
+ d.children, s.push(a);
71
+ }
72
+ }
73
+ return o.forEach((d, u) => {
74
+ const a = p(d, u), f = t ? C(String(t.key ?? p(t, 0)), a) : a;
75
+ !h.has(f) && !h.has(a) && s.push(d);
76
+ }), s;
77
+ };
78
+ return i(e, n);
79
+ }
80
+ function w(n) {
81
+ return n.map((e) => {
82
+ var l;
83
+ const r = (l = e.children) != null && l.length ? w(e.children) : void 0, i = { id: e.id };
84
+ return e.hidden && (i.hidden = !0), r != null && r.length && (i.children = r), i;
85
+ });
86
+ }
87
+ function H(n, e) {
88
+ if (!(e != null && e.length)) return n.map(y);
89
+ const r = new Map(n.map((t) => [t.id, t])), i = /* @__PURE__ */ new Set(), l = (t, s) => {
90
+ var a;
91
+ const h = s || r.get(t.id);
92
+ if (!h) return null;
93
+ i.add(t.id);
94
+ const c = h.children || [], g = new Map(c.map((f) => [f.id, f]));
95
+ let d;
96
+ if ((a = t.children) != null && a.length) {
97
+ d = t.children.map((f) => l(f, g.get(f.id))).filter(Boolean);
98
+ for (const f of c)
99
+ t.children.some((B) => B.id === f.id) || d.push(y(f));
100
+ } else c.length && (d = c.map(y));
101
+ const u = !!t.hidden || !!(d != null && d.length && d.every((f) => f.hidden));
102
+ return {
103
+ id: h.id,
104
+ title: h.title,
105
+ label: h.label,
106
+ hidden: u,
107
+ children: d
108
+ };
109
+ }, o = [];
110
+ for (const t of e) {
111
+ const s = l(t);
112
+ s && o.push(s);
113
+ }
114
+ for (const t of n)
115
+ i.has(t.id) || o.push(y(t));
116
+ return o;
117
+ }
118
+ function y(n) {
119
+ var e;
120
+ return {
121
+ ...n,
122
+ children: (e = n.children) == null ? void 0 : e.map(y)
123
+ };
124
+ }
125
+ function L(n) {
126
+ const e = [], r = [];
127
+ for (const i of n)
128
+ i.hidden ? r.push(i) : e.push(i);
129
+ return { visible: e, hidden: r };
130
+ }
131
+ export {
132
+ v as COLUMN_CONFIG_COL_KEY,
133
+ A as applyColumnConfig,
134
+ S as columnsToConfig,
135
+ k as columnsToPanelItems,
136
+ H as mergePanelWithConfig,
137
+ w as panelItemsToConfig,
138
+ C as shortChildId,
139
+ L as splitVisibleHidden
140
+ };
141
+ //# sourceMappingURL=columnConfigUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnConfigUtils.js","sources":["../../../src/components/Table/columnConfigUtils.ts"],"sourcesContent":["import type { ColumnsType } from 'antd/es/table';\nimport type {\n ColumnConfigPanelItem,\n ColumnTypeAny,\n TableColumnConfigItem,\n} from './columnConfigTypes';\n\n/** 列配置齿轮列 key;不进面板 / 持久化 */\nexport const COLUMN_CONFIG_COL_KEY = '__marsun_column_config';\n\nfunction colKey(col: ColumnTypeAny, index: number): string {\n if (col.key != null && String(col.key) !== '') return String(col.key);\n if (col.dataIndex != null) {\n return Array.isArray(col.dataIndex) ? col.dataIndex.join('.') : String(col.dataIndex);\n }\n return `__col_${index}`;\n}\n\nfunction isConfigCol(col: ColumnTypeAny, index: number): boolean {\n return colKey(col, index) === COLUMN_CONFIG_COL_KEY;\n}\n\n/** 叶子相对父级的短 id:TGCV_finished → finished;否则用完整 key */\nexport function shortChildId(parentId: string, childKey: string): string {\n const prefix = `${parentId}_`;\n if (childKey.startsWith(prefix)) return childKey.slice(prefix.length);\n return childKey;\n}\n\nfunction titleToLabel(title: unknown): string {\n if (title == null) return '';\n if (typeof title === 'string' || typeof title === 'number') return String(title);\n return '';\n}\n\n/** 从 columns 生成默认配置(全部显示,保持树结构;子 id 用短名) */\nexport function columnsToConfig(\n columns: ColumnsType<Record<string, unknown>> | undefined,\n parentId?: string,\n): TableColumnConfigItem[] {\n if (!columns?.length) return [];\n return (columns as ColumnTypeAny[])\n .map((col, i) => {\n if (isConfigCol(col, i)) return null;\n const full = colKey(col, i);\n const id = parentId ? shortChildId(parentId, full) : full;\n const children = col.children?.length\n ? columnsToConfig(col.children as ColumnsType<Record<string, unknown>>, full)\n : undefined;\n return children?.length ? { id, children } : { id };\n })\n .filter(Boolean) as TableColumnConfigItem[];\n}\n\n/** columns → 面板树(含 title 文案);子 id 用短名与持久化一致 */\nexport function columnsToPanelItems(\n columns: ColumnsType<Record<string, unknown>> | undefined,\n hiddenIds?: Set<string>,\n parentId?: string,\n): ColumnConfigPanelItem[] {\n if (!columns?.length) return [];\n return (columns as ColumnTypeAny[])\n .map((col, i) => {\n if (isConfigCol(col, i)) return null;\n const full = colKey(col, i);\n const id = parentId ? shortChildId(parentId, full) : full;\n const label = titleToLabel(col.title) || id;\n const children = col.children?.length\n ? columnsToPanelItems(col.children as ColumnsType<Record<string, unknown>>, hiddenIds, full)\n : undefined;\n const childAllHidden =\n children?.length && children.every((c) => c.hidden || (hiddenIds?.has(c.id) ?? false));\n const hidden = hiddenIds?.has(id) || Boolean(childAllHidden);\n return {\n id,\n title: col.title,\n label,\n hidden: Boolean(hidden),\n children,\n };\n })\n .filter(Boolean) as ColumnConfigPanelItem[];\n}\n\nfunction isHiddenItem(item: TableColumnConfigItem): boolean {\n if (item.hidden) return true;\n if (item.children?.length && item.children.every(isHiddenItem)) return true;\n return false;\n}\n\nfunction findChildCol(parent: ColumnTypeAny, childId: string): ColumnTypeAny | undefined {\n const kids = (parent.children || []) as ColumnTypeAny[];\n return kids.find((c, i) => {\n const full = colKey(c, i);\n const parentFull = colKey(parent, 0);\n // parent key 可能与 map 不一致,用 shortChildId 对每个可能的 parent key\n return (\n shortChildId(String(parent.key ?? ''), full) === childId ||\n shortChildId(parentFull, full) === childId ||\n full === childId ||\n full.endsWith(`_${childId}`)\n );\n });\n}\n\n/** 按配置重排列并过滤 hidden;子列相对父列解析 */\nexport function applyColumnConfig<RecordType extends object>(\n columns: ColumnsType<RecordType> | undefined,\n config: TableColumnConfigItem[] | null | undefined,\n): ColumnsType<RecordType> {\n if (!columns?.length) return columns || [];\n if (!config?.length) return columns;\n\n const topById = new Map<string, ColumnTypeAny>();\n (columns as ColumnTypeAny[]).forEach((col, i) => {\n topById.set(colKey(col, i), col);\n });\n\n const buildLevel = (\n items: TableColumnConfigItem[],\n sourceCols: ColumnTypeAny[],\n parent?: ColumnTypeAny,\n ): ColumnTypeAny[] => {\n const out: ColumnTypeAny[] = [];\n const used = new Set<string>();\n\n for (const item of items) {\n if (isHiddenItem(item)) {\n used.add(item.id);\n continue;\n }\n let src: ColumnTypeAny | undefined;\n if (parent) {\n src = findChildCol(parent, item.id);\n } else {\n src = topById.get(item.id);\n }\n if (!src) continue;\n used.add(item.id);\n\n if (item.children?.length && src.children?.length) {\n const childCols = buildLevel(item.children, src.children as ColumnTypeAny[], src);\n if (!childCols.length) continue;\n out.push({ ...src, children: childCols as ColumnsType<Record<string, unknown>> });\n } else {\n const next = { ...src };\n if (!item.children) {\n // keep children as-is when config leaf but source has group — strip if short ids only\n }\n out.push(next);\n }\n }\n\n // 配置未覆盖的同级列追加末尾\n sourceCols.forEach((col, i) => {\n const full = colKey(col, i);\n const id = parent ? shortChildId(String(parent.key ?? colKey(parent, 0)), full) : full;\n if (!used.has(id) && !used.has(full)) {\n out.push(col);\n }\n });\n\n return out;\n };\n\n return buildLevel(config, columns as ColumnTypeAny[]) as ColumnsType<RecordType>;\n}\n\n/** 找最右可见叶子列路径(用于挂齿轮) */\nexport function findRightmostLeafPath(\n columns: ColumnsType<Record<string, unknown>> | undefined,\n): number[] | null {\n if (!columns?.length) return null;\n const cols = columns as ColumnTypeAny[];\n const last = cols.length - 1;\n const col = cols[last];\n if (!col) return null;\n if (col.children?.length) {\n const sub = findRightmostLeafPath(col.children as ColumnsType<Record<string, unknown>>);\n if (!sub) return [last];\n return [last, ...sub];\n }\n return [last];\n}\n\nexport function getColumnFixed(\n columns: ColumnsType<Record<string, unknown>> | undefined,\n path: number[],\n): 'left' | 'right' | boolean | undefined {\n let cur: ColumnTypeAny[] | undefined = columns as ColumnTypeAny[] | undefined;\n let fixed: 'left' | 'right' | boolean | undefined;\n for (const idx of path) {\n if (!cur?.[idx]) return fixed;\n fixed = cur[idx].fixed ?? fixed;\n cur = cur[idx].children as ColumnTypeAny[] | undefined;\n }\n return fixed;\n}\n\n/** 在指定 path 的叶子 title 上注入节点 */\nexport function injectTitleAtPath<RecordType extends object>(\n columns: ColumnsType<RecordType>,\n path: number[],\n inject: (originalTitle: unknown) => unknown,\n): ColumnsType<RecordType> {\n if (!path.length) return columns;\n const clone = (columns as ColumnTypeAny[]).map((c) => ({ ...c }));\n let cur = clone;\n for (let i = 0; i < path.length; i++) {\n const idx = path[i]!;\n const prev = cur[idx];\n if (!prev) return columns;\n const col = { ...prev };\n cur[idx] = col;\n if (i === path.length - 1) {\n col.title = inject(col.title) as ColumnTypeAny['title'];\n } else if (col.children) {\n col.children = (col.children as ColumnTypeAny[]).map((c) => ({ ...c }));\n cur = col.children as ColumnTypeAny[];\n }\n }\n return clone as ColumnsType<RecordType>;\n}\n\n/** 面板草稿 → 持久化 config(hidden 的也写入,保证顺序可恢复) */\nexport function panelItemsToConfig(items: ColumnConfigPanelItem[]): TableColumnConfigItem[] {\n return items.map((it) => {\n const children = it.children?.length ? panelItemsToConfig(it.children) : undefined;\n const base: TableColumnConfigItem = { id: it.id };\n if (it.hidden) base.hidden = true;\n if (children?.length) base.children = children;\n return base;\n });\n}\n\n/** 用已保存 config 给面板打 hidden 标记,并按 config 排序 */\nexport function mergePanelWithConfig(\n defaults: ColumnConfigPanelItem[],\n config: TableColumnConfigItem[] | null | undefined,\n): ColumnConfigPanelItem[] {\n if (!config?.length) return defaults.map(clonePanel);\n\n const byId = new Map(defaults.map((d) => [d.id, d]));\n const used = new Set<string>();\n\n const mapItem = (\n cfg: TableColumnConfigItem,\n fallback?: ColumnConfigPanelItem,\n ): ColumnConfigPanelItem | null => {\n const src = fallback || byId.get(cfg.id);\n if (!src) return null;\n used.add(cfg.id);\n const childDefaults = src.children || [];\n const childById = new Map(childDefaults.map((c) => [c.id, c]));\n let children: ColumnConfigPanelItem[] | undefined;\n if (cfg.children?.length) {\n children = cfg.children\n .map((c) => mapItem(c, childById.get(c.id)))\n .filter(Boolean) as ColumnConfigPanelItem[];\n for (const cd of childDefaults) {\n if (!cfg.children.some((c) => c.id === cd.id)) {\n children.push(clonePanel(cd));\n }\n }\n } else if (childDefaults.length) {\n children = childDefaults.map(clonePanel);\n }\n const hidden =\n Boolean(cfg.hidden) || Boolean(children?.length && children.every((c) => c.hidden));\n return {\n id: src.id,\n title: src.title,\n label: src.label,\n hidden,\n children,\n };\n };\n\n const ordered: ColumnConfigPanelItem[] = [];\n for (const cfg of config) {\n const mapped = mapItem(cfg);\n if (mapped) ordered.push(mapped);\n }\n for (const d of defaults) {\n if (!used.has(d.id)) ordered.push(clonePanel(d));\n }\n return ordered;\n}\n\nfunction clonePanel(item: ColumnConfigPanelItem): ColumnConfigPanelItem {\n return {\n ...item,\n children: item.children?.map(clonePanel),\n };\n}\n\nexport function splitVisibleHidden(items: ColumnConfigPanelItem[]): {\n visible: ColumnConfigPanelItem[];\n hidden: ColumnConfigPanelItem[];\n} {\n const visible: ColumnConfigPanelItem[] = [];\n const hidden: ColumnConfigPanelItem[] = [];\n for (const it of items) {\n if (it.hidden) hidden.push(it);\n else visible.push(it);\n }\n return { visible, hidden };\n}\n"],"names":["COLUMN_CONFIG_COL_KEY","colKey","col","index","isConfigCol","shortChildId","parentId","childKey","prefix","titleToLabel","title","columnsToConfig","columns","_a","full","id","children","columnsToPanelItems","hiddenIds","i","label","hidden","c","isHiddenItem","item","findChildCol","parent","childId","parentFull","applyColumnConfig","config","topById","buildLevel","items","sourceCols","_b","out","used","src","childCols","next","panelItemsToConfig","it","base","mergePanelWithConfig","defaults","clonePanel","byId","d","mapItem","cfg","fallback","childDefaults","childById","cd","ordered","mapped","splitVisibleHidden","visible"],"mappings":"AAQO,MAAMA,IAAwB;AAErC,SAASC,EAAOC,GAAoBC,GAAuB;AACzD,SAAID,EAAI,OAAO,QAAQ,OAAOA,EAAI,GAAG,MAAM,KAAW,OAAOA,EAAI,GAAG,IAChEA,EAAI,aAAa,OACZ,MAAM,QAAQA,EAAI,SAAS,IAAIA,EAAI,UAAU,KAAK,GAAG,IAAI,OAAOA,EAAI,SAAS,IAE/E,SAASC,CAAK;AACvB;AAEA,SAASC,EAAYF,GAAoBC,GAAwB;AAC/D,SAAOF,EAAOC,GAAKC,CAAK,MAAMH;AAChC;AAGO,SAASK,EAAaC,GAAkBC,GAA0B;AACvE,QAAMC,IAAS,GAAGF,CAAQ;AAC1B,SAAIC,EAAS,WAAWC,CAAM,IAAUD,EAAS,MAAMC,EAAO,MAAM,IAC7DD;AACT;AAEA,SAASE,EAAaC,GAAwB;AAC5C,SAAIA,KAAS,OAAa,KACtB,OAAOA,KAAU,YAAY,OAAOA,KAAU,WAAiB,OAAOA,CAAK,IACxE;AACT;AAGO,SAASC,EACdC,GACAN,GACyB;AACzB,SAAKM,KAAA,QAAAA,EAAS,SACNA,EACL,IAAI,CAACV,GAAK,MAAM;AAlCd,QAAAW;AAmCD,QAAIT,EAAYF,GAAK,CAAC,EAAG,QAAO;AAChC,UAAMY,IAAOb,EAAOC,GAAK,CAAC,GACpBa,IAAKT,IAAWD,EAAaC,GAAUQ,CAAI,IAAIA,GAC/CE,KAAWH,IAAAX,EAAI,aAAJ,QAAAW,EAAc,SAC3BF,EAAgBT,EAAI,UAAkDY,CAAI,IAC1E;AACJ,WAAOE,KAAA,QAAAA,EAAU,SAAS,EAAE,IAAAD,GAAI,UAAAC,EAAA,IAAa,EAAE,IAAAD,EAAA;AAAA,EACjD,CAAC,EACA,OAAO,OAAO,IAXY,CAAA;AAY/B;AAGO,SAASE,EACdL,GACAM,GACAZ,GACyB;AACzB,SAAKM,KAAA,QAAAA,EAAS,SACNA,EACL,IAAI,CAACV,GAAKiB,MAAM;AAtDd,QAAAN;AAuDD,QAAIT,EAAYF,GAAKiB,CAAC,EAAG,QAAO;AAChC,UAAML,IAAOb,EAAOC,GAAKiB,CAAC,GACpBJ,IAAKT,IAAWD,EAAaC,GAAUQ,CAAI,IAAIA,GAC/CM,IAAQX,EAAaP,EAAI,KAAK,KAAKa,GACnCC,KAAWH,IAAAX,EAAI,aAAJ,QAAAW,EAAc,SAC3BI,EAAoBf,EAAI,UAAkDgB,GAAWJ,CAAI,IACzF,QAGEO,IAA+B,IADnCL,KAAA,gBAAAA,EAAU,WAAUA,EAAS,MAAM,CAACM,MAAMA,EAAE,UAAmC,EAAM;AAEvF,WAAO;AAAA,MACL,IAAAP;AAAA,MACA,OAAOb,EAAI;AAAA,MACX,OAAAkB;AAAA,MACA,QAAQ,EAAQC;AAAA,MAChB,UAAAL;AAAA,IAAA;AAAA,EAEJ,CAAC,EACA,OAAO,OAAO,IArBY,CAAA;AAsB/B;AAEA,SAASO,EAAaC,GAAsC;AA5ErD,MAAAX;AA8EL,SADI,GAAAW,EAAK,WACLX,IAAAW,EAAK,aAAL,QAAAX,EAAe,UAAUW,EAAK,SAAS,MAAMD,CAAY;AAE/D;AAEA,SAASE,EAAaC,GAAuBC,GAA4C;AAEvF,UADcD,EAAO,YAAY,CAAA,GACrB,KAAK,CAACJ,GAAGH,MAAM;AACzB,UAAML,IAAOb,EAAOqB,GAAGH,CAAC,GAClBS,IAAa3B,EAAOyB,GAAQ,CAAC;AAEnC,WACErB,EAAa,OAAOqB,EAAO,OAAO,EAAE,GAAGZ,CAAI,MAAMa,KACjDtB,EAAauB,GAAYd,CAAI,MAAMa,KACnCb,MAASa,KACTb,EAAK,SAAS,IAAIa,CAAO,EAAE;AAAA,EAE/B,CAAC;AACH;AAGO,SAASE,EACdjB,GACAkB,GACyB;AACzB,MAAI,EAAClB,KAAA,QAAAA,EAAS,QAAQ,QAAOA,KAAW,CAAA;AACxC,MAAI,EAACkB,KAAA,QAAAA,EAAQ,QAAQ,QAAOlB;AAE5B,QAAMmB,wBAAc,IAAA;AACnB,EAAAnB,EAA4B,QAAQ,CAACV,GAAKiB,MAAM;AAC/C,IAAAY,EAAQ,IAAI9B,EAAOC,GAAKiB,CAAC,GAAGjB,CAAG;AAAA,EACjC,CAAC;AAED,QAAM8B,IAAa,CACjBC,GACAC,GACAR,MACoB;AAlHjB,QAAAb,GAAAsB;AAmHH,UAAMC,IAAuB,CAAA,GACvBC,wBAAW,IAAA;AAEjB,eAAWb,KAAQS,GAAO;AACxB,UAAIV,EAAaC,CAAI,GAAG;AACtB,QAAAa,EAAK,IAAIb,EAAK,EAAE;AAChB;AAAA,MACF;AACA,UAAIc;AAMJ,UALIZ,IACFY,IAAMb,EAAaC,GAAQF,EAAK,EAAE,IAElCc,IAAMP,EAAQ,IAAIP,EAAK,EAAE,GAEvB,EAACc;AAGL,YAFAD,EAAK,IAAIb,EAAK,EAAE,IAEZX,IAAAW,EAAK,aAAL,QAAAX,EAAe,YAAUsB,IAAAG,EAAI,aAAJ,QAAAH,EAAc,SAAQ;AACjD,gBAAMI,IAAYP,EAAWR,EAAK,UAAUc,EAAI,UAA6BA,CAAG;AAChF,cAAI,CAACC,EAAU,OAAQ;AACvB,UAAAH,EAAI,KAAK,EAAE,GAAGE,GAAK,UAAUC,GAAmD;AAAA,QAClF,OAAO;AACL,gBAAMC,IAAO,EAAE,GAAGF,EAAA;AAClB,UAAKd,EAAK,UAGVY,EAAI,KAAKI,CAAI;AAAA,QACf;AAAA,IACF;AAGA,WAAAN,EAAW,QAAQ,CAAChC,GAAKiB,MAAM;AAC7B,YAAML,IAAOb,EAAOC,GAAKiB,CAAC,GACpBJ,IAAKW,IAASrB,EAAa,OAAOqB,EAAO,OAAOzB,EAAOyB,GAAQ,CAAC,CAAC,GAAGZ,CAAI,IAAIA;AAClF,MAAI,CAACuB,EAAK,IAAItB,CAAE,KAAK,CAACsB,EAAK,IAAIvB,CAAI,KACjCsB,EAAI,KAAKlC,CAAG;AAAA,IAEhB,CAAC,GAEMkC;AAAA,EACT;AAEA,SAAOJ,EAAWF,GAAQlB,CAA0B;AACtD;AA2DO,SAAS6B,EAAmBR,GAAyD;AAC1F,SAAOA,EAAM,IAAI,CAACS,MAAO;AA1NpB,QAAA7B;AA2NH,UAAMG,KAAWH,IAAA6B,EAAG,aAAH,QAAA7B,EAAa,SAAS4B,EAAmBC,EAAG,QAAQ,IAAI,QACnEC,IAA8B,EAAE,IAAID,EAAG,GAAA;AAC7C,WAAIA,EAAG,WAAQC,EAAK,SAAS,KACzB3B,KAAA,QAAAA,EAAU,WAAQ2B,EAAK,WAAW3B,IAC/B2B;AAAA,EACT,CAAC;AACH;AAGO,SAASC,EACdC,GACAf,GACyB;AACzB,MAAI,EAACA,KAAA,QAAAA,EAAQ,QAAQ,QAAOe,EAAS,IAAIC,CAAU;AAEnD,QAAMC,IAAO,IAAI,IAAIF,EAAS,IAAI,CAACG,MAAM,CAACA,EAAE,IAAIA,CAAC,CAAC,CAAC,GAC7CX,wBAAW,IAAA,GAEXY,IAAU,CACdC,GACAC,MACiC;AAhP9B,QAAAtC;AAiPH,UAAMyB,IAAMa,KAAYJ,EAAK,IAAIG,EAAI,EAAE;AACvC,QAAI,CAACZ,EAAK,QAAO;AACjB,IAAAD,EAAK,IAAIa,EAAI,EAAE;AACf,UAAME,IAAgBd,EAAI,YAAY,CAAA,GAChCe,IAAY,IAAI,IAAID,EAAc,IAAI,CAAC9B,MAAM,CAACA,EAAE,IAAIA,CAAC,CAAC,CAAC;AAC7D,QAAIN;AACJ,SAAIH,IAAAqC,EAAI,aAAJ,QAAArC,EAAc,QAAQ;AACxB,MAAAG,IAAWkC,EAAI,SACZ,IAAI,CAAC5B,MAAM2B,EAAQ3B,GAAG+B,EAAU,IAAI/B,EAAE,EAAE,CAAC,CAAC,EAC1C,OAAO,OAAO;AACjB,iBAAWgC,KAAMF;AACf,QAAKF,EAAI,SAAS,KAAK,CAAC5B,MAAMA,EAAE,OAAOgC,EAAG,EAAE,KAC1CtC,EAAS,KAAK8B,EAAWQ,CAAE,CAAC;AAAA,IAGlC,MAAA,CAAWF,EAAc,WACvBpC,IAAWoC,EAAc,IAAIN,CAAU;AAEzC,UAAMzB,IACJ,EAAQ6B,EAAI,UAAW,GAAQlC,KAAA,QAAAA,EAAU,UAAUA,EAAS,MAAM,CAACM,MAAMA,EAAE,MAAM;AACnF,WAAO;AAAA,MACL,IAAIgB,EAAI;AAAA,MACR,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI;AAAA,MACX,QAAAjB;AAAA,MACA,UAAAL;AAAA,IAAA;AAAA,EAEJ,GAEMuC,IAAmC,CAAA;AACzC,aAAWL,KAAOpB,GAAQ;AACxB,UAAM0B,IAASP,EAAQC,CAAG;AAC1B,IAAIM,KAAQD,EAAQ,KAAKC,CAAM;AAAA,EACjC;AACA,aAAWR,KAAKH;AACd,IAAKR,EAAK,IAAIW,EAAE,EAAE,KAAGO,EAAQ,KAAKT,EAAWE,CAAC,CAAC;AAEjD,SAAOO;AACT;AAEA,SAAST,EAAWtB,GAAoD;AAzRjE,MAAAX;AA0RL,SAAO;AAAA,IACL,GAAGW;AAAA,IACH,WAAUX,IAAAW,EAAK,aAAL,gBAAAX,EAAe,IAAIiC;AAAA,EAAU;AAE3C;AAEO,SAASW,EAAmBxB,GAGjC;AACA,QAAMyB,IAAmC,CAAA,GACnCrC,IAAkC,CAAA;AACxC,aAAWqB,KAAMT;AACf,IAAIS,EAAG,SAAQrB,EAAO,KAAKqB,CAAE,IACxBgB,EAAQ,KAAKhB,CAAE;AAEtB,SAAO,EAAE,SAAAgB,GAAS,QAAArC,EAAA;AACpB;"}
@@ -1,2 +1,3 @@
1
1
  export { default as Table } from './Table';
2
- export type { TableProps } from './Table';
2
+ export type { TableProps, TableColumnConfigItem, TableColumnConfigFetcher, TableColumnConfigSaver, } from './Table';
3
+ export { columnsToConfig, applyColumnConfig, COLUMN_CONFIG_COL_KEY } from './Table';