@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.
Files changed (256) hide show
  1. package/README.md +58 -0
  2. package/dist/cjs/core/comlib/_AesEncode.js +115 -0
  3. package/dist/cjs/core/comlib/_BackTo.js +80 -0
  4. package/dist/cjs/core/comlib/{Index.js → _CallPhone.js} +29 -16
  5. package/dist/cjs/core/comlib/_ChooseFile.js +103 -0
  6. package/dist/cjs/core/comlib/_ChooseMedia.js +70 -0
  7. package/dist/cjs/core/comlib/_Connector.js +92 -0
  8. package/dist/cjs/core/comlib/_ConnectorGlobalHeaders.js +79 -0
  9. package/dist/cjs/core/comlib/_Format.js +123 -0
  10. package/dist/cjs/core/comlib/_GetLocation.js +60 -0
  11. package/dist/cjs/core/comlib/_GetStorage.js +68 -0
  12. package/dist/cjs/core/comlib/_GetSystemInfo.js +62 -0
  13. package/dist/cjs/core/comlib/_OpenCamera.js +73 -0
  14. package/dist/cjs/core/comlib/_OpenPetalMap.js +49 -0
  15. package/dist/cjs/core/comlib/_OpenUrl.js +62 -0
  16. package/dist/cjs/core/comlib/_RemoveStorage.js +68 -0
  17. package/dist/cjs/core/comlib/_Router.js +100 -0
  18. package/dist/cjs/core/comlib/_ScanQrcode.js +9 -10
  19. package/dist/cjs/core/comlib/_SetStorage.js +10 -19
  20. package/dist/cjs/core/comlib/_Share.js +58 -0
  21. package/dist/cjs/core/comlib/_ShowToast.js +23 -50
  22. package/dist/cjs/core/comlib/_TextToSpeech.js +120 -0
  23. package/dist/cjs/core/comlib/_TimerDebounce.js +72 -0
  24. package/dist/cjs/core/comlib/_TimerDelay.js +63 -0
  25. package/dist/cjs/core/comlib/_TimerThrottle.js +75 -0
  26. package/dist/cjs/core/comlib/_Vibrate.js +60 -0
  27. package/dist/cjs/core/comlib/index.js +111 -0
  28. package/dist/cjs/core/mybricks/index.js +47 -47
  29. package/dist/cjs/core/utils/ComContext.js +3 -0
  30. package/dist/cjs/core/utils/PopupRenderer.js +63 -0
  31. package/dist/cjs/core/utils/hooks.js +131 -0
  32. package/dist/cjs/core/utils/index.js +33 -57
  33. package/dist/cjs/core/utils/pageRouter.js +81 -0
  34. package/dist/cjs/core/utils/popupRouter.js +98 -0
  35. package/dist/cjs/core/utils/useContext.js +11 -2
  36. package/dist/cjs/core/utils/with.js +37 -13
  37. package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
  38. package/dist/cjs/generate/generateTaroProjectJson.js +39 -6
  39. package/dist/cjs/generate/utils/tabBarImages.d.ts +1 -1
  40. package/dist/cjs/handleCom.d.ts +1 -1
  41. package/dist/cjs/handleCom.js +91 -177
  42. package/dist/cjs/handleDom.js +7 -44
  43. package/dist/cjs/handleExtension.d.ts +2 -2
  44. package/dist/cjs/handleExtension.js +5 -5
  45. package/dist/cjs/handleGlobal.d.ts +2 -12
  46. package/dist/cjs/handleGlobal.js +23 -7
  47. package/dist/cjs/handleModule.js +3 -3
  48. package/dist/cjs/handleSlot.d.ts +4 -9
  49. package/dist/cjs/handleSlot.js +61 -150
  50. package/dist/cjs/processors/processComEvents.d.ts +9 -0
  51. package/dist/cjs/processors/processComEvents.js +164 -0
  52. package/dist/cjs/processors/processModule.d.ts +31 -0
  53. package/dist/cjs/processors/processModule.js +125 -0
  54. package/dist/cjs/processors/processScene.d.ts +32 -0
  55. package/dist/cjs/processors/processScene.js +128 -0
  56. package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
  57. package/dist/cjs/processors/processSceneLogic.js +170 -0
  58. package/dist/cjs/shims-taro.d.ts +20 -0
  59. package/dist/cjs/taro-template.json +501 -351
  60. package/dist/cjs/toCodeTaro.d.ts +27 -6
  61. package/dist/cjs/toCodeTaro.js +68 -340
  62. package/dist/cjs/utils/builder/buildResult.d.ts +22 -0
  63. package/dist/cjs/utils/builder/buildResult.js +117 -0
  64. package/dist/cjs/utils/common/ImportManager.d.ts +19 -0
  65. package/dist/cjs/utils/common/ImportManager.js +105 -0
  66. package/dist/cjs/utils/common/helper.d.ts +2 -0
  67. package/dist/cjs/utils/common/helper.js +31 -0
  68. package/dist/cjs/utils/common/object.d.ts +5 -0
  69. package/dist/cjs/utils/common/object.js +58 -0
  70. package/dist/cjs/utils/common/string.d.ts +8 -0
  71. package/dist/cjs/utils/common/string.js +46 -0
  72. package/dist/cjs/utils/{pageConfig → config/content}/converter.js +1 -1
  73. package/dist/cjs/utils/{pageConfig → config/content}/index.js +9 -9
  74. package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.js +12 -22
  75. package/dist/{esm/utils/pageConfig → cjs/utils/config/content}/saveBase64Image.d.ts +1 -1
  76. package/dist/cjs/utils/{pageConfig → config/content}/saveBase64Image.js +8 -17
  77. package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.js +9 -32
  78. package/dist/cjs/utils/config/content/types.js +17 -0
  79. package/dist/cjs/utils/{pageConfig → config/content}/validator.js +1 -1
  80. package/dist/{esm/utils → cjs/utils/config}/handlePageConfig.d.ts +3 -2
  81. package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +7 -6
  82. package/dist/cjs/utils/context/buildContext.d.ts +24 -0
  83. package/dist/cjs/utils/context/buildContext.js +65 -0
  84. package/dist/cjs/utils/context/buildFrameMap.d.ts +16 -0
  85. package/dist/cjs/utils/context/buildFrameMap.js +106 -0
  86. package/dist/cjs/utils/context/buildGlobalData.d.ts +13 -0
  87. package/dist/cjs/utils/context/buildGlobalData.js +58 -0
  88. package/dist/cjs/utils/context/collectJSModules.d.ts +37 -0
  89. package/dist/cjs/utils/context/collectJSModules.js +91 -0
  90. package/dist/cjs/utils/context/createEventQueries.d.ts +45 -0
  91. package/dist/cjs/utils/context/createEventQueries.js +99 -0
  92. package/dist/cjs/utils/context/createProvider.d.ts +21 -0
  93. package/dist/cjs/utils/context/createProvider.js +49 -0
  94. package/dist/cjs/utils/index.d.ts +10 -62
  95. package/dist/cjs/utils/index.js +21 -282
  96. package/dist/cjs/utils/{convertNamespace.js → logic/convertNamespace.js} +1 -1
  97. package/dist/cjs/utils/{genJSModules.js → logic/genJSModules.js} +1 -1
  98. package/dist/{esm/utils → cjs/utils/logic}/handleProcess.d.ts +2 -2
  99. package/dist/cjs/utils/{handleProcess.js → logic/handleProcess.js} +40 -16
  100. package/dist/cjs/utils/logic/processChildren.d.ts +12 -0
  101. package/dist/cjs/utils/logic/processChildren.js +82 -0
  102. package/dist/cjs/utils/style/color.d.ts +4 -0
  103. package/dist/cjs/utils/style/color.js +45 -0
  104. package/dist/cjs/utils/style/converter.d.ts +7 -0
  105. package/dist/cjs/utils/style/converter.js +181 -0
  106. package/dist/cjs/utils/{getComponentClassName.js → style/getComponentClassName.js} +1 -1
  107. package/dist/cjs/utils/{pxtransform.js → style/pxtransform.js} +1 -1
  108. package/dist/cjs/utils/style/types.d.ts +23 -0
  109. package/dist/cjs/utils/{pageConfig → style}/types.js +1 -1
  110. package/dist/cjs/utils/{code → templates}/component.js +1 -1
  111. package/dist/cjs/utils/{code → templates}/index.js +4 -4
  112. package/dist/cjs/utils/{code → templates}/renderManager.js +1 -1
  113. package/dist/cjs/utils/{code → templates}/scene.d.ts +3 -1
  114. package/dist/cjs/utils/{code → templates}/scene.js +17 -5
  115. package/dist/esm/core/comlib/_AesEncode.js +85 -0
  116. package/dist/esm/core/comlib/_BackTo.js +66 -0
  117. package/dist/esm/core/comlib/_CallPhone.js +30 -0
  118. package/dist/esm/core/comlib/_ChooseFile.js +81 -0
  119. package/dist/esm/core/comlib/_ChooseMedia.js +38 -0
  120. package/dist/esm/core/comlib/_Connector.js +60 -0
  121. package/dist/esm/core/comlib/_ConnectorGlobalHeaders.js +56 -0
  122. package/dist/esm/core/comlib/_Format.js +102 -0
  123. package/dist/esm/core/comlib/_GetLocation.js +26 -0
  124. package/dist/esm/core/comlib/_GetStorage.js +44 -0
  125. package/dist/esm/core/comlib/_GetSystemInfo.js +32 -0
  126. package/dist/esm/core/comlib/_OpenCamera.js +44 -0
  127. package/dist/esm/core/comlib/_OpenPetalMap.js +28 -0
  128. package/dist/esm/core/comlib/_OpenUrl.js +36 -0
  129. package/dist/esm/core/comlib/_RemoveStorage.js +42 -0
  130. package/dist/esm/core/comlib/_Router.js +113 -0
  131. package/dist/esm/core/comlib/_ScanQrcode.js +10 -11
  132. package/dist/esm/core/comlib/_SetStorage.js +13 -25
  133. package/dist/esm/core/comlib/_Share.js +28 -0
  134. package/dist/esm/core/comlib/_ShowToast.js +32 -55
  135. package/dist/esm/core/comlib/_TextToSpeech.js +117 -0
  136. package/dist/esm/core/comlib/_TimerDebounce.js +66 -0
  137. package/dist/esm/core/comlib/_TimerDelay.js +47 -0
  138. package/dist/esm/core/comlib/_TimerThrottle.js +69 -0
  139. package/dist/esm/core/comlib/_Vibrate.js +34 -0
  140. package/dist/esm/core/comlib/index.js +37 -0
  141. package/dist/esm/core/mybricks/index.js +1 -1
  142. package/dist/esm/core/utils/ComContext.js +1 -0
  143. package/dist/esm/core/utils/PopupRenderer.js +27 -0
  144. package/dist/esm/core/utils/hooks.js +130 -0
  145. package/dist/esm/core/utils/index.js +8 -57
  146. package/dist/esm/core/utils/pageRouter.js +69 -0
  147. package/dist/esm/core/utils/popupRouter.js +116 -0
  148. package/dist/esm/core/utils/useContext.js +16 -3
  149. package/dist/esm/core/utils/with.js +62 -19
  150. package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
  151. package/dist/esm/generate/generateTaroProjectJson.js +62 -24
  152. package/dist/esm/generate/utils/tabBarImages.d.ts +1 -1
  153. package/dist/esm/handleCom.d.ts +1 -1
  154. package/dist/esm/handleCom.js +159 -244
  155. package/dist/esm/handleDom.js +9 -48
  156. package/dist/esm/handleExtension.d.ts +2 -2
  157. package/dist/esm/handleExtension.js +5 -5
  158. package/dist/esm/handleGlobal.d.ts +2 -12
  159. package/dist/esm/handleGlobal.js +17 -3
  160. package/dist/esm/handleModule.js +3 -3
  161. package/dist/esm/handleSlot.d.ts +4 -9
  162. package/dist/esm/handleSlot.js +112 -173
  163. package/dist/esm/processors/processComEvents.d.ts +9 -0
  164. package/dist/esm/processors/processComEvents.js +167 -0
  165. package/dist/esm/processors/processModule.d.ts +31 -0
  166. package/dist/esm/processors/processModule.js +126 -0
  167. package/dist/esm/processors/processScene.d.ts +32 -0
  168. package/dist/esm/processors/processScene.js +134 -0
  169. package/dist/esm/processors/processSceneLogic.d.ts +4 -0
  170. package/dist/esm/processors/processSceneLogic.js +170 -0
  171. package/dist/esm/shims-taro.d.ts +20 -0
  172. package/dist/esm/taro-template.json +501 -351
  173. package/dist/esm/toCodeTaro.d.ts +27 -6
  174. package/dist/esm/toCodeTaro.js +110 -395
  175. package/dist/esm/utils/builder/buildResult.d.ts +22 -0
  176. package/dist/esm/utils/builder/buildResult.js +82 -0
  177. package/dist/esm/utils/common/ImportManager.d.ts +19 -0
  178. package/dist/esm/utils/common/ImportManager.js +103 -0
  179. package/dist/esm/utils/common/helper.d.ts +2 -0
  180. package/dist/esm/utils/common/helper.js +4 -0
  181. package/dist/esm/utils/common/object.d.ts +5 -0
  182. package/dist/esm/utils/common/object.js +32 -0
  183. package/dist/esm/utils/common/string.d.ts +8 -0
  184. package/dist/esm/utils/common/string.js +21 -0
  185. package/dist/esm/utils/config/content/pageConfig.js +40 -0
  186. package/dist/{cjs/utils/pageConfig → esm/utils/config/content}/saveBase64Image.d.ts +1 -1
  187. package/dist/esm/utils/{pageConfig → config/content}/saveBase64Image.js +11 -30
  188. package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.js +12 -34
  189. package/dist/{cjs/utils → esm/utils/config}/handlePageConfig.d.ts +3 -2
  190. package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +6 -2
  191. package/dist/esm/utils/context/buildContext.d.ts +24 -0
  192. package/dist/esm/utils/context/buildContext.js +53 -0
  193. package/dist/esm/utils/context/buildFrameMap.d.ts +16 -0
  194. package/dist/esm/utils/context/buildFrameMap.js +131 -0
  195. package/dist/esm/utils/context/buildGlobalData.d.ts +13 -0
  196. package/dist/esm/utils/context/buildGlobalData.js +44 -0
  197. package/dist/esm/utils/context/collectJSModules.d.ts +37 -0
  198. package/dist/esm/utils/context/collectJSModules.js +87 -0
  199. package/dist/esm/utils/context/createEventQueries.d.ts +45 -0
  200. package/dist/esm/utils/context/createEventQueries.js +99 -0
  201. package/dist/esm/utils/context/createProvider.d.ts +21 -0
  202. package/dist/esm/utils/context/createProvider.js +33 -0
  203. package/dist/esm/utils/index.d.ts +10 -62
  204. package/dist/esm/utils/index.js +12 -345
  205. package/dist/{cjs/utils → esm/utils/logic}/handleProcess.d.ts +2 -2
  206. package/dist/esm/utils/{handleProcess.js → logic/handleProcess.js} +42 -9
  207. package/dist/esm/utils/logic/processChildren.d.ts +12 -0
  208. package/dist/esm/utils/logic/processChildren.js +48 -0
  209. package/dist/esm/utils/style/color.d.ts +4 -0
  210. package/dist/esm/utils/style/color.js +17 -0
  211. package/dist/esm/utils/style/converter.d.ts +7 -0
  212. package/dist/esm/utils/style/converter.js +176 -0
  213. package/dist/esm/utils/style/types.d.ts +23 -0
  214. package/dist/esm/utils/style/types.js +1 -0
  215. package/dist/esm/utils/{code → templates}/scene.d.ts +3 -1
  216. package/dist/esm/utils/{code → templates}/scene.js +13 -5
  217. package/package.json +4 -2
  218. package/dist/esm/core/comlib/Index.js +0 -3
  219. package/dist/esm/utils/pageConfig/pageConfig.js +0 -60
  220. /package/dist/cjs/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  221. /package/dist/cjs/utils/{pageConfig → config/content}/index.d.ts +0 -0
  222. /package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  223. /package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  224. /package/dist/cjs/utils/{pageConfig → config/content}/types.d.ts +0 -0
  225. /package/dist/cjs/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  226. /package/dist/cjs/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  227. /package/dist/cjs/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  228. /package/dist/cjs/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  229. /package/dist/cjs/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  230. /package/dist/cjs/utils/{code → templates}/component.d.ts +0 -0
  231. /package/dist/cjs/utils/{code → templates}/index.d.ts +0 -0
  232. /package/dist/cjs/utils/{code → templates}/renderManager.d.ts +0 -0
  233. /package/dist/esm/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  234. /package/dist/esm/utils/{pageConfig → config/content}/converter.js +0 -0
  235. /package/dist/esm/utils/{pageConfig → config/content}/index.d.ts +0 -0
  236. /package/dist/esm/utils/{pageConfig → config/content}/index.js +0 -0
  237. /package/dist/esm/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  238. /package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  239. /package/dist/esm/utils/{pageConfig → config/content}/types.d.ts +0 -0
  240. /package/dist/esm/utils/{pageConfig → config/content}/types.js +0 -0
  241. /package/dist/esm/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  242. /package/dist/esm/utils/{pageConfig → config/content}/validator.js +0 -0
  243. /package/dist/esm/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  244. /package/dist/esm/utils/{convertNamespace.js → logic/convertNamespace.js} +0 -0
  245. /package/dist/esm/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  246. /package/dist/esm/utils/{genJSModules.js → logic/genJSModules.js} +0 -0
  247. /package/dist/esm/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  248. /package/dist/esm/utils/{getComponentClassName.js → style/getComponentClassName.js} +0 -0
  249. /package/dist/esm/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  250. /package/dist/esm/utils/{pxtransform.js → style/pxtransform.js} +0 -0
  251. /package/dist/esm/utils/{code → templates}/component.d.ts +0 -0
  252. /package/dist/esm/utils/{code → templates}/component.js +0 -0
  253. /package/dist/esm/utils/{code → templates}/index.d.ts +0 -0
  254. /package/dist/esm/utils/{code → templates}/index.js +0 -0
  255. /package/dist/esm/utils/{code → templates}/renderManager.d.ts +0 -0
  256. /package/dist/esm/utils/{code → templates}/renderManager.js +0 -0
@@ -0,0 +1,82 @@
1
+ /**
2
+ * 构建最终结果
3
+ * 包括抽象事件类型定义、JS 模块、TabBar 配置等
4
+ */
5
+
6
+ import { ImportManager } from "../common/ImportManager";
7
+ import abstractEventTypeDef from "../../abstractEventTypeDef";
8
+ import { genJSModules } from "../logic/genJSModules";
9
+ /**
10
+ * 构建最终结果
11
+ */
12
+ export var buildFinalResults = function buildFinalResults(params) {
13
+ var abstractEventTypeDefMap = params.abstractEventTypeDefMap,
14
+ jsModulesMap = params.jsModulesMap,
15
+ globalTabBarConfig = params.globalTabBarConfig,
16
+ tabBarImageFiles = params.tabBarImageFiles,
17
+ popupIds = params.popupIds,
18
+ config = params.config;
19
+ var files = [];
20
+
21
+ // 添加抽象事件类型定义
22
+ files.push({
23
+ type: "abstractEventTypeDef",
24
+ content: abstractEventTypeDef(abstractEventTypeDefMap, config),
25
+ importManager: new ImportManager(config),
26
+ name: "abstractEventTypeDef"
27
+ });
28
+
29
+ // 生成 JSModules.ts 文件
30
+ files.push({
31
+ type: "jsModules",
32
+ content: genJSModules(Array.from(jsModulesMap.values())),
33
+ importManager: new ImportManager(config),
34
+ name: "JSModules"
35
+ });
36
+
37
+ // 生成 common/index.ts 文件(初始化并导出 jsModules)
38
+ if (jsModulesMap.size > 0) {
39
+ var commonIndexContent = "import jsModulesGenerator from \"./jsModules\";\nimport { createJSHandle } from \"../core/mybricks/index\";\n\nconst jsModules: Record<string, (props: any, appContext: any) => any> = jsModulesGenerator({ createJSHandle });\n\nexport { jsModules };\n";
40
+ files.push({
41
+ type: "commonIndex",
42
+ content: commonIndexContent,
43
+ importManager: new ImportManager(config),
44
+ name: "commonIndex"
45
+ });
46
+ }
47
+
48
+ // 生成弹窗汇总文件 (popup.ts)
49
+ if (popupIds.length > 0) {
50
+ var registryContent = "";
51
+ popupIds.forEach(function (id) {
52
+ registryContent += "import Scene_".concat(id, " from '../popupComponents/").concat(id, "/index';\n");
53
+ });
54
+ registryContent += "\nexport const POPUP_MAP: Record<string, any> = {\n";
55
+ popupIds.forEach(function (id) {
56
+ registryContent += " '".concat(id, "': Scene_").concat(id, ",\n");
57
+ });
58
+ registryContent += "};\n\n";
59
+ registryContent += "export const POPUP_IDS = ".concat(JSON.stringify(popupIds), ";\n");
60
+ files.push({
61
+ type: "popup",
62
+ content: registryContent,
63
+ importManager: new ImportManager(config),
64
+ name: "popup"
65
+ });
66
+ }
67
+
68
+ // 添加 TabBar 配置项(如果存在)
69
+ if (globalTabBarConfig) {
70
+ files.push({
71
+ type: "tabBarConfig",
72
+ content: globalTabBarConfig,
73
+ importManager: new ImportManager(config),
74
+ name: "tabBarConfig",
75
+ tabBarConfig: globalTabBarConfig
76
+ });
77
+ }
78
+ return {
79
+ files: files,
80
+ tabBarImageFiles: tabBarImageFiles
81
+ };
82
+ };
@@ -0,0 +1,19 @@
1
+ import type { ToTaroCodeConfig } from "../../toCodeTaro";
2
+ export type ImportType = "default" | "named" | "module";
3
+ export type DependencyImport = Record<string, Record<string, {
4
+ importType: ImportType;
5
+ }>>;
6
+ /** 导入依赖收集、解析 */
7
+ export declare class ImportManager {
8
+ private _config;
9
+ private _imports;
10
+ constructor(_config: ToTaroCodeConfig);
11
+ /** 添加依赖 */
12
+ addImport({ packageName, dependencyNames, importType, }: {
13
+ packageName: string;
14
+ dependencyNames: string[];
15
+ importType: ImportType;
16
+ }): void;
17
+ /** 依赖解析为code */
18
+ toCode(): string;
19
+ }
@@ -0,0 +1,103 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+ import { indentation } from "./helper";
6
+ /** 导入依赖收集、解析 */
7
+ export var ImportManager = /*#__PURE__*/function () {
8
+ function ImportManager(_config) {
9
+ _classCallCheck(this, ImportManager);
10
+ _defineProperty(this, "_imports", {});
11
+ this._config = _config;
12
+ }
13
+
14
+ /** 添加依赖 */
15
+ _createClass(ImportManager, [{
16
+ key: "addImport",
17
+ value: function addImport(_ref) {
18
+ var packageName = _ref.packageName,
19
+ dependencyNames = _ref.dependencyNames,
20
+ importType = _ref.importType;
21
+ if (!packageName) {
22
+ return;
23
+ }
24
+ var _imports = this._imports;
25
+ if (!_imports[packageName]) {
26
+ _imports[packageName] = {};
27
+ }
28
+
29
+ // 对于 module 类型且 dependencyNames 为空的情况,使用特殊标记
30
+ if (importType === "module" && dependencyNames.length === 0) {
31
+ _imports[packageName]["__module__"] = {
32
+ importType: "module"
33
+ };
34
+ } else {
35
+ dependencyNames.forEach(function (dependencyName) {
36
+ _imports[packageName][dependencyName] = {
37
+ importType: importType
38
+ };
39
+ });
40
+ }
41
+ }
42
+
43
+ /** 依赖解析为code */
44
+ }, {
45
+ key: "toCode",
46
+ value: function toCode() {
47
+ var indent = indentation(this._config.codeStyle.indent);
48
+ return Object.entries(this._imports).reduce(function (pre, _ref2) {
49
+ var _dependencies$__modul;
50
+ var _ref3 = _slicedToArray(_ref2, 2),
51
+ packageName = _ref3[0],
52
+ dependencies = _ref3[1];
53
+ var defaultDependency = "";
54
+ var namedDependencies = "";
55
+ var dependencyEntries = Object.entries(dependencies);
56
+
57
+ // 检查是否有 module 类型的导入(如 import './index.less')
58
+ var hasModuleType = ((_dependencies$__modul = dependencies["__module__"]) === null || _dependencies$__modul === void 0 ? void 0 : _dependencies$__modul.importType) === "module" || dependencyEntries.some(function (_ref4) {
59
+ var _ref5 = _slicedToArray(_ref4, 2),
60
+ importType = _ref5[1].importType;
61
+ return importType === "module";
62
+ });
63
+ if (hasModuleType) {
64
+ return pre + "import '".concat(packageName, "';\n");
65
+ }
66
+
67
+ /** 超过三项换行 */
68
+ var validEntries = dependencyEntries.filter(function (_ref6) {
69
+ var _ref7 = _slicedToArray(_ref6, 1),
70
+ key = _ref7[0];
71
+ return key !== "__module__";
72
+ });
73
+ var wrap = validEntries.length > 3;
74
+ validEntries.forEach(function (_ref8, index) {
75
+ var _ref9 = _slicedToArray(_ref8, 2),
76
+ dependencyName = _ref9[0],
77
+ importType = _ref9[1].importType;
78
+ if (importType === "default") {
79
+ defaultDependency = dependencyName;
80
+ } else if (importType === "named") {
81
+ if (wrap) {
82
+ namedDependencies += "".concat(indent).concat(dependencyName, ",\n");
83
+ } else {
84
+ namedDependencies += "".concat(index ? ", " : "").concat(dependencyName);
85
+ }
86
+ }
87
+ });
88
+ if (namedDependencies) {
89
+ if (wrap) {
90
+ namedDependencies = "{\n".concat(namedDependencies, "}");
91
+ } else {
92
+ namedDependencies = "{ ".concat(namedDependencies, " }");
93
+ }
94
+ if (defaultDependency) {
95
+ defaultDependency += ", ";
96
+ }
97
+ }
98
+ return pre + "import ".concat(defaultDependency).concat(namedDependencies, " from '").concat(packageName, "';\n");
99
+ }, "");
100
+ }
101
+ }]);
102
+ return ImportManager;
103
+ }();
@@ -0,0 +1,2 @@
1
+ /** 缩进 */
2
+ export declare const indentation: (level: number) => string;
@@ -0,0 +1,4 @@
1
+ /** 缩进 */
2
+ export var indentation = function indentation(level) {
3
+ return " ".repeat(level);
4
+ };
@@ -0,0 +1,5 @@
1
+ /** 生成对象代码 */
2
+ export declare const genObjectCode: (object: any, config: {
3
+ initialIndent: number;
4
+ indentSize: number;
5
+ }) => string;
@@ -0,0 +1,32 @@
1
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
+ import { indentation } from "./helper";
3
+
4
+ /** 生成对象代码 */
5
+ export var genObjectCode = function genObjectCode(object, config) {
6
+ var initialIndent = config.initialIndent,
7
+ indentSize = config.indentSize;
8
+ var keys = Object.keys(object);
9
+ if (keys.length === 0) return "{}";
10
+ var result = "{\n";
11
+ keys.forEach(function (key, idx) {
12
+ var value = object[key];
13
+ var formattedValue;
14
+ if (Array.isArray(value)) {
15
+ formattedValue = JSON.stringify(value);
16
+ } else if (value && _typeof(value) === "object") {
17
+ formattedValue = genObjectCode(value, {
18
+ initialIndent: initialIndent + indentSize,
19
+ indentSize: indentSize
20
+ });
21
+ } else if (typeof value === "string") {
22
+ formattedValue = JSON.stringify(value);
23
+ } else {
24
+ formattedValue = String(value);
25
+ }
26
+ result += indentation(initialIndent + indentSize) + "".concat(JSON.stringify(key), ": ").concat(formattedValue);
27
+ if (idx < keys.length - 1) result += ",";
28
+ result += "\n";
29
+ });
30
+ result += indentation(initialIndent) + "}";
31
+ return result;
32
+ };
@@ -0,0 +1,8 @@
1
+ /** 将第一个字符转大写 */
2
+ export declare const firstCharToUpperCase: (str: string) => string;
3
+ /** 将第一个字符转小写 */
4
+ export declare const firstCharToLowerCase: (str: string) => string;
5
+ /** 驼峰转中划线 */
6
+ export declare const camelToKebab: (str: string) => string;
7
+ /** 中划线转驼峰 */
8
+ export declare const kebabToCamel: (str: string) => string;
@@ -0,0 +1,21 @@
1
+ /** 将第一个字符转大写 */
2
+ export var firstCharToUpperCase = function firstCharToUpperCase(str) {
3
+ return str.charAt(0).toUpperCase() + str.slice(1);
4
+ };
5
+
6
+ /** 将第一个字符转小写 */
7
+ export var firstCharToLowerCase = function firstCharToLowerCase(str) {
8
+ return str.charAt(0).toLowerCase() + str.slice(1);
9
+ };
10
+
11
+ /** 驼峰转中划线 */
12
+ export var camelToKebab = function camelToKebab(str) {
13
+ return str.replace(/([A-Z])/g, "-$1").toLowerCase();
14
+ };
15
+
16
+ /** 中划线转驼峰 */
17
+ export var kebabToCamel = function kebabToCamel(str) {
18
+ return str.replace(/-([a-z])/g, function (_, char) {
19
+ return char.toUpperCase();
20
+ });
21
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 页面配置工具
3
+ * 负责从 systemPage 组件数据生成 definePageConfig 配置字符串
4
+ */
5
+
6
+ import { colorToHex } from "../../index";
7
+ var TARO_NAVIGATION_BAR_PROPERTIES = ['navigationBarBackgroundColor', 'navigationBarTextStyle', 'navigationBarTitleText', 'navigationStyle'];
8
+ var TARO_PAGE_CONFIG_TEMPLATE_PROPERTIES = ['navigationBarBackgroundColor', 'navigationBarTextStyle', 'navigationBarTitleText', 'navigationStyle', 'transparentTitle', 'backgroundColor', 'backgroundTextStyle', 'backgroundColorTop', 'backgroundColorBottom', 'enablePullDownRefresh', 'onReachBottomDistance', 'pageOrientation', 'disableScroll', 'disableSwipeBack', 'enableShareAppMessage', 'enableShareTimeline', 'usingComponents', 'renderer'];
9
+
10
+ /**
11
+ * 从 systemPage 组件数据生成 definePageConfig 配置字符串
12
+ * @param systemPageData systemPage 组件的 model.data
13
+ * @returns definePageConfig 配置字符串
14
+ */
15
+ export function generatePageConfigContent(systemPageData) {
16
+ var pageConfig = {};
17
+ if (systemPageData) {
18
+ // 1. 处理导航栏隐藏逻辑:如果是 none,强制设置 navigationStyle 为 custom 以隐藏默认导航栏
19
+ if (systemPageData.useNavigationStyle === "none") {
20
+ pageConfig.navigationStyle = "custom";
21
+ }
22
+ var propertiesToUse = systemPageData.useNavigationStyle === "default" ? TARO_NAVIGATION_BAR_PROPERTIES : TARO_PAGE_CONFIG_TEMPLATE_PROPERTIES;
23
+
24
+ // 2. 从 systemPageData 中提取配置属性
25
+ propertiesToUse.forEach(function (prop) {
26
+ var value = systemPageData[prop];
27
+ if (value !== undefined && value !== null) {
28
+ // 特殊处理:将 RGBA 颜色转换为 WeChat 要求的 Hex 格式
29
+ if (prop.includes("BackgroundColor") || prop === "backgroundColor" || prop === "backgroundColorTop" || prop === "backgroundColorBottom") {
30
+ value = colorToHex(value);
31
+ }
32
+ pageConfig[prop] = value;
33
+ }
34
+ });
35
+ }
36
+
37
+ // 生成配置字符串
38
+ var configContent = JSON.stringify(pageConfig, null, 2).replace(/^\{/, "").replace(/\}$/, "").trim();
39
+ return "export default definePageConfig({\n ".concat(configContent, "\n})");
40
+ }
@@ -11,4 +11,4 @@ import type { ImageFileInfo } from './types';
11
11
  * @param imageFiles 用于收集需要保存的图片文件的数组(可选)
12
12
  * @returns 处理后的图标路径(用于 app.config.ts),如果不是 base64 则返回原路径
13
13
  */
14
- export declare function processTabBarIcon(iconPath: string | undefined, tabBarIndex: number, type: 'normal' | 'selected', imageFiles?: ImageFileInfo[]): string | undefined;
14
+ export declare function processTabBarIcon(iconPath: string | undefined, tabBarIndex: number, type: "normal" | "selected", imageFiles?: ImageFileInfo[]): string | undefined;
@@ -25,13 +25,9 @@ var MIME_TO_EXT = {
25
25
  * @returns 解析结果或 null
26
26
  */
27
27
  function parseBase64Image(base64Str) {
28
- if (typeof base64Str !== 'string' || !base64Str.startsWith('data:image/')) {
29
- return null;
30
- }
28
+ if (typeof base64Str !== "string") return null;
31
29
  var match = base64Str.match(/^data:image\/([^;]+);base64,(.+)$/);
32
- if (!match) {
33
- return null;
34
- }
30
+ if (!match) return null;
35
31
  return {
36
32
  mimeType: match[1],
37
33
  base64Data: match[2]
@@ -43,9 +39,10 @@ function parseBase64Image(base64Str) {
43
39
  * @param mimeType MIME 类型
44
40
  * @returns 文件扩展名,默认为 'png'
45
41
  */
46
- function getFileExtension(mimeType) {
47
- return MIME_TO_EXT[mimeType.toLowerCase()] || 'png';
48
- }
42
+ var getFileExtension = function getFileExtension(mimeType) {
43
+ var _MIME_TO_EXT$mimeType;
44
+ return (_MIME_TO_EXT$mimeType = MIME_TO_EXT[mimeType.toLowerCase()]) !== null && _MIME_TO_EXT$mimeType !== void 0 ? _MIME_TO_EXT$mimeType : "png";
45
+ };
49
46
 
50
47
  /**
51
48
  * 生成唯一的文件名
@@ -54,9 +51,9 @@ function getFileExtension(mimeType) {
54
51
  * @param extension 文件扩展名
55
52
  * @returns 文件名
56
53
  */
57
- function generateFileName(index, type, extension) {
54
+ var generateFileName = function generateFileName(index, type, extension) {
58
55
  return "tabbar_".concat(index, "_").concat(type, ".").concat(extension);
59
- }
56
+ };
60
57
 
61
58
  /**
62
59
  * 处理 TabBar 图标,如果是 base64 则准备保存为文件
@@ -67,39 +64,23 @@ function generateFileName(index, type, extension) {
67
64
  * @returns 处理后的图标路径(用于 app.config.ts),如果不是 base64 则返回原路径
68
65
  */
69
66
  export function processTabBarIcon(iconPath, tabBarIndex, type, imageFiles) {
70
- if (!iconPath) {
71
- return undefined;
72
- }
73
-
74
- // 解析 base64 图片
67
+ if (!iconPath) return undefined;
75
68
  var parsed = parseBase64Image(iconPath);
76
- if (!parsed) {
77
- // 不是 base64 格式,直接返回原路径
78
- return iconPath;
79
- }
80
-
81
- // 生成文件名和路径
69
+ if (!parsed) return iconPath;
82
70
  var extension = getFileExtension(parsed.mimeType);
83
71
  var fileName = generateFileName(tabBarIndex, type, extension);
84
72
  var fileSystemPath = "src/assets/tabbar/".concat(fileName);
85
73
  var configPath = "assets/tabbar/".concat(fileName);
86
-
87
- // 如果需要收集图片文件
88
74
  if (imageFiles) {
89
75
  try {
90
- // 将 base64 数据转换为 Buffer
91
- var imageBuffer = Buffer.from(parsed.base64Data, 'base64');
92
76
  imageFiles.push({
93
77
  filePath: fileSystemPath,
94
- fileContent: imageBuffer
78
+ fileContent: Buffer.from(parsed.base64Data, "base64")
95
79
  });
96
80
  } catch (error) {
97
81
  console.error("\u5904\u7406 TabBar \u56FE\u6807\u5931\u8D25: ".concat(error));
98
- // 转换失败时返回原路径
99
82
  return iconPath;
100
83
  }
101
84
  }
102
-
103
- // 返回配置路径(用于 app.config.ts)
104
85
  return configPath;
105
86
  }
@@ -43,40 +43,18 @@ export function generateTabBarConfigContent(tabBar) {
43
43
  * @returns 配置字符串
44
44
  */
45
45
  function formatTabBarConfigForAppConfig(config) {
46
- var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
47
- var lines = [];
48
- lines.push("".concat(indent, "tabBar: {"));
46
+ var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : " ";
47
+ // 使用 JSON.stringify 生成结构化的字符串,然后进行微调以符合 TypeScript 习惯(如去掉引号)
48
+ var tabBarJson = JSON.stringify(config, null, 2);
49
49
 
50
- // 添加颜色配置(如果存在)
51
- if (config.color) {
52
- lines.push("".concat(indent, " color: '").concat(config.color, "',"));
53
- }
54
- if (config.selectedColor) {
55
- lines.push("".concat(indent, " selectedColor: '").concat(config.selectedColor, "',"));
56
- }
57
- if (config.backgroundColor) {
58
- lines.push("".concat(indent, " backgroundColor: '").concat(config.backgroundColor, "',"));
59
- }
60
- if (config.borderStyle) {
61
- lines.push("".concat(indent, " borderStyle: '").concat(config.borderStyle, "',"));
62
- }
50
+ // 格式化:将双引号改为单引号,并将 key 的引号去掉(如果符合变量命名规范)
51
+ var formattedJson = tabBarJson.replace(/"([^"]+)":/g, "$1:") // 去掉 key 的引号
52
+ .replace(/"/g, "'"); // 将双引号改为单引号
63
53
 
64
- // 添加 list 配置
65
- lines.push("".concat(indent, " list: ["));
66
- config.list.forEach(function (item, index) {
67
- var isLast = index === config.list.length - 1;
68
- lines.push("".concat(indent, " {"));
69
- lines.push("".concat(indent, " pagePath: '").concat(item.pagePath, "',"));
70
- lines.push("".concat(indent, " text: '").concat(item.text, "',"));
71
- if (item.iconPath) {
72
- lines.push("".concat(indent, " iconPath: '").concat(item.iconPath, "',"));
73
- }
74
- if (item.selectedIconPath) {
75
- lines.push("".concat(indent, " selectedIconPath: '").concat(item.selectedIconPath, "',"));
76
- }
77
- lines.push("".concat(indent, " }").concat(isLast ? '' : ','));
78
- });
79
- lines.push("".concat(indent, " ]"));
80
- lines.push("".concat(indent, "}"));
81
- return lines.join('\n');
54
+ // 添加缩进,并前置 "tabBar: "
55
+ var lines = formattedJson.split("\n");
56
+ return lines.map(function (line, index) {
57
+ if (index === 0) return "".concat(indent, "tabBar: ").concat(line);
58
+ return "".concat(indent).concat(line);
59
+ }).join("\n");
82
60
  }
@@ -1,5 +1,5 @@
1
1
  import toCode from "@mybricks/to-code-react/dist/cjs/toCode";
2
- import { type ImageFileInfo } from "./pageConfig";
2
+ import { type ImageFileInfo } from "./content";
3
3
  /**
4
4
  * 处理页面配置的类
5
5
  * 负责提取 systemPage 组件数据,生成页面配置和 TabBar 配置
@@ -10,9 +10,10 @@ export declare class HandlePageConfig {
10
10
  /**
11
11
  * 处理页面配置(提取 systemPage 组件数据)
12
12
  * @param scene 场景数据
13
+ * @param isPopup 是否为弹窗场景
13
14
  * @returns 页面配置内容
14
15
  */
15
- handle(scene: ReturnType<typeof toCode>["scenes"][0]["scene"]): string | undefined;
16
+ handle(scene: ReturnType<typeof toCode>["scenes"][0]["scene"], isPopup?: boolean): string | undefined;
16
17
  /**
17
18
  * 获取全局 TabBar 配置
18
19
  */
@@ -1,7 +1,8 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
1
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
3
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import { generatePageConfigContent, generateTabBarConfigContent } from "./pageConfig";
5
+ import { generatePageConfigContent, generateTabBarConfigContent } from "./content";
5
6
 
6
7
  /**
7
8
  * 处理页面配置的类
@@ -19,10 +20,12 @@ export var HandlePageConfig = /*#__PURE__*/function () {
19
20
  /**
20
21
  * 处理页面配置(提取 systemPage 组件数据)
21
22
  * @param scene 场景数据
23
+ * @param isPopup 是否为弹窗场景
22
24
  * @returns 页面配置内容
23
25
  */
24
26
  function handle(scene) {
25
27
  var _systemPageCom$model;
28
+ var isPopup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26
29
  // 提取 systemPage 组件数据,生成 pageConfigContent
27
30
  var pageConfigContent;
28
31
  var systemPageCom = Object.values(scene.coms || {}).find(function (com) {
@@ -30,7 +33,8 @@ export var HandlePageConfig = /*#__PURE__*/function () {
30
33
  return ((_com$def = com.def) === null || _com$def === void 0 ? void 0 : _com$def.namespace) === 'mybricks.taro.systemPage';
31
34
  });
32
35
  if (systemPageCom !== null && systemPageCom !== void 0 && (_systemPageCom$model = systemPageCom.model) !== null && _systemPageCom$model !== void 0 && _systemPageCom$model.data) {
33
- var systemPageData = systemPageCom.model.data;
36
+ var systemPageData = _objectSpread({}, systemPageCom.model.data);
37
+
34
38
  // 生成页面配置
35
39
  pageConfigContent = generatePageConfigContent(systemPageData);
36
40
 
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 构建上下文数据
3
+ * 包括 sceneMap, eventsMap 等查询映射
4
+ */
5
+ /**
6
+ * 构建场景映射表
7
+ */
8
+ export declare const buildSceneMap: (scenes: any[]) => any;
9
+ /**
10
+ * 构建扩展事件映射表
11
+ */
12
+ export declare const buildEventsMap: (frames: any[]) => any;
13
+ /**
14
+ * 创建场景查询函数
15
+ */
16
+ export declare const createGetSceneById: (sceneMap: Record<string, any>) => (id: string) => any;
17
+ /**
18
+ * 创建扩展事件查询函数
19
+ */
20
+ export declare const createGetExtensionEventById: (eventsMap: Record<string, any>) => (id: string) => any;
21
+ /**
22
+ * 创建 frame 查询函数
23
+ */
24
+ export declare const createGetFrameById: (frameMap: Record<string, any>) => (id: string) => any;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 构建上下文数据
3
+ * 包括 sceneMap, eventsMap 等查询映射
4
+ */
5
+
6
+ /**
7
+ * 构建场景映射表
8
+ */
9
+ export var buildSceneMap = function buildSceneMap(scenes) {
10
+ return scenes.reduce(function (pre, cur) {
11
+ pre[cur.id] = cur;
12
+ return pre;
13
+ }, {});
14
+ };
15
+
16
+ /**
17
+ * 构建扩展事件映射表
18
+ */
19
+ export var buildEventsMap = function buildEventsMap(frames) {
20
+ return frames.reduce(function (pre, cur) {
21
+ if (cur.type === "extension-event") {
22
+ pre[cur.id] = cur;
23
+ }
24
+ return pre;
25
+ }, {});
26
+ };
27
+
28
+ /**
29
+ * 创建场景查询函数
30
+ */
31
+ export var createGetSceneById = function createGetSceneById(sceneMap) {
32
+ return function (id) {
33
+ return sceneMap[id];
34
+ };
35
+ };
36
+
37
+ /**
38
+ * 创建扩展事件查询函数
39
+ */
40
+ export var createGetExtensionEventById = function createGetExtensionEventById(eventsMap) {
41
+ return function (id) {
42
+ return eventsMap[id];
43
+ };
44
+ };
45
+
46
+ /**
47
+ * 创建 frame 查询函数
48
+ */
49
+ export var createGetFrameById = function createGetFrameById(frameMap) {
50
+ return function (id) {
51
+ return frameMap[id];
52
+ };
53
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 构建 frames 映射表
3
+ * 参考鸿蒙实现 handleFrame.ts
4
+ * 用于快速查找 frame 和对应的组件信息
5
+ */
6
+ export interface FrameMapItem {
7
+ frame: any;
8
+ meta: any;
9
+ }
10
+ export type FrameMap = Record<string, FrameMapItem>;
11
+ /**
12
+ * 构建完整的 frameMap
13
+ * @param tojson - 完整的 tojson 数据
14
+ * @returns frameMap 对象
15
+ */
16
+ export declare const buildFrameMap: (tojson: any) => FrameMap;