@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.
Files changed (197) hide show
  1. package/README.md +58 -0
  2. package/dist/cjs/core/comlib/{Index.js → index.js} +4 -4
  3. package/dist/cjs/core/mybricks/index.js +47 -47
  4. package/dist/cjs/core/utils/ComContext.js +3 -0
  5. package/dist/cjs/core/utils/hooks.js +125 -0
  6. package/dist/cjs/core/utils/index.js +21 -57
  7. package/dist/cjs/core/utils/page.js +67 -0
  8. package/dist/cjs/core/utils/useContext.js +2 -1
  9. package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
  10. package/dist/cjs/generate/generateTaroProjectJson.js +9 -6
  11. package/dist/cjs/generate/utils/tabBarImages.d.ts +1 -1
  12. package/dist/cjs/handleCom.d.ts +1 -1
  13. package/dist/cjs/handleCom.js +91 -177
  14. package/dist/cjs/handleDom.js +7 -44
  15. package/dist/cjs/handleExtension.d.ts +2 -2
  16. package/dist/cjs/handleExtension.js +5 -5
  17. package/dist/cjs/handleGlobal.d.ts +2 -12
  18. package/dist/cjs/handleGlobal.js +23 -7
  19. package/dist/cjs/handleModule.js +3 -3
  20. package/dist/cjs/handleSlot.d.ts +2 -9
  21. package/dist/cjs/handleSlot.js +47 -150
  22. package/dist/cjs/processors/processComEvents.d.ts +9 -0
  23. package/dist/cjs/processors/processComEvents.js +122 -0
  24. package/dist/cjs/processors/processModule.d.ts +31 -0
  25. package/dist/cjs/processors/processModule.js +125 -0
  26. package/dist/cjs/processors/processScene.d.ts +32 -0
  27. package/dist/cjs/processors/processScene.js +124 -0
  28. package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
  29. package/dist/cjs/processors/processSceneLogic.js +166 -0
  30. package/dist/cjs/taro-template.json +15 -7
  31. package/dist/cjs/toCodeTaro.d.ts +26 -5
  32. package/dist/cjs/toCodeTaro.js +59 -343
  33. package/dist/cjs/utils/builder/buildResult.d.ts +21 -0
  34. package/dist/cjs/utils/builder/buildResult.js +91 -0
  35. package/dist/cjs/utils/common/ImportManager.d.ts +19 -0
  36. package/dist/cjs/utils/common/ImportManager.js +105 -0
  37. package/dist/cjs/utils/common/helper.d.ts +2 -0
  38. package/dist/cjs/utils/common/helper.js +31 -0
  39. package/dist/cjs/utils/common/object.d.ts +5 -0
  40. package/dist/cjs/utils/common/object.js +58 -0
  41. package/dist/cjs/utils/common/string.d.ts +8 -0
  42. package/dist/cjs/utils/common/string.js +46 -0
  43. package/dist/cjs/utils/{pageConfig → config/content}/converter.js +1 -1
  44. package/dist/cjs/utils/{pageConfig → config/content}/index.js +9 -9
  45. package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.js +12 -22
  46. package/dist/{esm/utils/pageConfig → cjs/utils/config/content}/saveBase64Image.d.ts +1 -1
  47. package/dist/cjs/utils/{pageConfig → config/content}/saveBase64Image.js +8 -17
  48. package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.js +9 -32
  49. package/dist/cjs/utils/config/content/types.js +17 -0
  50. package/dist/cjs/utils/{pageConfig → config/content}/validator.js +1 -1
  51. package/dist/{esm/utils → cjs/utils/config}/handlePageConfig.d.ts +1 -1
  52. package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +4 -4
  53. package/dist/cjs/utils/context/buildContext.d.ts +24 -0
  54. package/dist/cjs/utils/context/buildContext.js +65 -0
  55. package/dist/cjs/utils/context/buildFrameMap.d.ts +16 -0
  56. package/dist/cjs/utils/context/buildFrameMap.js +106 -0
  57. package/dist/cjs/utils/context/buildGlobalData.d.ts +13 -0
  58. package/dist/cjs/utils/context/buildGlobalData.js +58 -0
  59. package/dist/cjs/utils/context/collectJSModules.d.ts +37 -0
  60. package/dist/cjs/utils/context/collectJSModules.js +91 -0
  61. package/dist/cjs/utils/context/createEventQueries.d.ts +45 -0
  62. package/dist/cjs/utils/context/createEventQueries.js +99 -0
  63. package/dist/cjs/utils/context/createProvider.d.ts +21 -0
  64. package/dist/cjs/utils/context/createProvider.js +49 -0
  65. package/dist/cjs/utils/index.d.ts +10 -62
  66. package/dist/cjs/utils/index.js +21 -282
  67. package/dist/cjs/utils/{convertNamespace.js → logic/convertNamespace.js} +1 -1
  68. package/dist/cjs/utils/{genJSModules.js → logic/genJSModules.js} +1 -1
  69. package/dist/{esm/utils → cjs/utils/logic}/handleProcess.d.ts +2 -2
  70. package/dist/cjs/utils/{handleProcess.js → logic/handleProcess.js} +14 -11
  71. package/dist/cjs/utils/logic/processChildren.d.ts +12 -0
  72. package/dist/cjs/utils/logic/processChildren.js +82 -0
  73. package/dist/cjs/utils/style/color.d.ts +4 -0
  74. package/dist/cjs/utils/style/color.js +45 -0
  75. package/dist/cjs/utils/style/converter.d.ts +7 -0
  76. package/dist/cjs/utils/style/converter.js +181 -0
  77. package/dist/cjs/utils/{getComponentClassName.js → style/getComponentClassName.js} +1 -1
  78. package/dist/cjs/utils/{pxtransform.js → style/pxtransform.js} +1 -1
  79. package/dist/cjs/utils/style/types.d.ts +23 -0
  80. package/dist/cjs/utils/{pageConfig → style}/types.js +1 -1
  81. package/dist/cjs/utils/{code → templates}/component.js +1 -1
  82. package/dist/cjs/utils/{code → templates}/index.js +4 -4
  83. package/dist/cjs/utils/{code → templates}/renderManager.js +1 -1
  84. package/dist/cjs/utils/{code → templates}/scene.js +1 -1
  85. package/dist/esm/core/mybricks/index.js +1 -1
  86. package/dist/esm/core/utils/ComContext.js +1 -0
  87. package/dist/esm/core/utils/hooks.js +118 -0
  88. package/dist/esm/core/utils/index.js +6 -57
  89. package/dist/esm/core/utils/page.js +50 -0
  90. package/dist/esm/core/utils/useContext.js +2 -1
  91. package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
  92. package/dist/esm/generate/generateTaroProjectJson.js +27 -23
  93. package/dist/esm/generate/utils/tabBarImages.d.ts +1 -1
  94. package/dist/esm/handleCom.d.ts +1 -1
  95. package/dist/esm/handleCom.js +159 -244
  96. package/dist/esm/handleDom.js +9 -48
  97. package/dist/esm/handleExtension.d.ts +2 -2
  98. package/dist/esm/handleExtension.js +5 -5
  99. package/dist/esm/handleGlobal.d.ts +2 -12
  100. package/dist/esm/handleGlobal.js +17 -3
  101. package/dist/esm/handleModule.js +3 -3
  102. package/dist/esm/handleSlot.d.ts +2 -9
  103. package/dist/esm/handleSlot.js +97 -174
  104. package/dist/esm/processors/processComEvents.d.ts +9 -0
  105. package/dist/esm/processors/processComEvents.js +110 -0
  106. package/dist/esm/processors/processModule.d.ts +31 -0
  107. package/dist/esm/processors/processModule.js +126 -0
  108. package/dist/esm/processors/processScene.d.ts +32 -0
  109. package/dist/esm/processors/processScene.js +126 -0
  110. package/dist/esm/processors/processSceneLogic.d.ts +4 -0
  111. package/dist/esm/processors/processSceneLogic.js +160 -0
  112. package/dist/esm/taro-template.json +15 -7
  113. package/dist/esm/toCodeTaro.d.ts +26 -5
  114. package/dist/esm/toCodeTaro.js +96 -396
  115. package/dist/esm/utils/builder/buildResult.d.ts +21 -0
  116. package/dist/esm/utils/builder/buildResult.js +61 -0
  117. package/dist/esm/utils/common/ImportManager.d.ts +19 -0
  118. package/dist/esm/utils/common/ImportManager.js +103 -0
  119. package/dist/esm/utils/common/helper.d.ts +2 -0
  120. package/dist/esm/utils/common/helper.js +4 -0
  121. package/dist/esm/utils/common/object.d.ts +5 -0
  122. package/dist/esm/utils/common/object.js +32 -0
  123. package/dist/esm/utils/common/string.d.ts +8 -0
  124. package/dist/esm/utils/common/string.js +21 -0
  125. package/dist/esm/utils/config/content/pageConfig.js +40 -0
  126. package/dist/{cjs/utils/pageConfig → esm/utils/config/content}/saveBase64Image.d.ts +1 -1
  127. package/dist/esm/utils/{pageConfig → config/content}/saveBase64Image.js +11 -30
  128. package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.js +12 -34
  129. package/dist/{cjs/utils → esm/utils/config}/handlePageConfig.d.ts +1 -1
  130. package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +1 -1
  131. package/dist/esm/utils/context/buildContext.d.ts +24 -0
  132. package/dist/esm/utils/context/buildContext.js +53 -0
  133. package/dist/esm/utils/context/buildFrameMap.d.ts +16 -0
  134. package/dist/esm/utils/context/buildFrameMap.js +131 -0
  135. package/dist/esm/utils/context/buildGlobalData.d.ts +13 -0
  136. package/dist/esm/utils/context/buildGlobalData.js +44 -0
  137. package/dist/esm/utils/context/collectJSModules.d.ts +37 -0
  138. package/dist/esm/utils/context/collectJSModules.js +87 -0
  139. package/dist/esm/utils/context/createEventQueries.d.ts +45 -0
  140. package/dist/esm/utils/context/createEventQueries.js +98 -0
  141. package/dist/esm/utils/context/createProvider.d.ts +21 -0
  142. package/dist/esm/utils/context/createProvider.js +33 -0
  143. package/dist/esm/utils/index.d.ts +10 -62
  144. package/dist/esm/utils/index.js +12 -345
  145. package/dist/{cjs/utils → esm/utils/logic}/handleProcess.d.ts +2 -2
  146. package/dist/esm/utils/{handleProcess.js → logic/handleProcess.js} +11 -5
  147. package/dist/esm/utils/logic/processChildren.d.ts +12 -0
  148. package/dist/esm/utils/logic/processChildren.js +48 -0
  149. package/dist/esm/utils/style/color.d.ts +4 -0
  150. package/dist/esm/utils/style/color.js +17 -0
  151. package/dist/esm/utils/style/converter.d.ts +7 -0
  152. package/dist/esm/utils/style/converter.js +176 -0
  153. package/dist/esm/utils/style/types.d.ts +23 -0
  154. package/dist/esm/utils/style/types.js +1 -0
  155. package/package.json +1 -1
  156. package/dist/esm/utils/pageConfig/pageConfig.js +0 -60
  157. /package/dist/cjs/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  158. /package/dist/cjs/utils/{pageConfig → config/content}/index.d.ts +0 -0
  159. /package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  160. /package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  161. /package/dist/cjs/utils/{pageConfig → config/content}/types.d.ts +0 -0
  162. /package/dist/cjs/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  163. /package/dist/cjs/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  164. /package/dist/cjs/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  165. /package/dist/cjs/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  166. /package/dist/cjs/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  167. /package/dist/cjs/utils/{code → templates}/component.d.ts +0 -0
  168. /package/dist/cjs/utils/{code → templates}/index.d.ts +0 -0
  169. /package/dist/cjs/utils/{code → templates}/renderManager.d.ts +0 -0
  170. /package/dist/cjs/utils/{code → templates}/scene.d.ts +0 -0
  171. /package/dist/esm/core/comlib/{Index.js → index.js} +0 -0
  172. /package/dist/esm/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  173. /package/dist/esm/utils/{pageConfig → config/content}/converter.js +0 -0
  174. /package/dist/esm/utils/{pageConfig → config/content}/index.d.ts +0 -0
  175. /package/dist/esm/utils/{pageConfig → config/content}/index.js +0 -0
  176. /package/dist/esm/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  177. /package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  178. /package/dist/esm/utils/{pageConfig → config/content}/types.d.ts +0 -0
  179. /package/dist/esm/utils/{pageConfig → config/content}/types.js +0 -0
  180. /package/dist/esm/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  181. /package/dist/esm/utils/{pageConfig → config/content}/validator.js +0 -0
  182. /package/dist/esm/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  183. /package/dist/esm/utils/{convertNamespace.js → logic/convertNamespace.js} +0 -0
  184. /package/dist/esm/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  185. /package/dist/esm/utils/{genJSModules.js → logic/genJSModules.js} +0 -0
  186. /package/dist/esm/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  187. /package/dist/esm/utils/{getComponentClassName.js → style/getComponentClassName.js} +0 -0
  188. /package/dist/esm/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  189. /package/dist/esm/utils/{pxtransform.js → style/pxtransform.js} +0 -0
  190. /package/dist/esm/utils/{code → templates}/component.d.ts +0 -0
  191. /package/dist/esm/utils/{code → templates}/component.js +0 -0
  192. /package/dist/esm/utils/{code → templates}/index.d.ts +0 -0
  193. /package/dist/esm/utils/{code → templates}/index.js +0 -0
  194. /package/dist/esm/utils/{code → templates}/renderManager.d.ts +0 -0
  195. /package/dist/esm/utils/{code → templates}/renderManager.js +0 -0
  196. /package/dist/esm/utils/{code → templates}/scene.d.ts +0 -0
  197. /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,4 @@
1
+ /**
2
+ * 处理场景/插槽的逻辑(事件流、输入项等)
3
+ */
4
+ export declare const processSceneLogic: (ui: any, config: any, addDependencyImport: any) => string;
@@ -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
+ };