@mybricks/to-code-taro 1.0.8 → 1.1.0
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/dist/cjs/core/comlib/_Modal.js +68 -0
- package/dist/cjs/core/comlib/_TimerDelay.js +55 -30
- package/dist/cjs/core/comlib/index.js +3 -0
- package/dist/cjs/core/mybricks/log.js +0 -1
- package/dist/cjs/core/utils/hooks.js +3 -2
- package/dist/cjs/core/utils/slots.js +11 -5
- package/dist/cjs/core/utils/useContext.js +5 -3
- package/dist/cjs/core/utils/with.js +5 -6
- package/dist/cjs/generate/generateTaroProjectJson.js +18 -1
- package/dist/cjs/handleCom.js +47 -73
- package/dist/cjs/handleSlot.js +5 -3
- package/dist/cjs/processors/processComEvents.js +2 -3
- package/dist/cjs/processors/processModule.js +23 -0
- package/dist/cjs/processors/processScene.js +23 -0
- package/dist/cjs/processors/processSceneLogic.d.ts +4 -1
- package/dist/cjs/processors/processSceneLogic.js +72 -12
- package/dist/cjs/taro-template.json +68 -42
- package/dist/cjs/toCodeTaro.d.ts +14 -1
- package/dist/cjs/toCodeTaro.js +1 -0
- package/dist/cjs/utils/builder/buildResult.d.ts +1 -0
- package/dist/cjs/utils/builder/buildResult.js +8 -1
- package/dist/cjs/utils/common/helper.d.ts +10 -0
- package/dist/cjs/utils/common/helper.js +21 -0
- package/dist/cjs/utils/common/string.d.ts +10 -0
- package/dist/cjs/utils/common/string.js +13 -0
- package/dist/cjs/utils/config/content/converter.js +1 -0
- package/dist/cjs/utils/config/content/tabBarConfig.d.ts +19 -4
- package/dist/cjs/utils/config/content/tabBarConfig.js +18 -1
- package/dist/cjs/utils/config/content/types.d.ts +15 -10
- package/dist/cjs/utils/config/handlePageConfig.d.ts +6 -0
- package/dist/cjs/utils/config/handlePageConfig.js +13 -1
- package/dist/cjs/utils/logic/handleProcess.js +50 -33
- package/dist/cjs/utils/style/converter.js +1 -6
- package/dist/cjs/utils/templates/index.d.ts +1 -0
- package/dist/cjs/utils/templates/index.js +11 -4
- package/dist/cjs/utils/templates/renderManager.js +4 -2
- package/dist/cjs/utils/templates/scene.d.ts +2 -1
- package/dist/cjs/utils/templates/scene.js +4 -3
- package/dist/esm/abstractEventTypeDef.d.ts.map +1 -0
- package/dist/esm/core/comlib/_Modal.js +51 -0
- package/dist/esm/core/comlib/_TimerDelay.js +46 -14
- package/dist/esm/core/comlib/index.js +2 -0
- package/dist/esm/core/mybricks/log.js +1 -5
- package/dist/esm/core/utils/hooks.js +7 -2
- package/dist/esm/core/utils/slots.js +28 -10
- package/dist/esm/core/utils/useContext.js +9 -3
- package/dist/esm/core/utils/with.js +5 -9
- package/dist/esm/generate/generateTaroProjectJson.d.ts.map +1 -0
- package/dist/esm/generate/generateTaroProjectJson.js +22 -0
- package/dist/esm/generate/generateTaroTempalteJson.d.ts.map +1 -0
- package/dist/esm/generate/utils/appConfig.d.ts.map +1 -0
- package/dist/esm/generate/utils/commonDir.d.ts.map +1 -0
- package/dist/esm/generate/utils/fileNode.d.ts.map +1 -0
- package/dist/esm/generate/utils/index.d.ts.map +1 -0
- package/dist/esm/generate/utils/tabBarImages.d.ts.map +1 -0
- package/dist/esm/handleCom.js +60 -95
- package/dist/esm/handleDom.d.ts.map +1 -0
- package/dist/esm/handleExtension.d.ts.map +1 -0
- package/dist/esm/handleGlobal.d.ts.map +1 -0
- package/dist/esm/handleModule.d.ts.map +1 -0
- package/dist/esm/handleSlot.js +9 -4
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/processors/processComEvents.js +6 -3
- package/dist/esm/processors/processModule.d.ts.map +1 -0
- package/dist/esm/processors/processModule.js +35 -0
- package/dist/esm/processors/processScene.d.ts.map +1 -0
- package/dist/esm/processors/processScene.js +35 -0
- package/dist/esm/processors/processSceneLogic.d.ts +4 -1
- package/dist/esm/processors/processSceneLogic.js +90 -15
- package/dist/esm/taro-template.json +68 -42
- package/dist/esm/toCodeTaro.d.ts +14 -1
- package/dist/esm/toCodeTaro.d.ts.map +1 -0
- package/dist/esm/toCodeTaro.js +1 -0
- package/dist/esm/utils/builder/buildResult.d.ts +1 -0
- package/dist/esm/utils/builder/buildResult.d.ts.map +1 -0
- package/dist/esm/utils/builder/buildResult.js +8 -1
- package/dist/esm/utils/common/ImportManager.d.ts.map +1 -0
- package/dist/esm/utils/common/helper.d.ts +10 -0
- package/dist/esm/utils/common/helper.js +29 -0
- package/dist/esm/utils/common/object.d.ts.map +1 -0
- package/dist/esm/utils/common/string.d.ts +10 -0
- package/dist/esm/utils/common/string.d.ts.map +1 -0
- package/dist/esm/utils/common/string.js +16 -0
- package/dist/esm/utils/config/content/converter.d.ts.map +1 -0
- package/dist/esm/utils/config/content/converter.js +1 -0
- package/dist/esm/utils/config/content/index.d.ts.map +1 -0
- package/dist/esm/utils/config/content/pageConfig.d.ts.map +1 -0
- package/dist/esm/utils/config/content/saveBase64Image.d.ts.map +1 -0
- package/dist/esm/utils/config/content/tabBarConfig.d.ts +19 -4
- package/dist/esm/utils/config/content/tabBarConfig.d.ts.map +1 -0
- package/dist/esm/utils/config/content/tabBarConfig.js +28 -4
- package/dist/esm/utils/config/content/types.d.ts +15 -10
- package/dist/esm/utils/config/content/types.d.ts.map +1 -0
- package/dist/esm/utils/config/content/validator.d.ts.map +1 -0
- package/dist/esm/utils/config/handlePageConfig.d.ts +6 -0
- package/dist/esm/utils/config/handlePageConfig.d.ts.map +1 -0
- package/dist/esm/utils/config/handlePageConfig.js +17 -2
- package/dist/esm/utils/context/buildContext.d.ts.map +1 -0
- package/dist/esm/utils/context/buildFrameMap.d.ts.map +1 -0
- package/dist/esm/utils/context/buildGlobalData.d.ts.map +1 -0
- package/dist/esm/utils/context/collectJSModules.d.ts.map +1 -0
- package/dist/esm/utils/context/createEventQueries.d.ts.map +1 -0
- package/dist/esm/utils/context/createProvider.d.ts.map +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/logic/convertNamespace.d.ts.map +1 -0
- package/dist/esm/utils/logic/genJSModules.d.ts.map +1 -0
- package/dist/esm/utils/logic/handleProcess.js +66 -40
- package/dist/esm/utils/logic/processChildren.d.ts.map +1 -0
- package/dist/esm/utils/style/color.d.ts.map +1 -0
- package/dist/esm/utils/style/converter.js +11 -8
- package/dist/esm/utils/style/getComponentClassName.d.ts.map +1 -0
- package/dist/esm/utils/style/pxtransform.d.ts.map +1 -0
- package/dist/esm/utils/style/types.d.ts.map +1 -0
- package/dist/esm/utils/templates/component.d.ts.map +1 -0
- package/dist/esm/utils/templates/index.d.ts +1 -0
- package/dist/esm/utils/templates/index.js +20 -10
- package/dist/esm/utils/templates/renderManager.js +5 -2
- package/dist/esm/utils/templates/scene.d.ts +2 -1
- package/dist/esm/utils/templates/scene.js +7 -6
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleModule.d.ts","sourceRoot":"","sources":["handleModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAiG,MAAM,SAAS,CAAC;AAGvI,KAAK,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE7D,UAAU,kBAAmB,SAAQ,UAAU;IAC7C,yBAAyB,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5E,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,QAAA,MAAM,YAAY,WAAY,MAAM,UAAU,kBAAkB;;;CAqG/D,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/esm/handleSlot.js
CHANGED
|
@@ -49,12 +49,14 @@ var handleSlot = function handleSlot(ui, config) {
|
|
|
49
49
|
currentSlotId: isRoot ? undefined : config.slotKey || slotId
|
|
50
50
|
}));
|
|
51
51
|
|
|
52
|
-
// 3. 处理场景逻辑 (Start
|
|
53
|
-
var
|
|
52
|
+
// 3. 处理场景逻辑 (变量/FX 初始化 + Start/Inputs 等)
|
|
53
|
+
var _processSceneLogic = processSceneLogic(ui, config, addDependencyImport),
|
|
54
|
+
initCode = _processSceneLogic.initCode,
|
|
55
|
+
effectCode = _processSceneLogic.effectCode;
|
|
54
56
|
|
|
55
57
|
// 4. 合并样式与代码
|
|
56
58
|
var cssContent = (convertStyleAryToCss((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.styleAry, slotId) || "") + (childResults.cssContent ? "\n" + childResults.cssContent : "");
|
|
57
|
-
var combinedJsCode = "".concat(envDefineCode).concat(childResults.js).concat(wrapInEffect(indent2, effectCode));
|
|
59
|
+
var combinedJsCode = "".concat(envDefineCode).concat(childResults.js).concat(initCode).concat(wrapInEffect(indent2, effectCode));
|
|
58
60
|
|
|
59
61
|
// 5. 生成 UI 结构
|
|
60
62
|
var uiResult = generateSlotUi(ui, props, childResults.ui, config);
|
|
@@ -133,8 +135,10 @@ var generateSlotUi = function generateSlotUi(ui, props, childrenUi, config) {
|
|
|
133
135
|
width: "100%",
|
|
134
136
|
height: "100%"
|
|
135
137
|
}, ui.style || {}), props.style || {});
|
|
138
|
+
// 鸿蒙化:优先使用 config 中传递的 layout(来自父容器 data.layout),否则使用 slot 自身的 layout
|
|
139
|
+
var layout = config.layout || ui.layout || mergedStyle.layout;
|
|
136
140
|
var styleCode = JSON.stringify(convertRootStyle(_objectSpread(_objectSpread({}, mergedStyle), {}, {
|
|
137
|
-
layout:
|
|
141
|
+
layout: layout
|
|
138
142
|
})));
|
|
139
143
|
var rootClassName = getRootComponentClassName(config.getCurrentScene(), config.checkIsRoot());
|
|
140
144
|
var classNameAttr = rootClassName ? " className='".concat(rootClassName, "'") : "";
|
|
@@ -150,6 +154,7 @@ var finalizeRootComponent = function finalizeRootComponent(ui, config, importMan
|
|
|
150
154
|
var componentId = ((_ui$meta = ui.meta) === null || _ui$meta === void 0 ? void 0 : _ui$meta.id) || ui.id || ((_ui$meta2 = ui.meta) === null || _ui$meta2 === void 0 ? void 0 : _ui$meta2.slotId) || "Index";
|
|
151
155
|
var componentName = "I".concat(String(componentId).replace(/[^a-zA-Z0-9]/g, "_"));
|
|
152
156
|
var componentCode = genComponentTemplate({
|
|
157
|
+
componentId: componentId,
|
|
153
158
|
componentName: componentName,
|
|
154
159
|
combinedJsCode: combinedJsCode,
|
|
155
160
|
renderDefinitions: renderDefinitions,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -58,7 +58,7 @@ export var processComEvents = function processComEvents(com, config) {
|
|
|
58
58
|
getParams: function getParams() {
|
|
59
59
|
return _defineProperty({}, eventId, paramName);
|
|
60
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.");
|
|
61
|
+
})).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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
62
|
if (process.includes("pageParams")) {
|
|
63
63
|
var importParams = {
|
|
64
64
|
isPopup: config.isPopup
|
|
@@ -78,8 +78,11 @@ export var processComEvents = function processComEvents(com, config) {
|
|
|
78
78
|
if (!outputsConfig[meta.id]) {
|
|
79
79
|
outputsConfig[meta.id] = {};
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
|
|
82
|
+
// 事件名必须与组件 runtime 的 outputs pin id 保持一致:
|
|
83
|
+
// - 例如 tabs2 的输出是 `changeTab`(不是 `onChangeTab`)
|
|
84
|
+
// - searchBar 的输出是 `onSearch`(本身就以 on 开头)
|
|
85
|
+
outputsConfig[meta.id][eventId] = handlerCode;
|
|
83
86
|
eventConfig[eventId] = {
|
|
84
87
|
connected: true
|
|
85
88
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processModule.d.ts","sourceRoot":"","sources":["processModule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAC9C,KAAK,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IACnC,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,WAAY,mBAAmB,KAAG,IA8G3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,UACT,KAAK,mBAAmB,EAAE,QAAQ,CAAC,KAC1C,IAOF,CAAC"}
|
|
@@ -107,6 +107,41 @@ export var processModule = function processModule(params) {
|
|
|
107
107
|
}
|
|
108
108
|
abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
|
|
109
109
|
},
|
|
110
|
+
getCallTemplate: function getCallTemplate(params) {
|
|
111
|
+
var com = params.com,
|
|
112
|
+
pinId = params.pinId,
|
|
113
|
+
args = params.args;
|
|
114
|
+
// 优先通过 sceneId 查找,如果找不到再通过 id 查找
|
|
115
|
+
var targetScene = getSceneById(com.sceneId || com.id);
|
|
116
|
+
if (targetScene || com.isScene) {
|
|
117
|
+
var _targetScene$deps, _targetScene$inputs, _targetScene$outputs;
|
|
118
|
+
var sceneId = (targetScene === null || targetScene === void 0 ? void 0 : targetScene.id) || com.sceneId || com.id;
|
|
119
|
+
var isTargetPopup = (targetScene === null || targetScene === void 0 ? void 0 : targetScene.type) === 'popup' || (targetScene === null || targetScene === void 0 || (_targetScene$deps = targetScene.deps) === null || _targetScene$deps === void 0 ? void 0 : _targetScene$deps.some(function (dep) {
|
|
120
|
+
return dep.namespace === 'mybricks.taro.popup';
|
|
121
|
+
}));
|
|
122
|
+
var routerName = isTargetPopup ? "popupRouter" : "pageRouter";
|
|
123
|
+
|
|
124
|
+
// 动态判断 pinId 是否属于该场景的输入或输出
|
|
125
|
+
var isInput = targetScene === null || targetScene === void 0 || (_targetScene$inputs = targetScene.inputs) === null || _targetScene$inputs === void 0 ? void 0 : _targetScene$inputs.some(function (pin) {
|
|
126
|
+
return pin.id === pinId;
|
|
127
|
+
});
|
|
128
|
+
var isOutput = targetScene === null || targetScene === void 0 || (_targetScene$outputs = targetScene.outputs) === null || _targetScene$outputs === void 0 ? void 0 : _targetScene$outputs.some(function (pin) {
|
|
129
|
+
return pin.id === pinId;
|
|
130
|
+
});
|
|
131
|
+
if (isInput || isOutput) {
|
|
132
|
+
var _config$getPageId;
|
|
133
|
+
return {
|
|
134
|
+
code: "".concat(routerName, ".").concat(pinId, "(\"").concat(((_config$getPageId = config.getPageId) === null || _config$getPageId === void 0 ? void 0 : _config$getPageId.call(config, sceneId)) || sceneId, "\"").concat(args ? ", ".concat(args) : "", ")"),
|
|
135
|
+
import: {
|
|
136
|
+
packageName: config.getComponentPackageName(),
|
|
137
|
+
dependencyNames: [routerName],
|
|
138
|
+
importType: "named"
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return undefined;
|
|
144
|
+
},
|
|
110
145
|
getComponentController: function getComponentController(_ref) {
|
|
111
146
|
var com = _ref.com;
|
|
112
147
|
return com.id;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processScene.d.ts","sourceRoot":"","sources":["processScene.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAC9C,KAAK,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,WAAY,kBAAkB,KAAG,IAkJzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,UACP,KAAK,kBAAkB,EAAE,OAAO,CAAC,KACxC,IAOF,CAAC"}
|
|
@@ -93,6 +93,41 @@ export var processScene = function processScene(params) {
|
|
|
93
93
|
// 显式传入 renderManager
|
|
94
94
|
isPopup: isPopup,
|
|
95
95
|
// 标记当前场景是否为弹窗
|
|
96
|
+
getCallTemplate: function getCallTemplate(params) {
|
|
97
|
+
var com = params.com,
|
|
98
|
+
pinId = params.pinId,
|
|
99
|
+
args = params.args;
|
|
100
|
+
// 优先通过 sceneId 查找,如果找不到再通过 id 查找
|
|
101
|
+
var targetScene = getSceneById(com.sceneId || com.id);
|
|
102
|
+
if (targetScene || com.isScene) {
|
|
103
|
+
var _targetScene$deps, _targetScene$inputs, _targetScene$outputs;
|
|
104
|
+
var sceneId = (targetScene === null || targetScene === void 0 ? void 0 : targetScene.id) || com.sceneId || com.id;
|
|
105
|
+
var isTargetPopup = (targetScene === null || targetScene === void 0 ? void 0 : targetScene.type) === 'popup' || (targetScene === null || targetScene === void 0 || (_targetScene$deps = targetScene.deps) === null || _targetScene$deps === void 0 ? void 0 : _targetScene$deps.some(function (dep) {
|
|
106
|
+
return dep.namespace === 'mybricks.taro.popup';
|
|
107
|
+
}));
|
|
108
|
+
var routerName = isTargetPopup ? "popupRouter" : "pageRouter";
|
|
109
|
+
|
|
110
|
+
// 动态判断 pinId 是否属于该场景的输入或输出
|
|
111
|
+
var isInput = targetScene === null || targetScene === void 0 || (_targetScene$inputs = targetScene.inputs) === null || _targetScene$inputs === void 0 ? void 0 : _targetScene$inputs.some(function (pin) {
|
|
112
|
+
return pin.id === pinId;
|
|
113
|
+
});
|
|
114
|
+
var isOutput = targetScene === null || targetScene === void 0 || (_targetScene$outputs = targetScene.outputs) === null || _targetScene$outputs === void 0 ? void 0 : _targetScene$outputs.some(function (pin) {
|
|
115
|
+
return pin.id === pinId;
|
|
116
|
+
});
|
|
117
|
+
if (isInput || isOutput) {
|
|
118
|
+
var _config$getPageId;
|
|
119
|
+
return {
|
|
120
|
+
code: "".concat(routerName, ".").concat(pinId, "(\"").concat(((_config$getPageId = config.getPageId) === null || _config$getPageId === void 0 ? void 0 : _config$getPageId.call(config, sceneId)) || sceneId, "\"").concat(args ? ", ".concat(args) : "", ")"),
|
|
121
|
+
import: {
|
|
122
|
+
packageName: config.getComponentPackageName(),
|
|
123
|
+
dependencyNames: [routerName],
|
|
124
|
+
importType: "named"
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
},
|
|
96
131
|
getDslComNameById: function getDslComNameById(id) {
|
|
97
132
|
return dslComIdToNameMap[id];
|
|
98
133
|
},
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 处理场景/插槽的逻辑(事件流、输入项等)
|
|
3
3
|
*/
|
|
4
|
-
export declare const processSceneLogic: (ui: any, config: any, addDependencyImport: any) =>
|
|
4
|
+
export declare const processSceneLogic: (ui: any, config: any, addDependencyImport: any) => {
|
|
5
|
+
initCode: string;
|
|
6
|
+
effectCode: string;
|
|
7
|
+
};
|
|
@@ -1,29 +1,99 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
-
import
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
|
+
import { indentation, getSafeVarName, getInitValueBySchema } from "../utils";
|
|
5
5
|
import { handleProcess } from "../utils/logic/handleProcess";
|
|
6
|
+
function sanitizeBlockComment(text) {
|
|
7
|
+
var s = String(text !== null && text !== void 0 ? text : "").trim();
|
|
8
|
+
if (!s) return "";
|
|
9
|
+
// 避免 title 中出现 */ 破坏注释
|
|
10
|
+
return s.replace(/\*\//g, "* /");
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
/**
|
|
7
14
|
* 处理场景/插槽的逻辑(事件流、输入项等)
|
|
8
15
|
*/
|
|
9
16
|
export var processSceneLogic = function processSceneLogic(ui, config, addDependencyImport) {
|
|
17
|
+
var initCode = "";
|
|
10
18
|
var effectCode = "";
|
|
11
19
|
var indent2 = indentation(config.codeStyle.indent);
|
|
12
20
|
var currentScene = config.getCurrentScene();
|
|
13
21
|
var providerName = config.getCurrentProvider().name;
|
|
14
22
|
|
|
15
|
-
// 1. 初始化变量和 FX
|
|
16
|
-
|
|
23
|
+
// 1. 初始化变量和 FX:放在 render 阶段(useEffect 之前),避免用户在首帧触发事件时 $vars/$fxs 仍未初始化
|
|
24
|
+
initCode += processLogicalInit(currentScene, config, addDependencyImport, indent2, providerName);
|
|
17
25
|
|
|
18
26
|
// 如果不是 root,目前只处理初始化逻辑
|
|
19
|
-
if (!config.checkIsRoot()) return
|
|
27
|
+
if (!config.checkIsRoot()) return {
|
|
28
|
+
initCode: initCode,
|
|
29
|
+
effectCode: effectCode
|
|
30
|
+
};
|
|
20
31
|
|
|
21
32
|
// 2. 处理场景级事件(如 Start 节点)
|
|
22
33
|
effectCode += processSceneEvents(ui, currentScene, config, addDependencyImport, indent2);
|
|
23
34
|
|
|
24
35
|
// 3. 处理场景级输入(如 open)
|
|
25
36
|
effectCode += processSceneInputs(currentScene, config, addDependencyImport, indent2);
|
|
26
|
-
|
|
37
|
+
|
|
38
|
+
// 4. 处理变量监听事件(starter.type === 'var',例如 changed)
|
|
39
|
+
effectCode += processVarEvents(currentScene, config, addDependencyImport, indent2);
|
|
40
|
+
return {
|
|
41
|
+
initCode: initCode,
|
|
42
|
+
effectCode: effectCode
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 处理变量监听事件(例如变量 changed -> 驱动一条 diagram)
|
|
48
|
+
* 关键点:更新 UI 不是靠 React state,而是靠 runtime inputs(例如 Text.value)
|
|
49
|
+
*/
|
|
50
|
+
var processVarEvents = function processVarEvents(currentScene, config, addDependencyImport, indent) {
|
|
51
|
+
var _config$getVarEvents;
|
|
52
|
+
var code = "";
|
|
53
|
+
var varEvents = ((_config$getVarEvents = config.getVarEvents) === null || _config$getVarEvents === void 0 ? void 0 : _config$getVarEvents.call(config)) || [];
|
|
54
|
+
if (!Array.isArray(varEvents) || varEvents.length === 0) return code;
|
|
55
|
+
|
|
56
|
+
// 用于订阅 variable.changed() 结果
|
|
57
|
+
var importParams = {
|
|
58
|
+
isPopup: config.isPopup
|
|
59
|
+
};
|
|
60
|
+
addDependencyImport({
|
|
61
|
+
packageName: config.getUtilsPackageName(importParams),
|
|
62
|
+
dependencyNames: ["SUBJECT_SUBSCRIBE", "SUBJECT_VALUE"],
|
|
63
|
+
importType: "named"
|
|
64
|
+
});
|
|
65
|
+
varEvents.forEach(function (varEvent) {
|
|
66
|
+
if ((varEvent === null || varEvent === void 0 ? void 0 : varEvent.type) !== "var") return;
|
|
67
|
+
// toCode-react 的 var event 自带 meta(变量组件)+ paramId(输出 pin,如 changed/return)
|
|
68
|
+
var com = varEvent === null || varEvent === void 0 ? void 0 : varEvent.meta;
|
|
69
|
+
if (!(com !== null && com !== void 0 && com.id)) return;
|
|
70
|
+
var pinId = (varEvent === null || varEvent === void 0 ? void 0 : varEvent.paramId) || "changed";
|
|
71
|
+
var varName = getSafeVarName(com);
|
|
72
|
+
|
|
73
|
+
// params 映射:toCode-react 会用 paramSource: [{type:'params', id:'changed'}]
|
|
74
|
+
// 这里用 Proxy 保证任何 params.xxx 都能落到 value 上(避免强依赖 paramPins)
|
|
75
|
+
var paramsProxy = new Proxy({}, {
|
|
76
|
+
get: function get() {
|
|
77
|
+
return "value";
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
var process = handleProcess(varEvent, _objectSpread(_objectSpread({}, config), {}, {
|
|
81
|
+
target: "comRefs.current",
|
|
82
|
+
depth: 3,
|
|
83
|
+
addParentDependencyImport: addDependencyImport,
|
|
84
|
+
getParams: function getParams() {
|
|
85
|
+
return paramsProxy;
|
|
86
|
+
}
|
|
87
|
+
})).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
|
|
88
|
+
if (!process.trim()) return;
|
|
89
|
+
code += "\n".concat(indent, " /** \u53D8\u91CF ").concat(sanitizeBlockComment(com.title || varName), " \u7684 ").concat(pinId, " */");
|
|
90
|
+
// 统一逻辑函数:changed 触发 + 首次 get() 回放(解决“set 早于订阅”的丢事件)
|
|
91
|
+
code += "\n".concat(indent, " const run_").concat(varName, "_").concat(pinId, " = (value: any) => {\n").concat(process, "\n").concat(indent, " };");
|
|
92
|
+
code += "\n".concat(indent, " $vars.current.").concat(varName, ".").concat(pinId, "?.()[SUBJECT_SUBSCRIBE](run_").concat(varName, "_").concat(pinId, ");");
|
|
93
|
+
code += "\n".concat(indent, " const init_").concat(varName, "_").concat(pinId, " = $vars.current.").concat(varName, ".get?.();");
|
|
94
|
+
code += "\n".concat(indent, " run_").concat(varName, "_").concat(pinId, "(init_").concat(varName, "_").concat(pinId, "?.[SUBJECT_VALUE]);");
|
|
95
|
+
});
|
|
96
|
+
return code;
|
|
27
97
|
};
|
|
28
98
|
|
|
29
99
|
/**
|
|
@@ -47,14 +117,18 @@ var processLogicalInit = function processLogicalInit(scene, config, addDependenc
|
|
|
47
117
|
dependencyNames: ["createVariable"],
|
|
48
118
|
importType: "named"
|
|
49
119
|
});
|
|
50
|
-
|
|
120
|
+
// $vars 是页面级共享注册表(与 comRefs 同级)
|
|
121
|
+
code += "\n".concat(indent, "const vars = ($vars.current ||= {});");
|
|
51
122
|
vars.forEach(function (_ref3) {
|
|
52
|
-
var _com$model;
|
|
123
|
+
var _com$model, _com$model2, _com$model3;
|
|
53
124
|
var _ref4 = _slicedToArray(_ref3, 2),
|
|
54
125
|
comId = _ref4[0],
|
|
55
126
|
com = _ref4[1];
|
|
56
|
-
var
|
|
57
|
-
|
|
127
|
+
var varName = getSafeVarName(com);
|
|
128
|
+
var varTitle = sanitizeBlockComment((com === null || com === void 0 ? void 0 : com.title) || (com === null || com === void 0 || (_com$model = com.model) === null || _com$model === void 0 ? void 0 : _com$model.title) || (com === null || com === void 0 || (_com$model2 = com.model) === null || _com$model2 === void 0 || (_com$model2 = _com$model2.data) === null || _com$model2 === void 0 ? void 0 : _com$model2.title) || varName);
|
|
129
|
+
var initValue = JSON.stringify(getInitValueBySchema(com.schema, (_com$model3 = com.model) === null || _com$model3 === void 0 || (_com$model3 = _com$model3.data) === null || _com$model3 === void 0 ? void 0 : _com$model3.initValue));
|
|
130
|
+
code += "\n".concat(indent, "/** \u521D\u59CB\u5316 \u53D8\u91CF ").concat(varTitle, " */");
|
|
131
|
+
code += "\n".concat(indent, "if (!vars.").concat(varName, ") vars.").concat(varName, " = createVariable(").concat(initValue, ");");
|
|
58
132
|
});
|
|
59
133
|
}
|
|
60
134
|
|
|
@@ -69,7 +143,8 @@ var processLogicalInit = function processLogicalInit(scene, config, addDependenc
|
|
|
69
143
|
dependencyNames: ["createFx"],
|
|
70
144
|
importType: "named"
|
|
71
145
|
});
|
|
72
|
-
|
|
146
|
+
// $fxs 是页面级共享注册表(与 comRefs 同级)
|
|
147
|
+
code += "\n".concat(indent, "const fxs = ($fxs.current ||= {});");
|
|
73
148
|
fxEvents.forEach(function (fxEvent) {
|
|
74
149
|
var res = handleProcess(fxEvent, _objectSpread(_objectSpread({}, config), {}, {
|
|
75
150
|
depth: 3,
|
|
@@ -85,7 +160,7 @@ var processLogicalInit = function processLogicalInit(scene, config, addDependenc
|
|
|
85
160
|
return pre;
|
|
86
161
|
}, {});
|
|
87
162
|
}
|
|
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.");
|
|
163
|
+
})).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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
164
|
var values = (fxEvent.paramPins || []).map(function (paramPin, index) {
|
|
90
165
|
if (paramPin.type === "config") {
|
|
91
166
|
var _fxEvent$initValues;
|
|
@@ -93,7 +168,7 @@ var processLogicalInit = function processLogicalInit(scene, config, addDependenc
|
|
|
93
168
|
}
|
|
94
169
|
return "value".concat(index, ": any");
|
|
95
170
|
}).join(", ");
|
|
96
|
-
code += "\n".concat(indent, "if (!fxs.").concat(fxEvent.frameId, "
|
|
171
|
+
code += "\n".concat(indent, "if (!fxs.").concat(fxEvent.frameId, ") fxs.").concat(fxEvent.frameId, " = createFx((").concat(values, ") => {\n").concat(res, "\n").concat(indent, "});");
|
|
97
172
|
});
|
|
98
173
|
}
|
|
99
174
|
return code;
|
|
@@ -120,7 +195,7 @@ var processSceneEvents = function processSceneEvents(ui, currentScene, config, a
|
|
|
120
195
|
getParams: function getParams() {
|
|
121
196
|
return {};
|
|
122
197
|
}
|
|
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.");
|
|
198
|
+
})).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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
199
|
if (process.trim()) {
|
|
125
200
|
code += "\n".concat(indent, " ").concat(process.trim());
|
|
126
201
|
}
|
|
@@ -150,7 +225,7 @@ var processSceneInputs = function processSceneInputs(currentScene, config, addDe
|
|
|
150
225
|
getParams: function getParams() {
|
|
151
226
|
return _defineProperty({}, input.id, "data");
|
|
152
227
|
}
|
|
153
|
-
})).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.");
|
|
228
|
+
})).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
|
|
154
229
|
if (process.trim()) {
|
|
155
230
|
code += "\n".concat(indent, " inputs.").concat(input.id, " = (data: any) => {\n").concat(process, "\n").concat(indent, " };");
|
|
156
231
|
if (input.id === "open") {
|