@mybricks/to-code-taro 1.1.0 → 1.1.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/dist/cjs/core/comlib/{index.js → Index.js} +6 -6
- package/dist/cjs/core/utils/PopupRenderer.js +1 -1
- package/dist/cjs/core/utils/hooks.js +102 -38
- package/dist/cjs/core/utils/slots.js +11 -4
- package/dist/cjs/core/utils/useContext.js +6 -4
- package/dist/cjs/core/utils/with.js +3 -3
- package/dist/cjs/generate/generateTaroProjectJson.js +36 -11
- package/dist/cjs/generate/utils/commonDir.js +14 -10
- package/dist/cjs/generate/utils/pageImages.d.ts +14 -0
- package/dist/cjs/generate/utils/pageImages.js +36 -0
- package/dist/cjs/handleCom.js +37 -14
- package/dist/cjs/handleDom.d.ts +2 -0
- package/dist/cjs/handleDom.js +5 -2
- package/dist/cjs/handleGlobal.js +4 -2
- package/dist/cjs/handleSlot.d.ts +3 -0
- package/dist/cjs/handleSlot.js +38 -10
- package/dist/cjs/processors/processScene.js +3 -1
- package/dist/cjs/taro-template.json +313 -13
- package/dist/cjs/toCodeTaro.d.ts +4 -1
- package/dist/cjs/toCodeTaro.js +80 -1
- package/dist/cjs/utils/builder/buildResult.js +3 -16
- package/dist/cjs/utils/config/content/converter.js +2 -2
- package/dist/cjs/utils/config/content/pageConfig.js +4 -1
- package/dist/cjs/utils/config/content/saveBase64Image.d.ts +10 -0
- package/dist/cjs/utils/config/content/saveBase64Image.js +44 -3
- package/dist/cjs/utils/config/content/tabBarConfig.js +8 -2
- package/dist/cjs/utils/config/handlePageConfig.js +5 -3
- package/dist/cjs/utils/context/collectJSModules.d.ts +4 -0
- package/dist/cjs/utils/context/collectJSModules.js +4 -2
- package/dist/cjs/utils/logic/genJSModules.d.ts +8 -4
- package/dist/cjs/utils/logic/genJSModules.js +31 -33
- package/dist/cjs/utils/logic/handleProcess.js +4 -4
- package/dist/cjs/utils/logic/processChildren.d.ts +14 -1
- package/dist/cjs/utils/logic/processChildren.js +30 -6
- package/dist/cjs/utils/style/converter.js +34 -72
- package/dist/cjs/utils/templates/index.d.ts +1 -0
- package/dist/cjs/utils/templates/index.js +11 -2
- package/dist/cjs/utils/templates/renderManager.d.ts +4 -0
- package/dist/cjs/utils/templates/renderManager.js +10 -3
- package/dist/cjs/utils/templates/scene.js +13 -1
- package/dist/esm/core/comlib/{index.js → Index.js} +1 -1
- package/dist/esm/core/utils/PopupRenderer.js +1 -1
- package/dist/esm/core/utils/hooks.js +137 -53
- package/dist/esm/core/utils/popupRouter.js +2 -1
- package/dist/esm/core/utils/slots.js +24 -22
- package/dist/esm/core/utils/useContext.js +8 -10
- package/dist/esm/core/utils/with.js +3 -3
- package/dist/esm/generate/generateTaroProjectJson.js +28 -8
- package/dist/esm/generate/utils/commonDir.js +18 -14
- package/dist/esm/generate/utils/pageImages.d.ts +14 -0
- package/dist/esm/generate/utils/pageImages.d.ts.map +1 -0
- package/dist/esm/generate/utils/pageImages.js +15 -0
- package/dist/esm/handleCom.js +44 -17
- package/dist/esm/handleDom.d.ts +2 -0
- package/dist/esm/handleDom.js +6 -4
- package/dist/esm/handleGlobal.js +4 -2
- package/dist/esm/handleSlot.d.ts +3 -0
- package/dist/esm/handleSlot.js +57 -12
- package/dist/esm/processors/processComEvents.d.ts.map +1 -0
- package/dist/esm/processors/processScene.d.ts.map +1 -1
- package/dist/esm/processors/processScene.js +13 -3
- package/dist/esm/processors/processSceneLogic.d.ts.map +1 -0
- package/dist/esm/taro-template.json +313 -13
- package/dist/esm/toCodeTaro.d.ts +4 -1
- package/dist/esm/toCodeTaro.d.ts.map +1 -1
- package/dist/esm/toCodeTaro.js +89 -4
- package/dist/esm/utils/builder/buildResult.d.ts.map +1 -1
- package/dist/esm/utils/builder/buildResult.js +5 -14
- package/dist/esm/utils/common/helper.d.ts.map +1 -0
- package/dist/esm/utils/config/content/converter.js +2 -2
- package/dist/esm/utils/config/content/pageConfig.js +4 -1
- package/dist/esm/utils/config/content/saveBase64Image.d.ts +10 -0
- package/dist/esm/utils/config/content/saveBase64Image.js +42 -1
- package/dist/esm/utils/config/content/tabBarConfig.js +7 -2
- package/dist/esm/utils/config/handlePageConfig.d.ts.map +1 -1
- package/dist/esm/utils/config/handlePageConfig.js +5 -3
- package/dist/esm/utils/context/collectJSModules.d.ts +4 -0
- package/dist/esm/utils/context/collectJSModules.d.ts.map +1 -1
- package/dist/esm/utils/context/collectJSModules.js +1 -1
- package/dist/esm/utils/logic/genJSModules.d.ts +8 -4
- package/dist/esm/utils/logic/genJSModules.d.ts.map +1 -1
- package/dist/esm/utils/logic/genJSModules.js +16 -27
- package/dist/esm/utils/logic/handleProcess.js +4 -4
- package/dist/esm/utils/logic/processChildren.d.ts +14 -1
- package/dist/esm/utils/logic/processChildren.js +45 -8
- package/dist/esm/utils/style/converter.js +57 -106
- package/dist/esm/utils/templates/index.d.ts +1 -0
- package/dist/esm/utils/templates/index.js +9 -2
- package/dist/esm/utils/templates/renderManager.d.ts +4 -0
- package/dist/esm/utils/templates/renderManager.js +17 -4
- package/dist/esm/utils/templates/scene.js +8 -2
- package/package.json +1 -1
- package/dist/esm/generate/generateTaroProjectJson.d.ts.map +0 -1
- package/dist/esm/generate/utils/commonDir.d.ts.map +0 -1
- package/dist/esm/handleDom.d.ts.map +0 -1
- package/dist/esm/handleGlobal.d.ts.map +0 -1
- package/dist/esm/utils/config/content/converter.d.ts.map +0 -1
- package/dist/esm/utils/config/content/pageConfig.d.ts.map +0 -1
- package/dist/esm/utils/config/content/saveBase64Image.d.ts.map +0 -1
- package/dist/esm/utils/config/content/tabBarConfig.d.ts.map +0 -1
- package/dist/esm/utils/logic/processChildren.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
3
3
|
import pxtransform from "./pxtransform";
|
|
4
4
|
import { kebabToCamel, camelToKebab } from "../common/string";
|
|
5
5
|
/**
|
|
@@ -45,43 +45,54 @@ function transformStyleValue(key, value) {
|
|
|
45
45
|
return value;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* 提取通用的 layout 属性转换逻辑
|
|
50
|
+
*/
|
|
51
|
+
function handleLayoutProp(value, target) {
|
|
52
|
+
if (_typeof(value) === "object" && value !== null) {
|
|
53
|
+
var layoutObj = value;
|
|
54
|
+
Object.entries(layoutObj).forEach(function (_ref) {
|
|
55
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
56
|
+
lKey = _ref2[0],
|
|
57
|
+
lValue = _ref2[1];
|
|
58
|
+
if (lKey === "position") {
|
|
59
|
+
if (lValue === "smart") {
|
|
60
|
+
if (target["position"] === undefined) {
|
|
61
|
+
target["position"] = "relative";
|
|
62
|
+
}
|
|
63
|
+
} else if (lValue !== "inherit") {
|
|
64
|
+
target["position"] = lValue;
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
var camelLKey = kebabToCamel(lKey);
|
|
68
|
+
target[camelLKey] = transformStyleValue(camelLKey, lValue);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
} else if (value === "flex-row") {
|
|
72
|
+
target["display"] = "flex";
|
|
73
|
+
target["flexDirection"] = "row";
|
|
74
|
+
} else if (value === "flex-column") {
|
|
75
|
+
target["display"] = "flex";
|
|
76
|
+
target["flexDirection"] = "column";
|
|
77
|
+
} else if (value === "smart") {
|
|
78
|
+
if (target["position"] === undefined) {
|
|
79
|
+
target["position"] = "relative";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
48
84
|
/** 转换根节点样式 */
|
|
49
85
|
export var convertRootStyle = function convertRootStyle(style) {
|
|
50
86
|
var rootStyle = {};
|
|
51
|
-
Object.entries(style || {}).forEach(function (
|
|
52
|
-
var
|
|
53
|
-
key =
|
|
54
|
-
value =
|
|
87
|
+
Object.entries(style || {}).forEach(function (_ref3) {
|
|
88
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
89
|
+
key = _ref4[0],
|
|
90
|
+
value = _ref4[1];
|
|
55
91
|
if (key === "_new" || key === "themesId" || key === "visibility" || key === "styleAry") {
|
|
56
92
|
return;
|
|
57
93
|
}
|
|
58
94
|
if (key === "layout") {
|
|
59
|
-
|
|
60
|
-
var layoutObj = value;
|
|
61
|
-
Object.entries(layoutObj).forEach(function (_ref3) {
|
|
62
|
-
var _ref4 = _slicedToArray(_ref3, 2),
|
|
63
|
-
lKey = _ref4[0],
|
|
64
|
-
lValue = _ref4[1];
|
|
65
|
-
if (lKey === "position") {
|
|
66
|
-
if (lValue === "smart") {
|
|
67
|
-
rootStyle["position"] = "absolute";
|
|
68
|
-
} else if (lValue !== "inherit") {
|
|
69
|
-
rootStyle["position"] = lValue;
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
var camelLayoutKey = kebabToCamel(lKey);
|
|
73
|
-
rootStyle[camelLayoutKey] = transformStyleValue(camelLayoutKey, lValue);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
} else if (value === "flex-row") {
|
|
77
|
-
rootStyle["display"] = "flex";
|
|
78
|
-
rootStyle["flexDirection"] = "row";
|
|
79
|
-
} else if (value === "flex-column") {
|
|
80
|
-
rootStyle["display"] = "flex";
|
|
81
|
-
rootStyle["flexDirection"] = "column";
|
|
82
|
-
} else if (value === "smart") {
|
|
83
|
-
rootStyle["position"] = "relative";
|
|
84
|
-
}
|
|
95
|
+
handleLayoutProp(value, rootStyle);
|
|
85
96
|
return;
|
|
86
97
|
}
|
|
87
98
|
var camelKey = key.includes("-") ? kebabToCamel(key) : key;
|
|
@@ -104,32 +115,7 @@ export var convertComponentStyle = function convertComponentStyle(style) {
|
|
|
104
115
|
cssKey = _ref7[0],
|
|
105
116
|
cssValue = _ref7[1];
|
|
106
117
|
if (cssKey === "layout") {
|
|
107
|
-
|
|
108
|
-
var layoutObj = cssValue;
|
|
109
|
-
Object.entries(layoutObj).forEach(function (_ref8) {
|
|
110
|
-
var _ref9 = _slicedToArray(_ref8, 2),
|
|
111
|
-
lKey = _ref9[0],
|
|
112
|
-
lValue = _ref9[1];
|
|
113
|
-
if (lKey === "position") {
|
|
114
|
-
if (lValue === "smart") {
|
|
115
|
-
transformedCss["position"] = "absolute";
|
|
116
|
-
} else if (lValue !== "inherit") {
|
|
117
|
-
transformedCss["position"] = lValue;
|
|
118
|
-
}
|
|
119
|
-
} else {
|
|
120
|
-
var camelLKey = kebabToCamel(lKey);
|
|
121
|
-
transformedCss[camelLKey] = transformStyleValue(camelLKey, lValue);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
} else if (cssValue === "flex-row") {
|
|
125
|
-
transformedCss["display"] = "flex";
|
|
126
|
-
transformedCss["flexDirection"] = "row";
|
|
127
|
-
} else if (cssValue === "flex-column") {
|
|
128
|
-
transformedCss["display"] = "flex";
|
|
129
|
-
transformedCss["flexDirection"] = "column";
|
|
130
|
-
} else if (cssValue === "smart") {
|
|
131
|
-
transformedCss["position"] = "relative";
|
|
132
|
-
}
|
|
118
|
+
handleLayoutProp(cssValue, transformedCss);
|
|
133
119
|
} else {
|
|
134
120
|
var camelKey = cssKey.includes("-") ? kebabToCamel(cssKey) : cssKey;
|
|
135
121
|
transformedCss[camelKey] = transformStyleValue(camelKey, cssValue);
|
|
@@ -145,67 +131,32 @@ export var convertComponentStyle = function convertComponentStyle(style) {
|
|
|
145
131
|
/** 转换 styleAry 为 CSS 字符串 */
|
|
146
132
|
export var convertStyleAryToCss = function convertStyleAryToCss(styleAry, parentSelector) {
|
|
147
133
|
if (!Array.isArray(styleAry)) return "";
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
css = _ref10.css;
|
|
134
|
+
return styleAry.map(function (_ref8) {
|
|
135
|
+
var selector = _ref8.selector,
|
|
136
|
+
css = _ref8.css;
|
|
152
137
|
if (!selector || !css) return "";
|
|
153
138
|
var finalSelector = selector.trim();
|
|
154
139
|
if (parentSelector) {
|
|
155
|
-
var
|
|
156
|
-
// if (finalSelector.startsWith(">")) {
|
|
157
|
-
// // 移除 >,改为后代选择器以提升兼容性(Taro 可能会插入组件层级)
|
|
158
|
-
// const subSelector = finalSelector.substring(1).trim();
|
|
159
|
-
// finalSelector = `${prefix} ${subSelector}, ${prefix}${subSelector}`;
|
|
160
|
-
// } else {
|
|
161
|
-
// // 同时支持后代选择器和同级选择器(针对 itemWrap 场景)
|
|
162
|
-
// finalSelector = `${prefix} ${finalSelector}, ${prefix}${finalSelector}`;
|
|
163
|
-
// }
|
|
164
|
-
|
|
140
|
+
var prefix = ".".concat(parentSelector);
|
|
165
141
|
// 同时支持后代选择器和同级选择器(针对 itemWrap 场景)
|
|
166
|
-
finalSelector = "".concat(
|
|
142
|
+
finalSelector = "".concat(prefix, " ").concat(finalSelector, ", ").concat(prefix).concat(finalSelector);
|
|
167
143
|
}
|
|
168
144
|
var transformedCss = {};
|
|
169
|
-
Object.entries(css).forEach(function (
|
|
170
|
-
var
|
|
171
|
-
key =
|
|
172
|
-
value =
|
|
145
|
+
Object.entries(css).forEach(function (_ref9) {
|
|
146
|
+
var _ref10 = _slicedToArray(_ref9, 2),
|
|
147
|
+
key = _ref10[0],
|
|
148
|
+
value = _ref10[1];
|
|
173
149
|
if (key === "layout") {
|
|
174
|
-
|
|
175
|
-
var layoutObj = value;
|
|
176
|
-
Object.entries(layoutObj).forEach(function (_ref13) {
|
|
177
|
-
var _ref14 = _slicedToArray(_ref13, 2),
|
|
178
|
-
lKey = _ref14[0],
|
|
179
|
-
lValue = _ref14[1];
|
|
180
|
-
if (lKey === "position") {
|
|
181
|
-
if (lValue === "smart") {
|
|
182
|
-
transformedCss["position"] = "absolute";
|
|
183
|
-
} else if (lValue !== "inherit") {
|
|
184
|
-
transformedCss["position"] = lValue;
|
|
185
|
-
}
|
|
186
|
-
} else {
|
|
187
|
-
var camelLKey = kebabToCamel(lKey);
|
|
188
|
-
transformedCss[camelLKey] = transformStyleValue(camelLKey, lValue);
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
} else if (value === "flex-row") {
|
|
192
|
-
transformedCss["display"] = "flex";
|
|
193
|
-
transformedCss["flexDirection"] = "row";
|
|
194
|
-
} else if (value === "flex-column") {
|
|
195
|
-
transformedCss["display"] = "flex";
|
|
196
|
-
transformedCss["flexDirection"] = "column";
|
|
197
|
-
} else if (value === "smart") {
|
|
198
|
-
transformedCss["position"] = "relative";
|
|
199
|
-
}
|
|
150
|
+
handleLayoutProp(value, transformedCss);
|
|
200
151
|
} else {
|
|
201
152
|
var camelKey = kebabToCamel(key);
|
|
202
153
|
transformedCss[camelKey] = transformStyleValue(camelKey, value);
|
|
203
154
|
}
|
|
204
155
|
});
|
|
205
|
-
var cssString = Object.entries(transformedCss).map(function (
|
|
206
|
-
var
|
|
207
|
-
key =
|
|
208
|
-
value =
|
|
156
|
+
var cssString = Object.entries(transformedCss).map(function (_ref11) {
|
|
157
|
+
var _ref12 = _slicedToArray(_ref11, 2),
|
|
158
|
+
key = _ref12[0],
|
|
159
|
+
value = _ref12[1];
|
|
209
160
|
var kebabKey = camelToKebab(key);
|
|
210
161
|
return " ".concat(kebabKey, ": ").concat(value, ";");
|
|
211
162
|
}).join("\n");
|
|
@@ -43,6 +43,7 @@ export var getUiComponentCode = function getUiComponentCode(params, config) {
|
|
|
43
43
|
resultStyle = params.resultStyle,
|
|
44
44
|
dataCode = params.dataCode,
|
|
45
45
|
slotsCode = params.slotsCode,
|
|
46
|
+
childrenUi = params.childrenUi,
|
|
46
47
|
_params$eventHandlers = params.eventHandlers,
|
|
47
48
|
eventHandlers = _params$eventHandlers === void 0 ? {} : _params$eventHandlers;
|
|
48
49
|
var isRoot = config.checkIsRoot();
|
|
@@ -79,7 +80,13 @@ export var getUiComponentCode = function getUiComponentCode(params, config) {
|
|
|
79
80
|
// 添加插槽
|
|
80
81
|
if (slotsCode) {
|
|
81
82
|
ui += "\n".concat(indent2, "slots={{\n").concat(slotsCode).concat(indent2, "}}");
|
|
82
|
-
}
|
|
83
|
-
|
|
83
|
+
}
|
|
84
|
+
if (childrenUi) {
|
|
85
|
+
ui += "\n".concat(indent, ">");
|
|
86
|
+
ui += "\n".concat(childrenUi);
|
|
87
|
+
ui += "\n".concat(indent, "</WithCom>");
|
|
88
|
+
} else {
|
|
89
|
+
ui += "\n".concat(indent, "/>");
|
|
90
|
+
}
|
|
84
91
|
return ui;
|
|
85
92
|
};
|
|
@@ -10,5 +10,9 @@ export declare class RenderManager {
|
|
|
10
10
|
* 生成所有 render 函数的 definition 代码
|
|
11
11
|
*/
|
|
12
12
|
toCode(indent: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* 转义字符串并创建能够匹配任意空白符的正则
|
|
15
|
+
*/
|
|
16
|
+
private createFlexibleRegex;
|
|
13
17
|
genRenderRef(slotId: string, renderId: string, indent: string): string;
|
|
14
18
|
}
|
|
@@ -33,6 +33,7 @@ export var RenderManager = /*#__PURE__*/function () {
|
|
|
33
33
|
}, {
|
|
34
34
|
key: "toCode",
|
|
35
35
|
value: function toCode(indent) {
|
|
36
|
+
var _this = this;
|
|
36
37
|
if (this._renders.size === 0) {
|
|
37
38
|
return "";
|
|
38
39
|
}
|
|
@@ -71,14 +72,15 @@ export var RenderManager = /*#__PURE__*/function () {
|
|
|
71
72
|
children.forEach(function (child) {
|
|
72
73
|
if (child.type === "com") {
|
|
73
74
|
var varName = "".concat(child.id, "_JSX");
|
|
74
|
-
var comJsx = child.ui
|
|
75
|
+
var comJsx = child.ui; // 保持原始字符串(包含可能的 Fragment 或 View 包裹)
|
|
75
76
|
comVars[child.id] = varName;
|
|
76
77
|
code += "".concat(indent).concat(indent2, "const ").concat(varName, " = (\n");
|
|
77
|
-
|
|
78
|
+
// 内部定义时 trim 掉外层缩进,保持变量内容整洁
|
|
79
|
+
code += "".concat(indent).concat(indent3).concat(comJsx.trim(), "\n");
|
|
78
80
|
code += "".concat(indent).concat(indent2, ");\n");
|
|
79
81
|
|
|
80
|
-
//
|
|
81
|
-
var pattern =
|
|
82
|
+
// 优化:使用宽容空白匹配正则
|
|
83
|
+
var pattern = _this.createFlexibleRegex(comJsx.trim());
|
|
82
84
|
modifiedRenderCode = modifiedRenderCode.replace(pattern, "{".concat(varName, "}"));
|
|
83
85
|
}
|
|
84
86
|
});
|
|
@@ -123,6 +125,17 @@ export var RenderManager = /*#__PURE__*/function () {
|
|
|
123
125
|
});
|
|
124
126
|
return code;
|
|
125
127
|
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* 转义字符串并创建能够匹配任意空白符的正则
|
|
131
|
+
*/
|
|
132
|
+
}, {
|
|
133
|
+
key: "createFlexibleRegex",
|
|
134
|
+
value: function createFlexibleRegex(str) {
|
|
135
|
+
var escaped = str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // 转义正则元字符
|
|
136
|
+
.replace(/\s+/g, '\\s+'); // 将所有空白符替换为 \s+
|
|
137
|
+
return new RegExp(escaped, 'g');
|
|
138
|
+
}
|
|
126
139
|
}, {
|
|
127
140
|
key: "genRenderRef",
|
|
128
141
|
value: function genRenderRef(slotId, renderId, indent) {
|
|
@@ -8,6 +8,7 @@ export var genRootDefineCode = function genRootDefineCode(indent, utilsPackageNa
|
|
|
8
8
|
var hasJsModules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
9
9
|
// 使用 useAppContext 获取 comRefs / $vars / $fxs / appContext
|
|
10
10
|
var code = "".concat(indent, "const {comRefs, $vars, $fxs, appContext} = useAppContext();\n");
|
|
11
|
+
code += "".concat(indent, "usePageLife();\n");
|
|
11
12
|
// 如果有 JS 计算组件,需要初始化 comModules
|
|
12
13
|
if (hasJsModules) {
|
|
13
14
|
code += "".concat(indent, "const comModules = jsModules({ createJSHandle });\n");
|
|
@@ -41,10 +42,15 @@ export var genComponentTemplate = function genComponentTemplate(_ref) {
|
|
|
41
42
|
isPopup = _ref$isPopup === void 0 ? false : _ref$isPopup,
|
|
42
43
|
_ref$hasPopups = _ref.hasPopups,
|
|
43
44
|
hasPopups = _ref$hasPopups === void 0 ? false : _ref$hasPopups;
|
|
45
|
+
// 页面级 scope:用于让插槽读取页面 hooks/state(通过 usePageScope)
|
|
46
|
+
// - value 默认传 ref(稳定引用,不触发额外重渲染)
|
|
47
|
+
// - slot 内可直接 usePageScope() 访问
|
|
48
|
+
var pageScopeCode = "const PageScopeContext = createContext<any>(null);\n" + "function usePageScope<T = any>() {\n" + " return useContext(PageScopeContext) as T;\n" + "}\n\n";
|
|
49
|
+
|
|
44
50
|
// 渲染定义放在组件外部,保持引用稳定
|
|
45
|
-
var code = "".concat(renderDefinitions, "\n") + "function ".concat(componentName, "() {\n") + "".concat(combinedJsCode, "\n") + " return (\n" + " <>\n" + "".concat(uiResult.split('\n').map(function (line) {
|
|
51
|
+
var code = "".concat(pageScopeCode).concat(renderDefinitions, "\n") + "function ".concat(componentName, "() {\n") + " // \u9875\u9762\u7EA7 scope\uFF1A\u4F60\u53EF\u4EE5\u628A useState/useMemo \u7684\u7ED3\u679C\u653E\u5230\u8FD9\u4E2A ref \u4E0A\uFF0C\u8BA9\u63D2\u69FD\u8BFB\u53D6\n" + " const pageScopeRef = useRef<any>({});\n" + "".concat(combinedJsCode, "\n") + " return (\n" + " <PageScopeContext.Provider value={pageScopeRef}>\n" + " <>\n" + "".concat(uiResult.split('\n').map(function (line) {
|
|
46
52
|
return " ".concat(line);
|
|
47
|
-
}).join('\n'), "\n") + (hasPopups ? " <PopupRenderer popupMap={POPUP_MAP} />\n" : "") + " </>\n" + " );\n" + "}\n\n";
|
|
53
|
+
}).join('\n'), "\n") + (hasPopups ? " <PopupRenderer popupMap={POPUP_MAP} />\n" : "") + " </>\n" + " </PageScopeContext.Provider>\n" + " );\n" + "}\n\n";
|
|
48
54
|
if (isPopup) {
|
|
49
55
|
code += "(".concat(componentName, " as any).isPopup = true;\n\n");
|
|
50
56
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateTaroProjectJson.d.ts","sourceRoot":"","sources":["generateTaroProjectJson.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,eAAe,CAAC;AAErE,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,WAAY,gBAAgB,KAAG,QAAQ,EAsJnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commonDir.d.ts","sourceRoot":"","sources":["commonDir.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,MAAM,CAAC;KACtB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAuBhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleDom.d.ts","sourceRoot":"","sources":["handleDom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAuD,MAAM,SAAS,CAAC;AAG7F,KAAK,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAEvD,UAAU,eAAgB,SAAQ,UAAU;IAC1C,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,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,SAAS,QAAS,GAAG,UAAU,eAAe,KAAG,eAwBtD,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleGlobal.d.ts","sourceRoot":"","sources":["handleGlobal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,UAAU,EAAE,GAAG,EAAE,CAAC;CACnB;AAED,QAAA,MAAM,YAAY,WACR,kBAAkB,UAClB,gBAAgB,KACvB,aAAa,EAuKf,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA4DlF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,IAAI,EAC7C,YAAY,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAA4C,EAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,KAAK,MAAM,GAAG,SAAS,GAC7G,gBAAgB,GAAG,IAAI,CAiCzB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,IAAI,EAC7C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAMf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pageConfig.d.ts","sourceRoot":"","sources":["pageConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgCH;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,CAAC,EAAE,GAAG,GAAG,MAAM,CAoCtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"saveBase64Image.d.ts","sourceRoot":"","sources":["saveBase64Image.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA4D7C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,EAC3B,UAAU,CAAC,EAAE,aAAa,EAAE,GAC3B,MAAM,GAAG,SAAS,CAwBpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabBarConfig.d.ts","sourceRoot":"","sources":["tabBarConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI/D;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EACzB,YAAY,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAA4C,EAC9E,UAAU,CAAC,EAAE,aAAa,EAAE,GAC3B,gBAAgB,GAAG,IAAI,CAsBzB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,gBAAgB,EACxB,MAAM,GAAE,MAAa,GACpB,MAAM,CAiBR;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EACzB,MAAM,EAAE,gBAAgB,GACvB,MAAM,CAYR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processChildren.d.ts","sourceRoot":"","sources":["processChildren.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAK3C,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAChB,EAAE,CAAC,UAAU,CAAC,UAChB,GAAG,KACV,WA2DF,CAAC"}
|