@mybricks/to-code-taro 1.0.2 → 1.0.4
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/_AesEncode.js +115 -0
- package/dist/cjs/core/comlib/_BackTo.js +80 -0
- package/dist/cjs/core/comlib/{Index.js → _CallPhone.js} +29 -16
- package/dist/cjs/core/comlib/_ChooseFile.js +103 -0
- package/dist/cjs/core/comlib/_ChooseMedia.js +70 -0
- package/dist/cjs/core/comlib/_Connector.js +92 -0
- package/dist/cjs/core/comlib/_ConnectorGlobalHeaders.js +79 -0
- package/dist/cjs/core/comlib/_Format.js +123 -0
- package/dist/cjs/core/comlib/_GetLocation.js +60 -0
- package/dist/cjs/core/comlib/_GetStorage.js +68 -0
- package/dist/cjs/core/comlib/_GetSystemInfo.js +62 -0
- package/dist/cjs/core/comlib/_OpenCamera.js +73 -0
- package/dist/cjs/core/comlib/_OpenPetalMap.js +49 -0
- package/dist/cjs/core/comlib/_OpenUrl.js +62 -0
- package/dist/cjs/core/comlib/_RemoveStorage.js +68 -0
- package/dist/cjs/core/comlib/_Router.js +100 -0
- package/dist/cjs/core/comlib/_ScanQrcode.js +9 -10
- package/dist/cjs/core/comlib/_SetStorage.js +10 -19
- package/dist/cjs/core/comlib/_Share.js +58 -0
- package/dist/cjs/core/comlib/_ShowToast.js +23 -50
- package/dist/cjs/core/comlib/_TextToSpeech.js +120 -0
- package/dist/cjs/core/comlib/_TimerDebounce.js +72 -0
- package/dist/cjs/core/comlib/_TimerDelay.js +63 -0
- package/dist/cjs/core/comlib/_TimerThrottle.js +75 -0
- package/dist/cjs/core/comlib/_Vibrate.js +60 -0
- package/dist/cjs/core/comlib/index.js +111 -0
- package/dist/cjs/core/mybricks/index.js +47 -47
- package/dist/cjs/core/utils/ComContext.js +3 -0
- package/dist/cjs/core/utils/PopupRenderer.js +63 -0
- package/dist/cjs/core/utils/hooks.js +131 -0
- package/dist/cjs/core/utils/index.js +33 -57
- package/dist/cjs/core/utils/pageRouter.js +81 -0
- package/dist/cjs/core/utils/popupRouter.js +98 -0
- package/dist/cjs/core/utils/useContext.js +11 -2
- package/dist/cjs/core/utils/with.js +37 -13
- package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/cjs/generate/generateTaroProjectJson.js +39 -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 +4 -9
- package/dist/cjs/handleSlot.js +61 -150
- package/dist/cjs/processors/processComEvents.d.ts +9 -0
- package/dist/cjs/processors/processComEvents.js +164 -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 +128 -0
- package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
- package/dist/cjs/processors/processSceneLogic.js +170 -0
- package/dist/cjs/shims-taro.d.ts +20 -0
- package/dist/cjs/taro-template.json +501 -351
- package/dist/cjs/toCodeTaro.d.ts +27 -6
- package/dist/cjs/toCodeTaro.js +68 -340
- package/dist/cjs/utils/builder/buildResult.d.ts +22 -0
- package/dist/cjs/utils/builder/buildResult.js +117 -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 +3 -2
- package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +7 -6
- 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} +40 -16
- 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.d.ts +3 -1
- package/dist/cjs/utils/{code → templates}/scene.js +17 -5
- package/dist/esm/core/comlib/_AesEncode.js +85 -0
- package/dist/esm/core/comlib/_BackTo.js +66 -0
- package/dist/esm/core/comlib/_CallPhone.js +30 -0
- package/dist/esm/core/comlib/_ChooseFile.js +81 -0
- package/dist/esm/core/comlib/_ChooseMedia.js +38 -0
- package/dist/esm/core/comlib/_Connector.js +60 -0
- package/dist/esm/core/comlib/_ConnectorGlobalHeaders.js +56 -0
- package/dist/esm/core/comlib/_Format.js +102 -0
- package/dist/esm/core/comlib/_GetLocation.js +26 -0
- package/dist/esm/core/comlib/_GetStorage.js +44 -0
- package/dist/esm/core/comlib/_GetSystemInfo.js +32 -0
- package/dist/esm/core/comlib/_OpenCamera.js +44 -0
- package/dist/esm/core/comlib/_OpenPetalMap.js +28 -0
- package/dist/esm/core/comlib/_OpenUrl.js +36 -0
- package/dist/esm/core/comlib/_RemoveStorage.js +42 -0
- package/dist/esm/core/comlib/_Router.js +113 -0
- package/dist/esm/core/comlib/_ScanQrcode.js +10 -11
- package/dist/esm/core/comlib/_SetStorage.js +13 -25
- package/dist/esm/core/comlib/_Share.js +28 -0
- package/dist/esm/core/comlib/_ShowToast.js +32 -55
- package/dist/esm/core/comlib/_TextToSpeech.js +117 -0
- package/dist/esm/core/comlib/_TimerDebounce.js +66 -0
- package/dist/esm/core/comlib/_TimerDelay.js +47 -0
- package/dist/esm/core/comlib/_TimerThrottle.js +69 -0
- package/dist/esm/core/comlib/_Vibrate.js +34 -0
- package/dist/esm/core/comlib/index.js +37 -0
- package/dist/esm/core/mybricks/index.js +1 -1
- package/dist/esm/core/utils/ComContext.js +1 -0
- package/dist/esm/core/utils/PopupRenderer.js +27 -0
- package/dist/esm/core/utils/hooks.js +130 -0
- package/dist/esm/core/utils/index.js +8 -57
- package/dist/esm/core/utils/pageRouter.js +69 -0
- package/dist/esm/core/utils/popupRouter.js +116 -0
- package/dist/esm/core/utils/useContext.js +16 -3
- package/dist/esm/core/utils/with.js +62 -19
- package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/esm/generate/generateTaroProjectJson.js +62 -24
- 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 +4 -9
- package/dist/esm/handleSlot.js +112 -173
- package/dist/esm/processors/processComEvents.d.ts +9 -0
- package/dist/esm/processors/processComEvents.js +167 -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 +134 -0
- package/dist/esm/processors/processSceneLogic.d.ts +4 -0
- package/dist/esm/processors/processSceneLogic.js +170 -0
- package/dist/esm/shims-taro.d.ts +20 -0
- package/dist/esm/taro-template.json +501 -351
- package/dist/esm/toCodeTaro.d.ts +27 -6
- package/dist/esm/toCodeTaro.js +110 -395
- package/dist/esm/utils/builder/buildResult.d.ts +22 -0
- package/dist/esm/utils/builder/buildResult.js +82 -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 +3 -2
- package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +6 -2
- 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 +99 -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} +42 -9
- 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/dist/esm/utils/{code → templates}/scene.d.ts +3 -1
- package/dist/esm/utils/{code → templates}/scene.js +13 -5
- package/package.json +4 -2
- package/dist/esm/core/comlib/Index.js +0 -3
- 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/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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 构建最终结果
|
|
3
|
+
* 包括抽象事件类型定义、JS 模块、TabBar 配置等
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { ImportManager } from "../common/ImportManager";
|
|
7
|
+
import abstractEventTypeDef from "../../abstractEventTypeDef";
|
|
8
|
+
import { genJSModules } from "../logic/genJSModules";
|
|
9
|
+
/**
|
|
10
|
+
* 构建最终结果
|
|
11
|
+
*/
|
|
12
|
+
export var buildFinalResults = function buildFinalResults(params) {
|
|
13
|
+
var abstractEventTypeDefMap = params.abstractEventTypeDefMap,
|
|
14
|
+
jsModulesMap = params.jsModulesMap,
|
|
15
|
+
globalTabBarConfig = params.globalTabBarConfig,
|
|
16
|
+
tabBarImageFiles = params.tabBarImageFiles,
|
|
17
|
+
popupIds = params.popupIds,
|
|
18
|
+
config = params.config;
|
|
19
|
+
var files = [];
|
|
20
|
+
|
|
21
|
+
// 添加抽象事件类型定义
|
|
22
|
+
files.push({
|
|
23
|
+
type: "abstractEventTypeDef",
|
|
24
|
+
content: abstractEventTypeDef(abstractEventTypeDefMap, config),
|
|
25
|
+
importManager: new ImportManager(config),
|
|
26
|
+
name: "abstractEventTypeDef"
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// 生成 JSModules.ts 文件
|
|
30
|
+
files.push({
|
|
31
|
+
type: "jsModules",
|
|
32
|
+
content: genJSModules(Array.from(jsModulesMap.values())),
|
|
33
|
+
importManager: new ImportManager(config),
|
|
34
|
+
name: "JSModules"
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// 生成 common/index.ts 文件(初始化并导出 jsModules)
|
|
38
|
+
if (jsModulesMap.size > 0) {
|
|
39
|
+
var commonIndexContent = "import jsModulesGenerator from \"./jsModules\";\nimport { createJSHandle } from \"../core/mybricks/index\";\n\nconst jsModules: Record<string, (props: any, appContext: any) => any> = jsModulesGenerator({ createJSHandle });\n\nexport { jsModules };\n";
|
|
40
|
+
files.push({
|
|
41
|
+
type: "commonIndex",
|
|
42
|
+
content: commonIndexContent,
|
|
43
|
+
importManager: new ImportManager(config),
|
|
44
|
+
name: "commonIndex"
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// 生成弹窗汇总文件 (popup.ts)
|
|
49
|
+
if (popupIds.length > 0) {
|
|
50
|
+
var registryContent = "";
|
|
51
|
+
popupIds.forEach(function (id) {
|
|
52
|
+
registryContent += "import Scene_".concat(id, " from '../popupComponents/").concat(id, "/index';\n");
|
|
53
|
+
});
|
|
54
|
+
registryContent += "\nexport const POPUP_MAP: Record<string, any> = {\n";
|
|
55
|
+
popupIds.forEach(function (id) {
|
|
56
|
+
registryContent += " '".concat(id, "': Scene_").concat(id, ",\n");
|
|
57
|
+
});
|
|
58
|
+
registryContent += "};\n\n";
|
|
59
|
+
registryContent += "export const POPUP_IDS = ".concat(JSON.stringify(popupIds), ";\n");
|
|
60
|
+
files.push({
|
|
61
|
+
type: "popup",
|
|
62
|
+
content: registryContent,
|
|
63
|
+
importManager: new ImportManager(config),
|
|
64
|
+
name: "popup"
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 添加 TabBar 配置项(如果存在)
|
|
69
|
+
if (globalTabBarConfig) {
|
|
70
|
+
files.push({
|
|
71
|
+
type: "tabBarConfig",
|
|
72
|
+
content: globalTabBarConfig,
|
|
73
|
+
importManager: new ImportManager(config),
|
|
74
|
+
name: "tabBarConfig",
|
|
75
|
+
tabBarConfig: globalTabBarConfig
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
files: files,
|
|
80
|
+
tabBarImageFiles: tabBarImageFiles
|
|
81
|
+
};
|
|
82
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToTaroCodeConfig } from "../../toCodeTaro";
|
|
2
|
+
export type ImportType = "default" | "named" | "module";
|
|
3
|
+
export type DependencyImport = Record<string, Record<string, {
|
|
4
|
+
importType: ImportType;
|
|
5
|
+
}>>;
|
|
6
|
+
/** 导入依赖收集、解析 */
|
|
7
|
+
export declare class ImportManager {
|
|
8
|
+
private _config;
|
|
9
|
+
private _imports;
|
|
10
|
+
constructor(_config: ToTaroCodeConfig);
|
|
11
|
+
/** 添加依赖 */
|
|
12
|
+
addImport({ packageName, dependencyNames, importType, }: {
|
|
13
|
+
packageName: string;
|
|
14
|
+
dependencyNames: string[];
|
|
15
|
+
importType: ImportType;
|
|
16
|
+
}): void;
|
|
17
|
+
/** 依赖解析为code */
|
|
18
|
+
toCode(): string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
+
import { indentation } from "./helper";
|
|
6
|
+
/** 导入依赖收集、解析 */
|
|
7
|
+
export var ImportManager = /*#__PURE__*/function () {
|
|
8
|
+
function ImportManager(_config) {
|
|
9
|
+
_classCallCheck(this, ImportManager);
|
|
10
|
+
_defineProperty(this, "_imports", {});
|
|
11
|
+
this._config = _config;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** 添加依赖 */
|
|
15
|
+
_createClass(ImportManager, [{
|
|
16
|
+
key: "addImport",
|
|
17
|
+
value: function addImport(_ref) {
|
|
18
|
+
var packageName = _ref.packageName,
|
|
19
|
+
dependencyNames = _ref.dependencyNames,
|
|
20
|
+
importType = _ref.importType;
|
|
21
|
+
if (!packageName) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
var _imports = this._imports;
|
|
25
|
+
if (!_imports[packageName]) {
|
|
26
|
+
_imports[packageName] = {};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// 对于 module 类型且 dependencyNames 为空的情况,使用特殊标记
|
|
30
|
+
if (importType === "module" && dependencyNames.length === 0) {
|
|
31
|
+
_imports[packageName]["__module__"] = {
|
|
32
|
+
importType: "module"
|
|
33
|
+
};
|
|
34
|
+
} else {
|
|
35
|
+
dependencyNames.forEach(function (dependencyName) {
|
|
36
|
+
_imports[packageName][dependencyName] = {
|
|
37
|
+
importType: importType
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** 依赖解析为code */
|
|
44
|
+
}, {
|
|
45
|
+
key: "toCode",
|
|
46
|
+
value: function toCode() {
|
|
47
|
+
var indent = indentation(this._config.codeStyle.indent);
|
|
48
|
+
return Object.entries(this._imports).reduce(function (pre, _ref2) {
|
|
49
|
+
var _dependencies$__modul;
|
|
50
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
51
|
+
packageName = _ref3[0],
|
|
52
|
+
dependencies = _ref3[1];
|
|
53
|
+
var defaultDependency = "";
|
|
54
|
+
var namedDependencies = "";
|
|
55
|
+
var dependencyEntries = Object.entries(dependencies);
|
|
56
|
+
|
|
57
|
+
// 检查是否有 module 类型的导入(如 import './index.less')
|
|
58
|
+
var hasModuleType = ((_dependencies$__modul = dependencies["__module__"]) === null || _dependencies$__modul === void 0 ? void 0 : _dependencies$__modul.importType) === "module" || dependencyEntries.some(function (_ref4) {
|
|
59
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
60
|
+
importType = _ref5[1].importType;
|
|
61
|
+
return importType === "module";
|
|
62
|
+
});
|
|
63
|
+
if (hasModuleType) {
|
|
64
|
+
return pre + "import '".concat(packageName, "';\n");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** 超过三项换行 */
|
|
68
|
+
var validEntries = dependencyEntries.filter(function (_ref6) {
|
|
69
|
+
var _ref7 = _slicedToArray(_ref6, 1),
|
|
70
|
+
key = _ref7[0];
|
|
71
|
+
return key !== "__module__";
|
|
72
|
+
});
|
|
73
|
+
var wrap = validEntries.length > 3;
|
|
74
|
+
validEntries.forEach(function (_ref8, index) {
|
|
75
|
+
var _ref9 = _slicedToArray(_ref8, 2),
|
|
76
|
+
dependencyName = _ref9[0],
|
|
77
|
+
importType = _ref9[1].importType;
|
|
78
|
+
if (importType === "default") {
|
|
79
|
+
defaultDependency = dependencyName;
|
|
80
|
+
} else if (importType === "named") {
|
|
81
|
+
if (wrap) {
|
|
82
|
+
namedDependencies += "".concat(indent).concat(dependencyName, ",\n");
|
|
83
|
+
} else {
|
|
84
|
+
namedDependencies += "".concat(index ? ", " : "").concat(dependencyName);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
if (namedDependencies) {
|
|
89
|
+
if (wrap) {
|
|
90
|
+
namedDependencies = "{\n".concat(namedDependencies, "}");
|
|
91
|
+
} else {
|
|
92
|
+
namedDependencies = "{ ".concat(namedDependencies, " }");
|
|
93
|
+
}
|
|
94
|
+
if (defaultDependency) {
|
|
95
|
+
defaultDependency += ", ";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return pre + "import ".concat(defaultDependency).concat(namedDependencies, " from '").concat(packageName, "';\n");
|
|
99
|
+
}, "");
|
|
100
|
+
}
|
|
101
|
+
}]);
|
|
102
|
+
return ImportManager;
|
|
103
|
+
}();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
+
import { indentation } from "./helper";
|
|
3
|
+
|
|
4
|
+
/** 生成对象代码 */
|
|
5
|
+
export var genObjectCode = function genObjectCode(object, config) {
|
|
6
|
+
var initialIndent = config.initialIndent,
|
|
7
|
+
indentSize = config.indentSize;
|
|
8
|
+
var keys = Object.keys(object);
|
|
9
|
+
if (keys.length === 0) return "{}";
|
|
10
|
+
var result = "{\n";
|
|
11
|
+
keys.forEach(function (key, idx) {
|
|
12
|
+
var value = object[key];
|
|
13
|
+
var formattedValue;
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
formattedValue = JSON.stringify(value);
|
|
16
|
+
} else if (value && _typeof(value) === "object") {
|
|
17
|
+
formattedValue = genObjectCode(value, {
|
|
18
|
+
initialIndent: initialIndent + indentSize,
|
|
19
|
+
indentSize: indentSize
|
|
20
|
+
});
|
|
21
|
+
} else if (typeof value === "string") {
|
|
22
|
+
formattedValue = JSON.stringify(value);
|
|
23
|
+
} else {
|
|
24
|
+
formattedValue = String(value);
|
|
25
|
+
}
|
|
26
|
+
result += indentation(initialIndent + indentSize) + "".concat(JSON.stringify(key), ": ").concat(formattedValue);
|
|
27
|
+
if (idx < keys.length - 1) result += ",";
|
|
28
|
+
result += "\n";
|
|
29
|
+
});
|
|
30
|
+
result += indentation(initialIndent) + "}";
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** 将第一个字符转大写 */
|
|
2
|
+
export declare const firstCharToUpperCase: (str: string) => string;
|
|
3
|
+
/** 将第一个字符转小写 */
|
|
4
|
+
export declare const firstCharToLowerCase: (str: string) => string;
|
|
5
|
+
/** 驼峰转中划线 */
|
|
6
|
+
export declare const camelToKebab: (str: string) => string;
|
|
7
|
+
/** 中划线转驼峰 */
|
|
8
|
+
export declare const kebabToCamel: (str: string) => string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** 将第一个字符转大写 */
|
|
2
|
+
export var firstCharToUpperCase = function firstCharToUpperCase(str) {
|
|
3
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
/** 将第一个字符转小写 */
|
|
7
|
+
export var firstCharToLowerCase = function firstCharToLowerCase(str) {
|
|
8
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/** 驼峰转中划线 */
|
|
12
|
+
export var camelToKebab = function camelToKebab(str) {
|
|
13
|
+
return str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/** 中划线转驼峰 */
|
|
17
|
+
export var kebabToCamel = function kebabToCamel(str) {
|
|
18
|
+
return str.replace(/-([a-z])/g, function (_, char) {
|
|
19
|
+
return char.toUpperCase();
|
|
20
|
+
});
|
|
21
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 页面配置工具
|
|
3
|
+
* 负责从 systemPage 组件数据生成 definePageConfig 配置字符串
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { colorToHex } from "../../index";
|
|
7
|
+
var TARO_NAVIGATION_BAR_PROPERTIES = ['navigationBarBackgroundColor', 'navigationBarTextStyle', 'navigationBarTitleText', 'navigationStyle'];
|
|
8
|
+
var TARO_PAGE_CONFIG_TEMPLATE_PROPERTIES = ['navigationBarBackgroundColor', 'navigationBarTextStyle', 'navigationBarTitleText', 'navigationStyle', 'transparentTitle', 'backgroundColor', 'backgroundTextStyle', 'backgroundColorTop', 'backgroundColorBottom', 'enablePullDownRefresh', 'onReachBottomDistance', 'pageOrientation', 'disableScroll', 'disableSwipeBack', 'enableShareAppMessage', 'enableShareTimeline', 'usingComponents', 'renderer'];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 从 systemPage 组件数据生成 definePageConfig 配置字符串
|
|
12
|
+
* @param systemPageData systemPage 组件的 model.data
|
|
13
|
+
* @returns definePageConfig 配置字符串
|
|
14
|
+
*/
|
|
15
|
+
export function generatePageConfigContent(systemPageData) {
|
|
16
|
+
var pageConfig = {};
|
|
17
|
+
if (systemPageData) {
|
|
18
|
+
// 1. 处理导航栏隐藏逻辑:如果是 none,强制设置 navigationStyle 为 custom 以隐藏默认导航栏
|
|
19
|
+
if (systemPageData.useNavigationStyle === "none") {
|
|
20
|
+
pageConfig.navigationStyle = "custom";
|
|
21
|
+
}
|
|
22
|
+
var propertiesToUse = systemPageData.useNavigationStyle === "default" ? TARO_NAVIGATION_BAR_PROPERTIES : TARO_PAGE_CONFIG_TEMPLATE_PROPERTIES;
|
|
23
|
+
|
|
24
|
+
// 2. 从 systemPageData 中提取配置属性
|
|
25
|
+
propertiesToUse.forEach(function (prop) {
|
|
26
|
+
var value = systemPageData[prop];
|
|
27
|
+
if (value !== undefined && value !== null) {
|
|
28
|
+
// 特殊处理:将 RGBA 颜色转换为 WeChat 要求的 Hex 格式
|
|
29
|
+
if (prop.includes("BackgroundColor") || prop === "backgroundColor" || prop === "backgroundColorTop" || prop === "backgroundColorBottom") {
|
|
30
|
+
value = colorToHex(value);
|
|
31
|
+
}
|
|
32
|
+
pageConfig[prop] = value;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 生成配置字符串
|
|
38
|
+
var configContent = JSON.stringify(pageConfig, null, 2).replace(/^\{/, "").replace(/\}$/, "").trim();
|
|
39
|
+
return "export default definePageConfig({\n ".concat(configContent, "\n})");
|
|
40
|
+
}
|
|
@@ -11,4 +11,4 @@ import type { ImageFileInfo } from './types';
|
|
|
11
11
|
* @param imageFiles 用于收集需要保存的图片文件的数组(可选)
|
|
12
12
|
* @returns 处理后的图标路径(用于 app.config.ts),如果不是 base64 则返回原路径
|
|
13
13
|
*/
|
|
14
|
-
export declare function processTabBarIcon(iconPath: string | undefined, tabBarIndex: number, type:
|
|
14
|
+
export declare function processTabBarIcon(iconPath: string | undefined, tabBarIndex: number, type: "normal" | "selected", imageFiles?: ImageFileInfo[]): string | undefined;
|
|
@@ -25,13 +25,9 @@ var MIME_TO_EXT = {
|
|
|
25
25
|
* @returns 解析结果或 null
|
|
26
26
|
*/
|
|
27
27
|
function parseBase64Image(base64Str) {
|
|
28
|
-
if (typeof base64Str !==
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
28
|
+
if (typeof base64Str !== "string") return null;
|
|
31
29
|
var match = base64Str.match(/^data:image\/([^;]+);base64,(.+)$/);
|
|
32
|
-
if (!match)
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
30
|
+
if (!match) return null;
|
|
35
31
|
return {
|
|
36
32
|
mimeType: match[1],
|
|
37
33
|
base64Data: match[2]
|
|
@@ -43,9 +39,10 @@ function parseBase64Image(base64Str) {
|
|
|
43
39
|
* @param mimeType MIME 类型
|
|
44
40
|
* @returns 文件扩展名,默认为 'png'
|
|
45
41
|
*/
|
|
46
|
-
function getFileExtension(mimeType) {
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
var getFileExtension = function getFileExtension(mimeType) {
|
|
43
|
+
var _MIME_TO_EXT$mimeType;
|
|
44
|
+
return (_MIME_TO_EXT$mimeType = MIME_TO_EXT[mimeType.toLowerCase()]) !== null && _MIME_TO_EXT$mimeType !== void 0 ? _MIME_TO_EXT$mimeType : "png";
|
|
45
|
+
};
|
|
49
46
|
|
|
50
47
|
/**
|
|
51
48
|
* 生成唯一的文件名
|
|
@@ -54,9 +51,9 @@ function getFileExtension(mimeType) {
|
|
|
54
51
|
* @param extension 文件扩展名
|
|
55
52
|
* @returns 文件名
|
|
56
53
|
*/
|
|
57
|
-
function generateFileName(index, type, extension) {
|
|
54
|
+
var generateFileName = function generateFileName(index, type, extension) {
|
|
58
55
|
return "tabbar_".concat(index, "_").concat(type, ".").concat(extension);
|
|
59
|
-
}
|
|
56
|
+
};
|
|
60
57
|
|
|
61
58
|
/**
|
|
62
59
|
* 处理 TabBar 图标,如果是 base64 则准备保存为文件
|
|
@@ -67,39 +64,23 @@ function generateFileName(index, type, extension) {
|
|
|
67
64
|
* @returns 处理后的图标路径(用于 app.config.ts),如果不是 base64 则返回原路径
|
|
68
65
|
*/
|
|
69
66
|
export function processTabBarIcon(iconPath, tabBarIndex, type, imageFiles) {
|
|
70
|
-
if (!iconPath)
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// 解析 base64 图片
|
|
67
|
+
if (!iconPath) return undefined;
|
|
75
68
|
var parsed = parseBase64Image(iconPath);
|
|
76
|
-
if (!parsed)
|
|
77
|
-
// 不是 base64 格式,直接返回原路径
|
|
78
|
-
return iconPath;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// 生成文件名和路径
|
|
69
|
+
if (!parsed) return iconPath;
|
|
82
70
|
var extension = getFileExtension(parsed.mimeType);
|
|
83
71
|
var fileName = generateFileName(tabBarIndex, type, extension);
|
|
84
72
|
var fileSystemPath = "src/assets/tabbar/".concat(fileName);
|
|
85
73
|
var configPath = "assets/tabbar/".concat(fileName);
|
|
86
|
-
|
|
87
|
-
// 如果需要收集图片文件
|
|
88
74
|
if (imageFiles) {
|
|
89
75
|
try {
|
|
90
|
-
// 将 base64 数据转换为 Buffer
|
|
91
|
-
var imageBuffer = Buffer.from(parsed.base64Data, 'base64');
|
|
92
76
|
imageFiles.push({
|
|
93
77
|
filePath: fileSystemPath,
|
|
94
|
-
fileContent:
|
|
78
|
+
fileContent: Buffer.from(parsed.base64Data, "base64")
|
|
95
79
|
});
|
|
96
80
|
} catch (error) {
|
|
97
81
|
console.error("\u5904\u7406 TabBar \u56FE\u6807\u5931\u8D25: ".concat(error));
|
|
98
|
-
// 转换失败时返回原路径
|
|
99
82
|
return iconPath;
|
|
100
83
|
}
|
|
101
84
|
}
|
|
102
|
-
|
|
103
|
-
// 返回配置路径(用于 app.config.ts)
|
|
104
85
|
return configPath;
|
|
105
86
|
}
|
|
@@ -43,40 +43,18 @@ export function generateTabBarConfigContent(tabBar) {
|
|
|
43
43
|
* @returns 配置字符串
|
|
44
44
|
*/
|
|
45
45
|
function formatTabBarConfigForAppConfig(config) {
|
|
46
|
-
var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : " ";
|
|
47
|
+
// 使用 JSON.stringify 生成结构化的字符串,然后进行微调以符合 TypeScript 习惯(如去掉引号)
|
|
48
|
+
var tabBarJson = JSON.stringify(config, null, 2);
|
|
49
49
|
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
if (config.selectedColor) {
|
|
55
|
-
lines.push("".concat(indent, " selectedColor: '").concat(config.selectedColor, "',"));
|
|
56
|
-
}
|
|
57
|
-
if (config.backgroundColor) {
|
|
58
|
-
lines.push("".concat(indent, " backgroundColor: '").concat(config.backgroundColor, "',"));
|
|
59
|
-
}
|
|
60
|
-
if (config.borderStyle) {
|
|
61
|
-
lines.push("".concat(indent, " borderStyle: '").concat(config.borderStyle, "',"));
|
|
62
|
-
}
|
|
50
|
+
// 格式化:将双引号改为单引号,并将 key 的引号去掉(如果符合变量命名规范)
|
|
51
|
+
var formattedJson = tabBarJson.replace(/"([^"]+)":/g, "$1:") // 去掉 key 的引号
|
|
52
|
+
.replace(/"/g, "'"); // 将双引号改为单引号
|
|
63
53
|
|
|
64
|
-
//
|
|
65
|
-
lines.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
lines.push("".concat(indent, " text: '").concat(item.text, "',"));
|
|
71
|
-
if (item.iconPath) {
|
|
72
|
-
lines.push("".concat(indent, " iconPath: '").concat(item.iconPath, "',"));
|
|
73
|
-
}
|
|
74
|
-
if (item.selectedIconPath) {
|
|
75
|
-
lines.push("".concat(indent, " selectedIconPath: '").concat(item.selectedIconPath, "',"));
|
|
76
|
-
}
|
|
77
|
-
lines.push("".concat(indent, " }").concat(isLast ? '' : ','));
|
|
78
|
-
});
|
|
79
|
-
lines.push("".concat(indent, " ]"));
|
|
80
|
-
lines.push("".concat(indent, "}"));
|
|
81
|
-
return lines.join('\n');
|
|
54
|
+
// 添加缩进,并前置 "tabBar: "
|
|
55
|
+
var lines = formattedJson.split("\n");
|
|
56
|
+
return lines.map(function (line, index) {
|
|
57
|
+
if (index === 0) return "".concat(indent, "tabBar: ").concat(line);
|
|
58
|
+
return "".concat(indent).concat(line);
|
|
59
|
+
}).join("\n");
|
|
82
60
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import toCode from "@mybricks/to-code-react/dist/cjs/toCode";
|
|
2
|
-
import { type ImageFileInfo } from "./
|
|
2
|
+
import { type ImageFileInfo } from "./content";
|
|
3
3
|
/**
|
|
4
4
|
* 处理页面配置的类
|
|
5
5
|
* 负责提取 systemPage 组件数据,生成页面配置和 TabBar 配置
|
|
@@ -10,9 +10,10 @@ export declare class HandlePageConfig {
|
|
|
10
10
|
/**
|
|
11
11
|
* 处理页面配置(提取 systemPage 组件数据)
|
|
12
12
|
* @param scene 场景数据
|
|
13
|
+
* @param isPopup 是否为弹窗场景
|
|
13
14
|
* @returns 页面配置内容
|
|
14
15
|
*/
|
|
15
|
-
handle(scene: ReturnType<typeof toCode>["scenes"][0]["scene"]): string | undefined;
|
|
16
|
+
handle(scene: ReturnType<typeof toCode>["scenes"][0]["scene"], isPopup?: boolean): string | undefined;
|
|
16
17
|
/**
|
|
17
18
|
* 获取全局 TabBar 配置
|
|
18
19
|
*/
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
1
2
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
3
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
-
import { generatePageConfigContent, generateTabBarConfigContent } from "./
|
|
5
|
+
import { generatePageConfigContent, generateTabBarConfigContent } from "./content";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* 处理页面配置的类
|
|
@@ -19,10 +20,12 @@ export var HandlePageConfig = /*#__PURE__*/function () {
|
|
|
19
20
|
/**
|
|
20
21
|
* 处理页面配置(提取 systemPage 组件数据)
|
|
21
22
|
* @param scene 场景数据
|
|
23
|
+
* @param isPopup 是否为弹窗场景
|
|
22
24
|
* @returns 页面配置内容
|
|
23
25
|
*/
|
|
24
26
|
function handle(scene) {
|
|
25
27
|
var _systemPageCom$model;
|
|
28
|
+
var isPopup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
26
29
|
// 提取 systemPage 组件数据,生成 pageConfigContent
|
|
27
30
|
var pageConfigContent;
|
|
28
31
|
var systemPageCom = Object.values(scene.coms || {}).find(function (com) {
|
|
@@ -30,7 +33,8 @@ export var HandlePageConfig = /*#__PURE__*/function () {
|
|
|
30
33
|
return ((_com$def = com.def) === null || _com$def === void 0 ? void 0 : _com$def.namespace) === 'mybricks.taro.systemPage';
|
|
31
34
|
});
|
|
32
35
|
if (systemPageCom !== null && systemPageCom !== void 0 && (_systemPageCom$model = systemPageCom.model) !== null && _systemPageCom$model !== void 0 && _systemPageCom$model.data) {
|
|
33
|
-
var systemPageData = systemPageCom.model.data;
|
|
36
|
+
var systemPageData = _objectSpread({}, systemPageCom.model.data);
|
|
37
|
+
|
|
34
38
|
// 生成页面配置
|
|
35
39
|
pageConfigContent = generatePageConfigContent(systemPageData);
|
|
36
40
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 构建上下文数据
|
|
3
|
+
* 包括 sceneMap, eventsMap 等查询映射
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 构建场景映射表
|
|
7
|
+
*/
|
|
8
|
+
export declare const buildSceneMap: (scenes: any[]) => any;
|
|
9
|
+
/**
|
|
10
|
+
* 构建扩展事件映射表
|
|
11
|
+
*/
|
|
12
|
+
export declare const buildEventsMap: (frames: any[]) => any;
|
|
13
|
+
/**
|
|
14
|
+
* 创建场景查询函数
|
|
15
|
+
*/
|
|
16
|
+
export declare const createGetSceneById: (sceneMap: Record<string, any>) => (id: string) => any;
|
|
17
|
+
/**
|
|
18
|
+
* 创建扩展事件查询函数
|
|
19
|
+
*/
|
|
20
|
+
export declare const createGetExtensionEventById: (eventsMap: Record<string, any>) => (id: string) => any;
|
|
21
|
+
/**
|
|
22
|
+
* 创建 frame 查询函数
|
|
23
|
+
*/
|
|
24
|
+
export declare const createGetFrameById: (frameMap: Record<string, any>) => (id: string) => any;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 构建上下文数据
|
|
3
|
+
* 包括 sceneMap, eventsMap 等查询映射
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 构建场景映射表
|
|
8
|
+
*/
|
|
9
|
+
export var buildSceneMap = function buildSceneMap(scenes) {
|
|
10
|
+
return scenes.reduce(function (pre, cur) {
|
|
11
|
+
pre[cur.id] = cur;
|
|
12
|
+
return pre;
|
|
13
|
+
}, {});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 构建扩展事件映射表
|
|
18
|
+
*/
|
|
19
|
+
export var buildEventsMap = function buildEventsMap(frames) {
|
|
20
|
+
return frames.reduce(function (pre, cur) {
|
|
21
|
+
if (cur.type === "extension-event") {
|
|
22
|
+
pre[cur.id] = cur;
|
|
23
|
+
}
|
|
24
|
+
return pre;
|
|
25
|
+
}, {});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 创建场景查询函数
|
|
30
|
+
*/
|
|
31
|
+
export var createGetSceneById = function createGetSceneById(sceneMap) {
|
|
32
|
+
return function (id) {
|
|
33
|
+
return sceneMap[id];
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 创建扩展事件查询函数
|
|
39
|
+
*/
|
|
40
|
+
export var createGetExtensionEventById = function createGetExtensionEventById(eventsMap) {
|
|
41
|
+
return function (id) {
|
|
42
|
+
return eventsMap[id];
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 创建 frame 查询函数
|
|
48
|
+
*/
|
|
49
|
+
export var createGetFrameById = function createGetFrameById(frameMap) {
|
|
50
|
+
return function (id) {
|
|
51
|
+
return frameMap[id];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 构建 frames 映射表
|
|
3
|
+
* 参考鸿蒙实现 handleFrame.ts
|
|
4
|
+
* 用于快速查找 frame 和对应的组件信息
|
|
5
|
+
*/
|
|
6
|
+
export interface FrameMapItem {
|
|
7
|
+
frame: any;
|
|
8
|
+
meta: any;
|
|
9
|
+
}
|
|
10
|
+
export type FrameMap = Record<string, FrameMapItem>;
|
|
11
|
+
/**
|
|
12
|
+
* 构建完整的 frameMap
|
|
13
|
+
* @param tojson - 完整的 tojson 数据
|
|
14
|
+
* @returns frameMap 对象
|
|
15
|
+
*/
|
|
16
|
+
export declare const buildFrameMap: (tojson: any) => FrameMap;
|