@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,167 @@
|
|
|
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 processComEvents = function processComEvents(com, config) {
|
|
10
|
+
var _meta$def;
|
|
11
|
+
var meta = com.meta,
|
|
12
|
+
events = com.events;
|
|
13
|
+
var comEventCode = "";
|
|
14
|
+
var outputsConfig = {};
|
|
15
|
+
var eventConfig = {};
|
|
16
|
+
var outputEvents = events || {};
|
|
17
|
+
Object.entries(outputEvents).forEach(function (_ref) {
|
|
18
|
+
var _eventInfo$options, _eventInfo$options2;
|
|
19
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
20
|
+
eventId = _ref2[0],
|
|
21
|
+
eventInfo = _ref2[1];
|
|
22
|
+
var type = eventInfo.type,
|
|
23
|
+
isAbstract = eventInfo.isAbstract,
|
|
24
|
+
diagramId = eventInfo.diagramId,
|
|
25
|
+
schema = eventInfo.schema,
|
|
26
|
+
active = eventInfo.active;
|
|
27
|
+
if (active === false) return;
|
|
28
|
+
if (isAbstract) {
|
|
29
|
+
config.setAbstractEventTypeDefMap({
|
|
30
|
+
comId: com.meta.id,
|
|
31
|
+
eventId: eventId,
|
|
32
|
+
typeDef: config.getTypeDef(),
|
|
33
|
+
schema: schema
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (type === "fx") {
|
|
38
|
+
processFxEvent(eventId, com, config, function (code) {
|
|
39
|
+
comEventCode += code;
|
|
40
|
+
});
|
|
41
|
+
eventConfig[eventId] = {
|
|
42
|
+
connected: true
|
|
43
|
+
};
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (type !== "defined") return;
|
|
47
|
+
|
|
48
|
+
// 兼容:部分数据把 diagramId 放在 options.id(例如 test-data.json 的 outputEvents)
|
|
49
|
+
var resolvedDiagramId = diagramId || (eventInfo === null || eventInfo === void 0 || (_eventInfo$options = eventInfo.options) === null || _eventInfo$options === void 0 ? void 0 : _eventInfo$options.diagramId) || (eventInfo === null || eventInfo === void 0 || (_eventInfo$options2 = eventInfo.options) === null || _eventInfo$options2 === void 0 ? void 0 : _eventInfo$options2.id);
|
|
50
|
+
if (!resolvedDiagramId) return;
|
|
51
|
+
var event = config.getEventByDiagramId(resolvedDiagramId);
|
|
52
|
+
if (!event) return;
|
|
53
|
+
var paramName = "value";
|
|
54
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
55
|
+
target: "comRefs.current",
|
|
56
|
+
depth: config.depth + 3,
|
|
57
|
+
addParentDependencyImport: config.addParentDependencyImport,
|
|
58
|
+
getParams: function getParams() {
|
|
59
|
+
return _defineProperty({}, eventId, paramName);
|
|
60
|
+
}
|
|
61
|
+
})).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.");
|
|
62
|
+
if (process.includes("pageParams")) {
|
|
63
|
+
var importParams = {
|
|
64
|
+
isPopup: config.isPopup
|
|
65
|
+
};
|
|
66
|
+
var controllerName = config.isPopup ? "popupRouter" : "pageRouter";
|
|
67
|
+
config.addParentDependencyImport({
|
|
68
|
+
packageName: config.getComponentPackageName(importParams),
|
|
69
|
+
dependencyNames: [controllerName, "SUBJECT_VALUE"],
|
|
70
|
+
importType: "named"
|
|
71
|
+
});
|
|
72
|
+
var indent = indentation(config.codeStyle.indent * (config.depth + 3));
|
|
73
|
+
// 使用 SUBJECT_VALUE 获取当前参数值,保持与 MyBricks 逻辑一致
|
|
74
|
+
process = "".concat(indent, "const pageParams: any = ").concat(controllerName, ".getParams(\"").concat(config.getCurrentScene().id, "\")[SUBJECT_VALUE];\n").concat(process);
|
|
75
|
+
}
|
|
76
|
+
var handlerIndent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
77
|
+
var handlerCode = "(".concat(paramName, ": any) => {\n").concat(process, "\n").concat(handlerIndent, "}");
|
|
78
|
+
if (!outputsConfig[meta.id]) {
|
|
79
|
+
outputsConfig[meta.id] = {};
|
|
80
|
+
}
|
|
81
|
+
var onEventName = eventId.startsWith("on") ? eventId : "on".concat(eventId.charAt(0).toUpperCase()).concat(eventId.slice(1));
|
|
82
|
+
outputsConfig[meta.id][onEventName] = handlerCode;
|
|
83
|
+
eventConfig[eventId] = {
|
|
84
|
+
connected: true
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// 针对 mybricks.taro.popup 的特殊处理
|
|
89
|
+
if (((_meta$def = meta.def) === null || _meta$def === void 0 ? void 0 : _meta$def.namespace) === 'mybricks.taro.popup') {
|
|
90
|
+
var _config$getCurrentSce, _sceneCom$model;
|
|
91
|
+
if (!outputsConfig[meta.id]) {
|
|
92
|
+
outputsConfig[meta.id] = {};
|
|
93
|
+
}
|
|
94
|
+
var importParams = {
|
|
95
|
+
isPopup: config.isPopup
|
|
96
|
+
};
|
|
97
|
+
var sceneCom = (_config$getCurrentSce = config.getCurrentScene().coms) === null || _config$getCurrentSce === void 0 ? void 0 : _config$getCurrentSce[meta.id];
|
|
98
|
+
var popupData = (sceneCom === null || sceneCom === void 0 || (_sceneCom$model = sceneCom.model) === null || _sceneCom$model === void 0 ? void 0 : _sceneCom$model.data) || {};
|
|
99
|
+
var isTrue = function isTrue(v) {
|
|
100
|
+
return v === true || v === "true";
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// 如果 onClose 没被连接,且 visibleClose=true(会渲染关闭按钮),才添加默认 close
|
|
104
|
+
// visibleClose=false 时,运行时不会触发 onClose(模板里只在 close 按钮点击时触发)
|
|
105
|
+
if (!eventConfig['onClose'] && isTrue(popupData.visibleClose)) {
|
|
106
|
+
config.addParentDependencyImport({
|
|
107
|
+
packageName: config.getComponentPackageName(importParams),
|
|
108
|
+
dependencyNames: ["popupRouter"],
|
|
109
|
+
importType: "named"
|
|
110
|
+
});
|
|
111
|
+
var handlerIndent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
112
|
+
var processIndent = indentation(config.codeStyle.indent * (config.depth + 3));
|
|
113
|
+
outputsConfig[meta.id]['onClose'] = "() => {\n".concat(processIndent, "popupRouter.close(\"").concat(config.getCurrentScene().id, "\");\n").concat(handlerIndent, "}");
|
|
114
|
+
eventConfig['onClose'] = {
|
|
115
|
+
connected: true
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// 如果 onClickOverlay 没被连接,且组件配置了点击遮罩关闭
|
|
120
|
+
if (!eventConfig['onClickOverlay'] && isTrue(popupData.maskClose)) {
|
|
121
|
+
config.addParentDependencyImport({
|
|
122
|
+
packageName: config.getComponentPackageName(importParams),
|
|
123
|
+
dependencyNames: ["popupRouter"],
|
|
124
|
+
importType: "named"
|
|
125
|
+
});
|
|
126
|
+
var _handlerIndent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
127
|
+
var _processIndent = indentation(config.codeStyle.indent * (config.depth + 3));
|
|
128
|
+
outputsConfig[meta.id]['onClickOverlay'] = "() => {\n".concat(_processIndent, "popupRouter.close(\"").concat(config.getCurrentScene().id, "\");\n").concat(_handlerIndent, "}");
|
|
129
|
+
eventConfig['onClickOverlay'] = {
|
|
130
|
+
connected: true
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
comEventCode: comEventCode,
|
|
136
|
+
outputsConfig: outputsConfig,
|
|
137
|
+
eventConfig: eventConfig
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 处理 FX 事件
|
|
143
|
+
*/
|
|
144
|
+
var processFxEvent = function processFxEvent(eventId, com, config, addCode) {
|
|
145
|
+
var fxsMap = config.getFxsMap();
|
|
146
|
+
var currentProvider = config.getCurrentProvider();
|
|
147
|
+
var scene = config.getCurrentScene();
|
|
148
|
+
var pinProxy = scene.pinProxies["".concat(com.props.id, "-").concat(eventId)];
|
|
149
|
+
if (!pinProxy) return;
|
|
150
|
+
var fxProvider = fxsMap[pinProxy.frameId];
|
|
151
|
+
if (!fxProvider) return;
|
|
152
|
+
var isGlobal = fxProvider.name === "global";
|
|
153
|
+
if (fxProvider.name !== currentProvider.name) {
|
|
154
|
+
if (isGlobal) {
|
|
155
|
+
config.addParentDependencyImport({
|
|
156
|
+
packageName: config.getComponentPackageName(),
|
|
157
|
+
dependencyNames: ["globalFxs"],
|
|
158
|
+
importType: "named"
|
|
159
|
+
});
|
|
160
|
+
} else {
|
|
161
|
+
config.addConsumer(fxProvider);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
var indent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
165
|
+
var code = "".concat(indent).concat(eventId, ": ").concat(isGlobal ? "globalFxs" : "comRefs.current.".concat(fxProvider.name, "_Fxs"), ".").concat(pinProxy.frameId, ",\n");
|
|
166
|
+
addCode(code);
|
|
167
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 处理模块(Module)
|
|
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 Module = ToCodeResult["modules"][0];
|
|
11
|
+
interface ProcessModuleParams {
|
|
12
|
+
module: Module;
|
|
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
|
+
addResult: (result: GeneratedFile) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 处理单个模块
|
|
25
|
+
*/
|
|
26
|
+
export declare const processModule: (params: ProcessModuleParams) => void;
|
|
27
|
+
/**
|
|
28
|
+
* 处理所有模块
|
|
29
|
+
*/
|
|
30
|
+
export declare const processModules: (modules: Module[], params: Omit<ProcessModuleParams, "module">) => void;
|
|
31
|
+
export {};
|
|
@@ -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,134 @@
|
|
|
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, _originalScene$deps;
|
|
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
|
+
// 参考鸿蒙逻辑:如果场景中包含 popup 组件,则标记场景类型为 popup
|
|
49
|
+
var originalScene = getSceneById(scene.id);
|
|
50
|
+
var isPopup = (originalScene === null || originalScene === void 0 ? void 0 : originalScene.type) === 'popup' || (originalScene === null || originalScene === void 0 || (_originalScene$deps = originalScene.deps) === null || _originalScene$deps === void 0 ? void 0 : _originalScene$deps.some(function (dep) {
|
|
51
|
+
return dep.namespace === 'mybricks.taro.popup';
|
|
52
|
+
}));
|
|
53
|
+
|
|
54
|
+
// 处理页面配置
|
|
55
|
+
var pageConfigContent = pageConfigHandler.handle(scene, isPopup);
|
|
56
|
+
|
|
57
|
+
// 创建事件查询函数
|
|
58
|
+
var eventQueries = createEventQueries(event);
|
|
59
|
+
|
|
60
|
+
// 处理 Slot
|
|
61
|
+
handleSlot(ui, _objectSpread(_objectSpread({}, config), {}, {
|
|
62
|
+
isPopup: isPopup,
|
|
63
|
+
// 标记当前场景是否为弹窗
|
|
64
|
+
getCurrentScene: function getCurrentScene() {
|
|
65
|
+
var originalScene = getSceneById(scene.id);
|
|
66
|
+
return _objectSpread(_objectSpread(_objectSpread({}, scene), originalScene), {}, {
|
|
67
|
+
event: event
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
add: function add(value) {
|
|
71
|
+
params.addResult(_objectSpread(_objectSpread({}, value), {}, {
|
|
72
|
+
type: isPopup ? "popup" : originalScene !== null && originalScene !== void 0 && originalScene.type ? originalScene.type : "normal",
|
|
73
|
+
meta: scene,
|
|
74
|
+
pageConfigContent: pageConfigContent
|
|
75
|
+
}));
|
|
76
|
+
},
|
|
77
|
+
addJSModule: function addJSModule(module) {
|
|
78
|
+
if (!jsModulesMap.has(module.id)) {
|
|
79
|
+
jsModulesMap.set(module.id, module);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
getEventByDiagramId: eventQueries.getEventByDiagramId,
|
|
83
|
+
getFrameInputEvent: eventQueries.getFrameInputEvent,
|
|
84
|
+
getVarEvents: eventQueries.getVarEvents,
|
|
85
|
+
getFxEvents: eventQueries.getFxEvents,
|
|
86
|
+
checkIsRoot: function checkIsRoot() {
|
|
87
|
+
return true;
|
|
88
|
+
},
|
|
89
|
+
getEffectEvent: eventQueries.getEffectEvent,
|
|
90
|
+
getCurrentProvider: function getCurrentProvider() {
|
|
91
|
+
return currentProvider;
|
|
92
|
+
},
|
|
93
|
+
getRootProvider: function getRootProvider() {
|
|
94
|
+
return currentProvider;
|
|
95
|
+
},
|
|
96
|
+
getProviderMap: function getProviderMap() {
|
|
97
|
+
return providerMap;
|
|
98
|
+
},
|
|
99
|
+
getExtensionEventById: getExtensionEventById,
|
|
100
|
+
getSceneById: getSceneById,
|
|
101
|
+
getFrameById: getFrameById,
|
|
102
|
+
depth: 0,
|
|
103
|
+
getTypeDef: function getTypeDef() {
|
|
104
|
+
return typeDef;
|
|
105
|
+
},
|
|
106
|
+
getFxsMap: function getFxsMap() {
|
|
107
|
+
return fxsMap;
|
|
108
|
+
},
|
|
109
|
+
setAbstractEventTypeDefMap: function setAbstractEventTypeDefMap(params) {
|
|
110
|
+
var comId = params.comId,
|
|
111
|
+
eventId = params.eventId,
|
|
112
|
+
typeDef = params.typeDef,
|
|
113
|
+
schema = params.schema;
|
|
114
|
+
if (!abstractEventTypeDefMap[comId]) {
|
|
115
|
+
abstractEventTypeDefMap[comId] = {
|
|
116
|
+
typeDef: typeDef,
|
|
117
|
+
eventIdMap: {}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
|
|
121
|
+
}
|
|
122
|
+
}));
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 处理所有场景
|
|
127
|
+
*/
|
|
128
|
+
export var processScenes = function processScenes(scenes, params) {
|
|
129
|
+
scenes.forEach(function (scene) {
|
|
130
|
+
processScene(_objectSpread(_objectSpread({}, params), {}, {
|
|
131
|
+
scene: scene
|
|
132
|
+
}));
|
|
133
|
+
});
|
|
134
|
+
};
|
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
var importParams = {
|
|
43
|
+
isPopup: config.isPopup
|
|
44
|
+
};
|
|
45
|
+
addDependencyImport({
|
|
46
|
+
packageName: config.getUtilsPackageName(importParams),
|
|
47
|
+
dependencyNames: ["createVariable"],
|
|
48
|
+
importType: "named"
|
|
49
|
+
});
|
|
50
|
+
code += "\n".concat(indent, "const vars = comRefs.current.").concat(providerName, "_Vars;");
|
|
51
|
+
vars.forEach(function (_ref3) {
|
|
52
|
+
var _com$model;
|
|
53
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
54
|
+
comId = _ref4[0],
|
|
55
|
+
com = _ref4[1];
|
|
56
|
+
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) || {});
|
|
57
|
+
code += "\n".concat(indent, "if (!vars.").concat(com.title, ".get) vars.").concat(com.title, " = createVariable(").concat(initValue, ");");
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// 2. 初始化 Fxs (使用 getFxEvents 获取 FX 列表)
|
|
62
|
+
var fxEvents = config.getFxEvents();
|
|
63
|
+
if (fxEvents.length > 0) {
|
|
64
|
+
var _importParams = {
|
|
65
|
+
isPopup: config.isPopup
|
|
66
|
+
};
|
|
67
|
+
addDependencyImport({
|
|
68
|
+
packageName: config.getUtilsPackageName(_importParams),
|
|
69
|
+
dependencyNames: ["createFx"],
|
|
70
|
+
importType: "named"
|
|
71
|
+
});
|
|
72
|
+
code += "\n".concat(indent, "const fxs = comRefs.current.").concat(providerName, "_Fxs;");
|
|
73
|
+
fxEvents.forEach(function (fxEvent) {
|
|
74
|
+
var res = handleProcess(fxEvent, _objectSpread(_objectSpread({}, config), {}, {
|
|
75
|
+
depth: 3,
|
|
76
|
+
getCurrentScene: function getCurrentScene() {
|
|
77
|
+
return _objectSpread({
|
|
78
|
+
id: fxEvent.frameId
|
|
79
|
+
}, fxEvent);
|
|
80
|
+
},
|
|
81
|
+
addParentDependencyImport: addDependencyImport,
|
|
82
|
+
getParams: function getParams() {
|
|
83
|
+
return (fxEvent.paramPins || []).reduce(function (pre, cur, index) {
|
|
84
|
+
pre[cur.id] = "value".concat(index);
|
|
85
|
+
return pre;
|
|
86
|
+
}, {});
|
|
87
|
+
}
|
|
88
|
+
})).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.");
|
|
89
|
+
var values = (fxEvent.paramPins || []).map(function (paramPin, index) {
|
|
90
|
+
if (paramPin.type === "config") {
|
|
91
|
+
var _fxEvent$initValues;
|
|
92
|
+
return "value".concat(index, ": any = ").concat(JSON.stringify(((_fxEvent$initValues = fxEvent.initValues) === null || _fxEvent$initValues === void 0 ? void 0 : _fxEvent$initValues[paramPin.id]) || {}));
|
|
93
|
+
}
|
|
94
|
+
return "value".concat(index, ": any");
|
|
95
|
+
}).join(", ");
|
|
96
|
+
code += "\n".concat(indent, "if (!fxs.").concat(fxEvent.frameId, ".call) fxs.").concat(fxEvent.frameId, " = createFx((").concat(values, ") => {\n").concat(res, "\n").concat(indent, "});");
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return code;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 处理场景级事件
|
|
104
|
+
*/
|
|
105
|
+
var processSceneEvents = function processSceneEvents(ui, currentScene, config, addDependencyImport, indent) {
|
|
106
|
+
var code = "";
|
|
107
|
+
var sceneEvents = (currentScene === null || currentScene === void 0 ? void 0 : currentScene.events) || (ui === null || ui === void 0 ? void 0 : ui.events) || [];
|
|
108
|
+
if (!Array.isArray(sceneEvents)) return code;
|
|
109
|
+
sceneEvents.forEach(function (eventInfo) {
|
|
110
|
+
var type = eventInfo.type,
|
|
111
|
+
diagramId = eventInfo.diagramId,
|
|
112
|
+
active = eventInfo.active;
|
|
113
|
+
if (active !== false && type === "defined" && diagramId) {
|
|
114
|
+
var event = config.getEventByDiagramId(diagramId);
|
|
115
|
+
if (event) {
|
|
116
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
117
|
+
target: "comRefs.current",
|
|
118
|
+
depth: 2,
|
|
119
|
+
addParentDependencyImport: addDependencyImport,
|
|
120
|
+
getParams: function getParams() {
|
|
121
|
+
return {};
|
|
122
|
+
}
|
|
123
|
+
})).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.");
|
|
124
|
+
if (process.trim()) {
|
|
125
|
+
code += "\n".concat(indent, " ").concat(process.trim());
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return code;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 处理场景级输入
|
|
135
|
+
*/
|
|
136
|
+
var processSceneInputs = function processSceneInputs(currentScene, config, addDependencyImport, indent) {
|
|
137
|
+
var code = "";
|
|
138
|
+
var sceneInputs = (currentScene === null || currentScene === void 0 ? void 0 : currentScene.inputs) || [];
|
|
139
|
+
if (!Array.isArray(sceneInputs) || sceneInputs.length === 0) return code;
|
|
140
|
+
code += "\n".concat(indent, " const inputs = comRefs.current.inputs;");
|
|
141
|
+
sceneInputs.forEach(function (input) {
|
|
142
|
+
var event = config.getFrameInputEvent(input.id, currentScene.id);
|
|
143
|
+
if (!event) return;
|
|
144
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
145
|
+
target: "comRefs.current",
|
|
146
|
+
depth: 3,
|
|
147
|
+
addParentDependencyImport: addDependencyImport,
|
|
148
|
+
getParams: function getParams() {
|
|
149
|
+
return _defineProperty({}, input.id, "data");
|
|
150
|
+
}
|
|
151
|
+
})).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.");
|
|
152
|
+
if (process.trim()) {
|
|
153
|
+
code += "\n".concat(indent, " inputs.").concat(input.id, " = (data: any) => {\n").concat(process, "\n").concat(indent, " };");
|
|
154
|
+
if (input.id === "open") {
|
|
155
|
+
var importParams = {
|
|
156
|
+
isPopup: config.isPopup
|
|
157
|
+
};
|
|
158
|
+
var controllerName = config.isPopup ? "popupRouter" : "pageRouter";
|
|
159
|
+
addDependencyImport({
|
|
160
|
+
packageName: config.getComponentPackageName(importParams),
|
|
161
|
+
dependencyNames: [controllerName, "SUBJECT_SUBSCRIBE"],
|
|
162
|
+
importType: "named"
|
|
163
|
+
});
|
|
164
|
+
// 使用 SUBJECT_SUBSCRIBE 订阅,不修改 Subject.js
|
|
165
|
+
code += "\n".concat(indent, " ").concat(controllerName, ".getParams(\"").concat(currentScene.id, "\")[SUBJECT_SUBSCRIBE]((val: any) => {\n").concat(indent, " if (val) inputs.open(val);\n").concat(indent, " });");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return code;
|
|
170
|
+
};
|