@mybricks/to-code-taro 1.0.2 → 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/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/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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
/**
|
|
3
|
+
* 处理模块(Module)
|
|
4
|
+
* 参考鸿蒙实现,将模块处理逻辑独立出来
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import handleSlot from "../handleSlot";
|
|
8
|
+
import { createProvider, createProviderMap } from "../utils/context/createProvider";
|
|
9
|
+
import { createEventQueries } from "../utils/context/createEventQueries";
|
|
10
|
+
import { collectJSModulesFromScene } from "../utils/context/collectJSModules";
|
|
11
|
+
/**
|
|
12
|
+
* 处理单个模块
|
|
13
|
+
*/
|
|
14
|
+
export var processModule = function processModule(params) {
|
|
15
|
+
var _config$getFileName;
|
|
16
|
+
var _params$module = params.module,
|
|
17
|
+
scene = _params$module.scene,
|
|
18
|
+
ui = _params$module.ui,
|
|
19
|
+
event = _params$module.event,
|
|
20
|
+
config = params.config,
|
|
21
|
+
globalVarTypeDef = params.globalVarTypeDef,
|
|
22
|
+
defaultFxsMap = params.defaultFxsMap,
|
|
23
|
+
abstractEventTypeDefMap = params.abstractEventTypeDefMap,
|
|
24
|
+
jsModulesMap = params.jsModulesMap,
|
|
25
|
+
getExtensionEventById = params.getExtensionEventById,
|
|
26
|
+
getSceneById = params.getSceneById,
|
|
27
|
+
getFrameById = params.getFrameById,
|
|
28
|
+
addResult = params.addResult;
|
|
29
|
+
|
|
30
|
+
// 收集 JS 计算组件
|
|
31
|
+
collectJSModulesFromScene(scene, jsModulesMap);
|
|
32
|
+
|
|
33
|
+
// 创建 Provider
|
|
34
|
+
var fileName = (_config$getFileName = config.getFileName) === null || _config$getFileName === void 0 ? void 0 : _config$getFileName.call(config, ui.meta.slotId);
|
|
35
|
+
var currentProvider = createProvider(fileName, true);
|
|
36
|
+
var providerMap = createProviderMap(currentProvider);
|
|
37
|
+
|
|
38
|
+
// 创建类型定义
|
|
39
|
+
var typeDef = {
|
|
40
|
+
vars: Object.assign({}, globalVarTypeDef),
|
|
41
|
+
inputs: {},
|
|
42
|
+
outputs: {}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// 创建 FX Map
|
|
46
|
+
var fxsMap = Object.assign({}, defaultFxsMap);
|
|
47
|
+
|
|
48
|
+
// 创建事件查询函数
|
|
49
|
+
var eventQueries = createEventQueries(event);
|
|
50
|
+
|
|
51
|
+
// 处理 Slot
|
|
52
|
+
handleSlot(ui, _objectSpread(_objectSpread({}, config), {}, {
|
|
53
|
+
getCurrentScene: function getCurrentScene() {
|
|
54
|
+
var originalScene = getSceneById(scene.id);
|
|
55
|
+
return _objectSpread(_objectSpread(_objectSpread({}, scene), originalScene), {}, {
|
|
56
|
+
event: event
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
add: function add(value) {
|
|
60
|
+
addResult(_objectSpread(_objectSpread({}, value), {}, {
|
|
61
|
+
type: scene.type,
|
|
62
|
+
meta: scene
|
|
63
|
+
}));
|
|
64
|
+
},
|
|
65
|
+
addJSModule: function addJSModule(module) {
|
|
66
|
+
if (!jsModulesMap.has(module.id)) {
|
|
67
|
+
jsModulesMap.set(module.id, module);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
getEventByDiagramId: eventQueries.getEventByDiagramId,
|
|
71
|
+
getFrameInputEvent: eventQueries.getFrameInputEvent,
|
|
72
|
+
getVarEvents: eventQueries.getVarEvents,
|
|
73
|
+
getFxEvents: eventQueries.getFxEvents,
|
|
74
|
+
checkIsRoot: function checkIsRoot() {
|
|
75
|
+
return true;
|
|
76
|
+
},
|
|
77
|
+
getEffectEvent: eventQueries.getEffectEvent,
|
|
78
|
+
getCurrentProvider: function getCurrentProvider() {
|
|
79
|
+
return currentProvider;
|
|
80
|
+
},
|
|
81
|
+
getRootProvider: function getRootProvider() {
|
|
82
|
+
return currentProvider;
|
|
83
|
+
},
|
|
84
|
+
getProviderMap: function getProviderMap() {
|
|
85
|
+
return providerMap;
|
|
86
|
+
},
|
|
87
|
+
getExtensionEventById: getExtensionEventById,
|
|
88
|
+
getSceneById: getSceneById,
|
|
89
|
+
getFrameById: getFrameById,
|
|
90
|
+
depth: 0,
|
|
91
|
+
getTypeDef: function getTypeDef() {
|
|
92
|
+
return typeDef;
|
|
93
|
+
},
|
|
94
|
+
getFxsMap: function getFxsMap() {
|
|
95
|
+
return fxsMap;
|
|
96
|
+
},
|
|
97
|
+
setAbstractEventTypeDefMap: function setAbstractEventTypeDefMap(params) {
|
|
98
|
+
var comId = params.comId,
|
|
99
|
+
eventId = params.eventId,
|
|
100
|
+
typeDef = params.typeDef,
|
|
101
|
+
schema = params.schema;
|
|
102
|
+
if (!abstractEventTypeDefMap[comId]) {
|
|
103
|
+
abstractEventTypeDefMap[comId] = {
|
|
104
|
+
typeDef: typeDef,
|
|
105
|
+
eventIdMap: {}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
|
|
109
|
+
},
|
|
110
|
+
getComponentController: function getComponentController(_ref) {
|
|
111
|
+
var com = _ref.com;
|
|
112
|
+
return com.id;
|
|
113
|
+
}
|
|
114
|
+
}));
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 处理所有模块
|
|
119
|
+
*/
|
|
120
|
+
export var processModules = function processModules(modules, params) {
|
|
121
|
+
modules.forEach(function (module) {
|
|
122
|
+
processModule(_objectSpread(_objectSpread({}, params), {}, {
|
|
123
|
+
module: module
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 处理场景(Scene)
|
|
3
|
+
* 参考鸿蒙实现,将场景处理逻辑独立出来
|
|
4
|
+
*/
|
|
5
|
+
import type { ToTaroCodeConfig, GeneratedFile } from "../toCodeTaro";
|
|
6
|
+
import toCode from "@mybricks/to-code-react/dist/cjs/toCode";
|
|
7
|
+
import { type Provider } from "../utils/context/createProvider";
|
|
8
|
+
import type { JSModulesMap } from "../utils/context/collectJSModules";
|
|
9
|
+
type ToCodeResult = ReturnType<typeof toCode>;
|
|
10
|
+
type Scene = ToCodeResult["scenes"][0];
|
|
11
|
+
interface ProcessSceneParams {
|
|
12
|
+
scene: Scene;
|
|
13
|
+
config: ToTaroCodeConfig;
|
|
14
|
+
globalVarTypeDef: Record<string, any>;
|
|
15
|
+
defaultFxsMap: Record<string, Provider>;
|
|
16
|
+
abstractEventTypeDefMap: Record<string, any>;
|
|
17
|
+
jsModulesMap: JSModulesMap;
|
|
18
|
+
getExtensionEventById: (id: string) => any;
|
|
19
|
+
getSceneById: (id: string) => any;
|
|
20
|
+
getFrameById?: (id: string) => any;
|
|
21
|
+
pageConfigHandler: any;
|
|
22
|
+
addResult: (result: GeneratedFile) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 处理单个场景
|
|
26
|
+
*/
|
|
27
|
+
export declare const processScene: (params: ProcessSceneParams) => void;
|
|
28
|
+
/**
|
|
29
|
+
* 处理所有场景
|
|
30
|
+
*/
|
|
31
|
+
export declare const processScenes: (scenes: Scene[], params: Omit<ProcessSceneParams, "scene">) => void;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
/**
|
|
3
|
+
* 处理场景(Scene)
|
|
4
|
+
* 参考鸿蒙实现,将场景处理逻辑独立出来
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import handleSlot from "../handleSlot";
|
|
8
|
+
import { createProvider, createProviderMap } from "../utils/context/createProvider";
|
|
9
|
+
import { createEventQueries } from "../utils/context/createEventQueries";
|
|
10
|
+
import { collectJSModulesFromScene } from "../utils/context/collectJSModules";
|
|
11
|
+
/**
|
|
12
|
+
* 处理单个场景
|
|
13
|
+
*/
|
|
14
|
+
export var processScene = function processScene(params) {
|
|
15
|
+
var _config$getFileName;
|
|
16
|
+
var _params$scene = params.scene,
|
|
17
|
+
scene = _params$scene.scene,
|
|
18
|
+
ui = _params$scene.ui,
|
|
19
|
+
event = _params$scene.event,
|
|
20
|
+
config = params.config,
|
|
21
|
+
globalVarTypeDef = params.globalVarTypeDef,
|
|
22
|
+
defaultFxsMap = params.defaultFxsMap,
|
|
23
|
+
abstractEventTypeDefMap = params.abstractEventTypeDefMap,
|
|
24
|
+
jsModulesMap = params.jsModulesMap,
|
|
25
|
+
getExtensionEventById = params.getExtensionEventById,
|
|
26
|
+
getSceneById = params.getSceneById,
|
|
27
|
+
getFrameById = params.getFrameById,
|
|
28
|
+
pageConfigHandler = params.pageConfigHandler;
|
|
29
|
+
|
|
30
|
+
// 收集 JS 计算组件
|
|
31
|
+
collectJSModulesFromScene(scene, jsModulesMap);
|
|
32
|
+
|
|
33
|
+
// 创建 Provider
|
|
34
|
+
var fileName = (_config$getFileName = config.getFileName) === null || _config$getFileName === void 0 ? void 0 : _config$getFileName.call(config, ui.meta.slotId);
|
|
35
|
+
var currentProvider = createProvider(fileName, true);
|
|
36
|
+
var providerMap = createProviderMap(currentProvider);
|
|
37
|
+
|
|
38
|
+
// 创建类型定义
|
|
39
|
+
var typeDef = {
|
|
40
|
+
vars: Object.assign({}, globalVarTypeDef),
|
|
41
|
+
inputs: {},
|
|
42
|
+
outputs: {}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
// 创建 FX Map
|
|
46
|
+
var fxsMap = Object.assign({}, defaultFxsMap);
|
|
47
|
+
|
|
48
|
+
// 处理页面配置
|
|
49
|
+
var pageConfigContent = pageConfigHandler.handle(scene);
|
|
50
|
+
|
|
51
|
+
// 创建事件查询函数
|
|
52
|
+
var eventQueries = createEventQueries(event);
|
|
53
|
+
|
|
54
|
+
// 处理 Slot
|
|
55
|
+
handleSlot(ui, _objectSpread(_objectSpread({}, config), {}, {
|
|
56
|
+
getCurrentScene: function getCurrentScene() {
|
|
57
|
+
var originalScene = getSceneById(scene.id);
|
|
58
|
+
return _objectSpread(_objectSpread(_objectSpread({}, scene), originalScene), {}, {
|
|
59
|
+
event: event
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
add: function add(value) {
|
|
63
|
+
params.addResult(_objectSpread(_objectSpread({}, value), {}, {
|
|
64
|
+
type: scene.type ? scene.type : "normal",
|
|
65
|
+
meta: scene,
|
|
66
|
+
pageConfigContent: pageConfigContent
|
|
67
|
+
}));
|
|
68
|
+
},
|
|
69
|
+
addJSModule: function addJSModule(module) {
|
|
70
|
+
if (!jsModulesMap.has(module.id)) {
|
|
71
|
+
jsModulesMap.set(module.id, module);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
getEventByDiagramId: eventQueries.getEventByDiagramId,
|
|
75
|
+
getFrameInputEvent: eventQueries.getFrameInputEvent,
|
|
76
|
+
getVarEvents: eventQueries.getVarEvents,
|
|
77
|
+
getFxEvents: eventQueries.getFxEvents,
|
|
78
|
+
checkIsRoot: function checkIsRoot() {
|
|
79
|
+
return true;
|
|
80
|
+
},
|
|
81
|
+
getEffectEvent: eventQueries.getEffectEvent,
|
|
82
|
+
getCurrentProvider: function getCurrentProvider() {
|
|
83
|
+
return currentProvider;
|
|
84
|
+
},
|
|
85
|
+
getRootProvider: function getRootProvider() {
|
|
86
|
+
return currentProvider;
|
|
87
|
+
},
|
|
88
|
+
getProviderMap: function getProviderMap() {
|
|
89
|
+
return providerMap;
|
|
90
|
+
},
|
|
91
|
+
getExtensionEventById: getExtensionEventById,
|
|
92
|
+
getSceneById: getSceneById,
|
|
93
|
+
getFrameById: getFrameById,
|
|
94
|
+
depth: 0,
|
|
95
|
+
getTypeDef: function getTypeDef() {
|
|
96
|
+
return typeDef;
|
|
97
|
+
},
|
|
98
|
+
getFxsMap: function getFxsMap() {
|
|
99
|
+
return fxsMap;
|
|
100
|
+
},
|
|
101
|
+
setAbstractEventTypeDefMap: function setAbstractEventTypeDefMap(params) {
|
|
102
|
+
var comId = params.comId,
|
|
103
|
+
eventId = params.eventId,
|
|
104
|
+
typeDef = params.typeDef,
|
|
105
|
+
schema = params.schema;
|
|
106
|
+
if (!abstractEventTypeDefMap[comId]) {
|
|
107
|
+
abstractEventTypeDefMap[comId] = {
|
|
108
|
+
typeDef: typeDef,
|
|
109
|
+
eventIdMap: {}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
|
|
113
|
+
}
|
|
114
|
+
}));
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 处理所有场景
|
|
119
|
+
*/
|
|
120
|
+
export var processScenes = function processScenes(scenes, params) {
|
|
121
|
+
scenes.forEach(function (scene) {
|
|
122
|
+
processScene(_objectSpread(_objectSpread({}, params), {}, {
|
|
123
|
+
scene: scene
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import { indentation } from "../utils";
|
|
5
|
+
import { handleProcess } from "../utils/logic/handleProcess";
|
|
6
|
+
/**
|
|
7
|
+
* 处理场景/插槽的逻辑(事件流、输入项等)
|
|
8
|
+
*/
|
|
9
|
+
export var processSceneLogic = function processSceneLogic(ui, config, addDependencyImport) {
|
|
10
|
+
var effectCode = "";
|
|
11
|
+
var indent2 = indentation(config.codeStyle.indent);
|
|
12
|
+
var currentScene = config.getCurrentScene();
|
|
13
|
+
var providerName = config.getCurrentProvider().name;
|
|
14
|
+
|
|
15
|
+
// 1. 初始化变量和 FX (非 root 也要初始化,因为子场景也有自己的变量)
|
|
16
|
+
effectCode += processLogicalInit(currentScene, config, addDependencyImport, indent2, providerName);
|
|
17
|
+
|
|
18
|
+
// 如果不是 root,目前只处理初始化逻辑
|
|
19
|
+
if (!config.checkIsRoot()) return effectCode;
|
|
20
|
+
|
|
21
|
+
// 2. 处理场景级事件(如 Start 节点)
|
|
22
|
+
effectCode += processSceneEvents(ui, currentScene, config, addDependencyImport, indent2);
|
|
23
|
+
|
|
24
|
+
// 3. 处理场景级输入(如 open)
|
|
25
|
+
effectCode += processSceneInputs(currentScene, config, addDependencyImport, indent2);
|
|
26
|
+
return effectCode;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 初始化变量和 FX
|
|
31
|
+
*/
|
|
32
|
+
var processLogicalInit = function processLogicalInit(scene, config, addDependencyImport, indent, providerName) {
|
|
33
|
+
var code = "";
|
|
34
|
+
|
|
35
|
+
// 1. 初始化 Vars
|
|
36
|
+
var vars = Object.entries(scene.coms || {}).filter(function (_ref) {
|
|
37
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
38
|
+
com = _ref2[1];
|
|
39
|
+
return com.def.namespace === "mybricks.core-comlib.var";
|
|
40
|
+
});
|
|
41
|
+
if (vars.length > 0) {
|
|
42
|
+
addDependencyImport({
|
|
43
|
+
packageName: config.getUtilsPackageName(),
|
|
44
|
+
dependencyNames: ["createVariable"],
|
|
45
|
+
importType: "named"
|
|
46
|
+
});
|
|
47
|
+
code += "\n".concat(indent, "const vars = comRefs.current.").concat(providerName, "_Vars;");
|
|
48
|
+
vars.forEach(function (_ref3) {
|
|
49
|
+
var _com$model;
|
|
50
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
51
|
+
comId = _ref4[0],
|
|
52
|
+
com = _ref4[1];
|
|
53
|
+
var initValue = JSON.stringify(((_com$model = com.model) === null || _com$model === void 0 || (_com$model = _com$model.data) === null || _com$model === void 0 ? void 0 : _com$model.initValue) || {});
|
|
54
|
+
code += "\n".concat(indent, "if (!vars.").concat(com.title, ".get) vars.").concat(com.title, " = createVariable(").concat(initValue, ");");
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// 2. 初始化 Fxs (使用 getFxEvents 获取 FX 列表)
|
|
59
|
+
var fxEvents = config.getFxEvents();
|
|
60
|
+
if (fxEvents.length > 0) {
|
|
61
|
+
addDependencyImport({
|
|
62
|
+
packageName: config.getUtilsPackageName(),
|
|
63
|
+
dependencyNames: ["createFx"],
|
|
64
|
+
importType: "named"
|
|
65
|
+
});
|
|
66
|
+
code += "\n".concat(indent, "const fxs = comRefs.current.").concat(providerName, "_Fxs;");
|
|
67
|
+
fxEvents.forEach(function (fxEvent) {
|
|
68
|
+
var res = handleProcess(fxEvent, _objectSpread(_objectSpread({}, config), {}, {
|
|
69
|
+
depth: 3,
|
|
70
|
+
getCurrentScene: function getCurrentScene() {
|
|
71
|
+
return _objectSpread({
|
|
72
|
+
id: fxEvent.frameId
|
|
73
|
+
}, fxEvent);
|
|
74
|
+
},
|
|
75
|
+
addParentDependencyImport: addDependencyImport,
|
|
76
|
+
getParams: function getParams() {
|
|
77
|
+
return (fxEvent.paramPins || []).reduce(function (pre, cur, index) {
|
|
78
|
+
pre[cur.id] = "value".concat(index);
|
|
79
|
+
return pre;
|
|
80
|
+
}, {});
|
|
81
|
+
}
|
|
82
|
+
})).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.");
|
|
83
|
+
var values = (fxEvent.paramPins || []).map(function (paramPin, index) {
|
|
84
|
+
if (paramPin.type === "config") {
|
|
85
|
+
var _fxEvent$initValues;
|
|
86
|
+
return "value".concat(index, ": any = ").concat(JSON.stringify(((_fxEvent$initValues = fxEvent.initValues) === null || _fxEvent$initValues === void 0 ? void 0 : _fxEvent$initValues[paramPin.id]) || {}));
|
|
87
|
+
}
|
|
88
|
+
return "value".concat(index, ": any");
|
|
89
|
+
}).join(", ");
|
|
90
|
+
code += "\n".concat(indent, "if (!fxs.").concat(fxEvent.frameId, ".call) fxs.").concat(fxEvent.frameId, " = createFx((").concat(values, ") => {\n").concat(res, "\n").concat(indent, "});");
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return code;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 处理场景级事件
|
|
98
|
+
*/
|
|
99
|
+
var processSceneEvents = function processSceneEvents(ui, currentScene, config, addDependencyImport, indent) {
|
|
100
|
+
var code = "";
|
|
101
|
+
var sceneEvents = (currentScene === null || currentScene === void 0 ? void 0 : currentScene.events) || (ui === null || ui === void 0 ? void 0 : ui.events) || [];
|
|
102
|
+
if (!Array.isArray(sceneEvents)) return code;
|
|
103
|
+
sceneEvents.forEach(function (eventInfo) {
|
|
104
|
+
var type = eventInfo.type,
|
|
105
|
+
diagramId = eventInfo.diagramId,
|
|
106
|
+
active = eventInfo.active;
|
|
107
|
+
if (active !== false && type === "defined" && diagramId) {
|
|
108
|
+
var event = config.getEventByDiagramId(diagramId);
|
|
109
|
+
if (event) {
|
|
110
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
111
|
+
target: "comRefs.current",
|
|
112
|
+
depth: 2,
|
|
113
|
+
addParentDependencyImport: addDependencyImport,
|
|
114
|
+
getParams: function getParams() {
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
})).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.");
|
|
118
|
+
if (process.trim()) {
|
|
119
|
+
code += "\n".concat(indent, " ").concat(process.trim());
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return code;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* 处理场景级输入
|
|
129
|
+
*/
|
|
130
|
+
var processSceneInputs = function processSceneInputs(currentScene, config, addDependencyImport, indent) {
|
|
131
|
+
var code = "";
|
|
132
|
+
var sceneInputs = (currentScene === null || currentScene === void 0 ? void 0 : currentScene.inputs) || [];
|
|
133
|
+
if (!Array.isArray(sceneInputs) || sceneInputs.length === 0) return code;
|
|
134
|
+
code += "\n".concat(indent, " const inputs = comRefs.current.inputs;");
|
|
135
|
+
sceneInputs.forEach(function (input) {
|
|
136
|
+
var event = config.getFrameInputEvent(input.id, currentScene.id);
|
|
137
|
+
if (!event) return;
|
|
138
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
139
|
+
target: "comRefs.current",
|
|
140
|
+
depth: 3,
|
|
141
|
+
addParentDependencyImport: addDependencyImport,
|
|
142
|
+
getParams: function getParams() {
|
|
143
|
+
return _defineProperty({}, input.id, "data");
|
|
144
|
+
}
|
|
145
|
+
})).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.");
|
|
146
|
+
if (process.trim()) {
|
|
147
|
+
code += "\n".concat(indent, " inputs.").concat(input.id, " = (data: any) => {\n").concat(process, "\n").concat(indent, " };");
|
|
148
|
+
if (input.id === "open") {
|
|
149
|
+
addDependencyImport({
|
|
150
|
+
packageName: config.getComponentPackageName(),
|
|
151
|
+
dependencyNames: ["page", "SUBJECT_SUBSCRIBE"],
|
|
152
|
+
importType: "named"
|
|
153
|
+
});
|
|
154
|
+
// 使用 SUBJECT_SUBSCRIBE 订阅,不修改 Subject.js
|
|
155
|
+
code += "\n".concat(indent, " page.getParams()[SUBJECT_SUBSCRIBE]((val: any) => {\n").concat(indent, " if (val) inputs.open(val);\n").concat(indent, " });");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return code;
|
|
160
|
+
};
|