@mybricks/to-code-taro 1.0.1 → 1.0.3
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/README.md +58 -0
- package/dist/cjs/core/comlib/{Index.js → index.js} +4 -4
- package/dist/cjs/core/mybricks/index.js +47 -47
- package/dist/cjs/core/utils/ComContext.js +3 -0
- package/dist/cjs/core/utils/hooks.js +125 -0
- package/dist/cjs/core/utils/index.js +21 -57
- package/dist/cjs/core/utils/page.js +67 -0
- package/dist/cjs/core/utils/useContext.js +2 -1
- package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/cjs/generate/generateTaroProjectJson.js +9 -6
- package/dist/cjs/generate/utils/tabBarImages.d.ts +1 -1
- package/dist/cjs/handleCom.d.ts +1 -1
- package/dist/cjs/handleCom.js +91 -177
- package/dist/cjs/handleDom.js +7 -44
- package/dist/cjs/handleExtension.d.ts +2 -2
- package/dist/cjs/handleExtension.js +5 -5
- package/dist/cjs/handleGlobal.d.ts +2 -12
- package/dist/cjs/handleGlobal.js +23 -7
- package/dist/cjs/handleModule.js +3 -3
- package/dist/cjs/handleSlot.d.ts +2 -9
- package/dist/cjs/handleSlot.js +47 -150
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/processors/processComEvents.d.ts +9 -0
- package/dist/cjs/processors/processComEvents.js +122 -0
- package/dist/cjs/processors/processModule.d.ts +31 -0
- package/dist/cjs/processors/processModule.js +125 -0
- package/dist/cjs/processors/processScene.d.ts +32 -0
- package/dist/cjs/processors/processScene.js +124 -0
- package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
- package/dist/cjs/processors/processSceneLogic.js +166 -0
- package/dist/cjs/taro-template.json +15 -7
- package/dist/cjs/toCodeTaro.d.ts +26 -5
- package/dist/cjs/toCodeTaro.js +59 -343
- package/dist/cjs/utils/builder/buildResult.d.ts +21 -0
- package/dist/cjs/utils/builder/buildResult.js +91 -0
- package/dist/cjs/utils/common/ImportManager.d.ts +19 -0
- package/dist/cjs/utils/common/ImportManager.js +105 -0
- package/dist/cjs/utils/common/helper.d.ts +2 -0
- package/dist/cjs/utils/common/helper.js +31 -0
- package/dist/cjs/utils/common/object.d.ts +5 -0
- package/dist/cjs/utils/common/object.js +58 -0
- package/dist/cjs/utils/common/string.d.ts +8 -0
- package/dist/cjs/utils/common/string.js +46 -0
- package/dist/cjs/utils/{pageConfig → config/content}/converter.js +1 -1
- package/dist/cjs/utils/{pageConfig → config/content}/index.js +9 -9
- package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.js +12 -22
- package/dist/{esm/utils/pageConfig → cjs/utils/config/content}/saveBase64Image.d.ts +1 -1
- package/dist/cjs/utils/{pageConfig → config/content}/saveBase64Image.js +8 -17
- package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.js +9 -32
- package/dist/cjs/utils/config/content/types.js +17 -0
- package/dist/cjs/utils/{pageConfig → config/content}/validator.js +1 -1
- package/dist/{esm/utils → cjs/utils/config}/handlePageConfig.d.ts +1 -1
- package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +4 -4
- package/dist/cjs/utils/context/buildContext.d.ts +24 -0
- package/dist/cjs/utils/context/buildContext.js +65 -0
- package/dist/cjs/utils/context/buildFrameMap.d.ts +16 -0
- package/dist/cjs/utils/context/buildFrameMap.js +106 -0
- package/dist/cjs/utils/context/buildGlobalData.d.ts +13 -0
- package/dist/cjs/utils/context/buildGlobalData.js +58 -0
- package/dist/cjs/utils/context/collectJSModules.d.ts +37 -0
- package/dist/cjs/utils/context/collectJSModules.js +91 -0
- package/dist/cjs/utils/context/createEventQueries.d.ts +45 -0
- package/dist/cjs/utils/context/createEventQueries.js +99 -0
- package/dist/cjs/utils/context/createProvider.d.ts +21 -0
- package/dist/cjs/utils/context/createProvider.js +49 -0
- package/dist/cjs/utils/index.d.ts +10 -62
- package/dist/cjs/utils/index.js +21 -282
- package/dist/cjs/utils/{convertNamespace.js → logic/convertNamespace.js} +1 -1
- package/dist/cjs/utils/{genJSModules.js → logic/genJSModules.js} +1 -1
- package/dist/{esm/utils → cjs/utils/logic}/handleProcess.d.ts +2 -2
- package/dist/cjs/utils/{handleProcess.js → logic/handleProcess.js} +14 -11
- package/dist/cjs/utils/logic/processChildren.d.ts +12 -0
- package/dist/cjs/utils/logic/processChildren.js +82 -0
- package/dist/cjs/utils/style/color.d.ts +4 -0
- package/dist/cjs/utils/style/color.js +45 -0
- package/dist/cjs/utils/style/converter.d.ts +7 -0
- package/dist/cjs/utils/style/converter.js +181 -0
- package/dist/cjs/utils/{getComponentClassName.js → style/getComponentClassName.js} +1 -1
- package/dist/cjs/utils/{pxtransform.js → style/pxtransform.js} +1 -1
- package/dist/cjs/utils/style/types.d.ts +23 -0
- package/dist/cjs/utils/{pageConfig → style}/types.js +1 -1
- package/dist/cjs/utils/{code → templates}/component.js +1 -1
- package/dist/cjs/utils/{code → templates}/index.js +4 -4
- package/dist/cjs/utils/{code → templates}/renderManager.js +1 -1
- package/dist/cjs/utils/{code → templates}/scene.js +1 -1
- package/dist/esm/core/mybricks/index.js +1 -1
- package/dist/esm/core/utils/ComContext.js +1 -0
- package/dist/esm/core/utils/hooks.js +118 -0
- package/dist/esm/core/utils/index.js +6 -57
- package/dist/esm/core/utils/page.js +50 -0
- package/dist/esm/core/utils/useContext.js +2 -1
- package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/esm/generate/generateTaroProjectJson.js +27 -23
- package/dist/esm/generate/utils/tabBarImages.d.ts +1 -1
- package/dist/esm/handleCom.d.ts +1 -1
- package/dist/esm/handleCom.js +159 -244
- package/dist/esm/handleDom.js +9 -48
- package/dist/esm/handleExtension.d.ts +2 -2
- package/dist/esm/handleExtension.js +5 -5
- package/dist/esm/handleGlobal.d.ts +2 -12
- package/dist/esm/handleGlobal.js +17 -3
- package/dist/esm/handleModule.js +3 -3
- package/dist/esm/handleSlot.d.ts +2 -9
- package/dist/esm/handleSlot.js +97 -174
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/processors/processComEvents.d.ts +9 -0
- package/dist/esm/processors/processComEvents.js +110 -0
- package/dist/esm/processors/processModule.d.ts +31 -0
- package/dist/esm/processors/processModule.js +126 -0
- package/dist/esm/processors/processScene.d.ts +32 -0
- package/dist/esm/processors/processScene.js +126 -0
- package/dist/esm/processors/processSceneLogic.d.ts +4 -0
- package/dist/esm/processors/processSceneLogic.js +160 -0
- package/dist/esm/taro-template.json +15 -7
- package/dist/esm/toCodeTaro.d.ts +26 -5
- package/dist/esm/toCodeTaro.js +96 -396
- package/dist/esm/utils/builder/buildResult.d.ts +21 -0
- package/dist/esm/utils/builder/buildResult.js +61 -0
- package/dist/esm/utils/common/ImportManager.d.ts +19 -0
- package/dist/esm/utils/common/ImportManager.js +103 -0
- package/dist/esm/utils/common/helper.d.ts +2 -0
- package/dist/esm/utils/common/helper.js +4 -0
- package/dist/esm/utils/common/object.d.ts +5 -0
- package/dist/esm/utils/common/object.js +32 -0
- package/dist/esm/utils/common/string.d.ts +8 -0
- package/dist/esm/utils/common/string.js +21 -0
- package/dist/esm/utils/config/content/pageConfig.js +40 -0
- package/dist/{cjs/utils/pageConfig → esm/utils/config/content}/saveBase64Image.d.ts +1 -1
- package/dist/esm/utils/{pageConfig → config/content}/saveBase64Image.js +11 -30
- package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.js +12 -34
- package/dist/{cjs/utils → esm/utils/config}/handlePageConfig.d.ts +1 -1
- package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +1 -1
- package/dist/esm/utils/context/buildContext.d.ts +24 -0
- package/dist/esm/utils/context/buildContext.js +53 -0
- package/dist/esm/utils/context/buildFrameMap.d.ts +16 -0
- package/dist/esm/utils/context/buildFrameMap.js +131 -0
- package/dist/esm/utils/context/buildGlobalData.d.ts +13 -0
- package/dist/esm/utils/context/buildGlobalData.js +44 -0
- package/dist/esm/utils/context/collectJSModules.d.ts +37 -0
- package/dist/esm/utils/context/collectJSModules.js +87 -0
- package/dist/esm/utils/context/createEventQueries.d.ts +45 -0
- package/dist/esm/utils/context/createEventQueries.js +98 -0
- package/dist/esm/utils/context/createProvider.d.ts +21 -0
- package/dist/esm/utils/context/createProvider.js +33 -0
- package/dist/esm/utils/index.d.ts +10 -62
- package/dist/esm/utils/index.js +12 -345
- package/dist/{cjs/utils → esm/utils/logic}/handleProcess.d.ts +2 -2
- package/dist/esm/utils/{handleProcess.js → logic/handleProcess.js} +11 -5
- package/dist/esm/utils/logic/processChildren.d.ts +12 -0
- package/dist/esm/utils/logic/processChildren.js +48 -0
- package/dist/esm/utils/style/color.d.ts +4 -0
- package/dist/esm/utils/style/color.js +17 -0
- package/dist/esm/utils/style/converter.d.ts +7 -0
- package/dist/esm/utils/style/converter.js +176 -0
- package/dist/esm/utils/style/types.d.ts +23 -0
- package/dist/esm/utils/style/types.js +1 -0
- package/package.json +1 -1
- package/dist/esm/utils/pageConfig/pageConfig.js +0 -60
- /package/dist/cjs/utils/{pageConfig → config/content}/converter.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/index.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/types.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/validator.d.ts +0 -0
- /package/dist/cjs/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
- /package/dist/cjs/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
- /package/dist/cjs/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
- /package/dist/cjs/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
- /package/dist/cjs/utils/{code → templates}/component.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/index.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/renderManager.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/scene.d.ts +0 -0
- /package/dist/esm/core/comlib/{Index.js → index.js} +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/converter.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/converter.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/index.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/index.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/types.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/types.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/validator.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/validator.js +0 -0
- /package/dist/esm/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
- /package/dist/esm/utils/{convertNamespace.js → logic/convertNamespace.js} +0 -0
- /package/dist/esm/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
- /package/dist/esm/utils/{genJSModules.js → logic/genJSModules.js} +0 -0
- /package/dist/esm/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
- /package/dist/esm/utils/{getComponentClassName.js → style/getComponentClassName.js} +0 -0
- /package/dist/esm/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
- /package/dist/esm/utils/{pxtransform.js → style/pxtransform.js} +0 -0
- /package/dist/esm/utils/{code → templates}/component.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/component.js +0 -0
- /package/dist/esm/utils/{code → templates}/index.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/index.js +0 -0
- /package/dist/esm/utils/{code → templates}/renderManager.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/renderManager.js +0 -0
- /package/dist/esm/utils/{code → templates}/scene.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/scene.js +0 -0
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import * as fs from
|
|
3
|
-
import * as path from
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as path from "path";
|
|
4
4
|
import { findDir, ensureDir } from "./utils/fileNode";
|
|
5
5
|
import { handleCommonDir } from "./utils/commonDir";
|
|
6
6
|
import { handleTabBarImages } from "./utils/tabBarImages";
|
|
7
7
|
import { updateAppConfig } from "./utils/appConfig";
|
|
8
8
|
/**
|
|
9
9
|
* 根据数组生成文件结构 JSON 对象
|
|
10
|
-
* @param
|
|
10
|
+
* @param result 包含 files 和 assets 的生成结果对象
|
|
11
11
|
* @returns 返回文件结构的 JSON 对象数组
|
|
12
12
|
*/
|
|
13
|
-
var generateTaroProjectJson = function generateTaroProjectJson() {
|
|
13
|
+
var generateTaroProjectJson = function generateTaroProjectJson(result) {
|
|
14
14
|
var _pagesDir$children, _srcDir$children;
|
|
15
|
-
var
|
|
15
|
+
var _result$files = result.files,
|
|
16
|
+
files = _result$files === void 0 ? [] : _result$files,
|
|
17
|
+
_result$assets = result.assets,
|
|
18
|
+
assets = _result$assets === void 0 ? {} : _result$assets;
|
|
19
|
+
|
|
16
20
|
// 读取模板 JSON 文件
|
|
17
|
-
var templateJsonPath = path.join(__dirname,
|
|
21
|
+
var templateJsonPath = path.join(__dirname, "../taro-template.json");
|
|
18
22
|
if (!fs.existsSync(templateJsonPath)) {
|
|
19
23
|
throw new Error("\u6A21\u677F\u6587\u4EF6\u4E0D\u5B58\u5728: ".concat(templateJsonPath));
|
|
20
24
|
}
|
|
21
|
-
var templateJson = JSON.parse(fs.readFileSync(templateJsonPath,
|
|
25
|
+
var templateJson = JSON.parse(fs.readFileSync(templateJsonPath, "utf-8"));
|
|
22
26
|
|
|
23
27
|
// 找到 src 目录
|
|
24
28
|
var srcDir = templateJson.find(function (node) {
|
|
25
|
-
return node.path ===
|
|
29
|
+
return node.path === "src";
|
|
26
30
|
});
|
|
27
31
|
srcDir.children = srcDir.children || [];
|
|
28
32
|
|
|
29
33
|
// 找到 pages 目录
|
|
30
|
-
var pagesDir = findDir(templateJson,
|
|
34
|
+
var pagesDir = findDir(templateJson, "src/pages");
|
|
31
35
|
if (!pagesDir) {
|
|
32
|
-
throw new Error(
|
|
36
|
+
throw new Error("未找到 pages 目录");
|
|
33
37
|
}
|
|
34
38
|
pagesDir.children = pagesDir.children || [];
|
|
35
39
|
|
|
36
40
|
// 确保 common 目录存在
|
|
37
|
-
var commonDir = ensureDir(srcDir,
|
|
41
|
+
var commonDir = ensureDir(srcDir, "src/common");
|
|
38
42
|
|
|
39
43
|
// 确保 assets/tabbar 目录存在
|
|
40
|
-
var assetsDir = ensureDir(srcDir,
|
|
41
|
-
var tabbarDir = ensureDir(assetsDir,
|
|
44
|
+
var assetsDir = ensureDir(srcDir, "src/assets");
|
|
45
|
+
var tabbarDir = ensureDir(assetsDir, "src/assets/tabbar");
|
|
42
46
|
|
|
43
|
-
// 从
|
|
44
|
-
var imageFiles =
|
|
47
|
+
// 从 assets 中获取 TabBar 图片文件信息
|
|
48
|
+
var imageFiles = assets.tabBarImages || [];
|
|
45
49
|
|
|
46
50
|
// 过滤出类型为 normal 的项
|
|
47
|
-
var normalItems =
|
|
48
|
-
return item.type ===
|
|
51
|
+
var normalItems = files.filter(function (item) {
|
|
52
|
+
return item.type === "normal";
|
|
49
53
|
});
|
|
50
54
|
|
|
51
55
|
// 处理所有 normal 类型的项,生成页面节点数组
|
|
@@ -54,8 +58,8 @@ var generateTaroProjectJson = function generateTaroProjectJson() {
|
|
|
54
58
|
var pageName = item.meta.id;
|
|
55
59
|
|
|
56
60
|
// 生成完整的文件内容:import 语句 + content
|
|
57
|
-
var importCode = ((_item$importManager = item.importManager) === null || _item$importManager === void 0 ? void 0 : _item$importManager.toCode()) ||
|
|
58
|
-
var fileContent = item.content ||
|
|
61
|
+
var importCode = ((_item$importManager = item.importManager) === null || _item$importManager === void 0 ? void 0 : _item$importManager.toCode()) || "";
|
|
62
|
+
var fileContent = item.content || "";
|
|
59
63
|
var fullContent = importCode ? "".concat(importCode, "\n").concat(fileContent) : fileContent;
|
|
60
64
|
|
|
61
65
|
// 使用 item 中的 pageConfigContent,如果没有则使用默认配置
|
|
@@ -67,7 +71,7 @@ var generateTaroProjectJson = function generateTaroProjectJson() {
|
|
|
67
71
|
content: configContent
|
|
68
72
|
}, {
|
|
69
73
|
path: "src/pages/".concat(pageName, "/index.less"),
|
|
70
|
-
content: item.cssContent ||
|
|
74
|
+
content: item.cssContent || ""
|
|
71
75
|
}, {
|
|
72
76
|
path: "src/pages/".concat(pageName, "/index.tsx"),
|
|
73
77
|
content: fullContent
|
|
@@ -86,17 +90,17 @@ var generateTaroProjectJson = function generateTaroProjectJson() {
|
|
|
86
90
|
|
|
87
91
|
// 更新 app.config.ts
|
|
88
92
|
var appConfigFile = (_srcDir$children = srcDir.children) === null || _srcDir$children === void 0 ? void 0 : _srcDir$children.find(function (node) {
|
|
89
|
-
return node.path ===
|
|
93
|
+
return node.path === "src/app.config.ts";
|
|
90
94
|
});
|
|
91
95
|
if (appConfigFile) {
|
|
92
|
-
updateAppConfig(appConfigFile, normalItems,
|
|
96
|
+
updateAppConfig(appConfigFile, normalItems, files);
|
|
93
97
|
}
|
|
94
98
|
|
|
95
99
|
// 处理 TabBar 图片文件
|
|
96
100
|
handleTabBarImages(tabbarDir, imageFiles);
|
|
97
101
|
|
|
98
102
|
// 处理 common 目录下的文件
|
|
99
|
-
handleCommonDir(commonDir,
|
|
103
|
+
handleCommonDir(commonDir, files);
|
|
100
104
|
return templateJson;
|
|
101
105
|
};
|
|
102
106
|
export default generateTaroProjectJson;
|
package/dist/esm/handleCom.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImportManager } from "./utils";
|
|
2
|
-
import { RenderManager } from "./utils/
|
|
2
|
+
import { RenderManager } from "./utils/templates/renderManager";
|
|
3
3
|
import type { UI, BaseConfig } from "./toCodeTaro";
|
|
4
4
|
export type Com = Extract<UI["children"][0], {
|
|
5
5
|
type: "com";
|
package/dist/esm/handleCom.js
CHANGED
|
@@ -1,54 +1,59 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
import { convertComponentStyle, firstCharToUpperCase,
|
|
6
|
-
import { getUiComponentCode } from "./utils/
|
|
5
|
+
import { convertComponentStyle, firstCharToUpperCase, convertStyleAryToCss, indentation } from "./utils";
|
|
6
|
+
import { getUiComponentCode } from "./utils/templates";
|
|
7
7
|
import handleSlot from "./handleSlot";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { RenderManager } from "./utils/templates/renderManager";
|
|
9
|
+
import { processComEvents } from "./processors/processComEvents";
|
|
10
|
+
import { genSlotRenderRef, formatSlotContent } from "./utils/templates/component";
|
|
11
11
|
var handleCom = function handleCom(com, config) {
|
|
12
|
-
var _config$getComponentC, _scene$coms, _props$style;
|
|
13
12
|
var meta = com.meta,
|
|
14
|
-
props = com.props
|
|
15
|
-
slots = com.slots,
|
|
16
|
-
events = com.events;
|
|
17
|
-
var isModule = meta.def.namespace.startsWith("mybricks.taro.module");
|
|
18
|
-
var _config$getComponentM = config.getComponentMeta(meta),
|
|
19
|
-
importInfo = _config$getComponentM.importInfo,
|
|
20
|
-
callName = _config$getComponentM.callName;
|
|
13
|
+
props = com.props;
|
|
21
14
|
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var _props$data, _props$data2, _props$data3;
|
|
26
|
-
// 收集 JS 计算组件信息
|
|
27
|
-
// 优先使用原始代码(code),而不是转译后的代码(transformCode),避免包含 Babel 辅助函数
|
|
28
|
-
var transformCode = ((_props$data = props.data) === null || _props$data === void 0 || (_props$data = _props$data.fns) === null || _props$data === void 0 ? void 0 : _props$data.code) || ((_props$data2 = props.data) === null || _props$data2 === void 0 || (_props$data2 = _props$data2.fns) === null || _props$data2 === void 0 ? void 0 : _props$data2.transformCode) || ((_props$data3 = props.data) === null || _props$data3 === void 0 ? void 0 : _props$data3.fns);
|
|
29
|
-
if (transformCode && config.addJSModule) {
|
|
30
|
-
var _meta$model, _meta$model2;
|
|
31
|
-
config.addJSModule({
|
|
32
|
-
id: meta.id,
|
|
33
|
-
title: meta.title || "JS计算",
|
|
34
|
-
transformCode: typeof transformCode === 'string' ? transformCode : '',
|
|
35
|
-
inputs: ((_meta$model = meta.model) === null || _meta$model === void 0 ? void 0 : _meta$model.inputs) || [],
|
|
36
|
-
outputs: ((_meta$model2 = meta.model) === null || _meta$model2 === void 0 ? void 0 : _meta$model2.outputs) || [],
|
|
37
|
-
data: props.data || {}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
// JS 计算组件:不引入组件,在调用时使用 jsModules
|
|
41
|
-
return {
|
|
42
|
-
slots: [],
|
|
43
|
-
scopeSlots: [],
|
|
44
|
-
ui: '',
|
|
45
|
-
js: '',
|
|
46
|
-
cssContent: '',
|
|
47
|
-
outputsConfig: undefined
|
|
48
|
-
};
|
|
15
|
+
// 1. 处理 JS 计算组件
|
|
16
|
+
if (isJsCalculation(meta)) {
|
|
17
|
+
return handleJsCalculation(com, config);
|
|
49
18
|
}
|
|
50
19
|
|
|
51
|
-
//
|
|
20
|
+
// 2. 注册到 Provider 并获取元信息
|
|
21
|
+
var _prepareComponent = prepareComponent(com, config),
|
|
22
|
+
componentName = _prepareComponent.componentName,
|
|
23
|
+
eventHandlers = _prepareComponent.eventHandlers,
|
|
24
|
+
comEventCode = _prepareComponent.comEventCode;
|
|
25
|
+
|
|
26
|
+
// 3. 处理样式
|
|
27
|
+
var _prepareStyles = prepareStyles(com),
|
|
28
|
+
cssContent = _prepareStyles.cssContent,
|
|
29
|
+
rootStyle = _prepareStyles.rootStyle;
|
|
30
|
+
|
|
31
|
+
// 4. 处理插槽
|
|
32
|
+
var _processComSlots = processComSlots(com, config, cssContent),
|
|
33
|
+
slotsCode = _processComSlots.slotsCode,
|
|
34
|
+
accumulatedCssContent = _processComSlots.accumulatedCssContent,
|
|
35
|
+
eventCode = _processComSlots.eventCode;
|
|
36
|
+
|
|
37
|
+
// 5. 生成组件 UI 代码
|
|
38
|
+
var ui = generateUiCode(com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers);
|
|
39
|
+
return {
|
|
40
|
+
slots: [],
|
|
41
|
+
scopeSlots: [],
|
|
42
|
+
ui: ui,
|
|
43
|
+
js: eventCode,
|
|
44
|
+
cssContent: accumulatedCssContent,
|
|
45
|
+
outputsConfig: Object.keys(eventHandlers).length > 0 ? _defineProperty({}, meta.id, eventHandlers) : undefined
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 准备组件信息
|
|
51
|
+
*/
|
|
52
|
+
var prepareComponent = function prepareComponent(com, config) {
|
|
53
|
+
var meta = com.meta;
|
|
54
|
+
var _config$getComponentM = config.getComponentMeta(meta),
|
|
55
|
+
importInfo = _config$getComponentM.importInfo,
|
|
56
|
+
callName = _config$getComponentM.callName;
|
|
52
57
|
var componentName = firstCharToUpperCase(callName || importInfo.name);
|
|
53
58
|
var importName = firstCharToUpperCase(importInfo.name);
|
|
54
59
|
config.addParentDependencyImport({
|
|
@@ -57,241 +62,151 @@ var handleCom = function handleCom(com, config) {
|
|
|
57
62
|
importType: importInfo.type
|
|
58
63
|
});
|
|
59
64
|
var currentProvider = config.getCurrentProvider();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
currentProvider.coms.add(meta.id);
|
|
66
|
+
currentProvider.controllers.add(meta.id);
|
|
67
|
+
var _processComEvents = processComEvents(com, config),
|
|
68
|
+
comEventCode = _processComEvents.comEventCode,
|
|
69
|
+
outputsConfig = _processComEvents.outputsConfig;
|
|
70
|
+
return {
|
|
71
|
+
componentName: componentName,
|
|
72
|
+
eventHandlers: outputsConfig[meta.id] || {},
|
|
73
|
+
comEventCode: comEventCode
|
|
74
|
+
};
|
|
75
|
+
};
|
|
67
76
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
/**
|
|
78
|
+
* 准备样式
|
|
79
|
+
*/
|
|
80
|
+
var prepareStyles = function prepareStyles(com) {
|
|
81
|
+
var _props$style;
|
|
82
|
+
var meta = com.meta,
|
|
83
|
+
props = com.props;
|
|
84
|
+
var resultStyle = convertComponentStyle(props.style);
|
|
85
|
+
var cssContent = convertStyleAryToCss((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.styleAry, meta.id);
|
|
86
|
+
return {
|
|
87
|
+
cssContent: cssContent,
|
|
88
|
+
rootStyle: resultStyle.root || {}
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 生成 UI 代码
|
|
94
|
+
*/
|
|
95
|
+
var generateUiCode = function generateUiCode(com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers) {
|
|
96
|
+
var _scene$coms;
|
|
97
|
+
var meta = com.meta,
|
|
98
|
+
props = com.props;
|
|
71
99
|
var scene = config.getCurrentScene();
|
|
72
100
|
var sceneCom = (_scene$coms = scene.coms) === null || _scene$coms === void 0 ? void 0 : _scene$coms[meta.id];
|
|
73
|
-
|
|
74
|
-
// 恢复:使用实例级激活的 inputs(无论是否连线)
|
|
75
101
|
var componentInputs = (sceneCom === null || sceneCom === void 0 ? void 0 : sceneCom.inputs) || [];
|
|
76
102
|
var componentOutputs = (sceneCom === null || sceneCom === void 0 ? void 0 : sceneCom.outputs) || meta.outputs || [];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
isAbstract = eventInfo.isAbstract,
|
|
94
|
-
diagramId = eventInfo.diagramId,
|
|
95
|
-
schema = eventInfo.schema,
|
|
96
|
-
active = eventInfo.active;
|
|
97
|
-
if (active === false) return; // 过滤未激活的事件
|
|
98
|
-
|
|
99
|
-
if (isAbstract) {
|
|
100
|
-
config.setAbstractEventTypeDefMap({
|
|
101
|
-
comId: com.meta.id,
|
|
102
|
-
eventId: eventId,
|
|
103
|
-
typeDef: config.getTypeDef(),
|
|
104
|
-
schema: schema
|
|
105
|
-
});
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (type === "fx") {
|
|
109
|
-
var fxsMap = config.getFxsMap();
|
|
110
|
-
var _currentProvider = config.getCurrentProvider();
|
|
111
|
-
var _scene = config.getCurrentScene();
|
|
112
|
-
var pinProxy = _scene.pinProxies["".concat(props.id, "-").concat(eventId)];
|
|
113
|
-
var fxProvider = fxsMap[pinProxy.frameId];
|
|
114
|
-
var isGlobal = fxProvider.name === "global";
|
|
115
|
-
if (fxProvider.name !== _currentProvider.name) {
|
|
116
|
-
if (isGlobal) {
|
|
117
|
-
config.addParentDependencyImport({
|
|
118
|
-
packageName: config.getComponentPackageName(),
|
|
119
|
-
dependencyNames: ["globalFxs"],
|
|
120
|
-
importType: "named"
|
|
121
|
-
});
|
|
122
|
-
} else {
|
|
123
|
-
config.addConsumer(fxProvider);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
var _indent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
127
|
-
comEventCode += "".concat(_indent).concat(eventId, ": ").concat(isGlobal ? "globalFxs" : "comRefs.current.".concat(fxProvider.name, "_Fxs"), ".").concat(pinProxy.frameId, ",\n");
|
|
128
|
-
// 收集 fx 类型的 outputs 配置
|
|
129
|
-
eventConfig[eventId] = {
|
|
130
|
-
connected: true
|
|
131
|
-
};
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
if (type !== "defined") {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
if (!diagramId) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
var event = config.getEventByDiagramId(diagramId);
|
|
141
|
-
if (!event) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// 事件处理函数的参数名
|
|
146
|
-
var paramName = "value";
|
|
147
|
-
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
148
|
-
target: 'comRefs.current',
|
|
149
|
-
depth: config.depth + 3,
|
|
150
|
-
addParentDependencyImport: config.addParentDependencyImport,
|
|
151
|
-
getParams: function getParams() {
|
|
152
|
-
// 返回参数名,这样在 process 中会使用这个变量名
|
|
153
|
-
return _defineProperty({}, eventId, paramName);
|
|
154
|
-
}
|
|
155
|
-
})).replace(/this\./g, 'comRefs.current.').replace(/comRefs\.current\.([a-zA-Z0-9_]+)\.controller_/g, 'comRefs.current.$1.').replace(/comRefs\.current\.slot_Index\./g, 'comRefs.current.'); // 移除 slot_Index 作用域
|
|
156
|
-
|
|
157
|
-
if (process.includes("pageParams")) {
|
|
158
|
-
config.addParentDependencyImport({
|
|
159
|
-
packageName: config.getComponentPackageName(),
|
|
160
|
-
dependencyNames: ["page"],
|
|
161
|
-
importType: "named"
|
|
162
|
-
});
|
|
163
|
-
process = indentation(config.codeStyle.indent * (config.depth + 3)) + "const pageParams: any = page.getParams(\"".concat(config.getCurrentScene().id, "\");\n") + process;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// 生成事件处理函数代码(参照鸿蒙的实现方式)
|
|
167
|
-
// handlerCode 应该是函数体代码,不包含事件名
|
|
168
|
-
var handlerCode = "(".concat(paramName, ": any) => {\n").concat(process, "\n").concat(indentation(config.codeStyle.indent * (config.depth + 2)), "}");
|
|
169
|
-
if (!outputsConfig[meta.id]) {
|
|
170
|
-
outputsConfig[meta.id] = {};
|
|
171
|
-
}
|
|
172
|
-
// 将事件名转换为 onXxx 格式(onClick, onScroll 等)
|
|
173
|
-
// 如果 eventId 已经是 onXxx 格式,直接使用;否则转换为 onXxx
|
|
174
|
-
var onEventName = eventId.startsWith('on') ? eventId : "on".concat(eventId.charAt(0).toUpperCase()).concat(eventId.slice(1));
|
|
175
|
-
outputsConfig[meta.id][onEventName] = handlerCode;
|
|
176
|
-
|
|
177
|
-
// 收集 defined 类型的 outputs 配置
|
|
178
|
-
eventConfig[eventId] = {
|
|
179
|
-
connected: true
|
|
180
|
-
};
|
|
103
|
+
return getUiComponentCode({
|
|
104
|
+
componentName: componentName,
|
|
105
|
+
meta: meta,
|
|
106
|
+
props: props,
|
|
107
|
+
resultStyle: {
|
|
108
|
+
root: rootStyle
|
|
109
|
+
},
|
|
110
|
+
componentInputs: componentInputs.length > 0 ? componentInputs : undefined,
|
|
111
|
+
componentOutputs: componentOutputs.length > 0 ? componentOutputs : undefined,
|
|
112
|
+
comEventCode: comEventCode,
|
|
113
|
+
slotsCode: slotsCode,
|
|
114
|
+
eventHandlers: eventHandlers
|
|
115
|
+
}, {
|
|
116
|
+
codeStyle: config.codeStyle,
|
|
117
|
+
depth: config.depth + 1,
|
|
118
|
+
verbose: config.verbose
|
|
181
119
|
});
|
|
182
|
-
|
|
183
|
-
|
|
120
|
+
};
|
|
121
|
+
var isJsCalculation = function isJsCalculation(meta) {
|
|
122
|
+
return meta.def.namespace === "mybricks.taro._muilt-inputJs" || meta.def.namespace === "mybricks.core-comlib.js-ai";
|
|
123
|
+
};
|
|
184
124
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
125
|
+
/**
|
|
126
|
+
* 处理 JS 计算组件
|
|
127
|
+
*/
|
|
128
|
+
var handleJsCalculation = function handleJsCalculation(com, config) {
|
|
129
|
+
var _props$data, _props$data2, _props$data3;
|
|
130
|
+
var meta = com.meta,
|
|
131
|
+
props = com.props;
|
|
132
|
+
var transformCode = ((_props$data = props.data) === null || _props$data === void 0 || (_props$data = _props$data.fns) === null || _props$data === void 0 ? void 0 : _props$data.code) || ((_props$data2 = props.data) === null || _props$data2 === void 0 || (_props$data2 = _props$data2.fns) === null || _props$data2 === void 0 ? void 0 : _props$data2.transformCode) || ((_props$data3 = props.data) === null || _props$data3 === void 0 ? void 0 : _props$data3.fns);
|
|
133
|
+
if (transformCode && config.addJSModule) {
|
|
134
|
+
var _meta$model, _meta$model2;
|
|
135
|
+
config.addJSModule({
|
|
136
|
+
id: meta.id,
|
|
137
|
+
title: meta.title || "JS计算",
|
|
138
|
+
transformCode: typeof transformCode === "string" ? transformCode : "",
|
|
139
|
+
inputs: ((_meta$model = meta.model) === null || _meta$model === void 0 ? void 0 : _meta$model.inputs) || [],
|
|
140
|
+
outputs: ((_meta$model2 = meta.model) === null || _meta$model2 === void 0 ? void 0 : _meta$model2.outputs) || [],
|
|
141
|
+
data: props.data || {}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
slots: [],
|
|
146
|
+
scopeSlots: [],
|
|
147
|
+
ui: "",
|
|
148
|
+
js: "",
|
|
149
|
+
cssContent: "",
|
|
150
|
+
outputsConfig: undefined
|
|
151
|
+
};
|
|
152
|
+
};
|
|
189
153
|
|
|
190
|
-
|
|
154
|
+
/**
|
|
155
|
+
* 处理组件插槽
|
|
156
|
+
*/
|
|
157
|
+
var processComSlots = function processComSlots(com, config, initialCss) {
|
|
158
|
+
var meta = com.meta,
|
|
159
|
+
props = com.props,
|
|
160
|
+
slots = com.slots;
|
|
191
161
|
var slotsCode = "";
|
|
192
|
-
var accumulatedCssContent =
|
|
193
|
-
var
|
|
194
|
-
var renderManager = config.renderManager || new RenderManager();
|
|
162
|
+
var accumulatedCssContent = initialCss;
|
|
163
|
+
var eventCode = "";
|
|
195
164
|
if (slots) {
|
|
196
|
-
|
|
197
|
-
// 参照鸿蒙的思考方式:非作用域插槽直接处理,作用域插槽需要特殊处理
|
|
198
|
-
var slotsObjectCode = "";
|
|
165
|
+
var renderManager = config.renderManager || new RenderManager();
|
|
199
166
|
var slotEntries = Object.entries(slots);
|
|
200
|
-
slotEntries.forEach(function (
|
|
167
|
+
slotEntries.forEach(function (_ref2, index) {
|
|
201
168
|
var _props$style2;
|
|
202
|
-
var
|
|
203
|
-
slotId =
|
|
204
|
-
slot =
|
|
205
|
-
// 尝试从 props.style.slots 中获取原始 layout 信息
|
|
169
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
170
|
+
slotId = _ref3[0],
|
|
171
|
+
slot = _ref3[1];
|
|
206
172
|
var rawSlotInfo = (_props$style2 = props.style) === null || _props$style2 === void 0 || (_props$style2 = _props$style2.slots) === null || _props$style2 === void 0 ? void 0 : _props$style2[slotId];
|
|
207
173
|
if (rawSlotInfo !== null && rawSlotInfo !== void 0 && rawSlotInfo.layout) {
|
|
208
174
|
slot.layout = rawSlotInfo.layout;
|
|
209
175
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
})),
|
|
221
|
-
js = _handleSlot.js,
|
|
222
|
-
ui = _handleSlot.ui,
|
|
223
|
-
slotCssContent = _handleSlot.cssContent;
|
|
224
|
-
eventCode += js;
|
|
225
|
-
if (slotCssContent) {
|
|
226
|
-
accumulatedCssContent += (accumulatedCssContent ? "\n" : "") + slotCssContent;
|
|
176
|
+
var result = handleSlot(slot, _objectSpread(_objectSpread({}, config), {}, {
|
|
177
|
+
checkIsRoot: function checkIsRoot() {
|
|
178
|
+
return false;
|
|
179
|
+
},
|
|
180
|
+
depth: 1,
|
|
181
|
+
renderManager: renderManager
|
|
182
|
+
}));
|
|
183
|
+
eventCode += result.js;
|
|
184
|
+
if (result.cssContent) {
|
|
185
|
+
accumulatedCssContent += (accumulatedCssContent ? "\n" : "") + result.cssContent;
|
|
227
186
|
}
|
|
228
|
-
|
|
229
|
-
// 生成 render 函数ID:组件ID_插槽ID
|
|
230
187
|
var renderId = "".concat(meta.id, "_").concat(slotId);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
var baseIndentSize = config.codeStyle.indent; // 通常是 2
|
|
234
|
-
// render 函数定义在根组件内部,缩进是根组件的缩进(通常是 2 个空格)
|
|
235
|
-
// render 函数体内部的缩进 = 根组件缩进(2个空格) + 函数体内部缩进(2个空格)= 4个空格
|
|
236
|
-
var rootIndent = config.codeStyle.indent; // 根组件缩进
|
|
188
|
+
var baseIndentSize = config.codeStyle.indent;
|
|
189
|
+
var rootIndent = config.codeStyle.indent;
|
|
237
190
|
var renderBodyIndent = indentation(rootIndent + config.codeStyle.indent);
|
|
238
191
|
var formattedContent = formatSlotContent({
|
|
239
|
-
uiContent: ui,
|
|
192
|
+
uiContent: result.ui,
|
|
240
193
|
baseIndentSize: baseIndentSize,
|
|
241
194
|
renderBodyIndent: renderBodyIndent
|
|
242
195
|
});
|
|
243
|
-
|
|
244
|
-
// 注册 render 函数到 renderManager
|
|
245
196
|
renderManager.register(renderId, formattedContent);
|
|
246
|
-
|
|
247
|
-
// 生成插槽渲染函数引用
|
|
248
197
|
var slotIndent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
249
|
-
|
|
198
|
+
slotsCode += genSlotRenderRef({
|
|
250
199
|
slotId: slotId,
|
|
251
200
|
renderId: renderId,
|
|
252
201
|
indent: slotIndent,
|
|
253
202
|
isLast: index === slotEntries.length - 1
|
|
254
203
|
});
|
|
255
204
|
});
|
|
256
|
-
slotsCode = slotsObjectCode;
|
|
257
|
-
// render 函数定义代码会在根组件级别统一生成,这里不需要单独生成
|
|
258
205
|
}
|
|
259
|
-
|
|
260
|
-
// 使用 getUiComponentCode 函数生成组件代码
|
|
261
|
-
var componentResultStyle = _objectSpread({}, resultStyle);
|
|
262
|
-
var rootStyle = componentResultStyle.root || {};
|
|
263
|
-
delete componentResultStyle.root;
|
|
264
|
-
|
|
265
|
-
// 从 outputsConfig 中提取事件处理函数
|
|
266
|
-
var eventHandlers = outputsConfig[meta.id] || {};
|
|
267
|
-
var uiComponentCode = getUiComponentCode({
|
|
268
|
-
componentName: componentName,
|
|
269
|
-
meta: meta,
|
|
270
|
-
props: props,
|
|
271
|
-
resultStyle: {
|
|
272
|
-
root: rootStyle
|
|
273
|
-
},
|
|
274
|
-
// 传递 root style
|
|
275
|
-
componentInputs: componentInputs.length > 0 ? componentInputs : undefined,
|
|
276
|
-
componentOutputs: componentOutputs.length > 0 ? componentOutputs : undefined,
|
|
277
|
-
comEventCode: comEventCode,
|
|
278
|
-
slotsCode: slotsCode,
|
|
279
|
-
eventHandlers: eventHandlers // 传递事件处理函数
|
|
280
|
-
}, {
|
|
281
|
-
codeStyle: config.codeStyle,
|
|
282
|
-
depth: config.depth + 1,
|
|
283
|
-
verbose: config.verbose
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
// WithCom 内部已经包含了 View 包装,不需要外层再包一层 View
|
|
287
|
-
var ui = uiComponentCode;
|
|
288
206
|
return {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
js: eventCode,
|
|
293
|
-
cssContent: accumulatedCssContent,
|
|
294
|
-
outputsConfig: Object.keys(outputsConfig).length > 0 ? outputsConfig : undefined
|
|
207
|
+
slotsCode: slotsCode,
|
|
208
|
+
accumulatedCssContent: accumulatedCssContent,
|
|
209
|
+
eventCode: eventCode
|
|
295
210
|
};
|
|
296
211
|
};
|
|
297
212
|
export default handleCom;
|
package/dist/esm/handleDom.js
CHANGED
|
@@ -1,62 +1,23 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
2
|
import { indentation, convertStyleAryToCss, convertRootStyle } from "./utils";
|
|
4
|
-
import
|
|
3
|
+
import { processChildren } from "./utils/logic/processChildren";
|
|
5
4
|
var handleDom = function handleDom(dom, config) {
|
|
6
5
|
var _domProps$style;
|
|
7
6
|
var props = dom.props,
|
|
8
7
|
children = dom.children;
|
|
9
|
-
var domProps = props;
|
|
10
|
-
var
|
|
11
|
-
var jsCode = "";
|
|
12
|
-
var cssContent = convertStyleAryToCss((_domProps$style = domProps.style) === null || _domProps$style === void 0 ? void 0 : _domProps$style.styleAry, domProps.id);
|
|
13
|
-
var level0Slots = [];
|
|
14
|
-
var level1Slots = [];
|
|
15
|
-
var nextConfig = _objectSpread(_objectSpread({}, config), {}, {
|
|
8
|
+
var domProps = props;
|
|
9
|
+
var childResults = processChildren(children, _objectSpread(_objectSpread({}, config), {}, {
|
|
16
10
|
depth: config.depth + 1
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
if (child.type === "com") {
|
|
20
|
-
var _handleCom = handleCom(child, nextConfig),
|
|
21
|
-
_ui = _handleCom.ui,
|
|
22
|
-
js = _handleCom.js,
|
|
23
|
-
slots = _handleCom.slots,
|
|
24
|
-
scopeSlots = _handleCom.scopeSlots,
|
|
25
|
-
childCssContent = _handleCom.cssContent;
|
|
26
|
-
uiCode += uiCode ? "\n" + _ui : _ui;
|
|
27
|
-
jsCode += js;
|
|
28
|
-
if (childCssContent) {
|
|
29
|
-
cssContent += (cssContent ? "\n" : "") + childCssContent;
|
|
30
|
-
}
|
|
31
|
-
level0Slots.push.apply(level0Slots, _toConsumableArray(slots));
|
|
32
|
-
level1Slots.push.apply(level1Slots, _toConsumableArray(scopeSlots));
|
|
33
|
-
} else if (child.type === "module") {
|
|
34
|
-
// 模块处理
|
|
35
|
-
uiCode += uiCode ? "\n" + "模块" : "模块";
|
|
36
|
-
} else {
|
|
37
|
-
var _handleDom = handleDom(child, nextConfig),
|
|
38
|
-
_ui2 = _handleDom.ui,
|
|
39
|
-
_js = _handleDom.js,
|
|
40
|
-
_slots = _handleDom.slots,
|
|
41
|
-
_scopeSlots = _handleDom.scopeSlots,
|
|
42
|
-
_childCssContent = _handleDom.cssContent;
|
|
43
|
-
uiCode += uiCode ? "\n" + _ui2 : _ui2;
|
|
44
|
-
jsCode += _js;
|
|
45
|
-
if (_childCssContent) {
|
|
46
|
-
cssContent += (cssContent ? "\n" : "") + _childCssContent;
|
|
47
|
-
}
|
|
48
|
-
level0Slots.push.apply(level0Slots, _toConsumableArray(_slots));
|
|
49
|
-
level1Slots.push.apply(level1Slots, _toConsumableArray(_scopeSlots));
|
|
50
|
-
}
|
|
51
|
-
});
|
|
11
|
+
}));
|
|
12
|
+
var cssContent = (convertStyleAryToCss((_domProps$style = domProps.style) === null || _domProps$style === void 0 ? void 0 : _domProps$style.styleAry, domProps.id) || "") + (childResults.cssContent ? "\n" + childResults.cssContent : "");
|
|
52
13
|
var indent = indentation(config.codeStyle.indent * config.depth);
|
|
53
14
|
var styleCode = JSON.stringify(convertRootStyle(domProps.style));
|
|
54
|
-
var ui = "".concat(indent, "<View").concat(domProps.id ? " id=\"".concat(domProps.id, "\" className=\"").concat(domProps.id, "\"") : "", " style={").concat(styleCode, "}>\n").concat(
|
|
15
|
+
var ui = "".concat(indent, "<View").concat(domProps.id ? " id=\"".concat(domProps.id, "\" className=\"").concat(domProps.id, "\"") : "", " style={").concat(styleCode, "}>\n").concat(childResults.ui, "\n").concat(indent, "</View>");
|
|
55
16
|
return {
|
|
56
17
|
ui: ui,
|
|
57
|
-
js:
|
|
58
|
-
slots:
|
|
59
|
-
scopeSlots:
|
|
18
|
+
js: childResults.js,
|
|
19
|
+
slots: childResults.slots,
|
|
20
|
+
scopeSlots: childResults.scopeSlots,
|
|
60
21
|
cssContent: cssContent
|
|
61
22
|
};
|
|
62
23
|
};
|