@mijalowcode/materials 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ListWrapper-XKFDOVLU.js +3 -0
- package/dist/ListWrapper-XKFDOVLU.js.map +1 -0
- package/dist/ProTableWrapper-SHKEQ3B3.js +5 -0
- package/dist/{ProTableWrapper-66V3DHFS.js.map → ProTableWrapper-SHKEQ3B3.js.map} +1 -1
- package/dist/{chunk-VFYDKB2Y.js → chunk-3QZXLKGK.js} +5 -5
- package/dist/chunk-3QZXLKGK.js.map +1 -0
- package/dist/{chunk-KZ2NPSVL.js → chunk-4XV45KAK.js} +5 -5
- package/dist/chunk-4XV45KAK.js.map +1 -0
- package/dist/{chunk-YSBUQGUI.js → chunk-6WG7BPHO.js} +8 -8
- package/dist/chunk-6WG7BPHO.js.map +1 -0
- package/dist/{chunk-XQ7WES2T.js → chunk-7HQG77C6.js} +5 -5
- package/dist/chunk-7HQG77C6.js.map +1 -0
- package/dist/{chunk-WZQYLQK3.js → chunk-ALBP6TTO.js} +8 -8
- package/dist/chunk-ALBP6TTO.js.map +1 -0
- package/dist/chunk-BNSJDDTL.js +44 -0
- package/dist/chunk-BNSJDDTL.js.map +1 -0
- package/dist/{chunk-MDMMHPSW.js → chunk-BVDSN573.js} +5 -5
- package/dist/chunk-BVDSN573.js.map +1 -0
- package/dist/{chunk-UIVP72WZ.js → chunk-CKXB72MC.js} +5 -5
- package/dist/chunk-CKXB72MC.js.map +1 -0
- package/dist/{chunk-VQZWV4QB.js → chunk-CM4NR5J6.js} +8 -8
- package/dist/chunk-CM4NR5J6.js.map +1 -0
- package/dist/{chunk-M5ZBOKH3.js → chunk-DPFK5IRR.js} +8 -8
- package/dist/chunk-DPFK5IRR.js.map +1 -0
- package/dist/{chunk-4X7AEICV.js → chunk-EIDHAZKK.js} +8 -8
- package/dist/chunk-EIDHAZKK.js.map +1 -0
- package/dist/{chunk-AFI3TKIA.js → chunk-EOXQT77Z.js} +11 -11
- package/dist/chunk-EOXQT77Z.js.map +1 -0
- package/dist/{chunk-ZFX6QWEY.js → chunk-GODKTSIW.js} +5 -5
- package/dist/chunk-GODKTSIW.js.map +1 -0
- package/dist/{chunk-E6XIFOW4.js → chunk-I4PPBLBR.js} +85 -14
- package/dist/chunk-I4PPBLBR.js.map +1 -0
- package/dist/{chunk-7ULJ4PEQ.js → chunk-IB2JVZNS.js} +5 -5
- package/dist/chunk-IB2JVZNS.js.map +1 -0
- package/dist/{chunk-E4AFXRV3.js → chunk-IYREPJN4.js} +5 -5
- package/dist/chunk-IYREPJN4.js.map +1 -0
- package/dist/{chunk-JH6KGGAQ.js → chunk-LG2QFXW4.js} +12 -12
- package/dist/chunk-LG2QFXW4.js.map +1 -0
- package/dist/{chunk-AVR43CDQ.js → chunk-LNAWPJOA.js} +5 -5
- package/dist/chunk-LNAWPJOA.js.map +1 -0
- package/dist/{chunk-GRH5DVD3.js → chunk-NGLCSHN6.js} +329 -32
- package/dist/chunk-NGLCSHN6.js.map +1 -0
- package/dist/{chunk-IJBC7EZT.js → chunk-NGTMTK3Y.js} +3 -3
- package/dist/chunk-NGTMTK3Y.js.map +1 -0
- package/dist/{chunk-M52RB23K.js → chunk-POK4OTCJ.js} +8 -8
- package/dist/chunk-POK4OTCJ.js.map +1 -0
- package/dist/{chunk-YUMYD7BC.js → chunk-QJNHSOCU.js} +5 -5
- package/dist/chunk-QJNHSOCU.js.map +1 -0
- package/dist/{chunk-XYX4C64R.js → chunk-QUAXFNSR.js} +5 -5
- package/dist/chunk-QUAXFNSR.js.map +1 -0
- package/dist/{chunk-K4B3H3US.js → chunk-QYRCOLOH.js} +5 -5
- package/dist/chunk-QYRCOLOH.js.map +1 -0
- package/dist/{chunk-6PDHGT6A.js → chunk-RZ7PEKVB.js} +8 -8
- package/dist/chunk-RZ7PEKVB.js.map +1 -0
- package/dist/{chunk-WNMGDQBL.js → chunk-TECA3UHQ.js} +5 -5
- package/dist/chunk-TECA3UHQ.js.map +1 -0
- package/dist/{chunk-JUWL2NEU.js → chunk-UNHWTWY6.js} +11 -11
- package/dist/chunk-UNHWTWY6.js.map +1 -0
- package/dist/{chunk-5HZM7ELO.js → chunk-UZAS7ATN.js} +11 -11
- package/dist/chunk-UZAS7ATN.js.map +1 -0
- package/dist/{chunk-HG7NQRFN.js → chunk-V7XIJFJ5.js} +5 -5
- package/dist/chunk-V7XIJFJ5.js.map +1 -0
- package/dist/{chunk-ZHDDQ4YE.js → chunk-VUICHGRO.js} +8 -8
- package/dist/chunk-VUICHGRO.js.map +1 -0
- package/dist/{chunk-UUTV37L5.js → chunk-WANSJ5GB.js} +76 -11
- package/dist/chunk-WANSJ5GB.js.map +1 -0
- package/dist/{chunk-MNOB2ON3.js → chunk-WVLSS6UL.js} +23 -23
- package/dist/chunk-WVLSS6UL.js.map +1 -0
- package/dist/{chunk-NJE4YXGP.js → chunk-XBZFC7CE.js} +67 -63
- package/dist/chunk-XBZFC7CE.js.map +1 -0
- package/dist/{chunk-QB2H4BXH.js → chunk-XEDERM5L.js} +5 -5
- package/dist/chunk-XEDERM5L.js.map +1 -0
- package/dist/{chunk-6NXAR3GY.js → chunk-Y6XJLWII.js} +5 -5
- package/dist/chunk-Y6XJLWII.js.map +1 -0
- package/dist/{chunk-SMM5HEZV.js → chunk-YL57Z55K.js} +8 -8
- package/dist/chunk-YL57Z55K.js.map +1 -0
- package/dist/{chunk-HT3BUBCW.js → chunk-ZES32TTY.js} +5 -5
- package/dist/chunk-ZES32TTY.js.map +1 -0
- package/dist/{chunk-O4ZVLA57.js → chunk-ZKZCCA6C.js} +10 -4
- package/dist/chunk-ZKZCCA6C.js.map +1 -0
- package/dist/index.d.ts +17 -2
- package/dist/index.js +42 -40
- package/dist/index.js.map +1 -1
- package/dist/meta-2K6QY4IJ.js +3 -0
- package/dist/{meta-2OQC4QK3.js.map → meta-2K6QY4IJ.js.map} +1 -1
- package/dist/meta-3YPXPICU.js +3 -0
- package/dist/{meta-3MAHIMCP.js.map → meta-3YPXPICU.js.map} +1 -1
- package/dist/meta-42Q2FTTB.js +3 -0
- package/dist/{meta-42VAOQFA.js.map → meta-42Q2FTTB.js.map} +1 -1
- package/dist/meta-AR6IA2RZ.js +3 -0
- package/dist/{meta-55RZ5PXQ.js.map → meta-AR6IA2RZ.js.map} +1 -1
- package/dist/meta-BYJ4YSP5.js +3 -0
- package/dist/meta-BYJ4YSP5.js.map +1 -0
- package/dist/meta-CHPV7QNC.js +3 -0
- package/dist/meta-CHPV7QNC.js.map +1 -0
- package/dist/meta-DGBUJZWV.js +3 -0
- package/dist/meta-DGBUJZWV.js.map +1 -0
- package/dist/meta-DP5RIOUG.js +3 -0
- package/dist/meta-DP5RIOUG.js.map +1 -0
- package/dist/meta-F27VUKUI.js +3 -0
- package/dist/meta-F27VUKUI.js.map +1 -0
- package/dist/meta-FIJVIJNW.js +3 -0
- package/dist/meta-FIJVIJNW.js.map +1 -0
- package/dist/meta-FRHG7H7E.js +3 -0
- package/dist/meta-FRHG7H7E.js.map +1 -0
- package/dist/meta-G5BBQILG.js +3 -0
- package/dist/meta-G5BBQILG.js.map +1 -0
- package/dist/meta-GPOB4EHH.js +3 -0
- package/dist/meta-GPOB4EHH.js.map +1 -0
- package/dist/meta-IHSFX6TR.js +3 -0
- package/dist/meta-IHSFX6TR.js.map +1 -0
- package/dist/meta-JQ5FGFBW.js +3 -0
- package/dist/meta-JQ5FGFBW.js.map +1 -0
- package/dist/meta-KJ576NDZ.js +3 -0
- package/dist/meta-KJ576NDZ.js.map +1 -0
- package/dist/meta-LUH2OADG.js +3 -0
- package/dist/meta-LUH2OADG.js.map +1 -0
- package/dist/meta-MGVHQ46G.js +3 -0
- package/dist/meta-MGVHQ46G.js.map +1 -0
- package/dist/meta-NKZL6DSN.js +3 -0
- package/dist/meta-NKZL6DSN.js.map +1 -0
- package/dist/meta-OHP3QZXL.js +3 -0
- package/dist/meta-OHP3QZXL.js.map +1 -0
- package/dist/{meta-ODFHN4VH.js → meta-P5V27Y4N.js} +3 -3
- package/dist/meta-P5V27Y4N.js.map +1 -0
- package/dist/meta-PEN6MQUY.js +3 -0
- package/dist/meta-PEN6MQUY.js.map +1 -0
- package/dist/meta-PVXQL3BU.js +3 -0
- package/dist/meta-PVXQL3BU.js.map +1 -0
- package/dist/meta-PWDDDK4G.js +3 -0
- package/dist/meta-PWDDDK4G.js.map +1 -0
- package/dist/meta-QALOJKLD.js +3 -0
- package/dist/meta-QALOJKLD.js.map +1 -0
- package/dist/meta-QN4SO4RX.js +3 -0
- package/dist/meta-QN4SO4RX.js.map +1 -0
- package/dist/meta-TSBTHCYM.js +3 -0
- package/dist/meta-TSBTHCYM.js.map +1 -0
- package/dist/meta-WEHPDZ45.js +3 -0
- package/dist/meta-WEHPDZ45.js.map +1 -0
- package/dist/meta-WUBFSSSH.js +3 -0
- package/dist/meta-WUBFSSSH.js.map +1 -0
- package/dist/meta-WZBB6JTO.js +3 -0
- package/dist/meta-WZBB6JTO.js.map +1 -0
- package/dist/meta-XEA7M37J.js +3 -0
- package/dist/meta-XEA7M37J.js.map +1 -0
- package/dist/meta-XR4NHL2M.js +3 -0
- package/dist/meta-XR4NHL2M.js.map +1 -0
- package/dist/meta-XRBHUJGK.js +3 -0
- package/dist/meta-XRBHUJGK.js.map +1 -0
- package/dist/meta-YYPNU26Q.js +3 -0
- package/dist/meta-YYPNU26Q.js.map +1 -0
- package/dist/meta-ZBFHEGHC.js +3 -0
- package/dist/meta-ZBFHEGHC.js.map +1 -0
- package/dist/runtime.js +1 -1
- package/package.json +4 -4
- package/dist/ProTableWrapper-66V3DHFS.js +0 -5
- package/dist/chunk-4X7AEICV.js.map +0 -1
- package/dist/chunk-5HZM7ELO.js.map +0 -1
- package/dist/chunk-6NXAR3GY.js.map +0 -1
- package/dist/chunk-6PDHGT6A.js.map +0 -1
- package/dist/chunk-7ULJ4PEQ.js.map +0 -1
- package/dist/chunk-AFI3TKIA.js.map +0 -1
- package/dist/chunk-AVR43CDQ.js.map +0 -1
- package/dist/chunk-E4AFXRV3.js.map +0 -1
- package/dist/chunk-E6XIFOW4.js.map +0 -1
- package/dist/chunk-GRH5DVD3.js.map +0 -1
- package/dist/chunk-HG7NQRFN.js.map +0 -1
- package/dist/chunk-HT3BUBCW.js.map +0 -1
- package/dist/chunk-IJBC7EZT.js.map +0 -1
- package/dist/chunk-JH6KGGAQ.js.map +0 -1
- package/dist/chunk-JUWL2NEU.js.map +0 -1
- package/dist/chunk-K4B3H3US.js.map +0 -1
- package/dist/chunk-KZ2NPSVL.js.map +0 -1
- package/dist/chunk-M52RB23K.js.map +0 -1
- package/dist/chunk-M5ZBOKH3.js.map +0 -1
- package/dist/chunk-MDMMHPSW.js.map +0 -1
- package/dist/chunk-MNOB2ON3.js.map +0 -1
- package/dist/chunk-NJE4YXGP.js.map +0 -1
- package/dist/chunk-O4ZVLA57.js.map +0 -1
- package/dist/chunk-QB2H4BXH.js.map +0 -1
- package/dist/chunk-SMM5HEZV.js.map +0 -1
- package/dist/chunk-UIVP72WZ.js.map +0 -1
- package/dist/chunk-UUTV37L5.js.map +0 -1
- package/dist/chunk-VFYDKB2Y.js.map +0 -1
- package/dist/chunk-VQZWV4QB.js.map +0 -1
- package/dist/chunk-WNMGDQBL.js.map +0 -1
- package/dist/chunk-WZQYLQK3.js.map +0 -1
- package/dist/chunk-XQ7WES2T.js.map +0 -1
- package/dist/chunk-XYX4C64R.js.map +0 -1
- package/dist/chunk-YSBUQGUI.js.map +0 -1
- package/dist/chunk-YUMYD7BC.js.map +0 -1
- package/dist/chunk-ZFX6QWEY.js.map +0 -1
- package/dist/chunk-ZHDDQ4YE.js.map +0 -1
- package/dist/meta-2OQC4QK3.js +0 -3
- package/dist/meta-3MAHIMCP.js +0 -3
- package/dist/meta-42VAOQFA.js +0 -3
- package/dist/meta-55RZ5PXQ.js +0 -3
- package/dist/meta-6MBV5UX6.js +0 -3
- package/dist/meta-6MBV5UX6.js.map +0 -1
- package/dist/meta-7PJVW2JY.js +0 -3
- package/dist/meta-7PJVW2JY.js.map +0 -1
- package/dist/meta-7WHM3VRP.js +0 -3
- package/dist/meta-7WHM3VRP.js.map +0 -1
- package/dist/meta-A5U2QQIN.js +0 -3
- package/dist/meta-A5U2QQIN.js.map +0 -1
- package/dist/meta-AS6FTLIL.js +0 -3
- package/dist/meta-AS6FTLIL.js.map +0 -1
- package/dist/meta-BI6QS2UV.js +0 -3
- package/dist/meta-BI6QS2UV.js.map +0 -1
- package/dist/meta-CKW4OAR3.js +0 -3
- package/dist/meta-CKW4OAR3.js.map +0 -1
- package/dist/meta-DERU26SP.js +0 -3
- package/dist/meta-DERU26SP.js.map +0 -1
- package/dist/meta-DQUW4T7A.js +0 -3
- package/dist/meta-DQUW4T7A.js.map +0 -1
- package/dist/meta-EGL3GQVA.js +0 -3
- package/dist/meta-EGL3GQVA.js.map +0 -1
- package/dist/meta-FXUDXBCE.js +0 -3
- package/dist/meta-FXUDXBCE.js.map +0 -1
- package/dist/meta-GR253RQD.js +0 -3
- package/dist/meta-GR253RQD.js.map +0 -1
- package/dist/meta-H4O7NLPL.js +0 -3
- package/dist/meta-H4O7NLPL.js.map +0 -1
- package/dist/meta-HCFCLOSY.js +0 -3
- package/dist/meta-HCFCLOSY.js.map +0 -1
- package/dist/meta-HICX3KO3.js +0 -3
- package/dist/meta-HICX3KO3.js.map +0 -1
- package/dist/meta-JXV3FTYT.js +0 -3
- package/dist/meta-JXV3FTYT.js.map +0 -1
- package/dist/meta-KECACK5B.js +0 -3
- package/dist/meta-KECACK5B.js.map +0 -1
- package/dist/meta-LNTBRX26.js +0 -3
- package/dist/meta-LNTBRX26.js.map +0 -1
- package/dist/meta-MSI74GOD.js +0 -3
- package/dist/meta-MSI74GOD.js.map +0 -1
- package/dist/meta-ODFHN4VH.js.map +0 -1
- package/dist/meta-OHMNHBQR.js +0 -3
- package/dist/meta-OHMNHBQR.js.map +0 -1
- package/dist/meta-Q576PPQP.js +0 -3
- package/dist/meta-Q576PPQP.js.map +0 -1
- package/dist/meta-RLZ76RVJ.js +0 -3
- package/dist/meta-RLZ76RVJ.js.map +0 -1
- package/dist/meta-RNDJB4QM.js +0 -3
- package/dist/meta-RNDJB4QM.js.map +0 -1
- package/dist/meta-RP5DBUF7.js +0 -3
- package/dist/meta-RP5DBUF7.js.map +0 -1
- package/dist/meta-TBKMGQSZ.js +0 -3
- package/dist/meta-TBKMGQSZ.js.map +0 -1
- package/dist/meta-TOI7GX4E.js +0 -3
- package/dist/meta-TOI7GX4E.js.map +0 -1
- package/dist/meta-UOPC3XRK.js +0 -3
- package/dist/meta-UOPC3XRK.js.map +0 -1
- package/dist/meta-WC52ATG7.js +0 -3
- package/dist/meta-WC52ATG7.js.map +0 -1
- package/dist/meta-WRUN4G5H.js +0 -3
- package/dist/meta-WRUN4G5H.js.map +0 -1
- package/dist/meta-WUAJDZOE.js +0 -3
- package/dist/meta-WUAJDZOE.js.map +0 -1
|
@@ -26,6 +26,62 @@ function hasTableRequestBinding(eventMap) {
|
|
|
26
26
|
}
|
|
27
27
|
return Array.isArray(current.actions) && current.actions.length > 0;
|
|
28
28
|
}
|
|
29
|
+
function isRuntimeDebugEnabled() {
|
|
30
|
+
if (typeof window === "undefined") return false;
|
|
31
|
+
return window.__LC_DEBUG_ENABLED__ === true;
|
|
32
|
+
}
|
|
33
|
+
function recordProTableDiagnostic(name, detail) {
|
|
34
|
+
if (typeof window === "undefined" || !isRuntimeDebugEnabled()) return;
|
|
35
|
+
if (!window.__LC_PERF_COUNTS__) {
|
|
36
|
+
window.__LC_PERF_COUNTS__ = {};
|
|
37
|
+
}
|
|
38
|
+
const eventName = String(name || "").trim();
|
|
39
|
+
if (!eventName) return;
|
|
40
|
+
const nextCount = Number(window.__LC_PERF_COUNTS__[eventName] || 0) + 1;
|
|
41
|
+
window.__LC_PERF_COUNTS__[eventName] = nextCount;
|
|
42
|
+
console.info("[LC PERF]", {
|
|
43
|
+
name: eventName,
|
|
44
|
+
count: nextCount,
|
|
45
|
+
detail
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function resolveProTableQueryActionName(text) {
|
|
49
|
+
const normalized = String(text || "").replace(/\s+/g, "");
|
|
50
|
+
if (normalized === "\u67E5\u8BE2") return "query";
|
|
51
|
+
if (normalized === "\u91CD\u7F6E") return "reset";
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
function buildProTableQueryDelayDetail(capturedAt, triggeredAt) {
|
|
55
|
+
return {
|
|
56
|
+
delayMs: Math.round(triggeredAt - capturedAt)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function getDiagnosticValueType(value) {
|
|
60
|
+
if (Array.isArray(value)) return `array(${value.length})`;
|
|
61
|
+
if (value === null) return "null";
|
|
62
|
+
return typeof value;
|
|
63
|
+
}
|
|
64
|
+
function buildProTableRequestParamsSummary(params) {
|
|
65
|
+
const keys = Object.keys(params || {});
|
|
66
|
+
return {
|
|
67
|
+
keys,
|
|
68
|
+
fieldTypes: keys.reduce((acc, key) => {
|
|
69
|
+
acc[key] = getDiagnosticValueType(params[key]);
|
|
70
|
+
return acc;
|
|
71
|
+
}, {})
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function shouldRecordProTableLongTask(duration) {
|
|
75
|
+
return Number(duration || 0) >= 50;
|
|
76
|
+
}
|
|
77
|
+
function getEventTargetButton(target) {
|
|
78
|
+
if (!target || typeof Element === "undefined") return null;
|
|
79
|
+
if (!(target instanceof Element)) return null;
|
|
80
|
+
return target.closest("button");
|
|
81
|
+
}
|
|
82
|
+
function getNowTime() {
|
|
83
|
+
return typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
84
|
+
}
|
|
29
85
|
function buildTableRequestSortPayload(sort) {
|
|
30
86
|
const [sortField, sortOrder] = Object.entries(sort).find(([, value]) => {
|
|
31
87
|
return value === "ascend" || value === "descend";
|
|
@@ -75,6 +131,45 @@ function resolveColumnSlotAreaNames(col) {
|
|
|
75
131
|
function isPlainObject(value) {
|
|
76
132
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
77
133
|
}
|
|
134
|
+
function getValueByPath(value, pathText) {
|
|
135
|
+
const parts = String(pathText || "").split(".").map((part) => part.trim()).filter(Boolean);
|
|
136
|
+
return parts.reduce((current, part) => {
|
|
137
|
+
if (!current || typeof current !== "object") return void 0;
|
|
138
|
+
return current[part];
|
|
139
|
+
}, value);
|
|
140
|
+
}
|
|
141
|
+
function getBrowserStorage(storageType) {
|
|
142
|
+
if (typeof window === "undefined") return null;
|
|
143
|
+
return storageType === "localStorage" ? window.localStorage : window.sessionStorage;
|
|
144
|
+
}
|
|
145
|
+
function unwrapSearchStorageValue(value, now = Date.now()) {
|
|
146
|
+
if (!isPlainObject(value) || value.__mijalowcodeStorage !== true) {
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
const expiresAt = Number(value.expiresAt || 0);
|
|
150
|
+
if (expiresAt > 0 && expiresAt <= now) return void 0;
|
|
151
|
+
return value.value;
|
|
152
|
+
}
|
|
153
|
+
function buildSearchInitialValuesFromStorageValue(storageValue, mappings = []) {
|
|
154
|
+
if (!isPlainObject(storageValue)) return {};
|
|
155
|
+
if (!Array.isArray(mappings) || mappings.length === 0) {
|
|
156
|
+
return { ...storageValue };
|
|
157
|
+
}
|
|
158
|
+
return mappings.reduce((acc, mapping) => {
|
|
159
|
+
const target = String(mapping.target || "").trim();
|
|
160
|
+
if (!target) return acc;
|
|
161
|
+
const from = String(mapping.from || target).trim();
|
|
162
|
+
const value = from ? getValueByPath(storageValue, from) : void 0;
|
|
163
|
+
acc[target] = value === void 0 ? mapping.defaultValue : value;
|
|
164
|
+
return acc;
|
|
165
|
+
}, {});
|
|
166
|
+
}
|
|
167
|
+
function buildProTableFormConfig(searchInitialValues) {
|
|
168
|
+
if (Object.keys(searchInitialValues).length === 0) return void 0;
|
|
169
|
+
return {
|
|
170
|
+
initialValues: searchInitialValues
|
|
171
|
+
};
|
|
172
|
+
}
|
|
78
173
|
function buildProTableSlotRuntimeContext(runtimeContext, slotRuntimeContext) {
|
|
79
174
|
const baseData = isPlainObject(runtimeContext?.data) ? runtimeContext.data : {};
|
|
80
175
|
const slotData = isPlainObject(slotRuntimeContext.data) ? slotRuntimeContext.data : {};
|
|
@@ -178,6 +273,11 @@ function ProTableWrapper({
|
|
|
178
273
|
bordered = false,
|
|
179
274
|
showHeader = true,
|
|
180
275
|
search = true,
|
|
276
|
+
searchInitialValuesSource = "none",
|
|
277
|
+
searchInitialValuesStorageType = "sessionStorage",
|
|
278
|
+
searchInitialValuesStorageKey,
|
|
279
|
+
searchInitialValuesMappings = [],
|
|
280
|
+
clearSearchInitialValuesAfterUse = true,
|
|
181
281
|
paginationEnabled = true,
|
|
182
282
|
pageSize = 10,
|
|
183
283
|
showSizeChanger = true,
|
|
@@ -201,12 +301,17 @@ function ProTableWrapper({
|
|
|
201
301
|
const componentNodeId = runtime?.nodeId || __nodeId;
|
|
202
302
|
const registerCapabilities = runtime?.registerComponentCapabilities || __registerCapabilities;
|
|
203
303
|
const tableContainerRef = useRef(null);
|
|
304
|
+
const lastQueryActionRef = useRef(null);
|
|
305
|
+
const lastFormSubmitRef = useRef(null);
|
|
306
|
+
const longTaskObserverRef = useRef(null);
|
|
204
307
|
const [searchAreaHeight, setSearchAreaHeight] = useState(0);
|
|
205
308
|
const [viewportHeight, setViewportHeight] = useState(
|
|
206
309
|
typeof window !== "undefined" ? window.innerHeight : 900
|
|
207
310
|
);
|
|
208
311
|
const [tablePageSize, setTablePageSize] = useState(pageSize);
|
|
209
312
|
const emitEvent = useEventEmitter(onEvent);
|
|
313
|
+
const emitEventRef = useRef(emitEvent);
|
|
314
|
+
emitEventRef.current = emitEvent;
|
|
210
315
|
useEffect(() => {
|
|
211
316
|
setTablePageSize(pageSize);
|
|
212
317
|
}, [pageSize]);
|
|
@@ -305,19 +410,44 @@ function ProTableWrapper({
|
|
|
305
410
|
);
|
|
306
411
|
const request = useCallback(
|
|
307
412
|
async (params, sort, filter) => {
|
|
308
|
-
const
|
|
413
|
+
const startedAt = typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
414
|
+
const lastQueryAction = lastQueryActionRef.current;
|
|
415
|
+
recordProTableDiagnostic("protable.request.start", {
|
|
416
|
+
nodeId: componentNodeId,
|
|
417
|
+
paramsSummary: buildProTableRequestParamsSummary(params),
|
|
418
|
+
sortSummary: buildProTableRequestParamsSummary(sort),
|
|
419
|
+
filterSummary: buildProTableRequestParamsSummary(filter),
|
|
420
|
+
previousAction: lastQueryAction ? {
|
|
421
|
+
actionName: lastQueryAction.actionName,
|
|
422
|
+
source: lastQueryAction.source,
|
|
423
|
+
delayMs: Math.round(startedAt - lastQueryAction.capturedAt)
|
|
424
|
+
} : void 0,
|
|
425
|
+
previousSubmit: lastFormSubmitRef.current ? {
|
|
426
|
+
source: lastFormSubmitRef.current.source,
|
|
427
|
+
delayMs: Math.round(
|
|
428
|
+
startedAt - lastFormSubmitRef.current.capturedAt
|
|
429
|
+
)
|
|
430
|
+
} : void 0
|
|
431
|
+
});
|
|
432
|
+
const result = await emitEventRef.current("table.request", {
|
|
309
433
|
...params,
|
|
310
434
|
...buildTableRequestSortPayload(sort),
|
|
311
435
|
...filter
|
|
312
436
|
});
|
|
313
|
-
|
|
314
|
-
return {
|
|
437
|
+
const finalResult = result || {
|
|
315
438
|
data: [],
|
|
316
439
|
success: true,
|
|
317
440
|
total: 0
|
|
318
441
|
};
|
|
442
|
+
const endedAt = typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
443
|
+
recordProTableDiagnostic("protable.request.done", {
|
|
444
|
+
nodeId: componentNodeId,
|
|
445
|
+
durationMs: Math.round(endedAt - startedAt),
|
|
446
|
+
hasResult: Boolean(result)
|
|
447
|
+
});
|
|
448
|
+
return finalResult;
|
|
319
449
|
},
|
|
320
|
-
[
|
|
450
|
+
[componentNodeId]
|
|
321
451
|
);
|
|
322
452
|
const emitPaginationChange = useCallback(
|
|
323
453
|
(current, size2) => {
|
|
@@ -371,6 +501,131 @@ function ProTableWrapper({
|
|
|
371
501
|
},
|
|
372
502
|
[emitEvent]
|
|
373
503
|
);
|
|
504
|
+
const recordQueryAction = useCallback(
|
|
505
|
+
(actionName, source, detail) => {
|
|
506
|
+
const capturedAt = getNowTime();
|
|
507
|
+
lastQueryActionRef.current = {
|
|
508
|
+
actionName,
|
|
509
|
+
capturedAt,
|
|
510
|
+
source
|
|
511
|
+
};
|
|
512
|
+
recordProTableDiagnostic("protable.query.action", {
|
|
513
|
+
nodeId: componentNodeId,
|
|
514
|
+
actionName,
|
|
515
|
+
source,
|
|
516
|
+
...detail
|
|
517
|
+
});
|
|
518
|
+
if (isRuntimeDebugEnabled() && typeof PerformanceObserver !== "undefined") {
|
|
519
|
+
longTaskObserverRef.current?.disconnect();
|
|
520
|
+
try {
|
|
521
|
+
const observer = new PerformanceObserver((list) => {
|
|
522
|
+
list.getEntries().forEach((entry) => {
|
|
523
|
+
if (!shouldRecordProTableLongTask(entry.duration)) return;
|
|
524
|
+
recordProTableDiagnostic("protable.query.longtask", {
|
|
525
|
+
nodeId: componentNodeId,
|
|
526
|
+
actionName,
|
|
527
|
+
source,
|
|
528
|
+
startDelayMs: Math.round(entry.startTime - capturedAt),
|
|
529
|
+
durationMs: Math.round(entry.duration),
|
|
530
|
+
entryType: entry.entryType,
|
|
531
|
+
name: entry.name
|
|
532
|
+
});
|
|
533
|
+
});
|
|
534
|
+
});
|
|
535
|
+
observer.observe({ entryTypes: ["longtask"] });
|
|
536
|
+
longTaskObserverRef.current = observer;
|
|
537
|
+
window.setTimeout(() => {
|
|
538
|
+
observer.disconnect();
|
|
539
|
+
if (longTaskObserverRef.current === observer) {
|
|
540
|
+
longTaskObserverRef.current = null;
|
|
541
|
+
}
|
|
542
|
+
}, 8e3);
|
|
543
|
+
} catch {
|
|
544
|
+
longTaskObserverRef.current = null;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
Promise.resolve().then(() => {
|
|
548
|
+
recordProTableDiagnostic("protable.query.microtask", {
|
|
549
|
+
nodeId: componentNodeId,
|
|
550
|
+
actionName,
|
|
551
|
+
source,
|
|
552
|
+
...buildProTableQueryDelayDetail(capturedAt, getNowTime())
|
|
553
|
+
});
|
|
554
|
+
});
|
|
555
|
+
window.setTimeout(() => {
|
|
556
|
+
recordProTableDiagnostic("protable.query.timeout", {
|
|
557
|
+
nodeId: componentNodeId,
|
|
558
|
+
actionName,
|
|
559
|
+
source,
|
|
560
|
+
...buildProTableQueryDelayDetail(capturedAt, getNowTime())
|
|
561
|
+
});
|
|
562
|
+
}, 0);
|
|
563
|
+
if (typeof window.requestAnimationFrame === "function") {
|
|
564
|
+
window.requestAnimationFrame(() => {
|
|
565
|
+
recordProTableDiagnostic("protable.query.raf", {
|
|
566
|
+
nodeId: componentNodeId,
|
|
567
|
+
actionName,
|
|
568
|
+
source,
|
|
569
|
+
...buildProTableQueryDelayDetail(capturedAt, getNowTime())
|
|
570
|
+
});
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
[componentNodeId]
|
|
575
|
+
);
|
|
576
|
+
const handleTableClickCapture = useCallback(
|
|
577
|
+
(event) => {
|
|
578
|
+
const button = getEventTargetButton(event.target);
|
|
579
|
+
if (!button) return;
|
|
580
|
+
const actionName = resolveProTableQueryActionName(
|
|
581
|
+
button.textContent || ""
|
|
582
|
+
);
|
|
583
|
+
if (!actionName) return;
|
|
584
|
+
recordQueryAction(actionName, "click", {
|
|
585
|
+
buttonText: button.textContent || ""
|
|
586
|
+
});
|
|
587
|
+
},
|
|
588
|
+
[recordQueryAction]
|
|
589
|
+
);
|
|
590
|
+
const handleTableSubmitCapture = useCallback(
|
|
591
|
+
(event) => {
|
|
592
|
+
const target = event.target;
|
|
593
|
+
if (typeof HTMLElement === "undefined") return;
|
|
594
|
+
if (!(target instanceof HTMLElement)) return;
|
|
595
|
+
const isSearchForm = Boolean(target.closest(".ant-pro-table-search"));
|
|
596
|
+
if (!isSearchForm) return;
|
|
597
|
+
const capturedAt = getNowTime();
|
|
598
|
+
lastFormSubmitRef.current = {
|
|
599
|
+
capturedAt,
|
|
600
|
+
source: "submit"
|
|
601
|
+
};
|
|
602
|
+
recordProTableDiagnostic("protable.form.submit", {
|
|
603
|
+
nodeId: componentNodeId,
|
|
604
|
+
previousAction: lastQueryActionRef.current ? {
|
|
605
|
+
actionName: lastQueryActionRef.current.actionName,
|
|
606
|
+
source: lastQueryActionRef.current.source,
|
|
607
|
+
delayMs: Math.round(
|
|
608
|
+
capturedAt - lastQueryActionRef.current.capturedAt
|
|
609
|
+
)
|
|
610
|
+
} : void 0
|
|
611
|
+
});
|
|
612
|
+
},
|
|
613
|
+
[componentNodeId]
|
|
614
|
+
);
|
|
615
|
+
const handleTableKeyDownCapture = useCallback(
|
|
616
|
+
(event) => {
|
|
617
|
+
if (event.key !== "Enter") return;
|
|
618
|
+
const target = event.target;
|
|
619
|
+
if (typeof HTMLElement === "undefined") return;
|
|
620
|
+
if (!(target instanceof HTMLElement)) return;
|
|
621
|
+
const isSearchArea = Boolean(target.closest(".ant-pro-table-search"));
|
|
622
|
+
if (!isSearchArea) return;
|
|
623
|
+
recordQueryAction("enter", "keydown", {
|
|
624
|
+
targetTag: target.tagName.toLowerCase()
|
|
625
|
+
});
|
|
626
|
+
},
|
|
627
|
+
[recordQueryAction]
|
|
628
|
+
);
|
|
374
629
|
const tableScroll = useMemo(
|
|
375
630
|
() => scrollX || finalScrollY ? { x: scrollX, y: finalScrollY } : void 0,
|
|
376
631
|
[scrollX, finalScrollY]
|
|
@@ -379,36 +634,78 @@ function ProTableWrapper({
|
|
|
379
634
|
() => search ? { colon: false } : false,
|
|
380
635
|
[search]
|
|
381
636
|
);
|
|
382
|
-
|
|
383
|
-
|
|
637
|
+
const searchInitialValues = useMemo(() => {
|
|
638
|
+
if (searchInitialValuesSource !== "storage") return {};
|
|
639
|
+
const key = String(searchInitialValuesStorageKey || "").trim();
|
|
640
|
+
if (!key) return {};
|
|
641
|
+
const storage = getBrowserStorage(searchInitialValuesStorageType);
|
|
642
|
+
if (!storage) return {};
|
|
643
|
+
const raw = storage.getItem(key);
|
|
644
|
+
if (!raw) return {};
|
|
645
|
+
try {
|
|
646
|
+
const parsed = unwrapSearchStorageValue(JSON.parse(raw));
|
|
647
|
+
const values = buildSearchInitialValuesFromStorageValue(
|
|
648
|
+
parsed,
|
|
649
|
+
searchInitialValuesMappings
|
|
650
|
+
);
|
|
651
|
+
if (clearSearchInitialValuesAfterUse) {
|
|
652
|
+
storage.removeItem(key);
|
|
653
|
+
}
|
|
654
|
+
return values;
|
|
655
|
+
} catch {
|
|
656
|
+
return {};
|
|
657
|
+
}
|
|
658
|
+
}, [
|
|
659
|
+
searchInitialValuesSource,
|
|
660
|
+
searchInitialValuesStorageType,
|
|
661
|
+
searchInitialValuesStorageKey,
|
|
662
|
+
searchInitialValuesMappings,
|
|
663
|
+
clearSearchInitialValuesAfterUse
|
|
664
|
+
]);
|
|
665
|
+
const formConfig = useMemo(
|
|
666
|
+
() => buildProTableFormConfig(searchInitialValues),
|
|
667
|
+
[searchInitialValues]
|
|
668
|
+
);
|
|
669
|
+
return /* @__PURE__ */ jsx(
|
|
670
|
+
"div",
|
|
384
671
|
{
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
672
|
+
ref: tableContainerRef,
|
|
673
|
+
onClickCapture: handleTableClickCapture,
|
|
674
|
+
onKeyDownCapture: handleTableKeyDownCapture,
|
|
675
|
+
onSubmitCapture: handleTableSubmitCapture,
|
|
676
|
+
children: /* @__PURE__ */ jsx(
|
|
677
|
+
ProTable,
|
|
678
|
+
{
|
|
679
|
+
actionRef,
|
|
680
|
+
columns: proColumns,
|
|
681
|
+
request: hasRequestBinding ? request : void 0,
|
|
682
|
+
dataSource: hasRequestBinding ? void 0 : tableDataSource,
|
|
683
|
+
rowKey,
|
|
684
|
+
headerTitle,
|
|
685
|
+
size,
|
|
686
|
+
tableStyle: {
|
|
687
|
+
padding: toolbarNodes || !searchConfig ? 0 : 24
|
|
688
|
+
},
|
|
689
|
+
bordered,
|
|
690
|
+
showHeader,
|
|
691
|
+
search: searchConfig,
|
|
692
|
+
form: formConfig,
|
|
693
|
+
options: false,
|
|
694
|
+
dateFormatter: "string",
|
|
695
|
+
toolBarRender: toolbarNodes ? () => toolbarNodes : void 0,
|
|
696
|
+
pagination: paginationConfig,
|
|
697
|
+
onRow: (record) => ({
|
|
698
|
+
onClick: () => handleRowClick(record)
|
|
699
|
+
}),
|
|
700
|
+
scroll: tableScroll,
|
|
701
|
+
style
|
|
702
|
+
}
|
|
703
|
+
)
|
|
407
704
|
}
|
|
408
|
-
)
|
|
705
|
+
);
|
|
409
706
|
}
|
|
410
707
|
var ProTableWrapper_default = ProTableWrapper;
|
|
411
708
|
|
|
412
|
-
export { ProTableWrapper_default, buildProTableSlotRuntimeContext };
|
|
413
|
-
//# sourceMappingURL=chunk-
|
|
414
|
-
//# sourceMappingURL=chunk-
|
|
709
|
+
export { ProTableWrapper_default, buildProTableFormConfig, buildProTableQueryDelayDetail, buildProTableRequestParamsSummary, buildProTableSlotRuntimeContext, buildSearchInitialValuesFromStorageValue, resolveProTableQueryActionName, shouldRecordProTableLongTask, unwrapSearchStorageValue };
|
|
710
|
+
//# sourceMappingURL=chunk-NGLCSHN6.js.map
|
|
711
|
+
//# sourceMappingURL=chunk-NGLCSHN6.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-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"]}
|
|
@@ -3,7 +3,7 @@ import { PropType, ComponentCategory } from '@mijalowcode/types';
|
|
|
3
3
|
// src/antd/Breadcrumb/meta.ts
|
|
4
4
|
var BreadcrumbMeta = {
|
|
5
5
|
componentName: "Breadcrumb",
|
|
6
|
-
package: "
|
|
6
|
+
package: "@mijadesign/web",
|
|
7
7
|
title: "\u9762\u5305\u5C51",
|
|
8
8
|
description: "\u663E\u793A\u5F53\u524D\u9875\u9762\u5728\u7CFB\u7EDF\u5C42\u7EA7\u4E2D\u7684\u4F4D\u7F6E",
|
|
9
9
|
category: ComponentCategory.NAVIGATION,
|
|
@@ -57,5 +57,5 @@ var BreadcrumbMeta = {
|
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
export { BreadcrumbMeta };
|
|
60
|
-
//# sourceMappingURL=chunk-
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
60
|
+
//# sourceMappingURL=chunk-NGTMTK3Y.js.map
|
|
61
|
+
//# sourceMappingURL=chunk-NGTMTK3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/antd/Breadcrumb/meta.ts"],"names":[],"mappings":";;;AAGO,IAAM,cAAA,GAAgC;AAAA,EAC3C,aAAA,EAAe,YAAA;AAAA,EACf,OAAA,EAAS,iBAAA;AAAA,EACT,KAAA,EAAO,oBAAA;AAAA,EACP,WAAA,EAAa,4FAAA;AAAA,EACb,UAAU,iBAAA,CAAkB,UAAA;AAAA,EAC5B,IAAA,EAAM,mBAAA;AAAA,EACN,uBAAA,EAAyB,IAAA;AAAA,EACzB,eAAA,EAAiB,KAAA;AAAA,EACjB,KAAA,EAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,KAAA,EAAO,0BAAA;AAAA,MACP,MAAM,QAAA,CAAS,gBAAA;AAAA,MACf,YAAA,EAAc;AAAA,QACZ,EAAE,KAAA,EAAO,cAAA,EAAM,IAAA,EAAM,GAAA,EAAI;AAAA,QACzB,EAAE,KAAA,EAAO,0BAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ;AAAA,QAC/B,EAAE,OAAO,oBAAA;AAAM,OACjB;AAAA,MACA,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAM,WAAA;AAAA,MACN,KAAA,EAAO,oBAAA;AAAA,MACP,MAAM,QAAA,CAAS,MAAA;AAAA,MACf,YAAA,EAAc,GAAA;AAAA,MACd,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO;AAAA,MACL,EAAE,KAAA,EAAO,cAAA,EAAM,IAAA,EAAM,GAAA,EAAI;AAAA,MACzB,EAAE,KAAA,EAAO,0BAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ;AAAA,MAC/B,EAAE,OAAO,oBAAA;AAAM,KACjB;AAAA,IACA,SAAA,EAAW;AAAA,GACb;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACd;AAAA,EACA,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,KAAA,EAAO;AAAA,MACL,KAAA,EAAO;AAAA,QACL,EAAE,KAAA,EAAO,cAAA,EAAM,IAAA,EAAM,GAAA,EAAI;AAAA,QACzB,EAAE,KAAA,EAAO,0BAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ;AAAA,QAC/B,EAAE,OAAO,oBAAA;AAAM,OACjB;AAAA,MACA,SAAA,EAAW;AAAA;AACb;AAEJ","file":"chunk-NGTMTK3Y.js","sourcesContent":["import type { ComponentMeta } from \"@mijalowcode/types\";\nimport { ComponentCategory, PropType } from \"@mijalowcode/types\";\n\nexport const BreadcrumbMeta: ComponentMeta = {\n componentName: \"Breadcrumb\",\n package: \"@mijadesign/web\",\n title: \"面包屑\",\n description: \"显示当前页面在系统层级中的位置\",\n category: ComponentCategory.NAVIGATION,\n icon: \"ApartmentOutlined\",\n visibleInComponentPanel: true,\n canHaveChildren: false,\n props: [\n {\n name: \"items\",\n label: \"面包屑项\",\n type: PropType.BREADCRUMB_ITEMS,\n defaultValue: [\n { title: \"首页\", href: \"/\" },\n { title: \"应用中心\", path: \"/apps\" },\n { title: \"详情页\" },\n ],\n group: \"数据\",\n },\n {\n name: \"separator\",\n label: \"分隔符\",\n type: PropType.STRING,\n defaultValue: \"/\",\n group: \"样式\",\n },\n ],\n defaultProps: {\n items: [\n { title: \"首页\", href: \"/\" },\n { title: \"应用中心\", path: \"/apps\" },\n { title: \"详情页\" },\n ],\n separator: \"/\",\n },\n npm: {\n package: \"antd\",\n exportName: \"Breadcrumb\",\n },\n snippet: {\n componentName: \"Breadcrumb\",\n package: \"antd\",\n props: {\n items: [\n { title: \"首页\", href: \"/\" },\n { title: \"应用中心\", path: \"/apps\" },\n { title: \"详情页\" },\n ],\n separator: \"/\",\n },\n },\n};\n"]}
|
|
@@ -3,7 +3,7 @@ import { PropType, ComponentCategory } from '@mijalowcode/types';
|
|
|
3
3
|
// src/antd/Layout/meta.ts
|
|
4
4
|
var RowMeta = {
|
|
5
5
|
componentName: "Row",
|
|
6
|
-
package: "
|
|
6
|
+
package: "@mijadesign/web",
|
|
7
7
|
title: "\u884C",
|
|
8
8
|
description: "\u6805\u683C\u5E03\u5C40\u884C\u5BB9\u5668",
|
|
9
9
|
category: ComponentCategory.LAYOUT,
|
|
@@ -63,19 +63,19 @@ var RowMeta = {
|
|
|
63
63
|
gap: 16
|
|
64
64
|
},
|
|
65
65
|
npm: {
|
|
66
|
-
package: "
|
|
66
|
+
package: "@mijadesign/web",
|
|
67
67
|
exportName: "Row"
|
|
68
68
|
},
|
|
69
69
|
snippet: {
|
|
70
70
|
componentName: "Row",
|
|
71
|
-
package: "
|
|
71
|
+
package: "@mijadesign/web",
|
|
72
72
|
props: { gutter: 16 },
|
|
73
73
|
children: []
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
76
|
var ColMeta = {
|
|
77
77
|
componentName: "Col",
|
|
78
|
-
package: "
|
|
78
|
+
package: "@mijadesign/web",
|
|
79
79
|
title: "\u5217",
|
|
80
80
|
description: "\u6805\u683C\u5E03\u5C40\u5217",
|
|
81
81
|
category: ComponentCategory.LAYOUT,
|
|
@@ -140,12 +140,12 @@ var ColMeta = {
|
|
|
140
140
|
span: 12
|
|
141
141
|
},
|
|
142
142
|
npm: {
|
|
143
|
-
package: "
|
|
143
|
+
package: "@mijadesign/web",
|
|
144
144
|
exportName: "Col"
|
|
145
145
|
},
|
|
146
146
|
snippet: {
|
|
147
147
|
componentName: "Col",
|
|
148
|
-
package: "
|
|
148
|
+
package: "@mijadesign/web",
|
|
149
149
|
props: { span: 12 },
|
|
150
150
|
children: []
|
|
151
151
|
}
|
|
@@ -342,5 +342,5 @@ var FooterMeta = {
|
|
|
342
342
|
};
|
|
343
343
|
|
|
344
344
|
export { ColMeta, ContentMeta, FooterMeta, HeaderMeta, LayoutMeta, RowMeta, SiderMeta };
|
|
345
|
-
//# sourceMappingURL=chunk-
|
|
346
|
-
//# sourceMappingURL=chunk-
|
|
345
|
+
//# sourceMappingURL=chunk-POK4OTCJ.js.map
|
|
346
|
+
//# sourceMappingURL=chunk-POK4OTCJ.js.map
|