@mijalowcode/materials 1.1.6 → 1.1.8

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 (48) hide show
  1. package/dist/DescriptionsWrapper-SRTRFKRT.js +4 -0
  2. package/dist/DescriptionsWrapper-SRTRFKRT.js.map +1 -0
  3. package/dist/DesensitizationDisplay-5LDT2POS.js +3 -0
  4. package/dist/{DesensitizationDisplay-XWRRKQ66.js.map → DesensitizationDisplay-5LDT2POS.js.map} +1 -1
  5. package/dist/ListWrapper-2EBD6FGB.js +3 -0
  6. package/dist/{ListWrapper-XKFDOVLU.js.map → ListWrapper-2EBD6FGB.js.map} +1 -1
  7. package/dist/PopoverWrapper-FDKWPBRJ.js +4 -0
  8. package/dist/{PopoverWrapper-STPU5XIE.js.map → PopoverWrapper-FDKWPBRJ.js.map} +1 -1
  9. package/dist/{ProTableWrapper-SHKEQ3B3.js → ProTableWrapper-ATFZXHWT.js} +4 -4
  10. package/dist/{ProTableWrapper-SHKEQ3B3.js.map → ProTableWrapper-ATFZXHWT.js.map} +1 -1
  11. package/dist/chunk-3DXMWQYK.js +98 -0
  12. package/dist/chunk-3DXMWQYK.js.map +1 -0
  13. package/dist/{chunk-IZCK2NW4.js → chunk-C2Q6TVQH.js} +2 -5
  14. package/dist/chunk-C2Q6TVQH.js.map +1 -0
  15. package/dist/{chunk-NGLCSHN6.js → chunk-C7UZWG4J.js} +3 -3
  16. package/dist/{chunk-NGLCSHN6.js.map → chunk-C7UZWG4J.js.map} +1 -1
  17. package/dist/{chunk-VCBTHCLX.js → chunk-DLZMRVLE.js} +2 -2
  18. package/dist/chunk-DLZMRVLE.js.map +1 -0
  19. package/dist/{chunk-4XV45KAK.js → chunk-EM2IRMCA.js} +12 -2
  20. package/dist/chunk-EM2IRMCA.js.map +1 -0
  21. package/dist/{chunk-VNMO5V4F.js → chunk-ERTSEXI5.js} +10 -3
  22. package/dist/chunk-ERTSEXI5.js.map +1 -0
  23. package/dist/{chunk-ZPDMZ67O.js → chunk-IJVBRVEE.js} +3 -3
  24. package/dist/{chunk-ZPDMZ67O.js.map → chunk-IJVBRVEE.js.map} +1 -1
  25. package/dist/{chunk-BNSJDDTL.js → chunk-JCJLL4OK.js} +3 -3
  26. package/dist/chunk-JCJLL4OK.js.map +1 -0
  27. package/dist/{chunk-XBZFC7CE.js → chunk-LNBZH33B.js} +68 -13
  28. package/dist/chunk-LNBZH33B.js.map +1 -0
  29. package/dist/index.js +17 -16
  30. package/dist/index.js.map +1 -1
  31. package/dist/meta-4MKZOZRG.js +3 -0
  32. package/dist/{meta-JJU3VEWF.js.map → meta-4MKZOZRG.js.map} +1 -1
  33. package/dist/meta-AWRQA4QI.js +3 -0
  34. package/dist/{meta-NKZL6DSN.js.map → meta-AWRQA4QI.js.map} +1 -1
  35. package/dist/runtime.d.ts +8 -0
  36. package/dist/runtime.js +1 -1
  37. package/package.json +4 -4
  38. package/dist/DesensitizationDisplay-XWRRKQ66.js +0 -3
  39. package/dist/ListWrapper-XKFDOVLU.js +0 -3
  40. package/dist/PopoverWrapper-STPU5XIE.js +0 -4
  41. package/dist/chunk-4XV45KAK.js.map +0 -1
  42. package/dist/chunk-BNSJDDTL.js.map +0 -1
  43. package/dist/chunk-IZCK2NW4.js.map +0 -1
  44. package/dist/chunk-VCBTHCLX.js.map +0 -1
  45. package/dist/chunk-VNMO5V4F.js.map +0 -1
  46. package/dist/chunk-XBZFC7CE.js.map +0 -1
  47. package/dist/meta-JJU3VEWF.js +0 -3
  48. package/dist/meta-NKZL6DSN.js +0 -3
@@ -0,0 +1,4 @@
1
+ export { DescriptionsWrapper_default as default } from './chunk-3DXMWQYK.js';
2
+ import './chunk-ERTSEXI5.js';
3
+ //# sourceMappingURL=DescriptionsWrapper-SRTRFKRT.js.map
4
+ //# sourceMappingURL=DescriptionsWrapper-SRTRFKRT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"DescriptionsWrapper-SRTRFKRT.js"}
@@ -0,0 +1,3 @@
1
+ export { DesensitizationDisplay_default as default } from './chunk-DLZMRVLE.js';
2
+ //# sourceMappingURL=DesensitizationDisplay-5LDT2POS.js.map
3
+ //# sourceMappingURL=DesensitizationDisplay-5LDT2POS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"DesensitizationDisplay-XWRRKQ66.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"DesensitizationDisplay-5LDT2POS.js"}
@@ -0,0 +1,3 @@
1
+ export { ListWrapper as default } from './chunk-JCJLL4OK.js';
2
+ //# sourceMappingURL=ListWrapper-2EBD6FGB.js.map
3
+ //# sourceMappingURL=ListWrapper-2EBD6FGB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ListWrapper-XKFDOVLU.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ListWrapper-2EBD6FGB.js"}
@@ -0,0 +1,4 @@
1
+ export { PopoverWrapper_default as default } from './chunk-IJVBRVEE.js';
2
+ import './chunk-ERTSEXI5.js';
3
+ //# sourceMappingURL=PopoverWrapper-FDKWPBRJ.js.map
4
+ //# sourceMappingURL=PopoverWrapper-FDKWPBRJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"PopoverWrapper-STPU5XIE.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"PopoverWrapper-FDKWPBRJ.js"}
@@ -1,5 +1,5 @@
1
- export { buildProTableFormConfig, buildProTableQueryDelayDetail, buildProTableRequestParamsSummary, buildProTableSlotRuntimeContext, buildSearchInitialValuesFromStorageValue, ProTableWrapper_default as default, resolveProTableQueryActionName, shouldRecordProTableLongTask, unwrapSearchStorageValue } from './chunk-NGLCSHN6.js';
2
- import './chunk-VNMO5V4F.js';
1
+ export { buildProTableFormConfig, buildProTableQueryDelayDetail, buildProTableRequestParamsSummary, buildProTableSlotRuntimeContext, buildSearchInitialValuesFromStorageValue, ProTableWrapper_default as default, resolveProTableQueryActionName, shouldRecordProTableLongTask, unwrapSearchStorageValue } from './chunk-C7UZWG4J.js';
2
+ import './chunk-ERTSEXI5.js';
3
3
  import './chunk-CTF6CVK3.js';
4
- //# sourceMappingURL=ProTableWrapper-SHKEQ3B3.js.map
5
- //# sourceMappingURL=ProTableWrapper-SHKEQ3B3.js.map
4
+ //# sourceMappingURL=ProTableWrapper-ATFZXHWT.js.map
5
+ //# sourceMappingURL=ProTableWrapper-ATFZXHWT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ProTableWrapper-SHKEQ3B3.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ProTableWrapper-ATFZXHWT.js"}
@@ -0,0 +1,98 @@
1
+ import { useSlotRuntime } from './chunk-ERTSEXI5.js';
2
+ import { useMemo } from 'react';
3
+ import { Descriptions } from '@mijadesign/web';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ // src/antd/Descriptions/normalize.ts
7
+ function normalizeDescriptionsItemChildren(value) {
8
+ if (value === void 0 || value === null || value === "") return "-";
9
+ return value;
10
+ }
11
+ function getItemSlotName(item, index) {
12
+ const key = String(item.key || "").trim();
13
+ return key ? `item:${key}` : `item:${index + 1}`;
14
+ }
15
+ function isPlainObject(value) {
16
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
17
+ }
18
+ function buildDescriptionsSlotRuntimeContext(runtimeContext, item, index, slotName) {
19
+ const baseData = isPlainObject(runtimeContext?.data) ? runtimeContext.data : {};
20
+ const itemKey = String(item.key || "").trim();
21
+ const value = item.children;
22
+ return {
23
+ ...runtimeContext || {},
24
+ scope: "descriptions.item",
25
+ area: slotName,
26
+ container: {
27
+ type: "descriptions",
28
+ area: slotName,
29
+ index,
30
+ item
31
+ },
32
+ data: {
33
+ ...baseData,
34
+ item,
35
+ index,
36
+ key: itemKey,
37
+ label: item.label,
38
+ value,
39
+ rawValue: value,
40
+ displayValue: value
41
+ }
42
+ };
43
+ }
44
+ function DescriptionsWrapper({
45
+ items = [],
46
+ renderSlot,
47
+ children,
48
+ runtime,
49
+ ...restProps
50
+ }) {
51
+ const runtimeContext = runtime?.context;
52
+ const slotAreas = useMemo(
53
+ () => items.map((item, index) => ({
54
+ name: getItemSlotName(item, index)
55
+ })),
56
+ [items]
57
+ );
58
+ const { getAreaNodes } = useSlotRuntime({
59
+ renderSlot,
60
+ children,
61
+ areas: slotAreas,
62
+ context: runtimeContext ? { runtimeContext } : void 0
63
+ });
64
+ const finalItems = useMemo(
65
+ () => items.map((item, index) => {
66
+ const normalizedItem = {
67
+ ...item,
68
+ children: normalizeDescriptionsItemChildren(
69
+ item.children
70
+ )
71
+ };
72
+ const slotName = getItemSlotName(item, index);
73
+ const slotRuntimeContext = buildDescriptionsSlotRuntimeContext(
74
+ runtimeContext,
75
+ normalizedItem,
76
+ index,
77
+ slotName
78
+ );
79
+ const slotNodes = getAreaNodes(slotName, {
80
+ item: normalizedItem,
81
+ index,
82
+ runtimeContext: slotRuntimeContext
83
+ });
84
+ if (!slotNodes || slotNodes.length === 0) return normalizedItem;
85
+ return {
86
+ ...normalizedItem,
87
+ children: slotNodes.length === 1 ? slotNodes[0] : slotNodes
88
+ };
89
+ }),
90
+ [items, getAreaNodes, runtimeContext]
91
+ );
92
+ return /* @__PURE__ */ jsx(Descriptions, { ...restProps, items: finalItems });
93
+ }
94
+ var DescriptionsWrapper_default = DescriptionsWrapper;
95
+
96
+ export { DescriptionsWrapper_default };
97
+ //# sourceMappingURL=chunk-3DXMWQYK.js.map
98
+ //# sourceMappingURL=chunk-3DXMWQYK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/antd/Descriptions/normalize.ts","../src/antd/Descriptions/DescriptionsWrapper.tsx"],"names":[],"mappings":";;;;;;AAAO,SAAS,kCAAkC,KAAA,EAAyB;AACzE,EAAA,IAAI,UAAU,MAAA,IAAa,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,IAAI,OAAO,GAAA;AAClE,EAAA,OAAO,KAAA;AACT;ACuBA,SAAS,eAAA,CAAgB,MAAwB,KAAA,EAAe;AAC9D,EAAA,MAAM,MAAM,MAAA,CAAO,IAAA,CAAK,GAAA,IAAO,EAAE,EAAE,IAAA,EAAK;AACxC,EAAA,OAAO,MAAM,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAA,GAAK,CAAA,KAAA,EAAQ,QAAQ,CAAC,CAAA,CAAA;AAChD;AAEA,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,OAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,OAAO,UAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,mCAAA,CACP,cAAA,EACA,IAAA,EACA,KAAA,EACA,QAAA,EACyB;AACzB,EAAA,MAAM,WAAW,aAAA,CAAc,cAAA,EAAgB,IAAI,CAAA,GAC9C,cAAA,CAAe,OAChB,EAAC;AACL,EAAA,MAAM,UAAU,MAAA,CAAO,IAAA,CAAK,GAAA,IAAO,EAAE,EAAE,IAAA,EAAK;AAC5C,EAAA,MAAM,QAAQ,IAAA,CAAK,QAAA;AAEnB,EAAA,OAAO;AAAA,IACL,GAAI,kBAAkB,EAAC;AAAA,IACvB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,cAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,KAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,GAAG,QAAA;AAAA,MACH,IAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAA,EAAK,OAAA;AAAA,MACL,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,KAAA;AAAA,MACA,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc;AAAA;AAChB,GACF;AACF;AAEA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,QAAQ,EAAC;AAAA,EACT,UAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,MAAM,iBAAiB,OAAA,EAAS,OAAA;AAChC,EAAA,MAAM,SAAA,GAAY,OAAA;AAAA,IAChB,MACE,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW;AAAA,MAC1B,IAAA,EAAM,eAAA,CAAgB,IAAA,EAAM,KAAK;AAAA,KACnC,CAAE,CAAA;AAAA,IACJ,CAAC,KAAK;AAAA,GACR;AACA,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,cAAA,CAAe;AAAA,IACtC,UAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,cAAA,GAAiB,EAAE,cAAA,EAAe,GAAI;AAAA,GAChD,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MACE,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AACzB,MAAA,MAAM,cAAA,GAAiB;AAAA,QACrB,GAAG,IAAA;AAAA,QACH,QAAA,EAAU,iCAAA;AAAA,UACR,IAAA,CAAK;AAAA;AACP,OACF;AACA,MAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,IAAA,EAAM,KAAK,CAAA;AAC5C,MAAA,MAAM,kBAAA,GAAqB,mCAAA;AAAA,QACzB,cAAA;AAAA,QACA,cAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,SAAA,GAAY,aAAa,QAAA,EAAU;AAAA,QACvC,IAAA,EAAM,cAAA;AAAA,QACN,KAAA;AAAA,QACA,cAAA,EAAgB;AAAA,OACjB,CAAA;AACD,MAAA,IAAI,CAAC,SAAA,IAAa,SAAA,CAAU,MAAA,KAAW,GAAG,OAAO,cAAA;AACjD,MAAA,OAAO;AAAA,QACL,GAAG,cAAA;AAAA,QACH,UAAU,SAAA,CAAU,MAAA,KAAW,CAAA,GAAI,SAAA,CAAU,CAAC,CAAA,GAAI;AAAA,OACpD;AAAA,IACF,CAAC,CAAA;AAAA,IACH,CAAC,KAAA,EAAO,YAAA,EAAc,cAAc;AAAA,GACtC;AAEA,EAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAc,GAAG,SAAA,EAAW,OAAO,UAAA,EAAY,CAAA;AACzD;AAEA,IAAO,2BAAA,GAAQ","file":"chunk-3DXMWQYK.js","sourcesContent":["export function normalizeDescriptionsItemChildren(value: unknown): unknown {\n if (value === undefined || value === null || value === \"\") return \"-\";\n return value;\n}\n","import { useMemo, type ComponentProps, type ReactNode } from \"react\";\nimport { Descriptions } from \"@mijadesign/web\";\nimport { useSlotRuntime, type SlotArea } from \"../../slot-runtime\";\nimport { normalizeDescriptionsItemChildren } from \"./normalize\";\n\ntype DescriptionsItem = NonNullable<\n ComponentProps<typeof Descriptions>[\"items\"]\n>[number] & {\n key?: string;\n};\n\ninterface DescriptionsWrapperProps extends Omit<\n ComponentProps<typeof Descriptions>,\n \"items\"\n> {\n items?: DescriptionsItem[];\n renderSlot?: (\n slotName: string,\n payload?: Record<string, unknown>,\n ) => ReactNode;\n children?: ReactNode;\n runtime?: {\n context?: Record<string, unknown>;\n };\n}\n\nfunction getItemSlotName(item: DescriptionsItem, index: number) {\n const key = String(item.key || \"\").trim();\n return key ? `item:${key}` : `item:${index + 1}`;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction buildDescriptionsSlotRuntimeContext(\n runtimeContext: Record<string, unknown> | undefined,\n item: DescriptionsItem,\n index: number,\n slotName: string,\n): Record<string, unknown> {\n const baseData = isPlainObject(runtimeContext?.data)\n ? (runtimeContext.data as Record<string, unknown>)\n : {};\n const itemKey = String(item.key || \"\").trim();\n const value = item.children;\n\n return {\n ...(runtimeContext || {}),\n scope: \"descriptions.item\",\n area: slotName,\n container: {\n type: \"descriptions\",\n area: slotName,\n index,\n item,\n },\n data: {\n ...baseData,\n item,\n index,\n key: itemKey,\n label: item.label,\n value,\n rawValue: value,\n displayValue: value,\n },\n };\n}\n\nfunction DescriptionsWrapper({\n items = [],\n renderSlot,\n children,\n runtime,\n ...restProps\n}: DescriptionsWrapperProps) {\n const runtimeContext = runtime?.context;\n const slotAreas = useMemo<SlotArea[]>(\n () =>\n items.map((item, index) => ({\n name: getItemSlotName(item, index),\n })),\n [items],\n );\n const { getAreaNodes } = useSlotRuntime({\n renderSlot,\n children,\n areas: slotAreas,\n context: runtimeContext ? { runtimeContext } : undefined,\n });\n\n const finalItems = useMemo(\n () =>\n items.map((item, index) => {\n const normalizedItem = {\n ...item,\n children: normalizeDescriptionsItemChildren(\n item.children,\n ) as typeof item.children,\n };\n const slotName = getItemSlotName(item, index);\n const slotRuntimeContext = buildDescriptionsSlotRuntimeContext(\n runtimeContext,\n normalizedItem,\n index,\n slotName,\n );\n const slotNodes = getAreaNodes(slotName, {\n item: normalizedItem,\n index,\n runtimeContext: slotRuntimeContext,\n });\n if (!slotNodes || slotNodes.length === 0) return normalizedItem;\n return {\n ...normalizedItem,\n children: slotNodes.length === 1 ? slotNodes[0] : slotNodes,\n };\n }),\n [items, getAreaNodes, runtimeContext],\n );\n\n return <Descriptions {...restProps} items={finalItems} />;\n}\n\nexport default DescriptionsWrapper;\n"]}
@@ -15,7 +15,6 @@ var DesensitizationDisplayMeta = {
15
15
  name: "copyableText",
16
16
  label: "\u5C55\u793A\u6587\u672C",
17
17
  type: PropType.STRING,
18
- defaultValue: "110101199001011234",
19
18
  group: "\u57FA\u7840"
20
19
  },
21
20
  {
@@ -31,7 +30,6 @@ var DesensitizationDisplayMeta = {
31
30
  }
32
31
  ],
33
32
  defaultProps: {
34
- copyableText: "110101199001011234",
35
33
  type: "idCard"
36
34
  },
37
35
  npm: {
@@ -42,12 +40,11 @@ var DesensitizationDisplayMeta = {
42
40
  componentName: "DesensitizationDisplay",
43
41
  package: "custom",
44
42
  props: {
45
- copyableText: "13812345678",
46
43
  type: "phone"
47
44
  }
48
45
  }
49
46
  };
50
47
 
51
48
  export { DesensitizationDisplayMeta };
52
- //# sourceMappingURL=chunk-IZCK2NW4.js.map
53
- //# sourceMappingURL=chunk-IZCK2NW4.js.map
49
+ //# sourceMappingURL=chunk-C2Q6TVQH.js.map
50
+ //# sourceMappingURL=chunk-C2Q6TVQH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/custom/DesensitizationDisplay/meta.ts"],"names":[],"mappings":";;;AAGO,IAAM,0BAAA,GAA4C;AAAA,EACvD,aAAA,EAAe,wBAAA;AAAA,EACf,OAAA,EAAS,QAAA;AAAA,EACT,KAAA,EAAO,0BAAA;AAAA,EACP,WAAA,EAAa,yGAAA;AAAA,EACb,UAAU,iBAAA,CAAkB,YAAA;AAAA,EAC5B,uBAAA,EAAyB,IAAA;AAAA,EACzB,IAAA,EAAM,2BAAA;AAAA,EACN,eAAA,EAAiB,KAAA;AAAA,EACjB,KAAA,EAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,0BAAA;AAAA,MACP,MAAM,QAAA,CAAS,MAAA;AAAA,MACf,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,0BAAA;AAAA,MACP,MAAM,QAAA,CAAS,IAAA;AAAA,MACf,YAAA,EAAc,QAAA;AAAA,MACd,OAAA,EAAS;AAAA,QACP,EAAE,KAAA,EAAO,oBAAA,EAAO,KAAA,EAAO,QAAA,EAAS;AAAA,QAChC,EAAE,KAAA,EAAO,oBAAA,EAAO,KAAA,EAAO,OAAA;AAAQ,OACjC;AAAA,MACA,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM;AAAA,GACR;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,wBAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,wBAAA;AAAA,IACf,OAAA,EAAS,QAAA;AAAA,IACT,KAAA,EAAO;AAAA,MACL,IAAA,EAAM;AAAA;AACR;AAEJ","file":"chunk-C2Q6TVQH.js","sourcesContent":["import type { ComponentMeta } from \"@mijalowcode/types\";\r\nimport { ComponentCategory, PropType } from \"@mijalowcode/types\";\r\n\r\nexport const DesensitizationDisplayMeta: ComponentMeta = {\r\n componentName: \"DesensitizationDisplay\",\r\n package: \"custom\",\r\n title: \"脱敏展示\",\r\n description: \"支持手机号/身份证脱敏显示与一键复制\",\r\n category: ComponentCategory.DATA_DISPLAY,\r\n visibleInComponentPanel: true,\r\n icon: \"SafetyCertificateOutlined\",\r\n canHaveChildren: false,\r\n props: [\r\n {\n name: \"copyableText\",\n label: \"展示文本\",\n type: PropType.STRING,\n group: \"基础\",\n },\n {\r\n name: \"type\",\r\n label: \"脱敏类型\",\r\n type: PropType.ENUM,\r\n defaultValue: \"idCard\",\r\n options: [\r\n { label: \"身份证\", value: \"idCard\" },\r\n { label: \"手机号\", value: \"phone\" },\r\n ],\r\n group: \"功能\",\r\n },\r\n ],\n defaultProps: {\n type: \"idCard\",\n },\n npm: {\r\n package: \"@mijalowcode/materials\",\r\n exportName: \"DesensitizationDisplay\",\r\n },\r\n snippet: {\n componentName: \"DesensitizationDisplay\",\n package: \"custom\",\n props: {\n type: \"phone\",\n },\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { useSlotRuntime } from './chunk-VNMO5V4F.js';
1
+ import { useSlotRuntime } from './chunk-ERTSEXI5.js';
2
2
  import { useEventEmitter } from './chunk-CTF6CVK3.js';
3
3
  import { useRef, useState, useEffect, useMemo, useCallback } from 'react';
4
4
  import { ProTable } from '@ant-design/pro-components';
@@ -707,5 +707,5 @@ function ProTableWrapper({
707
707
  var ProTableWrapper_default = ProTableWrapper;
708
708
 
709
709
  export { ProTableWrapper_default, buildProTableFormConfig, buildProTableQueryDelayDetail, buildProTableRequestParamsSummary, buildProTableSlotRuntimeContext, buildSearchInitialValuesFromStorageValue, resolveProTableQueryActionName, shouldRecordProTableLongTask, unwrapSearchStorageValue };
710
- //# sourceMappingURL=chunk-NGLCSHN6.js.map
711
- //# sourceMappingURL=chunk-NGLCSHN6.js.map
710
+ //# sourceMappingURL=chunk-C7UZWG4J.js.map
711
+ //# sourceMappingURL=chunk-C7UZWG4J.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/antdPro/ProTable/data-source.ts","../src/antdPro/ProTable/ProTableWrapper.tsx"],"names":["size","AntdProTable"],"mappings":"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","file":"chunk-NGLCSHN6.js","sourcesContent":["export type TableRowRecord = Record<string, unknown>;\n\nexport function normalizeProTableDataSource(\n dataSource: unknown,\n): TableRowRecord[] {\n return Array.isArray(dataSource)\n ? dataSource.filter(\n (item): item is TableRowRecord =>\n Boolean(item) && typeof item === \"object\" && !Array.isArray(item),\n )\n : [];\n}\n\nexport function hasTableRequestBinding(\n eventMap: Record<string, unknown> | undefined,\n): boolean {\n const binding = eventMap?.[\"table.request\"];\n if (!binding || typeof binding !== \"object\" || Array.isArray(binding)) {\n return false;\n }\n const current = binding as {\n enabled?: unknown;\n handlerName?: unknown;\n handlerCode?: unknown;\n actions?: unknown;\n };\n if (current.enabled === false) return false;\n if (typeof current.handlerName === \"string\" && current.handlerName.trim()) {\n return true;\n }\n if (typeof current.handlerCode === \"string\" && current.handlerCode.trim()) {\n return true;\n }\n return Array.isArray(current.actions) && current.actions.length > 0;\n}\n","import {\r\n useCallback,\r\n useRef,\r\n useState,\r\n useEffect,\r\n useMemo,\r\n type ReactNode,\r\n type ComponentProps,\r\n} from \"react\";\r\nimport { ProTable as AntdProTable } from \"@ant-design/pro-components\";\r\nimport type { ProColumns, ActionType } from \"@ant-design/pro-components\";\r\nimport type { TableColumnConfig, FieldPropsConfig } from \"@mijalowcode/types\";\r\nimport { useSlotRuntime, type SlotArea } from \"../../slot-runtime\";\r\nimport { useEventEmitter, type EventEmitter } from \"../../event-runtime\";\r\nimport * as AntdIcons from \"@ant-design/icons\";\r\nimport {\r\n hasTableRequestBinding,\r\n normalizeProTableDataSource,\r\n} from \"./data-source\";\r\n\r\ntype TableRequestResult = {\n data: Record<string, unknown>[];\n success: boolean;\n total: number;\n};\n\ndeclare global {\n interface Window {\n __LC_DEBUG_ENABLED__?: boolean;\n __LC_PERF_COUNTS__?: Record<string, number>;\n }\n}\n\r\ntype RegisterCapabilities = (\r\n componentId: string,\r\n capabilities: Record<string, (...args: unknown[]) => unknown>,\r\n) => () => void;\r\n\r\ntype MaterialRuntime = {\r\n nodeId: string;\r\n context?: Record<string, unknown>;\r\n registerComponentCapabilities?: RegisterCapabilities;\r\n};\r\n\r\ninterface ProTableWrapperProps {\r\n columns?: TableColumnConfig[];\r\n dataSource?: unknown;\r\n type?: \"\" | \"form\" | \"list\" | \"descriptions\" | \"table\" | \"cardList\";\r\n rowKey?: string;\r\n headerTitle?: string;\r\n size?: \"large\" | \"middle\" | \"small\";\r\n bordered?: boolean;\r\n showHeader?: boolean;\r\n search?: boolean;\r\n searchInitialValuesSource?: \"none\" | \"storage\";\r\n searchInitialValuesStorageType?: \"sessionStorage\" | \"localStorage\";\r\n searchInitialValuesStorageKey?: string;\r\n searchInitialValuesMappings?: SearchInitialValuesStorageMapping[];\r\n clearSearchInitialValuesAfterUse?: boolean;\r\n rowSelectionEnabled?: boolean;\r\n rowSelectionType?: \"checkbox\" | \"radio\";\r\n paginationEnabled?: boolean;\r\n pageSize?: number;\r\n showSizeChanger?: boolean;\r\n showQuickJumper?: boolean;\r\n scrollX?: number;\r\n scrollY?: number;\r\n autoHeight?: boolean;\r\n autoHeightOffset?: number;\r\n autoHeightMinY?: number;\r\n style?: React.CSSProperties;\r\n onEvent?: EventEmitter;\r\n renderSlot?: (\r\n slotName: string,\r\n payload?: Record<string, unknown>,\r\n ) => ReactNode;\r\n children?: ReactNode;\r\n toolbarSlotName?: string;\r\n runtime?: MaterialRuntime;\r\n __nodeId?: string;\r\n __registerCapabilities?: RegisterCapabilities;\r\n __events?: Record<string, unknown>;\r\n}\r\n\r\ntype ProTableSearchProp = ComponentProps<typeof AntdProTable>[\"search\"];\n\nfunction isRuntimeDebugEnabled() {\n if (typeof window === \"undefined\") return false;\n return window.__LC_DEBUG_ENABLED__ === true;\n}\n\nfunction recordProTableDiagnostic(\n name: string,\n detail?: Record<string, unknown>,\n) {\n if (typeof window === \"undefined\" || !isRuntimeDebugEnabled()) return;\n if (!window.__LC_PERF_COUNTS__) {\n window.__LC_PERF_COUNTS__ = {};\n }\n const eventName = String(name || \"\").trim();\n if (!eventName) return;\n const nextCount = Number(window.__LC_PERF_COUNTS__[eventName] || 0) + 1;\n window.__LC_PERF_COUNTS__[eventName] = nextCount;\n console.info(\"[LC PERF]\", {\n name: eventName,\n count: nextCount,\n detail,\n });\n}\n\nexport function resolveProTableQueryActionName(\n text: string,\n): \"query\" | \"reset\" | undefined {\n const normalized = String(text || \"\").replace(/\\s+/g, \"\");\n if (normalized === \"查询\") return \"query\";\n if (normalized === \"重置\") return \"reset\";\n return undefined;\n}\n\nexport function buildProTableQueryDelayDetail(\n capturedAt: number,\n triggeredAt: number,\n) {\n return {\n delayMs: Math.round(triggeredAt - capturedAt),\n };\n}\n\nfunction getDiagnosticValueType(value: unknown): string {\n if (Array.isArray(value)) return `array(${value.length})`;\n if (value === null) return \"null\";\n return typeof value;\n}\n\nexport function buildProTableRequestParamsSummary(\n params: Record<string, unknown>,\n) {\n const keys = Object.keys(params || {});\n return {\n keys,\n fieldTypes: keys.reduce<Record<string, string>>((acc, key) => {\n acc[key] = getDiagnosticValueType(params[key]);\n return acc;\n }, {}),\n };\n}\n\nexport function shouldRecordProTableLongTask(duration: number) {\n return Number(duration || 0) >= 50;\n}\n\nfunction getEventTargetButton(target: EventTarget | null): HTMLElement | null {\n if (!target || typeof Element === \"undefined\") return null;\n if (!(target instanceof Element)) return null;\n return target.closest(\"button\");\n}\n\nfunction getNowTime() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\n\r\nfunction buildTableRequestSortPayload(sort: Record<string, unknown>) {\r\n const [sortField, sortOrder] = Object.entries(sort).find(([, value]) => {\r\n return value === \"ascend\" || value === \"descend\";\r\n }) || [undefined, undefined];\r\n\r\n if (!sortField || typeof sortOrder !== \"string\") return {};\r\n\r\n return {\r\n sortField,\r\n sortMode: sortOrder === \"ascend\" ? \"ASC\" : \"DESC\",\r\n };\r\n}\r\n\r\nfunction isBindValue(value: unknown): value is {\r\n __bind: {\r\n fallback?: unknown;\r\n };\r\n} {\r\n return (\r\n Boolean(value) &&\r\n typeof value === \"object\" &&\r\n !Array.isArray(value) &&\r\n typeof (value as Record<string, unknown>).__bind === \"object\"\r\n );\r\n}\r\n\r\nfunction renderFieldPropsPrefixSuffix(\r\n fieldProps: FieldPropsConfig | undefined,\r\n) {\r\n if (!fieldProps) return undefined;\r\n\r\n const result: FieldPropsConfig = { ...fieldProps };\r\n\r\n if (fieldProps.prefixType === \"icon\" && fieldProps.prefixIcon) {\r\n const icons = AntdIcons as unknown as Record<\r\n string,\r\n React.ComponentType<unknown>\r\n >;\r\n const IconComponent = icons[fieldProps.prefixIcon];\r\n result.prefix = IconComponent ? <IconComponent /> : undefined;\r\n } else if (fieldProps.prefixText) {\r\n result.prefix = fieldProps.prefixText as React.ReactNode;\r\n }\r\n\r\n if (fieldProps.suffixType === \"icon\" && fieldProps.suffixIcon) {\r\n const icons = AntdIcons as unknown as Record<\r\n string,\r\n React.ComponentType<unknown>\r\n >;\r\n const IconComponent = icons[fieldProps.suffixIcon];\r\n result.suffix = IconComponent ? <IconComponent /> : undefined;\r\n } else if (fieldProps.suffixText) {\r\n result.suffix = fieldProps.suffixText as React.ReactNode;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction resolveColumnValueEnum(\r\n col: TableColumnConfig,\r\n): ProColumns[\"valueEnum\"] {\r\n if (isBindValue(col.valueEnum)) {\r\n return col.valueEnum.__bind.fallback as ProColumns[\"valueEnum\"];\r\n }\r\n return col.valueEnum as ProColumns[\"valueEnum\"];\r\n}\r\n\r\nfunction resolveColumnSlotAreaNames(col: TableColumnConfig) {\r\n const areaNames: string[] = [];\r\n const columnId = String(col.columnId || \"\").trim();\r\n if (columnId) {\r\n areaNames.push(`columnId:${columnId}`);\r\n }\r\n return areaNames;\r\n}\r\n\r\ntype SearchInitialValuesStorageMapping = {\r\n target?: string;\r\n from?: string;\r\n defaultValue?: unknown;\r\n};\r\n\r\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\r\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\r\n}\r\n\r\nfunction getValueByPath(value: unknown, pathText: string) {\r\n const parts = String(pathText || \"\")\r\n .split(\".\")\r\n .map((part) => part.trim())\r\n .filter(Boolean);\r\n return parts.reduce<unknown>((current, part) => {\r\n if (!current || typeof current !== \"object\") return undefined;\r\n return (current as Record<string, unknown>)[part];\r\n }, value);\r\n}\r\n\r\nfunction getBrowserStorage(storageType: \"sessionStorage\" | \"localStorage\") {\r\n if (typeof window === \"undefined\") return null;\r\n return storageType === \"localStorage\"\r\n ? window.localStorage\r\n : window.sessionStorage;\r\n}\r\n\r\nexport function unwrapSearchStorageValue(value: unknown, now = Date.now()) {\r\n if (!isPlainObject(value) || value.__mijalowcodeStorage !== true) {\r\n return value;\r\n }\r\n const expiresAt = Number(value.expiresAt || 0);\r\n if (expiresAt > 0 && expiresAt <= now) return undefined;\r\n return value.value;\r\n}\r\n\r\nexport function buildSearchInitialValuesFromStorageValue(\n storageValue: unknown,\n mappings: SearchInitialValuesStorageMapping[] = [],\n) {\n if (!isPlainObject(storageValue)) return {};\r\n if (!Array.isArray(mappings) || mappings.length === 0) {\r\n return { ...storageValue };\r\n }\r\n return mappings.reduce<Record<string, unknown>>((acc, mapping) => {\r\n const target = String(mapping.target || \"\").trim();\r\n if (!target) return acc;\r\n const from = String(mapping.from || target).trim();\r\n const value = from ? getValueByPath(storageValue, from) : undefined;\r\n acc[target] = value === undefined ? mapping.defaultValue : value;\r\n return acc;\r\n }, {});\n}\n\nexport function buildProTableFormConfig(\n searchInitialValues: Record<string, unknown>,\n) {\n if (Object.keys(searchInitialValues).length === 0) return undefined;\n return {\n initialValues: searchInitialValues,\n };\n}\n\nexport function buildProTableSlotRuntimeContext(\n runtimeContext: Record<string, unknown> | undefined,\n slotRuntimeContext: Record<string, unknown>,\n): Record<string, unknown> {\r\n const baseData = isPlainObject(runtimeContext?.data)\r\n ? (runtimeContext.data as Record<string, unknown>)\r\n : {};\r\n const slotData = isPlainObject(slotRuntimeContext.data)\r\n ? (slotRuntimeContext.data as Record<string, unknown>)\r\n : {};\r\n\r\n return {\r\n ...(runtimeContext || {}),\r\n ...slotRuntimeContext,\r\n data: {\r\n ...baseData,\r\n ...slotData,\r\n },\r\n };\r\n}\r\n\r\n// 将低代码列配置转换为 ProTable 列配置,并按约定挂载列级插槽渲染\r\nfunction convertColumns(\r\n columns: TableColumnConfig[] = [],\r\n getAreaNodes?: (\r\n areaName: string,\r\n payload?: Record<string, unknown>,\r\n ) => ReactNode[] | undefined,\r\n areaMap: Record<string, ReactNode[]> = {},\r\n hasExternalRenderSlot = false,\r\n runtimeContext?: Record<string, unknown>,\r\n): ProColumns[] {\r\n return columns.map((col) => {\r\n const extendedCol = col as TableColumnConfig & {\r\n slotName?: string;\r\n request?: ProColumns[\"request\"];\r\n };\r\n const areaNames = resolveColumnSlotAreaNames(col);\r\n const hasSchemaSlot = areaNames.some(\r\n (areaName) => areaMap[areaName]?.length,\r\n );\r\n\r\n const proColumn: ProColumns = {\r\n key: col.key || col.dataIndex,\r\n title: col.title,\r\n dataIndex: col.dataIndex,\r\n width: col.width,\r\n align: col.align,\r\n fixed: col.fixed || undefined,\r\n ellipsis: col.ellipsis,\r\n copyable: col.copyable,\r\n sorter: col.sorter,\r\n valueType: col.valueType as any,\r\n valueEnum: resolveColumnValueEnum(col),\r\n request: extendedCol.request,\r\n hideInSearch: col.hideInSearch,\r\n hideInTable: col.hideInTable,\r\n formItemProps: col.formItemProps,\r\n fieldProps: renderFieldPropsPrefixSuffix(col.fieldProps) as any,\r\n };\r\n\r\n if (!areaNames.length || (!hasExternalRenderSlot && !hasSchemaSlot)) {\r\n return proColumn;\r\n }\r\n\r\n proColumn.render = (_, record: Record<string, unknown>, index: number) => {\r\n const rawValue = record[col.dataIndex];\r\n const valueEnum = resolveColumnValueEnum(col) as\r\n | Record<string, { text?: unknown; status?: unknown }>\r\n | undefined;\r\n const enumMatch =\r\n valueEnum && rawValue !== undefined && rawValue !== null\r\n ? valueEnum[String(rawValue)]\r\n : undefined;\r\n const slotPayload = {\r\n record,\r\n index,\r\n column: col,\r\n value: rawValue,\r\n valueEnum,\r\n valueEnumItem: enumMatch,\r\n enumText: enumMatch?.text,\r\n enumStatus: enumMatch?.status,\r\n };\r\n const slotNodes = areaNames.reduce<ReactNode[] | undefined>(\r\n (matchedNodes, areaName) => {\r\n if (matchedNodes !== undefined) {\r\n return matchedNodes;\r\n }\r\n const slotRuntimeContext = buildProTableSlotRuntimeContext(\r\n runtimeContext,\r\n {\r\n scope: \"table.cell\",\r\n area: areaName,\r\n container: {\r\n type: \"table\",\r\n area: areaName,\r\n index,\r\n column: col,\r\n record,\r\n },\r\n data: {\r\n ...slotPayload,\r\n rawValue: rawValue,\r\n displayValue:\r\n enumMatch?.text !== undefined && enumMatch?.text !== null\r\n ? enumMatch.text\r\n : rawValue,\r\n status: enumMatch?.status,\r\n },\r\n },\r\n );\r\n return getAreaNodes?.(areaName, {\r\n ...slotPayload,\r\n runtimeContext: slotRuntimeContext,\r\n });\r\n },\r\n undefined,\r\n );\r\n if (slotNodes !== undefined) {\r\n return slotNodes.length === 1 ? slotNodes[0] : slotNodes;\r\n }\r\n return String(record[col.dataIndex] ?? \"\");\r\n };\r\n\r\n return proColumn;\r\n });\r\n}\r\n\r\nfunction ProTableWrapper({\r\n columns = [],\r\n dataSource = [],\r\n rowKey = \"key\",\r\n headerTitle,\r\n size = \"middle\",\r\n bordered = false,\r\n showHeader = true,\r\n search = true,\r\n searchInitialValuesSource = \"none\",\r\n searchInitialValuesStorageType = \"sessionStorage\",\r\n searchInitialValuesStorageKey,\r\n searchInitialValuesMappings = [],\r\n clearSearchInitialValuesAfterUse = true,\r\n paginationEnabled = true,\r\n pageSize = 10,\r\n showSizeChanger = true,\r\n showQuickJumper = false,\r\n scrollX,\r\n scrollY,\r\n autoHeight = true,\r\n autoHeightOffset = 0,\r\n autoHeightMinY = 240,\r\n style,\r\n onEvent,\r\n renderSlot,\r\n children,\r\n toolbarSlotName = \"toolbar\",\r\n runtime,\r\n __nodeId,\r\n __registerCapabilities,\r\n __events,\r\n}: ProTableWrapperProps) {\r\n const actionRef = useRef<ActionType>();\r\n const componentNodeId = runtime?.nodeId || __nodeId;\r\n const registerCapabilities =\r\n runtime?.registerComponentCapabilities || __registerCapabilities;\r\n\r\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const lastQueryActionRef = useRef<{\n actionName: \"query\" | \"reset\" | \"enter\";\n capturedAt: number;\n source: string;\n } | null>(null);\n const lastFormSubmitRef = useRef<{\n capturedAt: number;\n source: string;\n } | null>(null);\n const longTaskObserverRef = useRef<PerformanceObserver | null>(null);\n const [searchAreaHeight, setSearchAreaHeight] = useState(0);\r\n const [viewportHeight, setViewportHeight] = useState(\r\n typeof window !== \"undefined\" ? window.innerHeight : 900,\r\n );\r\n const [tablePageSize, setTablePageSize] = useState(pageSize);\n const emitEvent = useEventEmitter(onEvent);\n const emitEventRef = useRef(emitEvent);\n emitEventRef.current = emitEvent;\n\r\n useEffect(() => {\r\n setTablePageSize(pageSize);\r\n }, [pageSize]);\r\n\r\n useEffect(() => {\r\n if (!componentNodeId || !registerCapabilities) return;\r\n return registerCapabilities(componentNodeId, {\r\n reload: () => actionRef.current?.reload?.(),\r\n reloadAndRest: () => actionRef.current?.reloadAndRest?.(),\r\n reset: () => actionRef.current?.reset?.(),\r\n clearSelected: () => actionRef.current?.clearSelected?.(),\r\n });\r\n }, [componentNodeId, registerCapabilities]);\r\n\r\n const slotAreas = useMemo<SlotArea[]>(() => {\r\n const areaSet = new Set<string>([toolbarSlotName]);\r\n columns.forEach((col) => {\r\n resolveColumnSlotAreaNames(col).forEach((areaName) => {\r\n areaSet.add(areaName);\r\n });\r\n });\r\n return Array.from(areaSet).map((name) => ({ name }));\r\n }, [columns, toolbarSlotName]);\r\n const runtimeContext = runtime?.context;\r\n\r\n const { getAreaNodes, areaMap } = useSlotRuntime({\r\n renderSlot,\r\n children,\r\n areas: slotAreas,\r\n context: runtimeContext ? { runtimeContext } : undefined,\r\n });\r\n\r\n const proColumns = useMemo(\r\n () =>\r\n convertColumns(\r\n columns,\r\n getAreaNodes,\r\n areaMap,\r\n Boolean(renderSlot),\r\n runtimeContext,\r\n ),\r\n [columns, getAreaNodes, areaMap, renderSlot, runtimeContext],\r\n );\r\n\r\n const toolbarNodes = useMemo(() => {\r\n return getAreaNodes(toolbarSlotName, { actionRef: actionRef.current });\r\n }, [getAreaNodes, toolbarSlotName, actionRef]);\r\n\r\n // 统一获取搜索区节点,用于计算自动高度\r\n const getSearchNode = useCallback(() => {\r\n const container = tableContainerRef.current;\r\n if (!container) return null;\r\n return container.querySelector(\r\n \".ant-pro-table-search\",\r\n ) as HTMLElement | null;\r\n }, []);\r\n\r\n // 同步视口高度与搜索区高度,供表格滚动区高度计算使用\r\n const updateAutoHeightMetrics = useCallback(() => {\r\n setViewportHeight(window.innerHeight);\r\n const searchNode = getSearchNode();\r\n const next = searchNode\r\n ? Math.ceil(searchNode.getBoundingClientRect().height)\r\n : 0;\r\n setSearchAreaHeight(next);\r\n }, [getSearchNode]);\r\n\r\n // autoHeight 开启时监听窗口与搜索区尺寸变化;关闭时清空搜索区高度\r\n useEffect(() => {\r\n if (!autoHeight) {\r\n setSearchAreaHeight(0);\r\n return;\r\n }\r\n\r\n updateAutoHeightMetrics();\r\n\r\n const searchNode = getSearchNode();\r\n const resizeObserver =\r\n searchNode && typeof ResizeObserver !== \"undefined\"\r\n ? new ResizeObserver(updateAutoHeightMetrics)\r\n : null;\r\n\r\n if (resizeObserver && searchNode) {\r\n resizeObserver.observe(searchNode);\r\n }\r\n\r\n window.addEventListener(\"resize\", updateAutoHeightMetrics);\r\n\r\n return () => {\r\n if (resizeObserver) resizeObserver.disconnect();\r\n window.removeEventListener(\"resize\", updateAutoHeightMetrics);\r\n };\r\n }, [autoHeight, search, getSearchNode, updateAutoHeightMetrics]);\r\n\r\n const finalScrollY = useMemo(() => {\r\n if (!autoHeight) return scrollY;\r\n const headerOffset = 47;\r\n const paginationOffset = paginationEnabled ? 40 : 0;\r\n const toolbarOffset = toolbarNodes && toolbarNodes.length > 0 ? 64 : 0;\r\n const dynamic =\r\n viewportHeight -\r\n searchAreaHeight -\r\n autoHeightOffset -\r\n headerOffset -\r\n paginationOffset -\r\n toolbarOffset;\r\n return Math.max(autoHeightMinY, dynamic);\r\n }, [\r\n autoHeight,\r\n scrollY,\r\n viewportHeight,\r\n searchAreaHeight,\r\n autoHeightOffset,\r\n autoHeightMinY,\r\n paginationEnabled,\r\n toolbarNodes,\r\n ]);\r\n\r\n const tableDataSource = useMemo(\r\n () => normalizeProTableDataSource(dataSource),\r\n [dataSource],\r\n );\r\n const hasRequestBinding = useMemo(\r\n () => hasTableRequestBinding(__events),\r\n [__events],\r\n );\r\n\r\n // 配置了 table.request 时完全交给 request 驱动;未配置时使用 dataSource。\r\n const request = useCallback(\n async (\n params: Record<string, unknown>,\n sort: Record<string, unknown>,\n filter: Record<string, unknown>,\n ): Promise<TableRequestResult> => {\n const startedAt =\n typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const lastQueryAction = lastQueryActionRef.current;\n recordProTableDiagnostic(\"protable.request.start\", {\n nodeId: componentNodeId,\n paramsSummary: buildProTableRequestParamsSummary(params),\n sortSummary: buildProTableRequestParamsSummary(sort),\n filterSummary: buildProTableRequestParamsSummary(filter),\n previousAction: lastQueryAction\n ? {\n actionName: lastQueryAction.actionName,\n source: lastQueryAction.source,\n delayMs: Math.round(startedAt - lastQueryAction.capturedAt),\n }\n : undefined,\n previousSubmit: lastFormSubmitRef.current\n ? {\n source: lastFormSubmitRef.current.source,\n delayMs: Math.round(\n startedAt - lastFormSubmitRef.current.capturedAt,\n ),\n }\n : undefined,\n });\n const result = await emitEventRef.current<TableRequestResult>(\"table.request\", {\n ...params,\n ...buildTableRequestSortPayload(sort),\n ...filter,\n });\n const finalResult = result || {\n data: [],\n success: true,\n total: 0,\n };\n const endedAt =\n typeof performance !== \"undefined\" ? performance.now() : Date.now();\n recordProTableDiagnostic(\"protable.request.done\", {\n nodeId: componentNodeId,\n durationMs: Math.round(endedAt - startedAt),\n hasResult: Boolean(result),\n });\n return finalResult;\n },\n [componentNodeId],\n );\n\r\n // 统一分页事件载荷,避免 onShowSizeChange / onChange 重复拼装参数\r\n const emitPaginationChange = useCallback(\r\n (current: number, size?: number) => {\r\n emitEvent(\"table.pagination.change\", {\r\n current,\r\n pageSize: size,\r\n pagination: {\r\n current,\r\n pageSize: size,\r\n },\r\n });\r\n },\r\n [emitEvent],\r\n );\r\n\r\n const handlePageSizeChange = useCallback(\r\n (current: number, size: number) => {\r\n setTablePageSize(size);\r\n emitPaginationChange(current, size);\r\n },\r\n [emitPaginationChange],\r\n );\r\n\r\n const handlePaginationChange = useCallback(\r\n (current: number, size?: number) => {\r\n if (typeof size === \"number\") setTablePageSize(size);\r\n emitPaginationChange(current, size);\r\n },\r\n [emitPaginationChange],\r\n );\r\n\r\n const paginationConfig = useMemo(\r\n () =>\r\n paginationEnabled\r\n ? {\r\n pageSize: tablePageSize,\r\n size: \"default\",\r\n showSizeChanger,\r\n showQuickJumper,\r\n showTotal: (total: number) => `共 ${total} 条`,\r\n onShowSizeChange: handlePageSizeChange,\r\n onChange: handlePaginationChange,\r\n }\r\n : false,\r\n [\r\n paginationEnabled,\r\n tablePageSize,\r\n showSizeChanger,\r\n showQuickJumper,\r\n handlePageSizeChange,\r\n handlePaginationChange,\r\n ],\r\n );\r\n\r\n const handleRowClick = useCallback(\n (record: Record<string, unknown>) => {\r\n emitEvent(\"table.row.click\", { record });\r\n },\r\n [emitEvent],\n );\n\n const recordQueryAction = useCallback(\n (\n actionName: \"query\" | \"reset\" | \"enter\",\n source: string,\n detail?: Record<string, unknown>,\n ) => {\n const capturedAt = getNowTime();\n lastQueryActionRef.current = {\n actionName,\n capturedAt,\n source,\n };\n recordProTableDiagnostic(\"protable.query.action\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...detail,\n });\n if (\n isRuntimeDebugEnabled() &&\n typeof PerformanceObserver !== \"undefined\"\n ) {\n longTaskObserverRef.current?.disconnect();\n try {\n const observer = new PerformanceObserver((list) => {\n list.getEntries().forEach((entry) => {\n if (!shouldRecordProTableLongTask(entry.duration)) return;\n recordProTableDiagnostic(\"protable.query.longtask\", {\n nodeId: componentNodeId,\n actionName,\n source,\n startDelayMs: Math.round(entry.startTime - capturedAt),\n durationMs: Math.round(entry.duration),\n entryType: entry.entryType,\n name: entry.name,\n });\n });\n });\n observer.observe({ entryTypes: [\"longtask\"] });\n longTaskObserverRef.current = observer;\n window.setTimeout(() => {\n observer.disconnect();\n if (longTaskObserverRef.current === observer) {\n longTaskObserverRef.current = null;\n }\n }, 8000);\n } catch {\n longTaskObserverRef.current = null;\n }\n }\n Promise.resolve().then(() => {\n recordProTableDiagnostic(\"protable.query.microtask\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n });\n window.setTimeout(() => {\n recordProTableDiagnostic(\"protable.query.timeout\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n }, 0);\n if (typeof window.requestAnimationFrame === \"function\") {\n window.requestAnimationFrame(() => {\n recordProTableDiagnostic(\"protable.query.raf\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n });\n }\n },\n [componentNodeId],\n );\n\n const handleTableClickCapture = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const button = getEventTargetButton(event.target);\n if (!button) return;\n const actionName = resolveProTableQueryActionName(\n button.textContent || \"\",\n );\n if (!actionName) return;\n recordQueryAction(actionName, \"click\", {\n buttonText: button.textContent || \"\",\n });\n },\n [recordQueryAction],\n );\n\n const handleTableSubmitCapture = useCallback(\n (event: React.FormEvent<HTMLDivElement>) => {\n const target = event.target;\n if (typeof HTMLElement === \"undefined\") return;\n if (!(target instanceof HTMLElement)) return;\n const isSearchForm = Boolean(target.closest(\".ant-pro-table-search\"));\n if (!isSearchForm) return;\n const capturedAt = getNowTime();\n lastFormSubmitRef.current = {\n capturedAt,\n source: \"submit\",\n };\n recordProTableDiagnostic(\"protable.form.submit\", {\n nodeId: componentNodeId,\n previousAction: lastQueryActionRef.current\n ? {\n actionName: lastQueryActionRef.current.actionName,\n source: lastQueryActionRef.current.source,\n delayMs: Math.round(\n capturedAt - lastQueryActionRef.current.capturedAt,\n ),\n }\n : undefined,\n });\n },\n [componentNodeId],\n );\n\n const handleTableKeyDownCapture = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Enter\") return;\n const target = event.target;\n if (typeof HTMLElement === \"undefined\") return;\n if (!(target instanceof HTMLElement)) return;\n const isSearchArea = Boolean(target.closest(\".ant-pro-table-search\"));\n if (!isSearchArea) return;\n recordQueryAction(\"enter\", \"keydown\", {\n targetTag: target.tagName.toLowerCase(),\n });\n },\n [recordQueryAction],\n );\n\r\n const tableScroll = useMemo(\r\n () =>\r\n scrollX || finalScrollY ? { x: scrollX, y: finalScrollY } : undefined,\r\n [scrollX, finalScrollY],\r\n );\r\n\r\n const searchConfig = useMemo<ProTableSearchProp>(\r\n () => (search ? ({ colon: false } as ProTableSearchProp) : false),\r\n [search],\r\n );\r\n\r\n const searchInitialValues = useMemo(() => {\r\n if (searchInitialValuesSource !== \"storage\") return {};\r\n const key = String(searchInitialValuesStorageKey || \"\").trim();\r\n if (!key) return {};\r\n const storage = getBrowserStorage(searchInitialValuesStorageType);\r\n if (!storage) return {};\r\n\r\n const raw = storage.getItem(key);\r\n\r\n if (!raw) return {};\n try {\n const parsed = unwrapSearchStorageValue(JSON.parse(raw));\n const values = buildSearchInitialValuesFromStorageValue(\n parsed,\n searchInitialValuesMappings,\n );\r\n if (clearSearchInitialValuesAfterUse) {\r\n storage.removeItem(key);\r\n }\r\n return values;\r\n } catch {\r\n return {};\r\n }\r\n }, [\r\n searchInitialValuesSource,\r\n searchInitialValuesStorageType,\r\n searchInitialValuesStorageKey,\r\n searchInitialValuesMappings,\r\n clearSearchInitialValuesAfterUse,\n ]);\n const formConfig = useMemo(\n () => buildProTableFormConfig(searchInitialValues),\n [searchInitialValues],\n );\n\n return (\n <div\n ref={tableContainerRef}\n onClickCapture={handleTableClickCapture}\n onKeyDownCapture={handleTableKeyDownCapture}\n onSubmitCapture={handleTableSubmitCapture}\n >\n <AntdProTable\r\n actionRef={actionRef}\r\n columns={proColumns}\r\n request={hasRequestBinding ? request : undefined}\r\n dataSource={hasRequestBinding ? undefined : tableDataSource}\r\n rowKey={rowKey}\r\n headerTitle={headerTitle}\r\n size={size}\r\n tableStyle={{\r\n padding: toolbarNodes || !searchConfig ? 0 : 24,\r\n }}\r\n bordered={bordered}\n showHeader={showHeader}\n search={searchConfig}\n form={formConfig}\n options={false}\n dateFormatter=\"string\"\r\n toolBarRender={toolbarNodes ? () => toolbarNodes : undefined}\r\n pagination={\r\n paginationConfig as ComponentProps<typeof AntdProTable>[\"pagination\"]\r\n }\r\n onRow={(record) => ({\r\n onClick: () => handleRowClick(record as Record<string, unknown>),\r\n })}\r\n scroll={tableScroll}\r\n style={style}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProTableWrapper;\r\n"]}
1
+ {"version":3,"sources":["../src/antdPro/ProTable/data-source.ts","../src/antdPro/ProTable/ProTableWrapper.tsx"],"names":["size","AntdProTable"],"mappings":"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","file":"chunk-C7UZWG4J.js","sourcesContent":["export type TableRowRecord = Record<string, unknown>;\n\nexport function normalizeProTableDataSource(\n dataSource: unknown,\n): TableRowRecord[] {\n return Array.isArray(dataSource)\n ? dataSource.filter(\n (item): item is TableRowRecord =>\n Boolean(item) && typeof item === \"object\" && !Array.isArray(item),\n )\n : [];\n}\n\nexport function hasTableRequestBinding(\n eventMap: Record<string, unknown> | undefined,\n): boolean {\n const binding = eventMap?.[\"table.request\"];\n if (!binding || typeof binding !== \"object\" || Array.isArray(binding)) {\n return false;\n }\n const current = binding as {\n enabled?: unknown;\n handlerName?: unknown;\n handlerCode?: unknown;\n actions?: unknown;\n };\n if (current.enabled === false) return false;\n if (typeof current.handlerName === \"string\" && current.handlerName.trim()) {\n return true;\n }\n if (typeof current.handlerCode === \"string\" && current.handlerCode.trim()) {\n return true;\n }\n return Array.isArray(current.actions) && current.actions.length > 0;\n}\n","import {\r\n useCallback,\r\n useRef,\r\n useState,\r\n useEffect,\r\n useMemo,\r\n type ReactNode,\r\n type ComponentProps,\r\n} from \"react\";\r\nimport { ProTable as AntdProTable } from \"@ant-design/pro-components\";\r\nimport type { ProColumns, ActionType } from \"@ant-design/pro-components\";\r\nimport type { TableColumnConfig, FieldPropsConfig } from \"@mijalowcode/types\";\r\nimport { useSlotRuntime, type SlotArea } from \"../../slot-runtime\";\r\nimport { useEventEmitter, type EventEmitter } from \"../../event-runtime\";\r\nimport * as AntdIcons from \"@ant-design/icons\";\r\nimport {\r\n hasTableRequestBinding,\r\n normalizeProTableDataSource,\r\n} from \"./data-source\";\r\n\r\ntype TableRequestResult = {\n data: Record<string, unknown>[];\n success: boolean;\n total: number;\n};\n\ndeclare global {\n interface Window {\n __LC_DEBUG_ENABLED__?: boolean;\n __LC_PERF_COUNTS__?: Record<string, number>;\n }\n}\n\r\ntype RegisterCapabilities = (\r\n componentId: string,\r\n capabilities: Record<string, (...args: unknown[]) => unknown>,\r\n) => () => void;\r\n\r\ntype MaterialRuntime = {\r\n nodeId: string;\r\n context?: Record<string, unknown>;\r\n registerComponentCapabilities?: RegisterCapabilities;\r\n};\r\n\r\ninterface ProTableWrapperProps {\r\n columns?: TableColumnConfig[];\r\n dataSource?: unknown;\r\n type?: \"\" | \"form\" | \"list\" | \"descriptions\" | \"table\" | \"cardList\";\r\n rowKey?: string;\r\n headerTitle?: string;\r\n size?: \"large\" | \"middle\" | \"small\";\r\n bordered?: boolean;\r\n showHeader?: boolean;\r\n search?: boolean;\r\n searchInitialValuesSource?: \"none\" | \"storage\";\r\n searchInitialValuesStorageType?: \"sessionStorage\" | \"localStorage\";\r\n searchInitialValuesStorageKey?: string;\r\n searchInitialValuesMappings?: SearchInitialValuesStorageMapping[];\r\n clearSearchInitialValuesAfterUse?: boolean;\r\n rowSelectionEnabled?: boolean;\r\n rowSelectionType?: \"checkbox\" | \"radio\";\r\n paginationEnabled?: boolean;\r\n pageSize?: number;\r\n showSizeChanger?: boolean;\r\n showQuickJumper?: boolean;\r\n scrollX?: number;\r\n scrollY?: number;\r\n autoHeight?: boolean;\r\n autoHeightOffset?: number;\r\n autoHeightMinY?: number;\r\n style?: React.CSSProperties;\r\n onEvent?: EventEmitter;\r\n renderSlot?: (\r\n slotName: string,\r\n payload?: Record<string, unknown>,\r\n ) => ReactNode;\r\n children?: ReactNode;\r\n toolbarSlotName?: string;\r\n runtime?: MaterialRuntime;\r\n __nodeId?: string;\r\n __registerCapabilities?: RegisterCapabilities;\r\n __events?: Record<string, unknown>;\r\n}\r\n\r\ntype ProTableSearchProp = ComponentProps<typeof AntdProTable>[\"search\"];\n\nfunction isRuntimeDebugEnabled() {\n if (typeof window === \"undefined\") return false;\n return window.__LC_DEBUG_ENABLED__ === true;\n}\n\nfunction recordProTableDiagnostic(\n name: string,\n detail?: Record<string, unknown>,\n) {\n if (typeof window === \"undefined\" || !isRuntimeDebugEnabled()) return;\n if (!window.__LC_PERF_COUNTS__) {\n window.__LC_PERF_COUNTS__ = {};\n }\n const eventName = String(name || \"\").trim();\n if (!eventName) return;\n const nextCount = Number(window.__LC_PERF_COUNTS__[eventName] || 0) + 1;\n window.__LC_PERF_COUNTS__[eventName] = nextCount;\n console.info(\"[LC PERF]\", {\n name: eventName,\n count: nextCount,\n detail,\n });\n}\n\nexport function resolveProTableQueryActionName(\n text: string,\n): \"query\" | \"reset\" | undefined {\n const normalized = String(text || \"\").replace(/\\s+/g, \"\");\n if (normalized === \"查询\") return \"query\";\n if (normalized === \"重置\") return \"reset\";\n return undefined;\n}\n\nexport function buildProTableQueryDelayDetail(\n capturedAt: number,\n triggeredAt: number,\n) {\n return {\n delayMs: Math.round(triggeredAt - capturedAt),\n };\n}\n\nfunction getDiagnosticValueType(value: unknown): string {\n if (Array.isArray(value)) return `array(${value.length})`;\n if (value === null) return \"null\";\n return typeof value;\n}\n\nexport function buildProTableRequestParamsSummary(\n params: Record<string, unknown>,\n) {\n const keys = Object.keys(params || {});\n return {\n keys,\n fieldTypes: keys.reduce<Record<string, string>>((acc, key) => {\n acc[key] = getDiagnosticValueType(params[key]);\n return acc;\n }, {}),\n };\n}\n\nexport function shouldRecordProTableLongTask(duration: number) {\n return Number(duration || 0) >= 50;\n}\n\nfunction getEventTargetButton(target: EventTarget | null): HTMLElement | null {\n if (!target || typeof Element === \"undefined\") return null;\n if (!(target instanceof Element)) return null;\n return target.closest(\"button\");\n}\n\nfunction getNowTime() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\n\r\nfunction buildTableRequestSortPayload(sort: Record<string, unknown>) {\r\n const [sortField, sortOrder] = Object.entries(sort).find(([, value]) => {\r\n return value === \"ascend\" || value === \"descend\";\r\n }) || [undefined, undefined];\r\n\r\n if (!sortField || typeof sortOrder !== \"string\") return {};\r\n\r\n return {\r\n sortField,\r\n sortMode: sortOrder === \"ascend\" ? \"ASC\" : \"DESC\",\r\n };\r\n}\r\n\r\nfunction isBindValue(value: unknown): value is {\r\n __bind: {\r\n fallback?: unknown;\r\n };\r\n} {\r\n return (\r\n Boolean(value) &&\r\n typeof value === \"object\" &&\r\n !Array.isArray(value) &&\r\n typeof (value as Record<string, unknown>).__bind === \"object\"\r\n );\r\n}\r\n\r\nfunction renderFieldPropsPrefixSuffix(\r\n fieldProps: FieldPropsConfig | undefined,\r\n) {\r\n if (!fieldProps) return undefined;\r\n\r\n const result: FieldPropsConfig = { ...fieldProps };\r\n\r\n if (fieldProps.prefixType === \"icon\" && fieldProps.prefixIcon) {\r\n const icons = AntdIcons as unknown as Record<\r\n string,\r\n React.ComponentType<unknown>\r\n >;\r\n const IconComponent = icons[fieldProps.prefixIcon];\r\n result.prefix = IconComponent ? <IconComponent /> : undefined;\r\n } else if (fieldProps.prefixText) {\r\n result.prefix = fieldProps.prefixText as React.ReactNode;\r\n }\r\n\r\n if (fieldProps.suffixType === \"icon\" && fieldProps.suffixIcon) {\r\n const icons = AntdIcons as unknown as Record<\r\n string,\r\n React.ComponentType<unknown>\r\n >;\r\n const IconComponent = icons[fieldProps.suffixIcon];\r\n result.suffix = IconComponent ? <IconComponent /> : undefined;\r\n } else if (fieldProps.suffixText) {\r\n result.suffix = fieldProps.suffixText as React.ReactNode;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction resolveColumnValueEnum(\r\n col: TableColumnConfig,\r\n): ProColumns[\"valueEnum\"] {\r\n if (isBindValue(col.valueEnum)) {\r\n return col.valueEnum.__bind.fallback as ProColumns[\"valueEnum\"];\r\n }\r\n return col.valueEnum as ProColumns[\"valueEnum\"];\r\n}\r\n\r\nfunction resolveColumnSlotAreaNames(col: TableColumnConfig) {\r\n const areaNames: string[] = [];\r\n const columnId = String(col.columnId || \"\").trim();\r\n if (columnId) {\r\n areaNames.push(`columnId:${columnId}`);\r\n }\r\n return areaNames;\r\n}\r\n\r\ntype SearchInitialValuesStorageMapping = {\r\n target?: string;\r\n from?: string;\r\n defaultValue?: unknown;\r\n};\r\n\r\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\r\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\r\n}\r\n\r\nfunction getValueByPath(value: unknown, pathText: string) {\r\n const parts = String(pathText || \"\")\r\n .split(\".\")\r\n .map((part) => part.trim())\r\n .filter(Boolean);\r\n return parts.reduce<unknown>((current, part) => {\r\n if (!current || typeof current !== \"object\") return undefined;\r\n return (current as Record<string, unknown>)[part];\r\n }, value);\r\n}\r\n\r\nfunction getBrowserStorage(storageType: \"sessionStorage\" | \"localStorage\") {\r\n if (typeof window === \"undefined\") return null;\r\n return storageType === \"localStorage\"\r\n ? window.localStorage\r\n : window.sessionStorage;\r\n}\r\n\r\nexport function unwrapSearchStorageValue(value: unknown, now = Date.now()) {\r\n if (!isPlainObject(value) || value.__mijalowcodeStorage !== true) {\r\n return value;\r\n }\r\n const expiresAt = Number(value.expiresAt || 0);\r\n if (expiresAt > 0 && expiresAt <= now) return undefined;\r\n return value.value;\r\n}\r\n\r\nexport function buildSearchInitialValuesFromStorageValue(\n storageValue: unknown,\n mappings: SearchInitialValuesStorageMapping[] = [],\n) {\n if (!isPlainObject(storageValue)) return {};\r\n if (!Array.isArray(mappings) || mappings.length === 0) {\r\n return { ...storageValue };\r\n }\r\n return mappings.reduce<Record<string, unknown>>((acc, mapping) => {\r\n const target = String(mapping.target || \"\").trim();\r\n if (!target) return acc;\r\n const from = String(mapping.from || target).trim();\r\n const value = from ? getValueByPath(storageValue, from) : undefined;\r\n acc[target] = value === undefined ? mapping.defaultValue : value;\r\n return acc;\r\n }, {});\n}\n\nexport function buildProTableFormConfig(\n searchInitialValues: Record<string, unknown>,\n) {\n if (Object.keys(searchInitialValues).length === 0) return undefined;\n return {\n initialValues: searchInitialValues,\n };\n}\n\nexport function buildProTableSlotRuntimeContext(\n runtimeContext: Record<string, unknown> | undefined,\n slotRuntimeContext: Record<string, unknown>,\n): Record<string, unknown> {\r\n const baseData = isPlainObject(runtimeContext?.data)\r\n ? (runtimeContext.data as Record<string, unknown>)\r\n : {};\r\n const slotData = isPlainObject(slotRuntimeContext.data)\r\n ? (slotRuntimeContext.data as Record<string, unknown>)\r\n : {};\r\n\r\n return {\r\n ...(runtimeContext || {}),\r\n ...slotRuntimeContext,\r\n data: {\r\n ...baseData,\r\n ...slotData,\r\n },\r\n };\r\n}\r\n\r\n// 将低代码列配置转换为 ProTable 列配置,并按约定挂载列级插槽渲染\r\nfunction convertColumns(\r\n columns: TableColumnConfig[] = [],\r\n getAreaNodes?: (\r\n areaName: string,\r\n payload?: Record<string, unknown>,\r\n ) => ReactNode[] | undefined,\r\n areaMap: Record<string, ReactNode[]> = {},\r\n hasExternalRenderSlot = false,\r\n runtimeContext?: Record<string, unknown>,\r\n): ProColumns[] {\r\n return columns.map((col) => {\r\n const extendedCol = col as TableColumnConfig & {\r\n slotName?: string;\r\n request?: ProColumns[\"request\"];\r\n };\r\n const areaNames = resolveColumnSlotAreaNames(col);\r\n const hasSchemaSlot = areaNames.some(\r\n (areaName) => areaMap[areaName]?.length,\r\n );\r\n\r\n const proColumn: ProColumns = {\r\n key: col.key || col.dataIndex,\r\n title: col.title,\r\n dataIndex: col.dataIndex,\r\n width: col.width,\r\n align: col.align,\r\n fixed: col.fixed || undefined,\r\n ellipsis: col.ellipsis,\r\n copyable: col.copyable,\r\n sorter: col.sorter,\r\n valueType: col.valueType as any,\r\n valueEnum: resolveColumnValueEnum(col),\r\n request: extendedCol.request,\r\n hideInSearch: col.hideInSearch,\r\n hideInTable: col.hideInTable,\r\n formItemProps: col.formItemProps,\r\n fieldProps: renderFieldPropsPrefixSuffix(col.fieldProps) as any,\r\n };\r\n\r\n if (!areaNames.length || (!hasExternalRenderSlot && !hasSchemaSlot)) {\r\n return proColumn;\r\n }\r\n\r\n proColumn.render = (_, record: Record<string, unknown>, index: number) => {\r\n const rawValue = record[col.dataIndex];\r\n const valueEnum = resolveColumnValueEnum(col) as\r\n | Record<string, { text?: unknown; status?: unknown }>\r\n | undefined;\r\n const enumMatch =\r\n valueEnum && rawValue !== undefined && rawValue !== null\r\n ? valueEnum[String(rawValue)]\r\n : undefined;\r\n const slotPayload = {\r\n record,\r\n index,\r\n column: col,\r\n value: rawValue,\r\n valueEnum,\r\n valueEnumItem: enumMatch,\r\n enumText: enumMatch?.text,\r\n enumStatus: enumMatch?.status,\r\n };\r\n const slotNodes = areaNames.reduce<ReactNode[] | undefined>(\r\n (matchedNodes, areaName) => {\r\n if (matchedNodes !== undefined) {\r\n return matchedNodes;\r\n }\r\n const slotRuntimeContext = buildProTableSlotRuntimeContext(\r\n runtimeContext,\r\n {\r\n scope: \"table.cell\",\r\n area: areaName,\r\n container: {\r\n type: \"table\",\r\n area: areaName,\r\n index,\r\n column: col,\r\n record,\r\n },\r\n data: {\r\n ...slotPayload,\r\n rawValue: rawValue,\r\n displayValue:\r\n enumMatch?.text !== undefined && enumMatch?.text !== null\r\n ? enumMatch.text\r\n : rawValue,\r\n status: enumMatch?.status,\r\n },\r\n },\r\n );\r\n return getAreaNodes?.(areaName, {\r\n ...slotPayload,\r\n runtimeContext: slotRuntimeContext,\r\n });\r\n },\r\n undefined,\r\n );\r\n if (slotNodes !== undefined) {\r\n return slotNodes.length === 1 ? slotNodes[0] : slotNodes;\r\n }\r\n return String(record[col.dataIndex] ?? \"\");\r\n };\r\n\r\n return proColumn;\r\n });\r\n}\r\n\r\nfunction ProTableWrapper({\r\n columns = [],\r\n dataSource = [],\r\n rowKey = \"key\",\r\n headerTitle,\r\n size = \"middle\",\r\n bordered = false,\r\n showHeader = true,\r\n search = true,\r\n searchInitialValuesSource = \"none\",\r\n searchInitialValuesStorageType = \"sessionStorage\",\r\n searchInitialValuesStorageKey,\r\n searchInitialValuesMappings = [],\r\n clearSearchInitialValuesAfterUse = true,\r\n paginationEnabled = true,\r\n pageSize = 10,\r\n showSizeChanger = true,\r\n showQuickJumper = false,\r\n scrollX,\r\n scrollY,\r\n autoHeight = true,\r\n autoHeightOffset = 0,\r\n autoHeightMinY = 240,\r\n style,\r\n onEvent,\r\n renderSlot,\r\n children,\r\n toolbarSlotName = \"toolbar\",\r\n runtime,\r\n __nodeId,\r\n __registerCapabilities,\r\n __events,\r\n}: ProTableWrapperProps) {\r\n const actionRef = useRef<ActionType>();\r\n const componentNodeId = runtime?.nodeId || __nodeId;\r\n const registerCapabilities =\r\n runtime?.registerComponentCapabilities || __registerCapabilities;\r\n\r\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const lastQueryActionRef = useRef<{\n actionName: \"query\" | \"reset\" | \"enter\";\n capturedAt: number;\n source: string;\n } | null>(null);\n const lastFormSubmitRef = useRef<{\n capturedAt: number;\n source: string;\n } | null>(null);\n const longTaskObserverRef = useRef<PerformanceObserver | null>(null);\n const [searchAreaHeight, setSearchAreaHeight] = useState(0);\r\n const [viewportHeight, setViewportHeight] = useState(\r\n typeof window !== \"undefined\" ? window.innerHeight : 900,\r\n );\r\n const [tablePageSize, setTablePageSize] = useState(pageSize);\n const emitEvent = useEventEmitter(onEvent);\n const emitEventRef = useRef(emitEvent);\n emitEventRef.current = emitEvent;\n\r\n useEffect(() => {\r\n setTablePageSize(pageSize);\r\n }, [pageSize]);\r\n\r\n useEffect(() => {\r\n if (!componentNodeId || !registerCapabilities) return;\r\n return registerCapabilities(componentNodeId, {\r\n reload: () => actionRef.current?.reload?.(),\r\n reloadAndRest: () => actionRef.current?.reloadAndRest?.(),\r\n reset: () => actionRef.current?.reset?.(),\r\n clearSelected: () => actionRef.current?.clearSelected?.(),\r\n });\r\n }, [componentNodeId, registerCapabilities]);\r\n\r\n const slotAreas = useMemo<SlotArea[]>(() => {\r\n const areaSet = new Set<string>([toolbarSlotName]);\r\n columns.forEach((col) => {\r\n resolveColumnSlotAreaNames(col).forEach((areaName) => {\r\n areaSet.add(areaName);\r\n });\r\n });\r\n return Array.from(areaSet).map((name) => ({ name }));\r\n }, [columns, toolbarSlotName]);\r\n const runtimeContext = runtime?.context;\r\n\r\n const { getAreaNodes, areaMap } = useSlotRuntime({\r\n renderSlot,\r\n children,\r\n areas: slotAreas,\r\n context: runtimeContext ? { runtimeContext } : undefined,\r\n });\r\n\r\n const proColumns = useMemo(\r\n () =>\r\n convertColumns(\r\n columns,\r\n getAreaNodes,\r\n areaMap,\r\n Boolean(renderSlot),\r\n runtimeContext,\r\n ),\r\n [columns, getAreaNodes, areaMap, renderSlot, runtimeContext],\r\n );\r\n\r\n const toolbarNodes = useMemo(() => {\r\n return getAreaNodes(toolbarSlotName, { actionRef: actionRef.current });\r\n }, [getAreaNodes, toolbarSlotName, actionRef]);\r\n\r\n // 统一获取搜索区节点,用于计算自动高度\r\n const getSearchNode = useCallback(() => {\r\n const container = tableContainerRef.current;\r\n if (!container) return null;\r\n return container.querySelector(\r\n \".ant-pro-table-search\",\r\n ) as HTMLElement | null;\r\n }, []);\r\n\r\n // 同步视口高度与搜索区高度,供表格滚动区高度计算使用\r\n const updateAutoHeightMetrics = useCallback(() => {\r\n setViewportHeight(window.innerHeight);\r\n const searchNode = getSearchNode();\r\n const next = searchNode\r\n ? Math.ceil(searchNode.getBoundingClientRect().height)\r\n : 0;\r\n setSearchAreaHeight(next);\r\n }, [getSearchNode]);\r\n\r\n // autoHeight 开启时监听窗口与搜索区尺寸变化;关闭时清空搜索区高度\r\n useEffect(() => {\r\n if (!autoHeight) {\r\n setSearchAreaHeight(0);\r\n return;\r\n }\r\n\r\n updateAutoHeightMetrics();\r\n\r\n const searchNode = getSearchNode();\r\n const resizeObserver =\r\n searchNode && typeof ResizeObserver !== \"undefined\"\r\n ? new ResizeObserver(updateAutoHeightMetrics)\r\n : null;\r\n\r\n if (resizeObserver && searchNode) {\r\n resizeObserver.observe(searchNode);\r\n }\r\n\r\n window.addEventListener(\"resize\", updateAutoHeightMetrics);\r\n\r\n return () => {\r\n if (resizeObserver) resizeObserver.disconnect();\r\n window.removeEventListener(\"resize\", updateAutoHeightMetrics);\r\n };\r\n }, [autoHeight, search, getSearchNode, updateAutoHeightMetrics]);\r\n\r\n const finalScrollY = useMemo(() => {\r\n if (!autoHeight) return scrollY;\r\n const headerOffset = 47;\r\n const paginationOffset = paginationEnabled ? 40 : 0;\r\n const toolbarOffset = toolbarNodes && toolbarNodes.length > 0 ? 64 : 0;\r\n const dynamic =\r\n viewportHeight -\r\n searchAreaHeight -\r\n autoHeightOffset -\r\n headerOffset -\r\n paginationOffset -\r\n toolbarOffset;\r\n return Math.max(autoHeightMinY, dynamic);\r\n }, [\r\n autoHeight,\r\n scrollY,\r\n viewportHeight,\r\n searchAreaHeight,\r\n autoHeightOffset,\r\n autoHeightMinY,\r\n paginationEnabled,\r\n toolbarNodes,\r\n ]);\r\n\r\n const tableDataSource = useMemo(\r\n () => normalizeProTableDataSource(dataSource),\r\n [dataSource],\r\n );\r\n const hasRequestBinding = useMemo(\r\n () => hasTableRequestBinding(__events),\r\n [__events],\r\n );\r\n\r\n // 配置了 table.request 时完全交给 request 驱动;未配置时使用 dataSource。\r\n const request = useCallback(\n async (\n params: Record<string, unknown>,\n sort: Record<string, unknown>,\n filter: Record<string, unknown>,\n ): Promise<TableRequestResult> => {\n const startedAt =\n typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const lastQueryAction = lastQueryActionRef.current;\n recordProTableDiagnostic(\"protable.request.start\", {\n nodeId: componentNodeId,\n paramsSummary: buildProTableRequestParamsSummary(params),\n sortSummary: buildProTableRequestParamsSummary(sort),\n filterSummary: buildProTableRequestParamsSummary(filter),\n previousAction: lastQueryAction\n ? {\n actionName: lastQueryAction.actionName,\n source: lastQueryAction.source,\n delayMs: Math.round(startedAt - lastQueryAction.capturedAt),\n }\n : undefined,\n previousSubmit: lastFormSubmitRef.current\n ? {\n source: lastFormSubmitRef.current.source,\n delayMs: Math.round(\n startedAt - lastFormSubmitRef.current.capturedAt,\n ),\n }\n : undefined,\n });\n const result = await emitEventRef.current<TableRequestResult>(\"table.request\", {\n ...params,\n ...buildTableRequestSortPayload(sort),\n ...filter,\n });\n const finalResult = result || {\n data: [],\n success: true,\n total: 0,\n };\n const endedAt =\n typeof performance !== \"undefined\" ? performance.now() : Date.now();\n recordProTableDiagnostic(\"protable.request.done\", {\n nodeId: componentNodeId,\n durationMs: Math.round(endedAt - startedAt),\n hasResult: Boolean(result),\n });\n return finalResult;\n },\n [componentNodeId],\n );\n\r\n // 统一分页事件载荷,避免 onShowSizeChange / onChange 重复拼装参数\r\n const emitPaginationChange = useCallback(\r\n (current: number, size?: number) => {\r\n emitEvent(\"table.pagination.change\", {\r\n current,\r\n pageSize: size,\r\n pagination: {\r\n current,\r\n pageSize: size,\r\n },\r\n });\r\n },\r\n [emitEvent],\r\n );\r\n\r\n const handlePageSizeChange = useCallback(\r\n (current: number, size: number) => {\r\n setTablePageSize(size);\r\n emitPaginationChange(current, size);\r\n },\r\n [emitPaginationChange],\r\n );\r\n\r\n const handlePaginationChange = useCallback(\r\n (current: number, size?: number) => {\r\n if (typeof size === \"number\") setTablePageSize(size);\r\n emitPaginationChange(current, size);\r\n },\r\n [emitPaginationChange],\r\n );\r\n\r\n const paginationConfig = useMemo(\r\n () =>\r\n paginationEnabled\r\n ? {\r\n pageSize: tablePageSize,\r\n size: \"default\",\r\n showSizeChanger,\r\n showQuickJumper,\r\n showTotal: (total: number) => `共 ${total} 条`,\r\n onShowSizeChange: handlePageSizeChange,\r\n onChange: handlePaginationChange,\r\n }\r\n : false,\r\n [\r\n paginationEnabled,\r\n tablePageSize,\r\n showSizeChanger,\r\n showQuickJumper,\r\n handlePageSizeChange,\r\n handlePaginationChange,\r\n ],\r\n );\r\n\r\n const handleRowClick = useCallback(\n (record: Record<string, unknown>) => {\r\n emitEvent(\"table.row.click\", { record });\r\n },\r\n [emitEvent],\n );\n\n const recordQueryAction = useCallback(\n (\n actionName: \"query\" | \"reset\" | \"enter\",\n source: string,\n detail?: Record<string, unknown>,\n ) => {\n const capturedAt = getNowTime();\n lastQueryActionRef.current = {\n actionName,\n capturedAt,\n source,\n };\n recordProTableDiagnostic(\"protable.query.action\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...detail,\n });\n if (\n isRuntimeDebugEnabled() &&\n typeof PerformanceObserver !== \"undefined\"\n ) {\n longTaskObserverRef.current?.disconnect();\n try {\n const observer = new PerformanceObserver((list) => {\n list.getEntries().forEach((entry) => {\n if (!shouldRecordProTableLongTask(entry.duration)) return;\n recordProTableDiagnostic(\"protable.query.longtask\", {\n nodeId: componentNodeId,\n actionName,\n source,\n startDelayMs: Math.round(entry.startTime - capturedAt),\n durationMs: Math.round(entry.duration),\n entryType: entry.entryType,\n name: entry.name,\n });\n });\n });\n observer.observe({ entryTypes: [\"longtask\"] });\n longTaskObserverRef.current = observer;\n window.setTimeout(() => {\n observer.disconnect();\n if (longTaskObserverRef.current === observer) {\n longTaskObserverRef.current = null;\n }\n }, 8000);\n } catch {\n longTaskObserverRef.current = null;\n }\n }\n Promise.resolve().then(() => {\n recordProTableDiagnostic(\"protable.query.microtask\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n });\n window.setTimeout(() => {\n recordProTableDiagnostic(\"protable.query.timeout\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n }, 0);\n if (typeof window.requestAnimationFrame === \"function\") {\n window.requestAnimationFrame(() => {\n recordProTableDiagnostic(\"protable.query.raf\", {\n nodeId: componentNodeId,\n actionName,\n source,\n ...buildProTableQueryDelayDetail(capturedAt, getNowTime()),\n });\n });\n }\n },\n [componentNodeId],\n );\n\n const handleTableClickCapture = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const button = getEventTargetButton(event.target);\n if (!button) return;\n const actionName = resolveProTableQueryActionName(\n button.textContent || \"\",\n );\n if (!actionName) return;\n recordQueryAction(actionName, \"click\", {\n buttonText: button.textContent || \"\",\n });\n },\n [recordQueryAction],\n );\n\n const handleTableSubmitCapture = useCallback(\n (event: React.FormEvent<HTMLDivElement>) => {\n const target = event.target;\n if (typeof HTMLElement === \"undefined\") return;\n if (!(target instanceof HTMLElement)) return;\n const isSearchForm = Boolean(target.closest(\".ant-pro-table-search\"));\n if (!isSearchForm) return;\n const capturedAt = getNowTime();\n lastFormSubmitRef.current = {\n capturedAt,\n source: \"submit\",\n };\n recordProTableDiagnostic(\"protable.form.submit\", {\n nodeId: componentNodeId,\n previousAction: lastQueryActionRef.current\n ? {\n actionName: lastQueryActionRef.current.actionName,\n source: lastQueryActionRef.current.source,\n delayMs: Math.round(\n capturedAt - lastQueryActionRef.current.capturedAt,\n ),\n }\n : undefined,\n });\n },\n [componentNodeId],\n );\n\n const handleTableKeyDownCapture = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Enter\") return;\n const target = event.target;\n if (typeof HTMLElement === \"undefined\") return;\n if (!(target instanceof HTMLElement)) return;\n const isSearchArea = Boolean(target.closest(\".ant-pro-table-search\"));\n if (!isSearchArea) return;\n recordQueryAction(\"enter\", \"keydown\", {\n targetTag: target.tagName.toLowerCase(),\n });\n },\n [recordQueryAction],\n );\n\r\n const tableScroll = useMemo(\r\n () =>\r\n scrollX || finalScrollY ? { x: scrollX, y: finalScrollY } : undefined,\r\n [scrollX, finalScrollY],\r\n );\r\n\r\n const searchConfig = useMemo<ProTableSearchProp>(\r\n () => (search ? ({ colon: false } as ProTableSearchProp) : false),\r\n [search],\r\n );\r\n\r\n const searchInitialValues = useMemo(() => {\r\n if (searchInitialValuesSource !== \"storage\") return {};\r\n const key = String(searchInitialValuesStorageKey || \"\").trim();\r\n if (!key) return {};\r\n const storage = getBrowserStorage(searchInitialValuesStorageType);\r\n if (!storage) return {};\r\n\r\n const raw = storage.getItem(key);\r\n\r\n if (!raw) return {};\n try {\n const parsed = unwrapSearchStorageValue(JSON.parse(raw));\n const values = buildSearchInitialValuesFromStorageValue(\n parsed,\n searchInitialValuesMappings,\n );\r\n if (clearSearchInitialValuesAfterUse) {\r\n storage.removeItem(key);\r\n }\r\n return values;\r\n } catch {\r\n return {};\r\n }\r\n }, [\r\n searchInitialValuesSource,\r\n searchInitialValuesStorageType,\r\n searchInitialValuesStorageKey,\r\n searchInitialValuesMappings,\r\n clearSearchInitialValuesAfterUse,\n ]);\n const formConfig = useMemo(\n () => buildProTableFormConfig(searchInitialValues),\n [searchInitialValues],\n );\n\n return (\n <div\n ref={tableContainerRef}\n onClickCapture={handleTableClickCapture}\n onKeyDownCapture={handleTableKeyDownCapture}\n onSubmitCapture={handleTableSubmitCapture}\n >\n <AntdProTable\r\n actionRef={actionRef}\r\n columns={proColumns}\r\n request={hasRequestBinding ? request : undefined}\r\n dataSource={hasRequestBinding ? undefined : tableDataSource}\r\n rowKey={rowKey}\r\n headerTitle={headerTitle}\r\n size={size}\r\n tableStyle={{\r\n padding: toolbarNodes || !searchConfig ? 0 : 24,\r\n }}\r\n bordered={bordered}\n showHeader={showHeader}\n search={searchConfig}\n form={formConfig}\n options={false}\n dateFormatter=\"string\"\r\n toolBarRender={toolbarNodes ? () => toolbarNodes : undefined}\r\n pagination={\r\n paginationConfig as ComponentProps<typeof AntdProTable>[\"pagination\"]\r\n }\r\n onRow={(record) => ({\r\n onClick: () => handleRowClick(record as Record<string, unknown>),\r\n })}\r\n scroll={tableScroll}\r\n style={style}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProTableWrapper;\r\n"]}
@@ -74,5 +74,5 @@ var DesensitizationDisplay = (props) => {
74
74
  var DesensitizationDisplay_default2 = DesensitizationDisplay;
75
75
 
76
76
  export { DesensitizationDisplay_default2 as DesensitizationDisplay_default };
77
- //# sourceMappingURL=chunk-VCBTHCLX.js.map
78
- //# sourceMappingURL=chunk-VCBTHCLX.js.map
77
+ //# sourceMappingURL=chunk-DLZMRVLE.js.map
78
+ //# sourceMappingURL=chunk-DLZMRVLE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/custom/DesensitizationDisplay/index.module.css","../src/custom/DesensitizationDisplay/index.tsx"],"names":["desensitizationDisplay","eyeIcon","DesensitizationDisplay_default"],"mappings":";;;;;;;;;AAAA,IAAA,8BAAA,GAAA;AAAA,EAAC,sBAAA,EAAAA,+CAAAA;AAAA,EAQA,OAAA,EAAAC;AAAA,CAAA;ACyBD,IAAM,sBAAA,GAAyB,CAAC,KAAA,KAAuC;AACrE,EAAA,MAAM;AAAA,IACJ,YAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,SAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,EAAE,MAAK,GAAI,UAAA;AACjB,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,SAAS,OAAA,IAAW,gBAAA;AAE3C,EAAA,MAAM,aAAA,GAAgB,eAClB,YAAA,GACA,MAAA;AAAA,IACE,cAAA,EAAgB,IAAA,EAAM,YAAA,IACpB,cAAA,EAAgB,MAAM,QAAA,IACtB;AAAA,GACJ;AAEJ,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,GAAA;AAAA,EACT;AACA,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,aAAA;AAAA,QACN,QAAQ,MAAM;AACZ,UAAA,OAAA,CAAQ,QAAQ,0BAAM,CAAA;AAAA,QACxB,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,8BACH,QAAA,EAAA,EAAS,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,MAAkB,CAAG,CAAA;AAAA,8BAC9C,QAAA,EAAA,EAAS,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,MAAkB,CAAG;AAAA;AACjD,OACF;AAAA,MACA,SAAA,EAAW,UAAA,CAAW,SAAA,EAAW,8BAAA,CAAO,sBAAsB,CAAA;AAAA,MAC7D,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,aAAA,IAAiB,IAAA,KAAS,QAAA,GACvB,WAAA,GACE,aAAA,GACA,cAAc,SAAA,CAAU,CAAA,EAAG,CAAC,CAAA,GAC5B,UAAA,GACA,aAAA,CAAc,SAAA,CAAU,EAAA,EAAI,EAAE,CAAA,GAChC,IAAA;AAAA,QACH,aAAA,IAAiB,IAAA,KAAS,OAAA,GACvB,WAAA,GACE,gBACA,aAAA,CAAc,SAAA,CAAU,CAAA,EAAG,CAAC,IAC5B,MAAA,GACA,aAAA,CAAc,SAAA,CAAU,CAAA,EAAG,EAAE,CAAA,GAC/B,IAAA;AAAA,QACH,aAAA,GACC,WAAA,mBACE,GAAA,CAAC,OAAA,EAAA,EAAqB,OAAM,cAAA,EAC1B,QAAA,kBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,WAAW,8BAAA,CAAO,OAAA;AAAA,YAClB,OAAA,EAAS,CAAC,CAAA,KAAiC;AACzC,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,cAAA,CAAe,CAAC,WAAW,CAAA;AAAA,YAC7B;AAAA;AAAA,aANS,QAQb,CAAA,mBAEA,GAAA,CAAC,OAAA,EAAA,EAAqB,OAAM,cAAA,EAC1B,QAAA,kBAAA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,WAAW,8BAAA,CAAO,OAAA;AAAA,YAClB,OAAA,EAAS,CAAC,CAAA,KAAiC;AACzC,cAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,cAAA,cAAA,CAAe,CAAC,WAAW,CAAA;AAAA,YAC7B;AAAA;AAAA,SACF,EAAA,EAPW,QAQb,CAAA,GAEA;AAAA;AAAA;AAAA,GACN;AAEJ,CAAA;AACA,IAAOC,+BAAAA,GAAQ","file":"chunk-DLZMRVLE.js","sourcesContent":[".desensitizationDisplay {\n color: inherit;\n}\n\n.desensitizationDisplay :global(.ant-typography-copy) {\n margin-left: 4px;\n}\n\n.eyeIcon {\n color: #006dfc;\n margin-left: 4px;\n}\n\n.eyeIcon:hover {\n cursor: pointer;\n}\n","import { useState } from \"react\";\r\nimport type { ComponentProps, MouseEvent } from \"react\";\r\nimport { SbtBukejian, SbtFuzhi, SbtYulan } from \"@firesoon/icons-react\";\r\nimport { Typography, Tooltip } from \"@mijadesign/web\";\r\nimport classNames from \"classnames\";\r\nimport { message } from \"@mijadesign/web\";\r\nimport styles from \"./index.module.css\";\r\n\r\ntype RuntimeContext = {\r\n scope?: string;\r\n area?: string;\r\n data?: {\r\n rawValue?: unknown;\r\n displayValue?: unknown;\r\n status?: unknown;\r\n record?: Record<string, unknown>;\r\n [key: string]: unknown;\r\n };\r\n};\r\n\r\ntype DesensitizationDisplayProps = Omit<\r\n ComponentProps<typeof Typography.Text>,\r\n \"children\" | \"copyable\" | \"type\"\r\n> & {\r\n copyableText?: string;\r\n type?: \"idCard\" | \"phone\";\r\n menuPath?: string;\r\n runtime?: {\r\n context?: RuntimeContext;\r\n };\r\n __runtimeContext?: RuntimeContext;\r\n};\r\n\r\nconst DesensitizationDisplay = (props: DesensitizationDisplayProps) => {\r\n const {\r\n copyableText,\r\n type = \"idCard\",\r\n className,\r\n menuPath,\r\n runtime,\r\n __runtimeContext,\r\n ...rest\r\n } = props;\r\n const { Text } = Typography;\n const [showCardNum, setShowCardNum] = useState(false);\n const runtimeContext = runtime?.context || __runtimeContext;\n\r\n const resolvedValue = copyableText\r\n ? copyableText\r\n : String(\r\n runtimeContext?.data?.displayValue ??\r\n runtimeContext?.data?.rawValue ??\r\n \"\",\r\n );\r\n\r\n if (!resolvedValue) {\r\n return \"-\";\r\n }\r\n return (\r\n <Text\r\n copyable={{\r\n text: resolvedValue,\r\n onCopy: () => {\r\n message.success(\"复制成功\");\r\n },\r\n icon: [\r\n <SbtFuzhi style={{ color: \"#1677FF\" }} key={1} />,\r\n <SbtFuzhi style={{ color: \"#1677FF\" }} key={2} />,\r\n ],\r\n }}\r\n className={classNames(className, styles.desensitizationDisplay)}\r\n {...rest}\r\n >\r\n {resolvedValue && type === \"idCard\"\r\n ? showCardNum\r\n ? resolvedValue\r\n : resolvedValue.substring(0, 6) +\r\n \"********\" +\r\n resolvedValue.substring(14, 18)\r\n : null}\r\n {resolvedValue && type === \"phone\"\r\n ? showCardNum\r\n ? resolvedValue\r\n : resolvedValue.substring(0, 3) +\r\n \"****\" +\r\n resolvedValue.substring(7, 11)\r\n : null}\r\n {resolvedValue ? (\r\n showCardNum ? (\r\n <Tooltip key=\"tuomin\" title=\"脱敏\">\r\n <SbtYulan\r\n className={styles.eyeIcon}\r\n onClick={(e: MouseEvent<SVGSVGElement>) => {\r\n e.stopPropagation();\r\n setShowCardNum(!showCardNum);\r\n }}\r\n />\r\n </Tooltip>\r\n ) : (\r\n <Tooltip key=\"chakan\" title=\"查看\">\r\n <SbtBukejian\r\n className={styles.eyeIcon}\r\n onClick={(e: MouseEvent<SVGSVGElement>) => {\r\n e.stopPropagation();\r\n setShowCardNum(!showCardNum);\r\n }}\r\n />\r\n </Tooltip>\r\n )\r\n ) : null}\r\n </Text>\r\n );\r\n};\r\nexport default DesensitizationDisplay;\r\nexport type { RuntimeContext };\r\n"]}
@@ -9,6 +9,16 @@ var DescriptionsMeta = {
9
9
  category: ComponentCategory.DATA_DISPLAY,
10
10
  icon: "UnorderedListOutlined",
11
11
  visibleInComponentPanel: true,
12
+ canHaveChildren: false,
13
+ editorDnd: {
14
+ dropMode: "slot",
15
+ slotConfig: {
16
+ areas: [{ key: "item", label: "\u63CF\u8FF0\u9879\u5185\u5BB9", requiresKey: true }],
17
+ defaultArea: "item",
18
+ keyOptionsSource: "descriptions.items",
19
+ keyPlaceholder: "\u8BF7\u9009\u62E9\u76EE\u6807\u63CF\u8FF0\u9879"
20
+ }
21
+ },
12
22
  props: [
13
23
  {
14
24
  name: "title",
@@ -117,5 +127,5 @@ var DescriptionsMeta = {
117
127
  };
118
128
 
119
129
  export { DescriptionsMeta };
120
- //# sourceMappingURL=chunk-4XV45KAK.js.map
121
- //# sourceMappingURL=chunk-4XV45KAK.js.map
130
+ //# sourceMappingURL=chunk-EM2IRMCA.js.map
131
+ //# sourceMappingURL=chunk-EM2IRMCA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/antd/Descriptions/meta.ts"],"names":[],"mappings":"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","file":"chunk-EM2IRMCA.js","sourcesContent":["import type { ComponentMeta } from \"@mijalowcode/types\";\r\nimport { ComponentCategory, PropType } from \"@mijalowcode/types\";\r\n\r\nexport const DescriptionsMeta: ComponentMeta = {\r\n componentName: \"Descriptions\",\r\n package: \"@mijadesign/web\",\r\n title: \"描述列表\",\r\n description: \"用于描述对象或列表的详细信息\",\r\n category: ComponentCategory.DATA_DISPLAY,\r\n icon: \"UnorderedListOutlined\",\n visibleInComponentPanel: true,\n canHaveChildren: false,\n editorDnd: {\n dropMode: \"slot\",\n slotConfig: {\n areas: [{ key: \"item\", label: \"描述项内容\", requiresKey: true }],\n defaultArea: \"item\",\n keyOptionsSource: \"descriptions.items\",\n keyPlaceholder: \"请选择目标描述项\",\n },\n },\n props: [\n {\r\n name: \"title\",\r\n label: \"标题\",\r\n type: PropType.STRING,\r\n group: \"基础\",\r\n },\r\n {\r\n name: \"extra\",\r\n label: \"右上角内容\",\r\n type: PropType.STRING,\r\n group: \"基础\",\r\n },\r\n {\r\n name: \"column\",\r\n label: \"列配置\",\r\n type: PropType.JSON,\r\n defaultValue: 3,\r\n description: \"支持数字或响应式对象,如 { xs: 1, sm: 2, md: 3 }\",\r\n group: \"布局\",\r\n },\r\n {\r\n name: \"layout\",\r\n label: \"布局方向\",\r\n type: PropType.ENUM,\r\n defaultValue: \"horizontal\",\r\n options: [\r\n { label: \"水平\", value: \"horizontal\" },\r\n { label: \"垂直\", value: \"vertical\" },\r\n ],\r\n group: \"布局\",\r\n },\r\n {\r\n name: \"bordered\",\r\n label: \"边框\",\r\n type: PropType.BOOLEAN,\r\n defaultValue: false,\r\n group: \"样式\",\r\n },\r\n {\r\n name: \"colon\",\r\n label: \"显示冒号\",\r\n type: PropType.BOOLEAN,\r\n defaultValue: true,\r\n group: \"样式\",\r\n },\r\n {\r\n name: \"size\",\r\n label: \"尺寸\",\r\n type: PropType.ENUM,\r\n defaultValue: \"large\",\r\n options: [\r\n { label: \"大\", value: \"large\" },\r\n { label: \"中\", value: \"medium\" },\r\n { label: \"小\", value: \"small\" },\r\n ],\r\n group: \"样式\",\r\n },\r\n {\r\n name: \"items\",\r\n label: \"列表项配置\",\r\n type: PropType.DESCRIPTIONS_ITEMS,\r\n description: \"5.8+ 推荐写法,支持直接配置 item 数组\",\r\n group: \"数据\",\r\n },\r\n {\r\n name: \"classNames\",\r\n label: \"语义类名\",\r\n type: PropType.JSON,\r\n description: \"自定义语义节点 className(高级)\",\r\n group: \"高级\",\r\n },\r\n {\r\n name: \"styles\",\r\n label: \"语义样式\",\r\n type: PropType.JSON,\r\n description: \"自定义语义节点样式(高级)\",\r\n group: \"高级\",\r\n },\r\n ],\r\n defaultProps: {\r\n column: 3,\r\n bordered: false,\r\n layout: \"horizontal\",\r\n size: \"large\",\r\n colon: true,\r\n items: [{ label: \"名称\", children: \"示例文本\" }],\r\n },\r\n npm: {\r\n package: \"@mijadesign/web\",\r\n exportName: \"Descriptions\",\r\n },\r\n snippet: {\r\n componentName: \"Descriptions\",\r\n package: \"@mijadesign/web\",\r\n props: {\r\n title: \"基本信息\",\r\n column: 3,\r\n bordered: false,\r\n layout: \"horizontal\",\r\n size: \"large\",\r\n colon: true,\r\n items: [{ label: \"名称\", children: \"示例文本\" }],\r\n },\r\n },\r\n};\r\n"]}
@@ -13,8 +13,15 @@ function injectRuntimeContextToNodes(nodes, runtimeContext) {
13
13
  if (!runtimeContext) return nodes;
14
14
  return nodes.map((node) => {
15
15
  if (!isValidElement(node)) return node;
16
+ const props = node.props && typeof node.props === "object" ? node.props : {};
17
+ const runtime = props.runtime && typeof props.runtime === "object" ? props.runtime : {};
16
18
  return cloneElement(node, {
17
- runtimeContext
19
+ runtimeContext,
20
+ __runtimeContext: runtimeContext,
21
+ runtime: {
22
+ ...runtime,
23
+ context: runtimeContext
24
+ }
18
25
  });
19
26
  });
20
27
  }
@@ -142,5 +149,5 @@ function useSlotRuntime({
142
149
  }
143
150
 
144
151
  export { collectSlotChildren, renderSlotArea, resolveSlot, useSlotRuntime };
145
- //# sourceMappingURL=chunk-VNMO5V4F.js.map
146
- //# sourceMappingURL=chunk-VNMO5V4F.js.map
152
+ //# sourceMappingURL=chunk-ERTSEXI5.js.map
153
+ //# sourceMappingURL=chunk-ERTSEXI5.js.map