@hkyhy/marsun-components-core 0.1.75 → 0.1.77

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.
@@ -1,95 +1,105 @@
1
- import { jsx as S } from "react/jsx-runtime";
2
- import A from "@kne/super-select";
1
+ import { jsx as g } from "react/jsx-runtime";
2
+ import R from "@kne/super-select";
3
3
  /* empty css */
4
- import * as C from "@kne/react-form-antd";
5
- import E from "classnames";
6
- import { useRef as R, useMemo as l } from "react";
7
- import { withNormalizedLabelTips as F } from "./normalizeLabelTips.js";
8
- import { marsunToKne as T, mergeKneLabelMaps as _, kneToMarsun as K } from "../Filter/kneValueAdapter.js";
9
- import P from "./SuperSelect.module.scss.js";
10
- const c = "all";
11
- function U(r, t = c) {
12
- return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
4
+ import * as F from "@kne/react-form-antd";
5
+ import T from "classnames";
6
+ import { useRef as _, useMemo as b } from "react";
7
+ import { withNormalizedLabelTips as K } from "./normalizeLabelTips.js";
8
+ import { marsunToKne as U, mergeKneLabelMaps as j, kneToMarsun as z } from "../Filter/kneValueAdapter.js";
9
+ import D from "./SuperSelect.module.scss.js";
10
+ const u = "all";
11
+ function G(r, e = u) {
12
+ return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(e) : String(r) === String(e);
13
13
  }
14
- function G(r, t = c) {
15
- return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
14
+ function W(r, e = u) {
15
+ return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(e) : String(r) === String(e);
16
16
  }
17
- const j = ({
17
+ const I = ({
18
18
  value: r,
19
- onChange: t,
20
- disabled: a,
21
- options: m = [],
19
+ onChange: e,
20
+ disabled: i,
21
+ options: c = [],
22
22
  single: o = !1,
23
- allowSelectedAll: b = !1,
24
- selectedAllValue: n = { value: c, label: "全选" },
25
- placeholder: M,
26
- showSearch: g = !0,
27
- allowClear: L = !0,
28
- className: w,
29
- ...d
23
+ allowSelectedAll: L = !1,
24
+ selectedAllValue: n = { value: u, label: "全选" },
25
+ placeholder: d,
26
+ showSearch: m = !0,
27
+ allowClear: w = !0,
28
+ className: y,
29
+ api: p,
30
+ getSearchProps: l,
31
+ ...k
30
32
  }) => {
31
- const i = R({
33
+ const a = _({
32
34
  labelMap: {},
33
35
  itemMap: {}
34
- }), p = l(() => {
35
- const e = {};
36
- for (const s of m)
37
- e[String(s.value)] = s.label;
38
- return e[String(n.value)] = n.label, e;
39
- }, [m, n]), y = l(() => {
40
- const e = {
41
- labelMap: { ...p, ...i.current.labelMap },
42
- itemMap: i.current.itemMap
36
+ }), A = p != null, S = b(() => {
37
+ const t = {};
38
+ for (const s of c)
39
+ t[String(s.value)] = s.label;
40
+ return t[String(n.value)] = n.label, t;
41
+ }, [c, n]), N = b(() => {
42
+ const t = {
43
+ labelMap: { ...S, ...a.current.labelMap },
44
+ itemMap: a.current.itemMap
43
45
  };
44
- return U(r, n.value) ? [n] : T(r, { single: o, ...e });
45
- }, [r, o, p, n]), k = (e) => {
46
- i.current = _(e, i.current), t == null || t(K(e, o));
47
- };
48
- return /* @__PURE__ */ S(
46
+ return G(r, n.value) ? [n] : U(r, { single: o, ...t });
47
+ }, [r, o, S, n]), h = (t) => {
48
+ a.current = j(t, a.current), e == null || e(z(t, o));
49
+ }, C = ({ searchText: t }) => ({
50
+ keyword: t || "",
51
+ currentPage: 1
52
+ });
53
+ return /* @__PURE__ */ g(
49
54
  "div",
50
55
  {
51
- className: E(
56
+ className: T(
52
57
  "marsun-form-super-select",
53
- P["marsun-form-super-select"],
54
- w
58
+ D["marsun-form-super-select"],
59
+ y
55
60
  ),
56
- children: /* @__PURE__ */ S(
57
- A,
61
+ children: /* @__PURE__ */ g(
62
+ R,
58
63
  {
59
- ...d,
60
- value: y,
61
- onChange: k,
62
- options: m,
64
+ ...k,
65
+ value: N,
66
+ onChange: h,
67
+ ...A ? {
68
+ api: p,
69
+ getSearchProps: m ? l || C : l
70
+ } : {
71
+ options: c,
72
+ getSearchCallback: m ? ({ searchText: t }, s) => {
73
+ if (!t) return !0;
74
+ const f = t.toLowerCase(), E = String(s.label ?? "").toLowerCase(), P = String(s.value ?? "").toLowerCase();
75
+ return E.includes(f) || P.includes(f);
76
+ } : void 0
77
+ },
63
78
  single: o,
64
- allowSelectedAll: !o && b,
79
+ allowSelectedAll: !o && L,
65
80
  selectedAllValue: n,
66
- placeholder: M,
81
+ placeholder: d,
67
82
  isPopup: !0,
68
- getSearchCallback: g ? ({ searchText: e }, s) => {
69
- if (!e) return !0;
70
- const u = e.toLowerCase(), N = String(s.label ?? "").toLowerCase(), h = String(s.value ?? "").toLowerCase();
71
- return N.includes(u) || h.includes(u);
72
- } : void 0,
73
- allowClear: L && !a,
74
- disabled: a
83
+ allowClear: w && !i,
84
+ disabled: i
75
85
  }
76
86
  )
77
87
  }
78
88
  );
79
- }, f = (r) => {
80
- const { useDecorator: t } = C.hooks;
81
- return t({
89
+ }, M = (r) => {
90
+ const { useDecorator: e } = F.hooks;
91
+ return e({
82
92
  fieldName: "superSelect",
83
93
  ...r
84
- })(j);
94
+ })(I);
85
95
  };
86
- f.displayName = "SuperSelect";
87
- const H = F(
88
- f
96
+ M.displayName = "SuperSelect";
97
+ const X = K(
98
+ M
89
99
  );
90
100
  export {
91
- c as SUPER_SELECT_ALL_VALUE,
92
- H as SuperSelect,
93
- G as isSuperSelectAllValue
101
+ u as SUPER_SELECT_ALL_VALUE,
102
+ X as SuperSelect,
103
+ W as isSuperSelectAllValue
94
104
  };
95
105
  //# sourceMappingURL=SuperSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SuperSelect.js","sources":["../../../src/components/Form/SuperSelect.tsx"],"sourcesContent":["/**\n * FormInfo · SuperSelect 字段(对位 kne-union SuperSelectField 精简版)。\n * 经 `hooks.useDecorator` 接入;多选可开 `allowSelectedAll`(值 sentinel 默认 `'all'`)。\n * 对外 form 值为 Marsun 标量/数组(string | string[]),面板内适配 kne `{ label, value }`。\n */\n// @ts-nocheck — @kne/super-select 无完整 TS 类型\nimport KneSuperSelect from '@kne/super-select';\nimport '@kne/super-select/dist/index.css';\nimport * as ReactFormAntd from '@kne/react-form-antd';\nimport classNames from 'classnames';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { useMemo, useRef } from 'react';\nimport { withNormalizedLabelTips } from './normalizeLabelTips';\nimport {\n kneToMarsun,\n marsunToKne,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from '@/components/Filter/kneValueAdapter';\nimport styles from './SuperSelect.module.scss';\n\n/** 与 @kne/super-select 默认 `selectedAllValue.value` 对齐 */\nexport const SUPER_SELECT_ALL_VALUE = 'all';\n\nexport type SuperSelectOption = {\n value: string | number;\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\nexport type SuperSelectProps = {\n name: string;\n label?: ReactNode;\n labelTips?: ReactNode | ((props: SuperSelectProps) => ReactNode);\n rule?: string;\n disabled?: boolean;\n placeholder?: string;\n options?: SuperSelectOption[];\n /** true = 单选;默认多选 */\n single?: boolean;\n /** 多选时显示全选(form 值变为 `[selectedAllValue.value]`,默认 `'all'`) */\n allowSelectedAll?: boolean;\n /** 覆盖默认 `{ value: 'all', label: '全选' }` */\n selectedAllValue?: { value: string | number; label: string };\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 透传 kne SuperSelect */\n [key: string]: unknown;\n};\n\ntype FieldRenderProps = {\n value?: MarsunSelectValue;\n onChange?: (v: MarsunSelectValue) => void;\n disabled?: boolean;\n id?: string;\n};\n\ntype KneHooks = {\n useDecorator: (\n opts: Record<string, unknown>,\n ) => (Comp: ComponentType<FieldRenderProps>) => ReactNode;\n};\n\nfunction isSelectAllMarsun(\n value: MarsunSelectValue,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\n/** 业务写路径:是否为全选 sentinel */\nexport function isSuperSelectAllValue(\n value: unknown,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\nconst SuperSelectField: FC<\n FieldRenderProps & {\n options?: SuperSelectOption[];\n single?: boolean;\n allowSelectedAll?: boolean;\n selectedAllValue?: { value: string | number; label: string };\n placeholder?: string;\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n [key: string]: unknown;\n }\n> = ({\n value,\n onChange,\n disabled,\n options = [],\n single = false,\n allowSelectedAll = false,\n selectedAllValue = { value: SUPER_SELECT_ALL_VALUE, label: '全选' },\n placeholder,\n showSearch = true,\n allowClear = true,\n className,\n ...kneRest\n}) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n\n const labelMapFromOptions = useMemo(() => {\n const map: Record<string, string> = {};\n for (const o of options) {\n map[String(o.value)] = o.label;\n }\n map[String(selectedAllValue.value)] = selectedAllValue.label;\n return map;\n }, [options, selectedAllValue]);\n\n const kneValue = useMemo(() => {\n const maps = {\n labelMap: { ...labelMapFromOptions, ...mapsRef.current.labelMap },\n itemMap: mapsRef.current.itemMap,\n };\n if (isSelectAllMarsun(value, selectedAllValue.value)) {\n return [selectedAllValue as KneSelectItem];\n }\n return marsunToKne(value, { single, ...maps });\n }, [value, single, labelMapFromOptions, selectedAllValue]);\n\n const handleChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n onChange?.(kneToMarsun(next, single));\n };\n\n return (\n <div\n className={classNames(\n 'marsun-form-super-select',\n styles['marsun-form-super-select'],\n className,\n )}\n >\n <KneSuperSelect\n {...kneRest}\n value={kneValue}\n onChange={handleChange}\n options={options}\n single={single}\n allowSelectedAll={!single && allowSelectedAll}\n selectedAllValue={selectedAllValue}\n placeholder={placeholder}\n isPopup\n getSearchCallback={\n showSearch\n ? ({ searchText }: { searchText?: string }, item: KneSelectItem) => {\n if (!searchText) return true;\n const kw = searchText.toLowerCase();\n const label = String(item.label ?? '').toLowerCase();\n const val = String(item.value ?? '').toLowerCase();\n return label.includes(kw) || val.includes(kw);\n }\n : undefined\n }\n allowClear={allowClear && !disabled}\n disabled={disabled}\n />\n </div>\n );\n};\n\nconst SuperSelectInner: FC<SuperSelectProps> = (props) => {\n const { useDecorator } = (ReactFormAntd as unknown as { hooks: KneHooks }).hooks;\n const render = useDecorator({\n fieldName: 'superSelect',\n ...props,\n });\n return render(SuperSelectField);\n};\n\nSuperSelectInner.displayName = 'SuperSelect';\n\nexport const SuperSelect = withNormalizedLabelTips(\n SuperSelectInner as ComponentType<SuperSelectProps>,\n) as ComponentType<SuperSelectProps>;\n\nexport default SuperSelect;\n"],"names":["SUPER_SELECT_ALL_VALUE","isSelectAllMarsun","value","allValue","isSuperSelectAllValue","SuperSelectField","onChange","disabled","options","single","allowSelectedAll","selectedAllValue","placeholder","showSearch","allowClear","className","kneRest","mapsRef","useRef","labelMapFromOptions","useMemo","map","o","kneValue","maps","marsunToKne","handleChange","next","mergeKneLabelMaps","kneToMarsun","jsx","classNames","styles","KneSuperSelect","searchText","item","kw","label","val","SuperSelectInner","props","useDecorator","ReactFormAntd","SuperSelect","withNormalizedLabelTips"],"mappings":"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"}
1
+ {"version":3,"file":"SuperSelect.js","sources":["../../../src/components/Form/SuperSelect.tsx"],"sourcesContent":["/**\n * FormInfo · SuperSelect 字段(对位 kne-union SuperSelectField 精简版)。\n * 经 `hooks.useDecorator` 接入;多选可开 `allowSelectedAll`(值 sentinel 默认 `'all'`)。\n * 对外 form 值为 Marsun 标量/数组(string | string[]),面板内适配 kne `{ label, value }`。\n */\n// @ts-nocheck — @kne/super-select 无完整 TS 类型\nimport KneSuperSelect from '@kne/super-select';\nimport '@kne/super-select/dist/index.css';\nimport * as ReactFormAntd from '@kne/react-form-antd';\nimport classNames from 'classnames';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { useMemo, useRef } from 'react';\nimport { withNormalizedLabelTips } from './normalizeLabelTips';\nimport {\n kneToMarsun,\n marsunToKne,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from '@/components/Filter/kneValueAdapter';\nimport styles from './SuperSelect.module.scss';\n\n/** 与 @kne/super-select 默认 `selectedAllValue.value` 对齐 */\nexport const SUPER_SELECT_ALL_VALUE = 'all';\n\nexport type SuperSelectOption = {\n value: string | number;\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\nexport type SuperSelectProps = {\n name: string;\n label?: ReactNode;\n labelTips?: ReactNode | ((props: SuperSelectProps) => ReactNode);\n rule?: string;\n disabled?: boolean;\n placeholder?: string;\n options?: SuperSelectOption[];\n /** true = 单选;默认多选 */\n single?: boolean;\n /** 多选时显示全选(form 值变为 `[selectedAllValue.value]`,默认 `'all'`) */\n allowSelectedAll?: boolean;\n /** 覆盖默认 `{ value: 'all', label: '全选' }` */\n selectedAllValue?: { value: string | number; label: string };\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 透传 kne SuperSelect */\n [key: string]: unknown;\n};\n\ntype FieldRenderProps = {\n value?: MarsunSelectValue;\n onChange?: (v: MarsunSelectValue) => void;\n disabled?: boolean;\n id?: string;\n};\n\ntype KneHooks = {\n useDecorator: (\n opts: Record<string, unknown>,\n ) => (Comp: ComponentType<FieldRenderProps>) => ReactNode;\n};\n\nfunction isSelectAllMarsun(\n value: MarsunSelectValue,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\n/** 业务写路径:是否为全选 sentinel */\nexport function isSuperSelectAllValue(\n value: unknown,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\nconst SuperSelectField: FC<\n FieldRenderProps & {\n options?: SuperSelectOption[];\n single?: boolean;\n allowSelectedAll?: boolean;\n selectedAllValue?: { value: string | number; label: string };\n placeholder?: string;\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 有 api 时走远程/分页加载,不再传 options(否则 kne 会忽略 api) */\n api?: unknown;\n getSearchProps?: (searchProps: { searchText?: string }) => Record<string, unknown>;\n [key: string]: unknown;\n }\n> = ({\n value,\n onChange,\n disabled,\n options = [],\n single = false,\n allowSelectedAll = false,\n selectedAllValue = { value: SUPER_SELECT_ALL_VALUE, label: '全选' },\n placeholder,\n showSearch = true,\n allowClear = true,\n className,\n api,\n getSearchProps: getSearchPropsProp,\n ...kneRest\n}) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n const useApi = api != null;\n\n const labelMapFromOptions = useMemo(() => {\n const map: Record<string, string> = {};\n for (const o of options) {\n map[String(o.value)] = o.label;\n }\n map[String(selectedAllValue.value)] = selectedAllValue.label;\n return map;\n }, [options, selectedAllValue]);\n\n const kneValue = useMemo(() => {\n const maps = {\n labelMap: { ...labelMapFromOptions, ...mapsRef.current.labelMap },\n itemMap: mapsRef.current.itemMap,\n };\n if (isSelectAllMarsun(value, selectedAllValue.value)) {\n return [selectedAllValue as KneSelectItem];\n }\n return marsunToKne(value, { single, ...maps });\n }, [value, single, labelMapFromOptions, selectedAllValue]);\n\n const handleChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n onChange?.(kneToMarsun(next, single));\n };\n\n const defaultGetSearchProps = ({ searchText }: { searchText?: string }) => ({\n keyword: searchText || '',\n currentPage: 1,\n });\n\n return (\n <div\n className={classNames(\n 'marsun-form-super-select',\n styles['marsun-form-super-select'],\n className,\n )}\n >\n <KneSuperSelect\n {...kneRest}\n value={kneValue}\n onChange={handleChange}\n {...(useApi\n ? {\n api,\n getSearchProps: showSearch\n ? getSearchPropsProp || defaultGetSearchProps\n : getSearchPropsProp,\n }\n : {\n options,\n getSearchCallback: showSearch\n ? ({ searchText }: { searchText?: string }, item: KneSelectItem) => {\n if (!searchText) return true;\n const kw = searchText.toLowerCase();\n const label = String(item.label ?? '').toLowerCase();\n const val = String(item.value ?? '').toLowerCase();\n return label.includes(kw) || val.includes(kw);\n }\n : undefined,\n })}\n single={single}\n allowSelectedAll={!single && allowSelectedAll}\n selectedAllValue={selectedAllValue}\n placeholder={placeholder}\n isPopup\n allowClear={allowClear && !disabled}\n disabled={disabled}\n />\n </div>\n );\n};\n\nconst SuperSelectInner: FC<SuperSelectProps> = (props) => {\n const { useDecorator } = (ReactFormAntd as unknown as { hooks: KneHooks }).hooks;\n const render = useDecorator({\n fieldName: 'superSelect',\n ...props,\n });\n return render(SuperSelectField);\n};\n\nSuperSelectInner.displayName = 'SuperSelect';\n\nexport const SuperSelect = withNormalizedLabelTips(\n SuperSelectInner as ComponentType<SuperSelectProps>,\n) as ComponentType<SuperSelectProps>;\n\nexport default SuperSelect;\n"],"names":["SUPER_SELECT_ALL_VALUE","isSelectAllMarsun","value","allValue","isSuperSelectAllValue","SuperSelectField","onChange","disabled","options","single","allowSelectedAll","selectedAllValue","placeholder","showSearch","allowClear","className","api","getSearchPropsProp","kneRest","mapsRef","useRef","useApi","labelMapFromOptions","useMemo","map","o","kneValue","maps","marsunToKne","handleChange","next","mergeKneLabelMaps","kneToMarsun","defaultGetSearchProps","searchText","jsx","classNames","styles","KneSuperSelect","item","kw","label","val","SuperSelectInner","props","useDecorator","ReactFormAntd","SuperSelect","withNormalizedLabelTips"],"mappings":"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"}
@@ -1,55 +1,55 @@
1
1
  const o = {
2
- "marsun-form-info-outer": "_marsun-form-info-outer_1p627_25",
3
- "marsun-form-info": "_marsun-form-info_1p627_25",
4
- "marsun-form-info-nest-block-col": "_marsun-form-info-nest-block-col_1p627_103",
5
- "marsun-form-info-extra-btn": "_marsun-form-info-extra-btn_1p627_121",
6
- "marsun-form-info-list-part": "_marsun-form-info-list-part_1p627_131",
7
- "marsun-form-info-list-item": "_marsun-form-info-list-item_1p627_153",
8
- "marsun-form-info-list-item-part": "_marsun-form-info-list-item-part_1p627_161",
9
- "marsun-form-info-list-item-part-in-bordered": "_marsun-form-info-list-item-part-in-bordered_1p627_178",
10
- "marsun-form-info-list-item-part-plain": "_marsun-form-info-list-item-part-plain_1p627_189",
11
- "marsun-form-info-list-item-part-wraps-nest-beyond": "_marsun-form-info-list-item-part-wraps-nest-beyond_1p627_201",
12
- "marsun-form-info-is-important": "_marsun-form-info-is-important_1p627_204",
13
- "marsun-form-info-nest-beyond": "_marsun-form-info-nest-beyond_1p627_218",
14
- "marsun-form-info-table-list-inner": "_marsun-form-info-table-list-inner_1p627_278",
15
- "marsun-form-info-list-item-part-beyond": "_marsun-form-info-list-item-part-beyond_1p627_343",
16
- "marsun-form-info-extra-container": "_marsun-form-info-extra-container_1p627_436",
17
- "marsun-form-info-list-item-part-no-title": "_marsun-form-info-list-item-part-no-title_1p627_548",
18
- "marsun-form-info-list-item-title-placeholder": "_marsun-form-info-list-item-title-placeholder_1p627_559",
19
- "marsun-form-info-nest-beyond-rail": "_marsun-form-info-nest-beyond-rail_1p627_620",
20
- "marsun-form-info-nest-beyond-collapsed": "_marsun-form-info-nest-beyond-collapsed_1p627_628",
21
- "marsun-form-info-nest-beyond-title": "_marsun-form-info-nest-beyond-title_1p627_677",
22
- "marsun-form-info-nest-level-toggle": "_marsun-form-info-nest-level-toggle_1p627_685",
23
- "marsun-form-info-nest-beyond-title-text": "_marsun-form-info-nest-beyond-title-text_1p627_702",
24
- "marsun-form-info-nest-parent-tag": "_marsun-form-info-nest-parent-tag_1p627_707",
25
- "marsun-form-info-nest-block-col-beyond": "_marsun-form-info-nest-block-col-beyond_1p627_804",
26
- "marsun-form-info-multi-field-item": "_marsun-form-info-multi-field-item_1p627_816",
27
- "react-form__field-label": "_react-form__field-label_1p627_28",
28
- "marsun-form-info-multi-field-add-btn": "_marsun-form-info-multi-field-add-btn_1p627_835",
29
- "marsun-form-info-table-list-view": "_marsun-form-info-table-list-view_1p627_839",
30
- "marsun-form-info-table-list": "_marsun-form-info-table-list_1p627_278",
31
- "marsun-form-info-is-mobile": "_marsun-form-info-is-mobile_1p627_873",
32
- "marsun-form-info-table-list-mobile-list": "_marsun-form-info-table-list-mobile-list_1p627_899",
33
- "marsun-form-info-table-list-mobile-card": "_marsun-form-info-table-list-mobile-card_1p627_905",
34
- "marsun-form-info-table-list-mobile-card-body": "_marsun-form-info-table-list-mobile-card-body_1p627_917",
35
- "marsun-form-info-table-list-mobile-field": "_marsun-form-info-table-list-mobile-field_1p627_925",
36
- "marsun-form-info-table-list-mobile-actions": "_marsun-form-info-table-list-mobile-actions_1p627_930",
37
- "marsun-form-info-table-list-field": "_marsun-form-info-table-list-field_1p627_949",
38
- "marsun-form-info-table-list-header": "_marsun-form-info-table-list-header_1p627_958",
39
- "marsun-form-info-is-req": "_marsun-form-info-is-req_1p627_28",
40
- "marsun-form-info-table-options": "_marsun-form-info-table-options_1p627_978",
41
- "marsun-form-info-table-options-header": "_marsun-form-info-table-options-header_1p627_991",
42
- "marsun-form-info-is-overflow": "_marsun-form-info-is-overflow_1p627_995",
43
- "marsun-form-info-steps": "_marsun-form-info-steps_1p627_1018",
44
- "marsun-form-info-steps-vertical": "_marsun-form-info-steps-vertical_1p627_1106",
45
- "marsun-form-info-steps-form-inner": "_marsun-form-info-steps-form-inner_1p627_1131",
46
- "marsun-form-info-steps-embed": "_marsun-form-info-steps-embed_1p627_1135",
47
- "marsun-form-info-steps-embed-panel": "_marsun-form-info-steps-embed-panel_1p627_1139",
48
- "marsun-form-info-steps-actions": "_marsun-form-info-steps-actions_1p627_1143",
49
- "marsun-form-info-steps-actions-side": "_marsun-form-info-steps-actions-side_1p627_1149",
50
- "marsun-form-info-steps-modal": "_marsun-form-info-steps-modal_1p627_1159",
51
- "marsun-form-info-table-list-empty": "_marsun-form-info-table-list-empty_1p627_1171",
52
- "marsun-form-info-column-not-layout": "_marsun-form-info-column-not-layout_1p627_1179"
2
+ "marsun-form-info-outer": "_marsun-form-info-outer_1pbsi_25",
3
+ "marsun-form-info": "_marsun-form-info_1pbsi_25",
4
+ "marsun-form-info-nest-block-col": "_marsun-form-info-nest-block-col_1pbsi_105",
5
+ "marsun-form-info-extra-btn": "_marsun-form-info-extra-btn_1pbsi_123",
6
+ "marsun-form-info-list-part": "_marsun-form-info-list-part_1pbsi_133",
7
+ "marsun-form-info-list-item": "_marsun-form-info-list-item_1pbsi_155",
8
+ "marsun-form-info-list-item-part": "_marsun-form-info-list-item-part_1pbsi_163",
9
+ "marsun-form-info-list-item-part-in-bordered": "_marsun-form-info-list-item-part-in-bordered_1pbsi_180",
10
+ "marsun-form-info-list-item-part-plain": "_marsun-form-info-list-item-part-plain_1pbsi_191",
11
+ "marsun-form-info-list-item-part-wraps-nest-beyond": "_marsun-form-info-list-item-part-wraps-nest-beyond_1pbsi_203",
12
+ "marsun-form-info-is-important": "_marsun-form-info-is-important_1pbsi_206",
13
+ "marsun-form-info-nest-beyond": "_marsun-form-info-nest-beyond_1pbsi_220",
14
+ "marsun-form-info-table-list-inner": "_marsun-form-info-table-list-inner_1pbsi_280",
15
+ "marsun-form-info-list-item-part-beyond": "_marsun-form-info-list-item-part-beyond_1pbsi_345",
16
+ "marsun-form-info-extra-container": "_marsun-form-info-extra-container_1pbsi_438",
17
+ "marsun-form-info-list-item-part-no-title": "_marsun-form-info-list-item-part-no-title_1pbsi_550",
18
+ "marsun-form-info-list-item-title-placeholder": "_marsun-form-info-list-item-title-placeholder_1pbsi_561",
19
+ "marsun-form-info-nest-beyond-rail": "_marsun-form-info-nest-beyond-rail_1pbsi_622",
20
+ "marsun-form-info-nest-beyond-collapsed": "_marsun-form-info-nest-beyond-collapsed_1pbsi_630",
21
+ "marsun-form-info-nest-beyond-title": "_marsun-form-info-nest-beyond-title_1pbsi_679",
22
+ "marsun-form-info-nest-level-toggle": "_marsun-form-info-nest-level-toggle_1pbsi_687",
23
+ "marsun-form-info-nest-beyond-title-text": "_marsun-form-info-nest-beyond-title-text_1pbsi_704",
24
+ "marsun-form-info-nest-parent-tag": "_marsun-form-info-nest-parent-tag_1pbsi_709",
25
+ "marsun-form-info-nest-block-col-beyond": "_marsun-form-info-nest-block-col-beyond_1pbsi_806",
26
+ "marsun-form-info-multi-field-item": "_marsun-form-info-multi-field-item_1pbsi_818",
27
+ "react-form__field-label": "_react-form__field-label_1pbsi_28",
28
+ "marsun-form-info-multi-field-add-btn": "_marsun-form-info-multi-field-add-btn_1pbsi_837",
29
+ "marsun-form-info-table-list-view": "_marsun-form-info-table-list-view_1pbsi_841",
30
+ "marsun-form-info-table-list": "_marsun-form-info-table-list_1pbsi_280",
31
+ "marsun-form-info-is-mobile": "_marsun-form-info-is-mobile_1pbsi_875",
32
+ "marsun-form-info-table-list-mobile-list": "_marsun-form-info-table-list-mobile-list_1pbsi_901",
33
+ "marsun-form-info-table-list-mobile-card": "_marsun-form-info-table-list-mobile-card_1pbsi_907",
34
+ "marsun-form-info-table-list-mobile-card-body": "_marsun-form-info-table-list-mobile-card-body_1pbsi_919",
35
+ "marsun-form-info-table-list-mobile-field": "_marsun-form-info-table-list-mobile-field_1pbsi_927",
36
+ "marsun-form-info-table-list-mobile-actions": "_marsun-form-info-table-list-mobile-actions_1pbsi_932",
37
+ "marsun-form-info-table-list-field": "_marsun-form-info-table-list-field_1pbsi_951",
38
+ "marsun-form-info-table-list-header": "_marsun-form-info-table-list-header_1pbsi_960",
39
+ "marsun-form-info-is-req": "_marsun-form-info-is-req_1pbsi_28",
40
+ "marsun-form-info-table-options": "_marsun-form-info-table-options_1pbsi_980",
41
+ "marsun-form-info-table-options-header": "_marsun-form-info-table-options-header_1pbsi_993",
42
+ "marsun-form-info-is-overflow": "_marsun-form-info-is-overflow_1pbsi_997",
43
+ "marsun-form-info-steps": "_marsun-form-info-steps_1pbsi_1020",
44
+ "marsun-form-info-steps-vertical": "_marsun-form-info-steps-vertical_1pbsi_1108",
45
+ "marsun-form-info-steps-form-inner": "_marsun-form-info-steps-form-inner_1pbsi_1133",
46
+ "marsun-form-info-steps-embed": "_marsun-form-info-steps-embed_1pbsi_1137",
47
+ "marsun-form-info-steps-embed-panel": "_marsun-form-info-steps-embed-panel_1pbsi_1141",
48
+ "marsun-form-info-steps-actions": "_marsun-form-info-steps-actions_1pbsi_1145",
49
+ "marsun-form-info-steps-actions-side": "_marsun-form-info-steps-actions-side_1pbsi_1151",
50
+ "marsun-form-info-steps-modal": "_marsun-form-info-steps-modal_1pbsi_1161",
51
+ "marsun-form-info-table-list-empty": "_marsun-form-info-table-list-empty_1pbsi_1173",
52
+ "marsun-form-info-column-not-layout": "_marsun-form-info-column-not-layout_1pbsi_1181"
53
53
  };
54
54
  export {
55
55
  o as default
@@ -1,10 +1,10 @@
1
- import { Key, ReactNode } from 'react';
2
1
  import { TableProps as AntTableProps } from 'antd';
2
+ import { Key, ReactElement, ReactNode, Ref } from 'react';
3
3
  import { TableColumnConfigFetcher, TableColumnConfigItem, TableColumnConfigSaver } from './columnConfigTypes';
4
- import { applyColumnConfig, columnsToConfig, COLUMN_CONFIG_COL_KEY, FLEX_SPACER_COL_KEY, hideColumnAtPath, isInternalColumnKey } from './columnConfigUtils';
4
+ import { applyColumnConfig, COLUMN_CONFIG_COL_KEY, columnsToConfig, FLEX_SPACER_COL_KEY, hideColumnAtPath, isInternalColumnKey } from './columnConfigUtils';
5
5
  import { TablePrefs, TablePrefsFetcher, TablePrefsSaver } from './tablePrefsTypes';
6
- export type { TableColumnConfigItem, TableColumnConfigFetcher, TableColumnConfigSaver };
7
- export type { TablePrefs, TablePrefsFetcher, TablePrefsSaver };
6
+ import { TableFetchHandle, TableFetchMapped, TableFetchQuery } from './useTableFetch';
7
+ export type { TableColumnConfigFetcher, TableColumnConfigItem, TableColumnConfigSaver, TableFetchHandle, TableFetchMapped, TableFetchQuery, TablePrefs, TablePrefsFetcher, TablePrefsSaver, };
8
8
  export type TableProps<RecordType extends object = Record<string, unknown>> = AntTableProps<RecordType> & {
9
9
  /** 稳定偏好 key;业务列表必填 */
10
10
  tableName?: string;
@@ -30,13 +30,29 @@ export type TableProps<RecordType extends object = Record<string, unknown>> = An
30
30
  rowHideSelectedKeys?: Key[];
31
31
  /** 自定义行隐藏工具条;默认内置按钮 */
32
32
  rowConfigToolbar?: ReactNode | false;
33
+ /**
34
+ * Fetch 模式:`dataSource === undefined` 且提供本回调(或 fetchUrl)时由 Table 拉数。
35
+ * 优先于 fetchUrl。Marsun typed list 主路径。
36
+ */
37
+ fetchData?: (q: TableFetchQuery) => Promise<unknown>;
38
+ /** Form FetchSelect 同构:GET/自定义 Request;需配合 transformData 或默认 pageData 解析 */
39
+ fetchUrl?: string;
40
+ fetchOptions?: RequestInit | ((q: TableFetchQuery) => RequestInit);
41
+ transformData?: (raw: unknown) => TableFetchMapped<RecordType>;
42
+ /** 筛选项;稳定序列化变则回第 1 页再请求 */
43
+ fetchParams?: unknown;
44
+ /** Tab 懒请求;默认 true */
45
+ enabled?: boolean;
46
+ /** fetch 模式默认 pageSize;默认 20 */
47
+ defaultPageSize?: number;
48
+ onFetched?: (r: TableFetchMapped<RecordType> & {
49
+ error: Error | null;
50
+ }) => void;
33
51
  };
34
- /**
35
- * 基于 antd Table 的列表表格包装。
36
- * 列偏好经 user_key;行隐藏仅会话 state,不进 user_key。
37
- */
38
- declare function Table<RecordType extends object = Record<string, unknown>>({ className, style, scroll, pagination, locale, columns, dataSource, rowKey, tableName, columnConfigEnabled, fetchColumnConfig, saveColumnConfig, onColumnConfigChange, fetchTablePrefs, saveTablePrefs, onTablePrefsChange, rowConfigEnabled, lockedRowKeys, hiddenRowKeys: hiddenRowKeysProp, onHiddenRowKeysChange, rowHideSelectedKeys, rowConfigToolbar, rowSelection, ...rest }: TableProps<RecordType>): import("react").JSX.Element;
52
+ declare const Table: <RecordType extends object = Record<string, unknown>>(props: TableProps<RecordType> & {
53
+ ref?: Ref<TableFetchHandle>;
54
+ }) => ReactElement | null;
39
55
  export default Table;
40
- export { columnsToConfig, applyColumnConfig, COLUMN_CONFIG_COL_KEY, FLEX_SPACER_COL_KEY, isInternalColumnKey, hideColumnAtPath, };
41
- export { parseTablePrefs, serializeTablePrefs, mergeTablePrefs, applyHiddenRows, normalizeHiddenRowKeys, } from './tablePrefsUtils';
42
56
  export { emptyTablePrefs } from './tablePrefsTypes';
57
+ export { applyHiddenRows, mergeTablePrefs, normalizeHiddenRowKeys, parseTablePrefs, serializeTablePrefs, } from './tablePrefsUtils';
58
+ export { applyColumnConfig, COLUMN_CONFIG_COL_KEY, columnsToConfig, FLEX_SPACER_COL_KEY, hideColumnAtPath, isInternalColumnKey, };