@gct-paas/design 0.1.4-dev.17 → 0.1.4-dev.19
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/index.min.css +1 -1
- package/dist/loader.esm.min.js +1 -1
- package/es/components/design-view-layout/design-view-layout.css +11 -11
- package/es/components/design-view-layout/design-view-layout.mjs +1 -1
- package/es/components/field-transfer/components/Transfer/AdvancedTransfer.mjs +6 -1
- package/es/components/field-transfer/components/Transfer/TransferTree.mjs +6 -1
- package/es/hooks/design-view/design-state.d.ts +14 -0
- package/es/hooks/design-view/designer/useDesignModal.d.ts +17 -0
- package/es/hooks/design-view/designer/useDesignPreview.mjs +40 -55
- package/es/hooks/design-view/global/useGlobal.d.ts +8 -0
- package/es/hooks/design-view/layout/useToolkit.d.ts +2 -0
- package/es/hooks/design-view/useDesigner.d.ts +24 -1
- package/es/hooks/design-view/useDesigner.mjs +6 -1
- package/es/hooks/design-view/widget/useWidget.mjs +3 -1
- package/es/index.mjs +6 -5
- package/es/register/designer-register/designer-register.mjs +4 -0
- package/es/{utils → schema}/begin-drag/begin-drag.mjs +8 -6
- package/es/schema/common-config/button-editor-config.mjs +4 -2
- package/es/schema/common-config/common-field-editor-config.mjs +2 -0
- package/es/schema/field/data-table-column.mjs +52 -4
- package/es/schema/field/index.mjs +1 -1
- package/es/schema/index.d.ts +3 -1
- package/es/schema/index.mjs +4 -2
- package/es/schema/utils.d.ts +8 -0
- package/es/schema/utils.mjs +76 -0
- package/es/utils/design-plugin-pkg-util/design-plugin-pkg-util.d.ts +1 -1
- package/es/utils/design-plugin-pkg-util/design-plugin-pkg-util.mjs +1 -29
- package/es/utils/index.d.ts +0 -1
- package/es/utils/index.mjs +2 -2
- package/es/utils/transform-js/index.mjs +1 -0
- package/es/utils/transform-js/transform-js.d.ts +7 -6
- package/es/utils/transform-js/transform-js.mjs +62 -68
- package/package.json +9 -7
- package/dist/assets/transform-js.worker-jL3ThXZ5.js +0 -172438
- package/es/assets/transform-js.worker-CI2jwZbi.js +0 -230912
- package/es/utils/transform-js/transform-js.worker.d.ts +0 -1
- /package/es/{utils → schema}/begin-drag/begin-drag.d.ts +0 -0
|
@@ -1,82 +1,76 @@
|
|
|
1
1
|
//#region src/utils/transform-js/transform-js.ts
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _worker = null;
|
|
10
|
-
/** 等待响应的请求映射表,key 为请求 ID */
|
|
11
|
-
var _pendingMap = /* @__PURE__ */ new Map();
|
|
12
|
-
/**
|
|
13
|
-
* 获取(或创建)Worker 单例
|
|
14
|
-
* @returns Worker 实例
|
|
15
|
-
*/
|
|
16
|
-
function getWorker() {
|
|
17
|
-
if (!_worker) {
|
|
18
|
-
_worker = new Worker(new URL(
|
|
19
|
-
/* @vite-ignore */
|
|
20
|
-
"/assets/transform-js.worker-CI2jwZbi.js",
|
|
21
|
-
"" + import.meta.url
|
|
22
|
-
), { type: "module" });
|
|
23
|
-
_worker.onmessage = (event) => {
|
|
24
|
-
const { id, result, error } = event.data;
|
|
25
|
-
const pending = _pendingMap.get(id);
|
|
26
|
-
if (!pending) return;
|
|
27
|
-
_pendingMap.delete(id);
|
|
28
|
-
if (error !== void 0) pending.reject(new Error(error));
|
|
29
|
-
else pending.resolve(result);
|
|
30
|
-
};
|
|
31
|
-
_worker.onerror = (event) => {
|
|
32
|
-
const err = new Error(event.message);
|
|
33
|
-
_pendingMap.forEach((pending) => pending.reject(err));
|
|
34
|
-
_pendingMap.clear();
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return _worker;
|
|
2
|
+
var _babel = null;
|
|
3
|
+
var _esprima = null;
|
|
4
|
+
var _estraverse = null;
|
|
5
|
+
var _escodegen = null;
|
|
6
|
+
async function loadBabel() {
|
|
7
|
+
if (!_babel) _babel = await import("@babel/standalone");
|
|
8
|
+
return _babel;
|
|
38
9
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
reject
|
|
51
|
-
});
|
|
52
|
-
const request = {
|
|
53
|
-
id,
|
|
54
|
-
type,
|
|
55
|
-
payload
|
|
56
|
-
};
|
|
57
|
-
console.log("Posting task to worker:", request, getWorker);
|
|
58
|
-
resolve(null);
|
|
59
|
-
});
|
|
10
|
+
async function loadAstModules() {
|
|
11
|
+
if (!_esprima) [_esprima, _estraverse, _escodegen] = await Promise.all([
|
|
12
|
+
import("esprima-next"),
|
|
13
|
+
import("estraverse"),
|
|
14
|
+
import("escodegen")
|
|
15
|
+
]);
|
|
16
|
+
return {
|
|
17
|
+
esprima: _esprima,
|
|
18
|
+
estraverse: _estraverse,
|
|
19
|
+
escodegen: _escodegen
|
|
20
|
+
};
|
|
60
21
|
}
|
|
61
22
|
/**
|
|
62
|
-
* 将 TypeScript/ES 代码编译为可在运行时执行的 JS
|
|
63
|
-
* @param code - 源代码字符串(支持 TS
|
|
23
|
+
* 将 TypeScript/ES 代码编译为可在运行时执行的 JS 字符串
|
|
24
|
+
* @param code - 源代码字符串(支持 TS 语法,可为 URI 编码)
|
|
64
25
|
* @param needExport - 是否在末尾追加 `return exports`,默认为 true
|
|
65
|
-
* @returns 编译后可执行的 JS
|
|
26
|
+
* @returns 编译后可执行的 JS 字符串
|
|
66
27
|
*/
|
|
67
|
-
function buildRunJs(code, needExport = true) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
28
|
+
async function buildRunJs(code, needExport = true) {
|
|
29
|
+
const babel = await loadBabel();
|
|
30
|
+
let decoded = code;
|
|
31
|
+
try {
|
|
32
|
+
decoded = decodeURIComponent(code);
|
|
33
|
+
} catch {
|
|
34
|
+
console.warn("decodeURIComponent failed, using original code");
|
|
35
|
+
}
|
|
36
|
+
return (babel.transform(decoded, {
|
|
37
|
+
filename: "inline.ts",
|
|
38
|
+
sourceMaps: false,
|
|
39
|
+
compact: false,
|
|
40
|
+
presets: [["typescript", {
|
|
41
|
+
allowDeclareFields: true,
|
|
42
|
+
optimizeConstEnums: true
|
|
43
|
+
}], ["env", {
|
|
44
|
+
targets: { browsers: "chrome >= 89" },
|
|
45
|
+
modules: "commonjs"
|
|
46
|
+
}]]
|
|
47
|
+
})?.code ?? "") + (needExport ? "\n return exports" : "");
|
|
72
48
|
}
|
|
73
49
|
/**
|
|
74
|
-
*
|
|
50
|
+
* 解析代码字符串并提取所有命名导出函数的方法映射
|
|
75
51
|
* @param code - 包含命名导出函数的代码字符串
|
|
76
52
|
* @returns 以函数名为键的方法映射对象,解析失败时返回空对象
|
|
77
53
|
*/
|
|
78
|
-
function initMethodMap(code) {
|
|
79
|
-
|
|
54
|
+
async function initMethodMap(code) {
|
|
55
|
+
const { esprima, estraverse, escodegen } = await loadAstModules();
|
|
56
|
+
try {
|
|
57
|
+
const ast = esprima.parse(code, { sourceType: "module" });
|
|
58
|
+
const methods = {};
|
|
59
|
+
estraverse.traverse(ast, { enter(node) {
|
|
60
|
+
if (node.type !== "ExportNamedDeclaration") return;
|
|
61
|
+
const { name } = node.declaration.id;
|
|
62
|
+
const { params } = node.declaration;
|
|
63
|
+
methods[name] = {
|
|
64
|
+
type: "EXPORT_Function",
|
|
65
|
+
source: escodegen.generate(node),
|
|
66
|
+
params: params?.map((p) => p.name).join(",") ?? ""
|
|
67
|
+
};
|
|
68
|
+
} });
|
|
69
|
+
return methods;
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error(error);
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
80
74
|
}
|
|
81
75
|
//#endregion
|
|
82
76
|
export { buildRunJs, initMethodMap };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gct-paas/design",
|
|
3
|
-
"version": "0.1.4-dev.
|
|
3
|
+
"version": "0.1.4-dev.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "paas 平台设计界面底包",
|
|
6
6
|
"loader": "dist/loader.esm.min.js",
|
|
@@ -44,11 +44,12 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@ant-design/icons-vue": "^7.0.1",
|
|
46
46
|
"@babel/core": "^7.29.0",
|
|
47
|
-
"@
|
|
48
|
-
"@gct-paas/
|
|
49
|
-
"@gct-paas/core
|
|
50
|
-
"@gct-paas/
|
|
51
|
-
"@gct-paas/
|
|
47
|
+
"@babel/standalone": "^7.29.2",
|
|
48
|
+
"@gct-paas/api": "^0.1.2-dev.2",
|
|
49
|
+
"@gct-paas/core": "0.1.4-dev.19",
|
|
50
|
+
"@gct-paas/core-web": "0.1.4-dev.19",
|
|
51
|
+
"@gct-paas/schema": "0.1.4-dev.19",
|
|
52
|
+
"@gct-paas/scss": "0.1.4-dev.19",
|
|
52
53
|
"@jsplumb/browser-ui": "^6.2.10",
|
|
53
54
|
"@vueuse/core": "^14.1.0",
|
|
54
55
|
"ant-design-vue": "~3.2.20",
|
|
@@ -67,6 +68,7 @@
|
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
69
70
|
"@types/babel__core": "^7.20.5",
|
|
71
|
+
"@types/babel__standalone": "^7.1.9",
|
|
70
72
|
"@types/estraverse": "^5.1.7"
|
|
71
73
|
},
|
|
72
74
|
"peerDependencies": {
|
|
@@ -77,5 +79,5 @@
|
|
|
77
79
|
"@gct-paas/scss": "*",
|
|
78
80
|
"vue": ">=3"
|
|
79
81
|
},
|
|
80
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "efd978bbe7552b0c5ef6dbc5b62780c68aa116ab"
|
|
81
83
|
}
|