@mijalowcode/materials 1.0.9 → 1.1.0

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 (249) hide show
  1. package/dist/ButtonWrapper-HJIWAEIJ.js +3 -0
  2. package/dist/ButtonWrapper-HJIWAEIJ.js.map +1 -0
  3. package/dist/DesensitizationDisplay-X2JJGJ3P.css +15 -0
  4. package/dist/DesensitizationDisplay-X2JJGJ3P.css.map +1 -0
  5. package/dist/DesensitizationDisplay-XWRRKQ66.js +3 -0
  6. package/dist/DesensitizationDisplay-XWRRKQ66.js.map +1 -0
  7. package/dist/DrawerWrapper-S4DWP4YO.js +3 -0
  8. package/dist/DrawerWrapper-S4DWP4YO.js.map +1 -0
  9. package/dist/EmptyWrapper-ASEWZWLM.js +3 -0
  10. package/dist/EmptyWrapper-ASEWZWLM.js.map +1 -0
  11. package/dist/FilterColumnsWrapper-A5HEX3JS.js +4 -0
  12. package/dist/FilterColumnsWrapper-A5HEX3JS.js.map +1 -0
  13. package/dist/PopoverWrapper-STPU5XIE.js +4 -0
  14. package/dist/PopoverWrapper-STPU5XIE.js.map +1 -0
  15. package/dist/ProTableWrapper-2VRYHYZG.js +5 -0
  16. package/dist/ProTableWrapper-2VRYHYZG.js.map +1 -0
  17. package/dist/ScenarioFlowBoard-5OSRKNQ6.js +3 -0
  18. package/dist/ScenarioFlowBoard-5OSRKNQ6.js.map +1 -0
  19. package/dist/ScenarioFlowScene-JMFMGXMW.js +3 -0
  20. package/dist/ScenarioFlowScene-JMFMGXMW.js.map +1 -0
  21. package/dist/ScenarioFlowStep-UBDHMM3R.js +3 -0
  22. package/dist/ScenarioFlowStep-UBDHMM3R.js.map +1 -0
  23. package/dist/SchemaFormWrapper-2BMRJNZR.js +4 -0
  24. package/dist/SchemaFormWrapper-2BMRJNZR.js.map +1 -0
  25. package/dist/SpaceWrapper-64YCSAFK.js +3 -0
  26. package/dist/SpaceWrapper-64YCSAFK.js.map +1 -0
  27. package/dist/TagWrapper-AD7PU5ZM.js +3 -0
  28. package/dist/TagWrapper-AD7PU5ZM.js.map +1 -0
  29. package/dist/chunk-2ZVQMWTG.js +121 -0
  30. package/dist/chunk-2ZVQMWTG.js.map +1 -0
  31. package/dist/chunk-3TQXWQJ2.js +40 -0
  32. package/dist/chunk-3TQXWQJ2.js.map +1 -0
  33. package/dist/chunk-4X7AEICV.js +138 -0
  34. package/dist/chunk-4X7AEICV.js.map +1 -0
  35. package/dist/chunk-5F7WHUZV.js +131 -0
  36. package/dist/chunk-5F7WHUZV.js.map +1 -0
  37. package/dist/chunk-5HZM7ELO.js +134 -0
  38. package/dist/chunk-5HZM7ELO.js.map +1 -0
  39. package/dist/chunk-5YP2QX7V.js +115 -0
  40. package/dist/chunk-5YP2QX7V.js.map +1 -0
  41. package/dist/chunk-6NXAR3GY.js +121 -0
  42. package/dist/chunk-6NXAR3GY.js.map +1 -0
  43. package/dist/chunk-6PDHGT6A.js +182 -0
  44. package/dist/chunk-6PDHGT6A.js.map +1 -0
  45. package/dist/chunk-7ETF6Y6H.js +78 -0
  46. package/dist/chunk-7ETF6Y6H.js.map +1 -0
  47. package/dist/chunk-7ULJ4PEQ.js +124 -0
  48. package/dist/chunk-7ULJ4PEQ.js.map +1 -0
  49. package/dist/chunk-A5OVLNVD.js +15 -0
  50. package/dist/chunk-A5OVLNVD.js.map +1 -0
  51. package/dist/chunk-AEDC22TY.js +134 -0
  52. package/dist/chunk-AEDC22TY.js.map +1 -0
  53. package/dist/chunk-AFAJXZNF.js +46 -0
  54. package/dist/chunk-AFAJXZNF.js.map +1 -0
  55. package/dist/chunk-AFI3TKIA.js +248 -0
  56. package/dist/chunk-AFI3TKIA.js.map +1 -0
  57. package/dist/chunk-AVR43CDQ.js +58 -0
  58. package/dist/chunk-AVR43CDQ.js.map +1 -0
  59. package/dist/chunk-BQQZHRIP.js +113 -0
  60. package/dist/chunk-BQQZHRIP.js.map +1 -0
  61. package/dist/chunk-CTF6CVK3.js +17 -0
  62. package/dist/chunk-CTF6CVK3.js.map +1 -0
  63. package/dist/chunk-E4AFXRV3.js +154 -0
  64. package/dist/chunk-E4AFXRV3.js.map +1 -0
  65. package/dist/chunk-E6XIFOW4.js +405 -0
  66. package/dist/chunk-E6XIFOW4.js.map +1 -0
  67. package/dist/chunk-FFUNSZKQ.js +78 -0
  68. package/dist/chunk-FFUNSZKQ.js.map +1 -0
  69. package/dist/chunk-FJCK4KSF.js +121 -0
  70. package/dist/chunk-FJCK4KSF.js.map +1 -0
  71. package/dist/chunk-HFI2VSVO.js +126 -0
  72. package/dist/chunk-HFI2VSVO.js.map +1 -0
  73. package/dist/chunk-HG7NQRFN.js +91 -0
  74. package/dist/chunk-HG7NQRFN.js.map +1 -0
  75. package/dist/chunk-HSEAHONQ.js +181 -0
  76. package/dist/chunk-HSEAHONQ.js.map +1 -0
  77. package/dist/chunk-HT3BUBCW.js +209 -0
  78. package/dist/chunk-HT3BUBCW.js.map +1 -0
  79. package/dist/chunk-IZCK2NW4.js +53 -0
  80. package/dist/chunk-IZCK2NW4.js.map +1 -0
  81. package/dist/chunk-J7Z27CD5.js +317 -0
  82. package/dist/chunk-J7Z27CD5.js.map +1 -0
  83. package/dist/chunk-JH6KGGAQ.js +142 -0
  84. package/dist/chunk-JH6KGGAQ.js.map +1 -0
  85. package/dist/chunk-JOGGXO7R.js +158 -0
  86. package/dist/chunk-JOGGXO7R.js.map +1 -0
  87. package/dist/chunk-K4B3H3US.js +70 -0
  88. package/dist/chunk-K4B3H3US.js.map +1 -0
  89. package/dist/chunk-KZ2NPSVL.js +121 -0
  90. package/dist/chunk-KZ2NPSVL.js.map +1 -0
  91. package/dist/chunk-M52RB23K.js +346 -0
  92. package/dist/chunk-M52RB23K.js.map +1 -0
  93. package/dist/chunk-M5ZBOKH3.js +139 -0
  94. package/dist/chunk-M5ZBOKH3.js.map +1 -0
  95. package/dist/chunk-MNOB2ON3.js +332 -0
  96. package/dist/chunk-MNOB2ON3.js.map +1 -0
  97. package/dist/chunk-N25EIDF2.js +52 -0
  98. package/dist/chunk-N25EIDF2.js.map +1 -0
  99. package/dist/chunk-PT743TKA.js +26 -0
  100. package/dist/chunk-PT743TKA.js.map +1 -0
  101. package/dist/chunk-QB2H4BXH.js +113 -0
  102. package/dist/chunk-QB2H4BXH.js.map +1 -0
  103. package/dist/chunk-QNCCC6AD.js +32 -0
  104. package/dist/chunk-QNCCC6AD.js.map +1 -0
  105. package/dist/chunk-R33E7BDO.js +313 -0
  106. package/dist/chunk-R33E7BDO.js.map +1 -0
  107. package/dist/chunk-SHABHYWT.js +585 -0
  108. package/dist/chunk-SHABHYWT.js.map +1 -0
  109. package/dist/chunk-SMM5HEZV.js +149 -0
  110. package/dist/chunk-SMM5HEZV.js.map +1 -0
  111. package/dist/chunk-TH4H23T6.js +111 -0
  112. package/dist/chunk-TH4H23T6.js.map +1 -0
  113. package/dist/chunk-UAS2X4T7.js +31 -0
  114. package/dist/chunk-UAS2X4T7.js.map +1 -0
  115. package/dist/chunk-UIVP72WZ.js +60 -0
  116. package/dist/chunk-UIVP72WZ.js.map +1 -0
  117. package/dist/chunk-URB3CLYQ.js +387 -0
  118. package/dist/chunk-URB3CLYQ.js.map +1 -0
  119. package/dist/chunk-UUTV37L5.js +188 -0
  120. package/dist/chunk-UUTV37L5.js.map +1 -0
  121. package/dist/chunk-UXX4ALHV.js +72 -0
  122. package/dist/chunk-UXX4ALHV.js.map +1 -0
  123. package/dist/chunk-VCBTHCLX.js +78 -0
  124. package/dist/chunk-VCBTHCLX.js.map +1 -0
  125. package/dist/chunk-VFYDKB2Y.js +162 -0
  126. package/dist/chunk-VFYDKB2Y.js.map +1 -0
  127. package/dist/chunk-VNMO5V4F.js +146 -0
  128. package/dist/chunk-VNMO5V4F.js.map +1 -0
  129. package/dist/chunk-VQZWV4QB.js +121 -0
  130. package/dist/chunk-VQZWV4QB.js.map +1 -0
  131. package/dist/chunk-WNMGDQBL.js +153 -0
  132. package/dist/chunk-WNMGDQBL.js.map +1 -0
  133. package/dist/chunk-WZQYLQK3.js +196 -0
  134. package/dist/chunk-WZQYLQK3.js.map +1 -0
  135. package/dist/chunk-X5Y3TOZ6.js +109 -0
  136. package/dist/chunk-X5Y3TOZ6.js.map +1 -0
  137. package/dist/chunk-XQ7WES2T.js +59 -0
  138. package/dist/chunk-XQ7WES2T.js.map +1 -0
  139. package/dist/chunk-XYX4C64R.js +75 -0
  140. package/dist/chunk-XYX4C64R.js.map +1 -0
  141. package/dist/chunk-YSBUQGUI.js +73 -0
  142. package/dist/chunk-YSBUQGUI.js.map +1 -0
  143. package/dist/chunk-YUMYD7BC.js +118 -0
  144. package/dist/chunk-YUMYD7BC.js.map +1 -0
  145. package/dist/chunk-ZFX6QWEY.js +59 -0
  146. package/dist/chunk-ZFX6QWEY.js.map +1 -0
  147. package/dist/chunk-ZHDDQ4YE.js +304 -0
  148. package/dist/chunk-ZHDDQ4YE.js.map +1 -0
  149. package/dist/chunk-ZPDMZ67O.js +122 -0
  150. package/dist/chunk-ZPDMZ67O.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js +77 -7063
  153. package/dist/index.js.map +1 -1
  154. package/dist/meta-2DGW4AUA.js +3 -0
  155. package/dist/meta-2DGW4AUA.js.map +1 -0
  156. package/dist/meta-2OQC4QK3.js +3 -0
  157. package/dist/meta-2OQC4QK3.js.map +1 -0
  158. package/dist/meta-3MAHIMCP.js +3 -0
  159. package/dist/meta-3MAHIMCP.js.map +1 -0
  160. package/dist/meta-3VCBT7DM.js +3 -0
  161. package/dist/meta-3VCBT7DM.js.map +1 -0
  162. package/dist/meta-42VAOQFA.js +3 -0
  163. package/dist/meta-42VAOQFA.js.map +1 -0
  164. package/dist/meta-55RZ5PXQ.js +3 -0
  165. package/dist/meta-55RZ5PXQ.js.map +1 -0
  166. package/dist/meta-6MBV5UX6.js +3 -0
  167. package/dist/meta-6MBV5UX6.js.map +1 -0
  168. package/dist/meta-7PJVW2JY.js +3 -0
  169. package/dist/meta-7PJVW2JY.js.map +1 -0
  170. package/dist/meta-7WHM3VRP.js +3 -0
  171. package/dist/meta-7WHM3VRP.js.map +1 -0
  172. package/dist/meta-A5U2QQIN.js +3 -0
  173. package/dist/meta-A5U2QQIN.js.map +1 -0
  174. package/dist/meta-AS6FTLIL.js +3 -0
  175. package/dist/meta-AS6FTLIL.js.map +1 -0
  176. package/dist/meta-BI6QS2UV.js +3 -0
  177. package/dist/meta-BI6QS2UV.js.map +1 -0
  178. package/dist/meta-DERU26SP.js +3 -0
  179. package/dist/meta-DERU26SP.js.map +1 -0
  180. package/dist/meta-DJOKJFNL.js +3 -0
  181. package/dist/meta-DJOKJFNL.js.map +1 -0
  182. package/dist/meta-DQUW4T7A.js +3 -0
  183. package/dist/meta-DQUW4T7A.js.map +1 -0
  184. package/dist/meta-DTZJTPJN.js +3 -0
  185. package/dist/meta-DTZJTPJN.js.map +1 -0
  186. package/dist/meta-FGF6WHFT.js +3 -0
  187. package/dist/meta-FGF6WHFT.js.map +1 -0
  188. package/dist/meta-FXUDXBCE.js +3 -0
  189. package/dist/meta-FXUDXBCE.js.map +1 -0
  190. package/dist/meta-GR253RQD.js +3 -0
  191. package/dist/meta-GR253RQD.js.map +1 -0
  192. package/dist/meta-H4O7NLPL.js +3 -0
  193. package/dist/meta-H4O7NLPL.js.map +1 -0
  194. package/dist/meta-HICX3KO3.js +3 -0
  195. package/dist/meta-HICX3KO3.js.map +1 -0
  196. package/dist/meta-HT2THPPL.js +3 -0
  197. package/dist/meta-HT2THPPL.js.map +1 -0
  198. package/dist/meta-JJU3VEWF.js +3 -0
  199. package/dist/meta-JJU3VEWF.js.map +1 -0
  200. package/dist/meta-JXV3FTYT.js +3 -0
  201. package/dist/meta-JXV3FTYT.js.map +1 -0
  202. package/dist/meta-K5WYLIMW.js +3 -0
  203. package/dist/meta-K5WYLIMW.js.map +1 -0
  204. package/dist/meta-KECACK5B.js +3 -0
  205. package/dist/meta-KECACK5B.js.map +1 -0
  206. package/dist/meta-LNTBRX26.js +3 -0
  207. package/dist/meta-LNTBRX26.js.map +1 -0
  208. package/dist/meta-MSI74GOD.js +3 -0
  209. package/dist/meta-MSI74GOD.js.map +1 -0
  210. package/dist/meta-ODFHN4VH.js +3 -0
  211. package/dist/meta-ODFHN4VH.js.map +1 -0
  212. package/dist/meta-Q576PPQP.js +3 -0
  213. package/dist/meta-Q576PPQP.js.map +1 -0
  214. package/dist/meta-QJUDUO5X.js +3 -0
  215. package/dist/meta-QJUDUO5X.js.map +1 -0
  216. package/dist/meta-QLQ44DMU.js +3 -0
  217. package/dist/meta-QLQ44DMU.js.map +1 -0
  218. package/dist/meta-QQUKGT3S.js +3 -0
  219. package/dist/meta-QQUKGT3S.js.map +1 -0
  220. package/dist/meta-QRIJQJP6.js +3 -0
  221. package/dist/meta-QRIJQJP6.js.map +1 -0
  222. package/dist/meta-RLZ76RVJ.js +3 -0
  223. package/dist/meta-RLZ76RVJ.js.map +1 -0
  224. package/dist/meta-RNDJB4QM.js +3 -0
  225. package/dist/meta-RNDJB4QM.js.map +1 -0
  226. package/dist/meta-RP5DBUF7.js +3 -0
  227. package/dist/meta-RP5DBUF7.js.map +1 -0
  228. package/dist/meta-S3AC3URV.js +3 -0
  229. package/dist/meta-S3AC3URV.js.map +1 -0
  230. package/dist/meta-TBKMGQSZ.js +3 -0
  231. package/dist/meta-TBKMGQSZ.js.map +1 -0
  232. package/dist/meta-TJ6XD3EH.js +3 -0
  233. package/dist/meta-TJ6XD3EH.js.map +1 -0
  234. package/dist/meta-TOI7GX4E.js +3 -0
  235. package/dist/meta-TOI7GX4E.js.map +1 -0
  236. package/dist/meta-UOPC3XRK.js +3 -0
  237. package/dist/meta-UOPC3XRK.js.map +1 -0
  238. package/dist/meta-WC52ATG7.js +3 -0
  239. package/dist/meta-WC52ATG7.js.map +1 -0
  240. package/dist/meta-WRUN4G5H.js +3 -0
  241. package/dist/meta-WRUN4G5H.js.map +1 -0
  242. package/dist/meta-WUAJDZOE.js +3 -0
  243. package/dist/meta-WUAJDZOE.js.map +1 -0
  244. package/dist/runtime.css +15 -0
  245. package/dist/runtime.css.map +1 -0
  246. package/dist/runtime.d.ts +64 -0
  247. package/dist/runtime.js +3 -0
  248. package/dist/runtime.js.map +1 -0
  249. package/package.json +8 -4
@@ -0,0 +1,387 @@
1
+ import { useSlotRuntime } from './chunk-VNMO5V4F.js';
2
+ import { useEventEmitter } from './chunk-CTF6CVK3.js';
3
+ import { useRef, useState, useEffect, useMemo, useCallback } from 'react';
4
+ import { ProTable } from '@ant-design/pro-components';
5
+ import * as AntdIcons from '@ant-design/icons';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ // src/antdPro/ProTable/data-source.ts
9
+ function normalizeProTableDataSource(dataSource) {
10
+ return Array.isArray(dataSource) ? dataSource.filter(
11
+ (item) => Boolean(item) && typeof item === "object" && !Array.isArray(item)
12
+ ) : [];
13
+ }
14
+ function hasTableRequestBinding(eventMap) {
15
+ const binding = eventMap?.["table.request"];
16
+ if (!binding || typeof binding !== "object" || Array.isArray(binding)) {
17
+ return false;
18
+ }
19
+ const current = binding;
20
+ if (current.enabled === false) return false;
21
+ if (typeof current.handlerName === "string" && current.handlerName.trim()) {
22
+ return true;
23
+ }
24
+ if (typeof current.handlerCode === "string" && current.handlerCode.trim()) {
25
+ return true;
26
+ }
27
+ return Array.isArray(current.actions) && current.actions.length > 0;
28
+ }
29
+ function buildTableRequestSortPayload(sort) {
30
+ const [sortField, sortOrder] = Object.entries(sort).find(([, value]) => {
31
+ return value === "ascend" || value === "descend";
32
+ }) || [void 0, void 0];
33
+ if (!sortField || typeof sortOrder !== "string") return {};
34
+ return {
35
+ sortField,
36
+ sortMode: sortOrder === "ascend" ? "ASC" : "DESC"
37
+ };
38
+ }
39
+ function isBindValue(value) {
40
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value) && typeof value.__bind === "object";
41
+ }
42
+ function renderFieldPropsPrefixSuffix(fieldProps) {
43
+ if (!fieldProps) return void 0;
44
+ const result = { ...fieldProps };
45
+ if (fieldProps.prefixType === "icon" && fieldProps.prefixIcon) {
46
+ const icons = AntdIcons;
47
+ const IconComponent = icons[fieldProps.prefixIcon];
48
+ result.prefix = IconComponent ? /* @__PURE__ */ jsx(IconComponent, {}) : void 0;
49
+ } else if (fieldProps.prefixText) {
50
+ result.prefix = fieldProps.prefixText;
51
+ }
52
+ if (fieldProps.suffixType === "icon" && fieldProps.suffixIcon) {
53
+ const icons = AntdIcons;
54
+ const IconComponent = icons[fieldProps.suffixIcon];
55
+ result.suffix = IconComponent ? /* @__PURE__ */ jsx(IconComponent, {}) : void 0;
56
+ } else if (fieldProps.suffixText) {
57
+ result.suffix = fieldProps.suffixText;
58
+ }
59
+ return result;
60
+ }
61
+ function resolveColumnValueEnum(col) {
62
+ if (isBindValue(col.valueEnum)) {
63
+ return col.valueEnum.__bind.fallback;
64
+ }
65
+ return col.valueEnum;
66
+ }
67
+ function resolveColumnSlotAreaNames(col) {
68
+ const areaNames = [];
69
+ const columnId = String(col.columnId || "").trim();
70
+ if (columnId) {
71
+ areaNames.push(`columnId:${columnId}`);
72
+ }
73
+ return areaNames;
74
+ }
75
+ function convertColumns(columns = [], getAreaNodes, areaMap = {}, hasExternalRenderSlot = false) {
76
+ return columns.map((col) => {
77
+ const extendedCol = col;
78
+ const areaNames = resolveColumnSlotAreaNames(col);
79
+ const hasSchemaSlot = areaNames.some(
80
+ (areaName) => areaMap[areaName]?.length
81
+ );
82
+ const proColumn = {
83
+ key: col.key || col.dataIndex,
84
+ title: col.title,
85
+ dataIndex: col.dataIndex,
86
+ width: col.width,
87
+ align: col.align,
88
+ fixed: col.fixed || void 0,
89
+ ellipsis: col.ellipsis,
90
+ copyable: col.copyable,
91
+ sorter: col.sorter,
92
+ valueType: col.valueType,
93
+ valueEnum: resolveColumnValueEnum(col),
94
+ request: extendedCol.request,
95
+ hideInSearch: col.hideInSearch,
96
+ hideInTable: col.hideInTable,
97
+ formItemProps: col.formItemProps,
98
+ fieldProps: renderFieldPropsPrefixSuffix(col.fieldProps)
99
+ };
100
+ if (!areaNames.length || !hasExternalRenderSlot && !hasSchemaSlot) {
101
+ return proColumn;
102
+ }
103
+ proColumn.render = (_, record, index) => {
104
+ const rawValue = record[col.dataIndex];
105
+ const valueEnum = resolveColumnValueEnum(col);
106
+ const enumMatch = valueEnum && rawValue !== void 0 && rawValue !== null ? valueEnum[String(rawValue)] : void 0;
107
+ const slotPayload = {
108
+ record,
109
+ index,
110
+ column: col,
111
+ value: rawValue,
112
+ valueEnum,
113
+ valueEnumItem: enumMatch,
114
+ enumText: enumMatch?.text,
115
+ enumStatus: enumMatch?.status
116
+ };
117
+ const slotNodes = areaNames.reduce(
118
+ (matchedNodes, areaName) => {
119
+ if (matchedNodes !== void 0) {
120
+ return matchedNodes;
121
+ }
122
+ return getAreaNodes?.(areaName, {
123
+ ...slotPayload,
124
+ runtimeContext: {
125
+ scope: "table.cell",
126
+ area: areaName,
127
+ container: {
128
+ type: "table",
129
+ area: areaName,
130
+ index,
131
+ column: col,
132
+ record
133
+ },
134
+ data: {
135
+ ...slotPayload,
136
+ rawValue,
137
+ displayValue: enumMatch?.text !== void 0 && enumMatch?.text !== null ? enumMatch.text : rawValue,
138
+ status: enumMatch?.status
139
+ }
140
+ }
141
+ });
142
+ },
143
+ void 0
144
+ );
145
+ if (slotNodes !== void 0) {
146
+ return slotNodes.length === 1 ? slotNodes[0] : slotNodes;
147
+ }
148
+ return String(record[col.dataIndex] ?? "");
149
+ };
150
+ return proColumn;
151
+ });
152
+ }
153
+ function ProTableWrapper({
154
+ columns = [],
155
+ dataSource = [],
156
+ rowKey = "key",
157
+ headerTitle,
158
+ size = "middle",
159
+ bordered = false,
160
+ showHeader = true,
161
+ search = true,
162
+ paginationEnabled = true,
163
+ pageSize = 10,
164
+ showSizeChanger = true,
165
+ showQuickJumper = false,
166
+ scrollX,
167
+ scrollY,
168
+ autoHeight = true,
169
+ autoHeightOffset = 0,
170
+ autoHeightMinY = 240,
171
+ style,
172
+ onEvent,
173
+ renderSlot,
174
+ children,
175
+ toolbarSlotName = "toolbar",
176
+ runtime,
177
+ __nodeId,
178
+ __registerCapabilities,
179
+ __events
180
+ }) {
181
+ const actionRef = useRef();
182
+ const componentNodeId = runtime?.nodeId || __nodeId;
183
+ const registerCapabilities = runtime?.registerComponentCapabilities || __registerCapabilities;
184
+ const tableContainerRef = useRef(null);
185
+ const [searchAreaHeight, setSearchAreaHeight] = useState(0);
186
+ const [viewportHeight, setViewportHeight] = useState(
187
+ typeof window !== "undefined" ? window.innerHeight : 900
188
+ );
189
+ const [tablePageSize, setTablePageSize] = useState(pageSize);
190
+ const emitEvent = useEventEmitter(onEvent);
191
+ useEffect(() => {
192
+ setTablePageSize(pageSize);
193
+ }, [pageSize]);
194
+ useEffect(() => {
195
+ if (!componentNodeId || !registerCapabilities) return;
196
+ return registerCapabilities(componentNodeId, {
197
+ reload: () => actionRef.current?.reload?.(),
198
+ reloadAndRest: () => actionRef.current?.reloadAndRest?.(),
199
+ reset: () => actionRef.current?.reset?.(),
200
+ clearSelected: () => actionRef.current?.clearSelected?.()
201
+ });
202
+ }, [componentNodeId, registerCapabilities]);
203
+ const slotAreas = useMemo(() => {
204
+ const areaSet = /* @__PURE__ */ new Set([toolbarSlotName]);
205
+ columns.forEach((col) => {
206
+ resolveColumnSlotAreaNames(col).forEach((areaName) => {
207
+ areaSet.add(areaName);
208
+ });
209
+ });
210
+ return Array.from(areaSet).map((name) => ({ name }));
211
+ }, [columns, toolbarSlotName]);
212
+ const { getAreaNodes, areaMap } = useSlotRuntime({
213
+ renderSlot,
214
+ children,
215
+ areas: slotAreas
216
+ });
217
+ const proColumns = useMemo(
218
+ () => convertColumns(columns, getAreaNodes, areaMap, Boolean(renderSlot)),
219
+ [columns, getAreaNodes, areaMap, renderSlot]
220
+ );
221
+ const toolbarNodes = useMemo(() => {
222
+ return getAreaNodes(toolbarSlotName, { actionRef: actionRef.current });
223
+ }, [getAreaNodes, toolbarSlotName, actionRef]);
224
+ const getSearchNode = useCallback(() => {
225
+ const container = tableContainerRef.current;
226
+ if (!container) return null;
227
+ return container.querySelector(
228
+ ".ant-pro-table-search"
229
+ );
230
+ }, []);
231
+ const updateAutoHeightMetrics = useCallback(() => {
232
+ setViewportHeight(window.innerHeight);
233
+ const searchNode = getSearchNode();
234
+ const next = searchNode ? Math.ceil(searchNode.getBoundingClientRect().height) : 0;
235
+ setSearchAreaHeight(next);
236
+ }, [getSearchNode]);
237
+ useEffect(() => {
238
+ if (!autoHeight) {
239
+ setSearchAreaHeight(0);
240
+ return;
241
+ }
242
+ updateAutoHeightMetrics();
243
+ const searchNode = getSearchNode();
244
+ const resizeObserver = searchNode && typeof ResizeObserver !== "undefined" ? new ResizeObserver(updateAutoHeightMetrics) : null;
245
+ if (resizeObserver && searchNode) {
246
+ resizeObserver.observe(searchNode);
247
+ }
248
+ window.addEventListener("resize", updateAutoHeightMetrics);
249
+ return () => {
250
+ if (resizeObserver) resizeObserver.disconnect();
251
+ window.removeEventListener("resize", updateAutoHeightMetrics);
252
+ };
253
+ }, [autoHeight, search, getSearchNode, updateAutoHeightMetrics]);
254
+ const finalScrollY = useMemo(() => {
255
+ if (!autoHeight) return scrollY;
256
+ const headerOffset = 47;
257
+ const paginationOffset = paginationEnabled ? 40 : 0;
258
+ const toolbarOffset = toolbarNodes && toolbarNodes.length > 0 ? 64 : 0;
259
+ const dynamic = viewportHeight - searchAreaHeight - autoHeightOffset - headerOffset - paginationOffset - toolbarOffset;
260
+ return Math.max(autoHeightMinY, dynamic);
261
+ }, [
262
+ autoHeight,
263
+ scrollY,
264
+ viewportHeight,
265
+ searchAreaHeight,
266
+ autoHeightOffset,
267
+ autoHeightMinY,
268
+ paginationEnabled,
269
+ toolbarNodes
270
+ ]);
271
+ const tableDataSource = useMemo(
272
+ () => normalizeProTableDataSource(dataSource),
273
+ [dataSource]
274
+ );
275
+ const hasRequestBinding = useMemo(
276
+ () => hasTableRequestBinding(__events),
277
+ [__events]
278
+ );
279
+ const request = useCallback(
280
+ async (params, sort, filter) => {
281
+ const result = await emitEvent("table.request", {
282
+ ...params,
283
+ ...buildTableRequestSortPayload(sort),
284
+ ...filter
285
+ });
286
+ if (result) return result;
287
+ return {
288
+ data: [],
289
+ success: true,
290
+ total: 0
291
+ };
292
+ },
293
+ [emitEvent]
294
+ );
295
+ const emitPaginationChange = useCallback(
296
+ (current, size2) => {
297
+ emitEvent("table.pagination.change", {
298
+ current,
299
+ pageSize: size2,
300
+ pagination: {
301
+ current,
302
+ pageSize: size2
303
+ }
304
+ });
305
+ },
306
+ [emitEvent]
307
+ );
308
+ const handlePageSizeChange = useCallback(
309
+ (current, size2) => {
310
+ setTablePageSize(size2);
311
+ emitPaginationChange(current, size2);
312
+ },
313
+ [emitPaginationChange]
314
+ );
315
+ const handlePaginationChange = useCallback(
316
+ (current, size2) => {
317
+ if (typeof size2 === "number") setTablePageSize(size2);
318
+ emitPaginationChange(current, size2);
319
+ },
320
+ [emitPaginationChange]
321
+ );
322
+ const paginationConfig = useMemo(
323
+ () => paginationEnabled ? {
324
+ pageSize: tablePageSize,
325
+ size: "default",
326
+ showSizeChanger,
327
+ showQuickJumper,
328
+ showTotal: (total) => `\u5171 ${total} \u6761`,
329
+ onShowSizeChange: handlePageSizeChange,
330
+ onChange: handlePaginationChange
331
+ } : false,
332
+ [
333
+ paginationEnabled,
334
+ tablePageSize,
335
+ showSizeChanger,
336
+ showQuickJumper,
337
+ handlePageSizeChange,
338
+ handlePaginationChange
339
+ ]
340
+ );
341
+ const handleRowClick = useCallback(
342
+ (record) => {
343
+ emitEvent("table.row.click", { record });
344
+ },
345
+ [emitEvent]
346
+ );
347
+ const tableScroll = useMemo(
348
+ () => scrollX || finalScrollY ? { x: scrollX, y: finalScrollY } : void 0,
349
+ [scrollX, finalScrollY]
350
+ );
351
+ const searchConfig = useMemo(
352
+ () => search ? { colon: false } : false,
353
+ [search]
354
+ );
355
+ return /* @__PURE__ */ jsx("div", { ref: tableContainerRef, children: /* @__PURE__ */ jsx(
356
+ ProTable,
357
+ {
358
+ actionRef,
359
+ columns: proColumns,
360
+ request: hasRequestBinding ? request : void 0,
361
+ dataSource: hasRequestBinding ? void 0 : tableDataSource,
362
+ rowKey,
363
+ headerTitle,
364
+ size,
365
+ tableStyle: {
366
+ padding: toolbarNodes ? 0 : 24
367
+ },
368
+ bordered,
369
+ showHeader,
370
+ search: searchConfig,
371
+ options: false,
372
+ dateFormatter: "string",
373
+ toolBarRender: toolbarNodes ? () => toolbarNodes : void 0,
374
+ pagination: paginationConfig,
375
+ onRow: (record) => ({
376
+ onClick: () => handleRowClick(record)
377
+ }),
378
+ scroll: tableScroll,
379
+ style
380
+ }
381
+ ) });
382
+ }
383
+ var ProTableWrapper_default = ProTableWrapper;
384
+
385
+ export { ProTableWrapper_default };
386
+ //# sourceMappingURL=chunk-URB3CLYQ.js.map
387
+ //# sourceMappingURL=chunk-URB3CLYQ.js.map
@@ -0,0 +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-URB3CLYQ.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 = {\r\n data: Record<string, unknown>[];\r\n success: boolean;\r\n total: number;\r\n};\r\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 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 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\"];\r\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\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): 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 return getAreaNodes?.(areaName, {\r\n ...slotPayload,\r\n runtimeContext: {\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 },\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 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);\r\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);\r\n const emitEvent = useEventEmitter(onEvent);\r\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\r\n const { getAreaNodes, areaMap } = useSlotRuntime({\r\n renderSlot,\r\n children,\r\n areas: slotAreas,\r\n });\r\n\r\n const proColumns = useMemo(\r\n () => convertColumns(columns, getAreaNodes, areaMap, Boolean(renderSlot)),\r\n [columns, getAreaNodes, areaMap, renderSlot],\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(\r\n async (\r\n params: Record<string, unknown>,\r\n sort: Record<string, unknown>,\r\n filter: Record<string, unknown>,\r\n ): Promise<TableRequestResult> => {\r\n const result = await emitEvent<TableRequestResult>(\"table.request\", {\r\n ...params,\r\n ...buildTableRequestSortPayload(sort),\r\n ...filter,\r\n });\r\n if (result) return result;\r\n return {\r\n data: [],\r\n success: true,\r\n total: 0,\r\n };\r\n },\r\n [emitEvent],\r\n );\r\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(\r\n (record: Record<string, unknown>) => {\r\n emitEvent(\"table.row.click\", { record });\r\n },\r\n [emitEvent],\r\n );\r\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 return (\r\n <div ref={tableContainerRef}>\r\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 ? 0 : 24,\r\n }}\r\n bordered={bordered}\r\n showHeader={showHeader}\r\n search={searchConfig}\r\n options={false}\r\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"]}
@@ -0,0 +1,188 @@
1
+ import { PropType, ComponentCategory } from '@mijalowcode/types';
2
+
3
+ // src/antd/List/meta.ts
4
+ var ListMeta = {
5
+ componentName: "List",
6
+ package: "antd",
7
+ title: "\u5217\u8868",
8
+ description: "\u5C55\u793A\u6570\u636E\u5217\u8868",
9
+ category: ComponentCategory.DATA_DISPLAY,
10
+ icon: "UnorderedListOutlined",
11
+ canHaveChildren: true,
12
+ visibleInComponentPanel: true,
13
+ editorDnd: {
14
+ draggable: true,
15
+ dropMode: "children"
16
+ },
17
+ designToken: {
18
+ fields: [
19
+ {
20
+ name: "itemPadding",
21
+ label: "\u5217\u8868\u9879\u5185\u8FB9\u8DDD",
22
+ type: "string",
23
+ placeholder: "\u5982 12px 24px"
24
+ },
25
+ { name: "itemPaddingSM", label: "\u5C0F\u5C3A\u5BF8\u5185\u8FB9\u8DDD", type: "string" },
26
+ { name: "itemPaddingLG", label: "\u5927\u5C3A\u5BF8\u5185\u8FB9\u8DDD", type: "string" }
27
+ ]
28
+ },
29
+ props: [
30
+ {
31
+ name: "dataSource",
32
+ label: "\u6570\u636E\u6E90",
33
+ type: PropType.JSON,
34
+ bindable: true,
35
+ bindSources: ["state", "record"],
36
+ defaultValue: [
37
+ { id: "1", title: "\u7B2C\u4E00\u9879", description: "\u5217\u8868\u9879\u63CF\u8FF0" },
38
+ { id: "2", title: "\u7B2C\u4E8C\u9879", description: "\u5217\u8868\u9879\u63CF\u8FF0" }
39
+ ],
40
+ description: "\u6570\u7EC4\u6570\u636E\uFF1B\u5B58\u5728\u5B50\u7269\u6599\u65F6\uFF0C\u5B50\u7269\u6599\u4F1A\u4F5C\u4E3A\u6BCF\u4E00\u9879\u7684\u6E32\u67D3\u6A21\u677F",
41
+ group: "\u6570\u636E"
42
+ },
43
+ {
44
+ name: "rowKey",
45
+ label: "\u884C\u552F\u4E00\u952E",
46
+ type: PropType.STRING,
47
+ defaultValue: "id",
48
+ description: "\u6BCF\u6761\u6570\u636E\u7528\u4E8E\u751F\u6210 key \u7684\u5B57\u6BB5",
49
+ group: "\u6570\u636E"
50
+ },
51
+ {
52
+ name: "size",
53
+ label: "\u5C3A\u5BF8",
54
+ type: PropType.ENUM,
55
+ defaultValue: "default",
56
+ options: [
57
+ { label: "\u5927", value: "large" },
58
+ { label: "\u9ED8\u8BA4", value: "default" },
59
+ { label: "\u5C0F", value: "small" }
60
+ ],
61
+ group: "\u6837\u5F0F"
62
+ },
63
+ {
64
+ name: "itemLayout",
65
+ label: "\u5217\u8868\u9879\u5E03\u5C40",
66
+ type: PropType.ENUM,
67
+ defaultValue: "horizontal",
68
+ options: [
69
+ { label: "\u6A2A\u6392", value: "horizontal" },
70
+ { label: "\u7AD6\u6392", value: "vertical" }
71
+ ],
72
+ description: "\u63A7\u5236 List.Item \u5185\u5BB9\u5E03\u5C40\u65B9\u5411",
73
+ group: "\u6837\u5F0F"
74
+ },
75
+ {
76
+ name: "grid.column",
77
+ label: "\u7F51\u683C\u5217\u6570",
78
+ type: PropType.NUMBER,
79
+ defaultValue: 1,
80
+ min: 1,
81
+ max: 24,
82
+ step: 1,
83
+ description: "List \u7F51\u683C\u5E03\u5C40\u7684 column \u5B57\u6BB5",
84
+ group: "\u6837\u5F0F"
85
+ },
86
+ {
87
+ name: "grid.gutter",
88
+ label: "\u7F51\u683C\u95F4\u8DDD",
89
+ type: PropType.NUMBER,
90
+ defaultValue: 16,
91
+ min: 0,
92
+ max: 96,
93
+ step: 1,
94
+ description: "List \u7F51\u683C\u5E03\u5C40\u7684 gutter \u5B57\u6BB5",
95
+ group: "\u6837\u5F0F"
96
+ },
97
+ {
98
+ name: "bordered",
99
+ label: "\u8FB9\u6846",
100
+ type: PropType.BOOLEAN,
101
+ defaultValue: true,
102
+ group: "\u6837\u5F0F"
103
+ },
104
+ {
105
+ name: "split",
106
+ label: "\u5206\u5272\u7EBF",
107
+ type: PropType.BOOLEAN,
108
+ defaultValue: true,
109
+ group: "\u6837\u5F0F"
110
+ },
111
+ {
112
+ name: "loading",
113
+ label: "\u52A0\u8F7D\u4E2D",
114
+ type: PropType.BOOLEAN,
115
+ defaultValue: false,
116
+ group: "\u72B6\u6001"
117
+ },
118
+ {
119
+ name: "pagination",
120
+ label: "\u5206\u9875",
121
+ type: PropType.BOOLEAN,
122
+ defaultValue: false,
123
+ group: "\u529F\u80FD"
124
+ }
125
+ ],
126
+ defaultProps: {
127
+ bordered: true,
128
+ split: true
129
+ },
130
+ npm: {
131
+ package: "antd",
132
+ exportName: "List"
133
+ },
134
+ snippet: {
135
+ componentName: "List",
136
+ package: "antd",
137
+ props: {
138
+ bordered: true,
139
+ dataSource: [
140
+ { id: "1", title: "\u7B2C\u4E00\u9879", description: "\u5217\u8868\u9879\u63CF\u8FF0" },
141
+ { id: "2", title: "\u7B2C\u4E8C\u9879", description: "\u5217\u8868\u9879\u63CF\u8FF0" }
142
+ ],
143
+ rowKey: "id",
144
+ itemLayout: "horizontal",
145
+ grid: {
146
+ column: 1,
147
+ gutter: 16
148
+ }
149
+ },
150
+ children: []
151
+ }
152
+ };
153
+ var ListItemMeta = {
154
+ componentName: "List.Item",
155
+ package: "antd",
156
+ title: "\u5217\u8868\u9879",
157
+ description: "\u5217\u8868\u4E2D\u7684\u5355\u9879",
158
+ category: ComponentCategory.DATA_DISPLAY,
159
+ icon: "FileOutlined",
160
+ canHaveChildren: true,
161
+ props: [
162
+ {
163
+ name: "actions",
164
+ label: "\u64CD\u4F5C\u5217\u8868",
165
+ type: PropType.JSON,
166
+ group: "\u529F\u80FD"
167
+ },
168
+ {
169
+ name: "extra",
170
+ label: "\u989D\u5916\u5185\u5BB9",
171
+ type: PropType.STRING,
172
+ group: "\u5185\u5BB9"
173
+ }
174
+ ],
175
+ npm: {
176
+ package: "antd",
177
+ exportName: "List"
178
+ },
179
+ snippet: {
180
+ componentName: "List.Item",
181
+ package: "antd",
182
+ props: {}
183
+ }
184
+ };
185
+
186
+ export { ListItemMeta, ListMeta };
187
+ //# sourceMappingURL=chunk-UUTV37L5.js.map
188
+ //# sourceMappingURL=chunk-UUTV37L5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/antd/List/meta.ts"],"names":[],"mappings":"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","file":"chunk-UUTV37L5.js","sourcesContent":["import type { ComponentMeta } from \"@mijalowcode/types\";\nimport { ComponentCategory, PropType } from \"@mijalowcode/types\";\n\nexport const ListMeta: ComponentMeta = {\n componentName: \"List\",\r\n package: \"antd\",\r\n title: \"列表\",\r\n description: \"展示数据列表\",\r\n category: ComponentCategory.DATA_DISPLAY,\r\n icon: \"UnorderedListOutlined\",\r\n canHaveChildren: true,\r\n visibleInComponentPanel: true,\r\n editorDnd: {\n draggable: true,\n dropMode: \"children\",\n },\n designToken: {\n fields: [\n {\n name: \"itemPadding\",\n label: \"列表项内边距\",\n type: \"string\",\n placeholder: \"如 12px 24px\",\n },\n { name: \"itemPaddingSM\", label: \"小尺寸内边距\", type: \"string\" },\n { name: \"itemPaddingLG\", label: \"大尺寸内边距\", type: \"string\" },\n ],\n },\n props: [\n {\r\n name: \"dataSource\",\r\n label: \"数据源\",\r\n type: PropType.JSON,\n bindable: true,\n bindSources: [\"state\", \"record\"],\n defaultValue: [\r\n { id: \"1\", title: \"第一项\", description: \"列表项描述\" },\r\n { id: \"2\", title: \"第二项\", description: \"列表项描述\" },\r\n ],\r\n description: \"数组数据;存在子物料时,子物料会作为每一项的渲染模板\",\r\n group: \"数据\",\r\n },\r\n {\r\n name: \"rowKey\",\r\n label: \"行唯一键\",\r\n type: PropType.STRING,\r\n defaultValue: \"id\",\r\n description: \"每条数据用于生成 key 的字段\",\r\n group: \"数据\",\r\n },\r\n {\n name: \"size\",\n label: \"尺寸\",\n type: PropType.ENUM,\n defaultValue: \"default\",\r\n options: [\r\n { label: \"大\", value: \"large\" },\r\n { label: \"默认\", value: \"default\" },\r\n { label: \"小\", value: \"small\" },\r\n ],\n group: \"样式\",\n },\n {\n name: \"itemLayout\",\n label: \"列表项布局\",\n type: PropType.ENUM,\n defaultValue: \"horizontal\",\n options: [\n { label: \"横排\", value: \"horizontal\" },\n { label: \"竖排\", value: \"vertical\" },\n ],\n description: \"控制 List.Item 内容布局方向\",\n group: \"样式\",\n },\n {\n name: \"grid.column\",\n label: \"网格列数\",\n type: PropType.NUMBER,\n defaultValue: 1,\n min: 1,\n max: 24,\n step: 1,\n description: \"List 网格布局的 column 字段\",\n group: \"样式\",\n },\n {\n name: \"grid.gutter\",\n label: \"网格间距\",\n type: PropType.NUMBER,\n defaultValue: 16,\n min: 0,\n max: 96,\n step: 1,\n description: \"List 网格布局的 gutter 字段\",\n group: \"样式\",\n },\n {\n name: \"bordered\",\n label: \"边框\",\n type: PropType.BOOLEAN,\r\n defaultValue: true,\r\n group: \"样式\",\r\n },\r\n {\r\n name: \"split\",\r\n label: \"分割线\",\r\n type: PropType.BOOLEAN,\r\n defaultValue: true,\r\n group: \"样式\",\r\n },\r\n {\r\n name: \"loading\",\r\n label: \"加载中\",\r\n type: PropType.BOOLEAN,\r\n defaultValue: false,\r\n group: \"状态\",\r\n },\r\n {\r\n name: \"pagination\",\r\n label: \"分页\",\r\n type: PropType.BOOLEAN,\r\n defaultValue: false,\r\n group: \"功能\",\r\n },\r\n ],\r\n defaultProps: {\r\n bordered: true,\r\n split: true,\r\n },\r\n npm: {\r\n package: \"antd\",\r\n exportName: \"List\",\r\n },\r\n snippet: {\r\n componentName: \"List\",\r\n package: \"antd\",\r\n props: {\r\n bordered: true,\r\n dataSource: [\r\n { id: \"1\", title: \"第一项\", description: \"列表项描述\" },\r\n { id: \"2\", title: \"第二项\", description: \"列表项描述\" },\r\n ],\n rowKey: \"id\",\n itemLayout: \"horizontal\",\n grid: {\n column: 1,\n gutter: 16,\n },\n },\n children: [],\r\n },\r\n};\r\n\r\nexport const ListItemMeta: ComponentMeta = {\r\n componentName: \"List.Item\",\r\n package: \"antd\",\r\n title: \"列表项\",\r\n description: \"列表中的单项\",\r\n category: ComponentCategory.DATA_DISPLAY,\r\n icon: \"FileOutlined\",\r\n canHaveChildren: true,\r\n props: [\r\n {\r\n name: \"actions\",\r\n label: \"操作列表\",\r\n type: PropType.JSON,\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 npm: {\r\n package: \"antd\",\r\n exportName: \"List\",\r\n },\r\n snippet: {\r\n componentName: \"List.Item\",\r\n package: \"antd\",\r\n props: {},\r\n },\r\n};\r\n"]}