@mybricks/to-code-taro 1.0.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.
Files changed (181) hide show
  1. package/dist/cjs/abstractEventTypeDef.d.ts +11 -0
  2. package/dist/cjs/abstractEventTypeDef.js +93 -0
  3. package/dist/cjs/core/comlib/Index.js +45 -0
  4. package/dist/cjs/core/comlib/_ScanQrcode.js +60 -0
  5. package/dist/cjs/core/comlib/_SetStorage.js +76 -0
  6. package/dist/cjs/core/comlib/_ShowToast.js +96 -0
  7. package/dist/cjs/core/mybricks/MyBricksDescriptor.js +213 -0
  8. package/dist/cjs/core/mybricks/Subject.js +115 -0
  9. package/dist/cjs/core/mybricks/constant.js +70 -0
  10. package/dist/cjs/core/mybricks/context.js +33 -0
  11. package/dist/cjs/core/mybricks/createEnv.js +39 -0
  12. package/dist/cjs/core/mybricks/createJSHandle.js +150 -0
  13. package/dist/cjs/core/mybricks/createModuleEventsHandle.js +49 -0
  14. package/dist/cjs/core/mybricks/createReactiveInputHandler.js +63 -0
  15. package/dist/cjs/core/mybricks/event.js +70 -0
  16. package/dist/cjs/core/mybricks/index.js +871 -0
  17. package/dist/cjs/core/mybricks/log.js +38 -0
  18. package/dist/cjs/core/mybricks/utils.js +69 -0
  19. package/dist/cjs/core/mybricks/variables.js +217 -0
  20. package/dist/cjs/core/utils/ComContext.js +39 -0
  21. package/dist/cjs/core/utils/index.js +88 -0
  22. package/dist/cjs/core/utils/useContext.js +53 -0
  23. package/dist/cjs/core/utils/with.js +84 -0
  24. package/dist/cjs/generate/generateTaroProjectJson.d.ts +24 -0
  25. package/dist/cjs/generate/generateTaroProjectJson.js +101 -0
  26. package/dist/cjs/generate/generateTaroTempalteJson.d.ts +15 -0
  27. package/dist/cjs/generate/generateTaroTempalteJson.js +103 -0
  28. package/dist/cjs/generate/utils/appConfig.d.ts +21 -0
  29. package/dist/cjs/generate/utils/appConfig.js +47 -0
  30. package/dist/cjs/generate/utils/commonDir.d.ts +21 -0
  31. package/dist/cjs/generate/utils/commonDir.js +50 -0
  32. package/dist/cjs/generate/utils/fileNode.d.ts +17 -0
  33. package/dist/cjs/generate/utils/fileNode.js +57 -0
  34. package/dist/cjs/generate/utils/index.d.ts +7 -0
  35. package/dist/cjs/generate/utils/index.js +29 -0
  36. package/dist/cjs/generate/utils/tabBarImages.d.ts +14 -0
  37. package/dist/cjs/generate/utils/tabBarImages.js +36 -0
  38. package/dist/cjs/handleCom.d.ts +31 -0
  39. package/dist/cjs/handleCom.js +260 -0
  40. package/dist/cjs/handleDom.d.ts +19 -0
  41. package/dist/cjs/handleDom.js +86 -0
  42. package/dist/cjs/handleExtension.d.ts +10 -0
  43. package/dist/cjs/handleExtension.js +300 -0
  44. package/dist/cjs/handleGlobal.d.ts +21 -0
  45. package/dist/cjs/handleGlobal.js +155 -0
  46. package/dist/cjs/handleModule.d.ts +15 -0
  47. package/dist/cjs/handleModule.js +108 -0
  48. package/dist/cjs/handleSlot.d.ts +27 -0
  49. package/dist/cjs/handleSlot.js +197 -0
  50. package/dist/cjs/index.d.ts +3 -0
  51. package/dist/cjs/index.js +44 -0
  52. package/dist/cjs/taro-template.json +5370 -0
  53. package/dist/cjs/toCodeTaro.d.ts +130 -0
  54. package/dist/cjs/toCodeTaro.js +427 -0
  55. package/dist/cjs/utils/code/component.d.ts +19 -0
  56. package/dist/cjs/utils/code/component.js +85 -0
  57. package/dist/cjs/utils/code/index.d.ts +18 -0
  58. package/dist/cjs/utils/code/index.js +71 -0
  59. package/dist/cjs/utils/code/renderManager.d.ts +22 -0
  60. package/dist/cjs/utils/code/renderManager.js +80 -0
  61. package/dist/cjs/utils/code/scene.d.ts +19 -0
  62. package/dist/cjs/utils/code/scene.js +82 -0
  63. package/dist/cjs/utils/convertNamespace.d.ts +11 -0
  64. package/dist/cjs/utils/convertNamespace.js +43 -0
  65. package/dist/cjs/utils/genJSModules.d.ts +12 -0
  66. package/dist/cjs/utils/genJSModules.js +116 -0
  67. package/dist/cjs/utils/getComponentClassName.d.ts +16 -0
  68. package/dist/cjs/utils/getComponentClassName.js +47 -0
  69. package/dist/cjs/utils/handlePageConfig.d.ts +24 -0
  70. package/dist/cjs/utils/handlePageConfig.js +73 -0
  71. package/dist/cjs/utils/handleProcess.d.ts +9 -0
  72. package/dist/cjs/utils/handleProcess.js +370 -0
  73. package/dist/cjs/utils/index.d.ts +62 -0
  74. package/dist/cjs/utils/index.js +321 -0
  75. package/dist/cjs/utils/pageConfig/converter.d.ts +17 -0
  76. package/dist/cjs/utils/pageConfig/converter.js +83 -0
  77. package/dist/cjs/utils/pageConfig/index.d.ts +10 -0
  78. package/dist/cjs/utils/pageConfig/index.js +33 -0
  79. package/dist/cjs/utils/pageConfig/pageConfig.d.ts +10 -0
  80. package/dist/cjs/utils/pageConfig/pageConfig.js +87 -0
  81. package/dist/cjs/utils/pageConfig/saveBase64Image.d.ts +14 -0
  82. package/dist/cjs/utils/pageConfig/saveBase64Image.js +81 -0
  83. package/dist/cjs/utils/pageConfig/tabBarConfig.d.ts +13 -0
  84. package/dist/cjs/utils/pageConfig/tabBarConfig.js +74 -0
  85. package/dist/cjs/utils/pageConfig/types.d.ts +68 -0
  86. package/dist/cjs/utils/pageConfig/types.js +17 -0
  87. package/dist/cjs/utils/pageConfig/validator.d.ts +13 -0
  88. package/dist/cjs/utils/pageConfig/validator.js +67 -0
  89. package/dist/cjs/utils/pxtransform.d.ts +28 -0
  90. package/dist/cjs/utils/pxtransform.js +102 -0
  91. package/dist/esm/abstractEventTypeDef.d.ts +11 -0
  92. package/dist/esm/abstractEventTypeDef.js +63 -0
  93. package/dist/esm/core/comlib/Index.js +3 -0
  94. package/dist/esm/core/comlib/_ScanQrcode.js +27 -0
  95. package/dist/esm/core/comlib/_SetStorage.js +52 -0
  96. package/dist/esm/core/comlib/_ShowToast.js +68 -0
  97. package/dist/esm/core/mybricks/MyBricksDescriptor.js +232 -0
  98. package/dist/esm/core/mybricks/Subject.js +143 -0
  99. package/dist/esm/core/mybricks/constant.js +18 -0
  100. package/dist/esm/core/mybricks/context.js +5 -0
  101. package/dist/esm/core/mybricks/createEnv.js +9 -0
  102. package/dist/esm/core/mybricks/createJSHandle.js +138 -0
  103. package/dist/esm/core/mybricks/createModuleEventsHandle.js +26 -0
  104. package/dist/esm/core/mybricks/createReactiveInputHandler.js +40 -0
  105. package/dist/esm/core/mybricks/event.js +44 -0
  106. package/dist/esm/core/mybricks/index.js +952 -0
  107. package/dist/esm/core/mybricks/log.js +12 -0
  108. package/dist/esm/core/mybricks/utils.js +41 -0
  109. package/dist/esm/core/mybricks/variables.js +190 -0
  110. package/dist/esm/core/utils/ComContext.js +10 -0
  111. package/dist/esm/core/utils/index.js +57 -0
  112. package/dist/esm/core/utils/useContext.js +24 -0
  113. package/dist/esm/core/utils/with.js +67 -0
  114. package/dist/esm/generate/generateTaroProjectJson.d.ts +24 -0
  115. package/dist/esm/generate/generateTaroProjectJson.js +102 -0
  116. package/dist/esm/generate/generateTaroTempalteJson.d.ts +15 -0
  117. package/dist/esm/generate/generateTaroTempalteJson.js +94 -0
  118. package/dist/esm/generate/utils/appConfig.d.ts +21 -0
  119. package/dist/esm/generate/utils/appConfig.js +30 -0
  120. package/dist/esm/generate/utils/commonDir.d.ts +21 -0
  121. package/dist/esm/generate/utils/commonDir.js +36 -0
  122. package/dist/esm/generate/utils/fileNode.d.ts +17 -0
  123. package/dist/esm/generate/utils/fileNode.js +49 -0
  124. package/dist/esm/generate/utils/index.d.ts +7 -0
  125. package/dist/esm/generate/utils/index.js +8 -0
  126. package/dist/esm/generate/utils/tabBarImages.d.ts +14 -0
  127. package/dist/esm/generate/utils/tabBarImages.js +15 -0
  128. package/dist/esm/handleCom.d.ts +31 -0
  129. package/dist/esm/handleCom.js +297 -0
  130. package/dist/esm/handleDom.d.ts +19 -0
  131. package/dist/esm/handleDom.js +63 -0
  132. package/dist/esm/handleExtension.d.ts +10 -0
  133. package/dist/esm/handleExtension.js +243 -0
  134. package/dist/esm/handleGlobal.d.ts +21 -0
  135. package/dist/esm/handleGlobal.js +117 -0
  136. package/dist/esm/handleModule.d.ts +15 -0
  137. package/dist/esm/handleModule.js +78 -0
  138. package/dist/esm/handleSlot.d.ts +27 -0
  139. package/dist/esm/handleSlot.js +205 -0
  140. package/dist/esm/index.d.ts +3 -0
  141. package/dist/esm/index.js +3 -0
  142. package/dist/esm/taro-template.json +5370 -0
  143. package/dist/esm/toCodeTaro.d.ts +130 -0
  144. package/dist/esm/toCodeTaro.js +452 -0
  145. package/dist/esm/utils/code/component.d.ts +19 -0
  146. package/dist/esm/utils/code/component.js +54 -0
  147. package/dist/esm/utils/code/index.d.ts +18 -0
  148. package/dist/esm/utils/code/index.js +51 -0
  149. package/dist/esm/utils/code/renderManager.d.ts +22 -0
  150. package/dist/esm/utils/code/renderManager.js +62 -0
  151. package/dist/esm/utils/code/scene.d.ts +19 -0
  152. package/dist/esm/utils/code/scene.js +47 -0
  153. package/dist/esm/utils/convertNamespace.d.ts +11 -0
  154. package/dist/esm/utils/convertNamespace.js +27 -0
  155. package/dist/esm/utils/genJSModules.d.ts +12 -0
  156. package/dist/esm/utils/genJSModules.js +44 -0
  157. package/dist/esm/utils/getComponentClassName.d.ts +16 -0
  158. package/dist/esm/utils/getComponentClassName.js +37 -0
  159. package/dist/esm/utils/handlePageConfig.d.ts +24 -0
  160. package/dist/esm/utils/handlePageConfig.js +68 -0
  161. package/dist/esm/utils/handleProcess.d.ts +9 -0
  162. package/dist/esm/utils/handleProcess.js +379 -0
  163. package/dist/esm/utils/index.d.ts +62 -0
  164. package/dist/esm/utils/index.js +345 -0
  165. package/dist/esm/utils/pageConfig/converter.d.ts +17 -0
  166. package/dist/esm/utils/pageConfig/converter.js +105 -0
  167. package/dist/esm/utils/pageConfig/index.d.ts +10 -0
  168. package/dist/esm/utils/pageConfig/index.js +11 -0
  169. package/dist/esm/utils/pageConfig/pageConfig.d.ts +10 -0
  170. package/dist/esm/utils/pageConfig/pageConfig.js +60 -0
  171. package/dist/esm/utils/pageConfig/saveBase64Image.d.ts +14 -0
  172. package/dist/esm/utils/pageConfig/saveBase64Image.js +105 -0
  173. package/dist/esm/utils/pageConfig/tabBarConfig.d.ts +13 -0
  174. package/dist/esm/utils/pageConfig/tabBarConfig.js +82 -0
  175. package/dist/esm/utils/pageConfig/types.d.ts +68 -0
  176. package/dist/esm/utils/pageConfig/types.js +1 -0
  177. package/dist/esm/utils/pageConfig/validator.d.ts +13 -0
  178. package/dist/esm/utils/pageConfig/validator.js +64 -0
  179. package/dist/esm/utils/pxtransform.d.ts +28 -0
  180. package/dist/esm/utils/pxtransform.js +121 -0
  181. package/package.json +74 -0
@@ -0,0 +1,130 @@
1
+ import toCode from "@mybricks/to-code-react/dist/esm/toCode";
2
+ import type { ToJSON } from "@mybricks/to-code-react/dist/esm/toCode/types";
3
+ import { ImportManager } from "./utils";
4
+ export interface ToTaroCodeConfig {
5
+ getComponentMeta: (com: Extract<UI["children"][0], {
6
+ type: "com";
7
+ }>["meta"], config?: any) => {
8
+ importInfo: {
9
+ /** 导入名「a as b」*/
10
+ name: string;
11
+ from: string;
12
+ type: "default" | "named";
13
+ };
14
+ /** 组件名 */
15
+ name: string;
16
+ /**
17
+ * 调用名
18
+ * 例如js、ai-js这类特殊组件,调用方式由外部实现
19
+ */
20
+ callName?: string;
21
+ };
22
+ getComponentPackageName: (props?: any) => string;
23
+ getUtilsPackageName: () => string;
24
+ getPageId?: (id: string) => string;
25
+ getBus?: (namespace: string) => {
26
+ title: string;
27
+ name: string;
28
+ };
29
+ getApi?: (namespace: string) => {
30
+ title: string;
31
+ };
32
+ getFileName?: (id: string) => string | undefined;
33
+ getModuleApi: (type: "event") => {
34
+ dependencyImport: {
35
+ packageName: string;
36
+ dependencyNames: string[];
37
+ importType: "default" | "named";
38
+ };
39
+ componentName: string;
40
+ };
41
+ /**
42
+ * 写入更多详细信息
43
+ * 当运行时打印IO日志时,必须开启
44
+ */
45
+ verbose?: boolean;
46
+ getComponentName?: any;
47
+ getComponentController?: any;
48
+ getProviderName?: any;
49
+ getEventNodeName?: any;
50
+ /** 代码风格 */
51
+ codeStyle?: {
52
+ indent: number;
53
+ };
54
+ }
55
+ /** 返回结果 */
56
+ export type Result = Array<{
57
+ content: string;
58
+ cssContent?: string;
59
+ pageConfigContent?: string;
60
+ importManager: ImportManager;
61
+ type: "normal" | "popup" | "module" | "global" | "extension-config" | "extension-api" | "extension-bus" | "abstractEventTypeDef" | "fx" | "api" | "extension-event" | "jsModules" | "commonIndex" | "tabBarConfig";
62
+ meta?: ReturnType<typeof toCode>["scenes"][0]["scene"];
63
+ name: string;
64
+ tabBarConfig?: string;
65
+ }>;
66
+ declare const toCodeTaro: (tojson: ToJSON, config: ToTaroCodeConfig) => Result;
67
+ type ToCodeResult = ReturnType<typeof toCode>;
68
+ export type UI = ToCodeResult["scenes"][0]["ui"];
69
+ interface Provider {
70
+ name: string;
71
+ class: string;
72
+ controllers: Set<string>;
73
+ /** 跨作用域调用当前输入项(当前仅作用于插槽) */
74
+ useParams: boolean;
75
+ /** 调用事件(当前仅区块的输出项) */
76
+ useEvents: boolean;
77
+ coms: Set<string>;
78
+ /** 使用区块的输入项 */
79
+ useController: boolean;
80
+ /** 使用区块的配置项 */
81
+ useData: boolean;
82
+ }
83
+ export interface BaseConfig extends ToTaroCodeConfig {
84
+ /** 获取当前场景信息 */
85
+ getCurrentScene: () => ReturnType<typeof toCode>["scenes"][0]["scene"];
86
+ /** 添加最终的文件列表 */
87
+ add: (value: {
88
+ content: string;
89
+ cssContent?: string;
90
+ importManager: ImportManager;
91
+ name: string;
92
+ }) => void;
93
+ /** 获取事件 */
94
+ getEventByDiagramId: (diagramId: string) => ReturnType<typeof toCode>["scenes"][0]["event"][0];
95
+ /** 获取事件 - 变量 */
96
+ getVarEvents: (params?: {
97
+ comId?: string;
98
+ slotId?: string;
99
+ }) => ReturnType<typeof toCode>["scenes"][0]["event"];
100
+ /** 获取事件 - fx */
101
+ getFxEvents: (params?: {
102
+ comId?: string;
103
+ slotId?: string;
104
+ }) => ReturnType<typeof toCode>["scenes"][0]["event"];
105
+ /** 获取事件 - 生命周期 */
106
+ getEffectEvent: (params?: {
107
+ comId: string;
108
+ slotId: string;
109
+ }) => ReturnType<typeof toCode>["scenes"][0]["event"][0];
110
+ getCurrentProvider: () => Provider;
111
+ getRootProvider: () => Provider;
112
+ getProviderMap: () => Record<string, ReturnType<BaseConfig["getCurrentProvider"]>>;
113
+ getExtensionEventById: (id: string) => ReturnType<typeof toCode>["scenes"][0]["event"][0];
114
+ getSceneById: (id: string) => ReturnType<typeof toCode>["scenes"][0]["scene"];
115
+ /** 层级,用于格式化代码 */
116
+ depth: number;
117
+ getTypeDef: () => {
118
+ vars: Record<string, any>;
119
+ inputs: Record<string, any>;
120
+ outputs: Record<string, any>;
121
+ };
122
+ getFxsMap: () => Record<string, Provider>;
123
+ setAbstractEventTypeDefMap: (params: {
124
+ comId: string;
125
+ eventId: string;
126
+ typeDef: any;
127
+ schema: any;
128
+ }) => void;
129
+ }
130
+ export default toCodeTaro;
@@ -0,0 +1,427 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/toCodeTaro.ts
30
+ var toCodeTaro_exports = {};
31
+ __export(toCodeTaro_exports, {
32
+ default: () => toCodeTaro_default
33
+ });
34
+ module.exports = __toCommonJS(toCodeTaro_exports);
35
+ var import_toCode = __toESM(require("@mybricks/to-code-react/dist/esm/toCode"));
36
+ var import_handleSlot = __toESM(require("./handleSlot"));
37
+ var import_utils = require("./utils");
38
+ var import_handleGlobal = __toESM(require("./handleGlobal"));
39
+ var import_handleExtension = __toESM(require("./handleExtension"));
40
+ var import_abstractEventTypeDef = __toESM(require("./abstractEventTypeDef"));
41
+ var import_genJSModules = require("./utils/genJSModules");
42
+ var import_handlePageConfig = require("./utils/handlePageConfig");
43
+ var toCodeTaro = (tojson, config) => {
44
+ console.log("tojson", tojson);
45
+ return getCode({ tojson, toCodejson: (0, import_toCode.default)(tojson) }, config);
46
+ };
47
+ var getCode = (params, config) => {
48
+ transformConfig(config);
49
+ const result = [];
50
+ const { tojson, toCodejson } = params;
51
+ const { scenes, extensionEvents, globalFxs, globalVars, modules } = toCodejson;
52
+ const jsModulesMap = /* @__PURE__ */ new Map();
53
+ const eventsMap = tojson.frames.reduce((pre, cur) => {
54
+ if (cur.type === "extension-event") {
55
+ pre[cur.id] = cur;
56
+ }
57
+ return pre;
58
+ }, {});
59
+ const sceneMap = tojson.scenes.reduce((pre, cur) => {
60
+ pre[cur.id] = cur;
61
+ return pre;
62
+ }, {});
63
+ const getSceneById = (id) => {
64
+ return sceneMap[id];
65
+ };
66
+ const getExtensionEventById = (id) => {
67
+ return eventsMap[id];
68
+ };
69
+ result.push(
70
+ ...(0, import_handleExtension.default)(
71
+ {
72
+ extensionEvents,
73
+ tojson
74
+ },
75
+ {
76
+ ...config,
77
+ // @ts-ignore
78
+ getExtensionEventById,
79
+ getSceneById
80
+ }
81
+ )
82
+ );
83
+ const globalVarTypeDef = {};
84
+ Object.entries(tojson.global.comsReg).forEach(([, com]) => {
85
+ if (com.def.namespace !== "mybricks.core-comlib.var") {
86
+ return;
87
+ }
88
+ globalVarTypeDef[com.title] = com;
89
+ });
90
+ const defaultFxsMap = {};
91
+ (tojson.global.fxFrames || []).filter((fxFrame) => {
92
+ return fxFrame.type === "fx";
93
+ }).forEach((fxFrame) => {
94
+ defaultFxsMap[fxFrame.id] = {
95
+ name: "global",
96
+ class: "global",
97
+ controllers: /* @__PURE__ */ new Set(),
98
+ useParams: false,
99
+ useEvents: false,
100
+ coms: /* @__PURE__ */ new Set(),
101
+ useController: false,
102
+ useData: false
103
+ };
104
+ });
105
+ result.push(
106
+ (0, import_handleGlobal.default)(
107
+ {
108
+ tojson,
109
+ globalFxs,
110
+ globalVars
111
+ },
112
+ {
113
+ ...config,
114
+ // @ts-ignore
115
+ getExtensionEventById,
116
+ getSceneById
117
+ }
118
+ )
119
+ );
120
+ const abstractEventTypeDefMap = {};
121
+ const pageConfigHandler = new import_handlePageConfig.HandlePageConfig();
122
+ scenes.forEach(({ scene, ui, event }) => {
123
+ var _a;
124
+ Object.entries(scene.coms || {}).forEach(([comId, comInfo]) => {
125
+ var _a2, _b, _c, _d, _e;
126
+ const { def, model } = comInfo;
127
+ const isJsCalculationComponent = (def == null ? void 0 : def.namespace) === "mybricks.taro._muilt-inputJs" || (def == null ? void 0 : def.namespace) === "mybricks.core-comlib.js-ai";
128
+ if (isJsCalculationComponent) {
129
+ const transformCode = ((_b = (_a2 = model == null ? void 0 : model.data) == null ? void 0 : _a2.fns) == null ? void 0 : _b.code) || ((_d = (_c = model == null ? void 0 : model.data) == null ? void 0 : _c.fns) == null ? void 0 : _d.transformCode) || ((_e = model == null ? void 0 : model.data) == null ? void 0 : _e.fns);
130
+ if (transformCode && !jsModulesMap.has(comId)) {
131
+ jsModulesMap.set(comId, {
132
+ id: comId,
133
+ title: comInfo.title || "JS计算",
134
+ transformCode: typeof transformCode === "string" ? transformCode : "",
135
+ inputs: (model == null ? void 0 : model.inputs) || [],
136
+ outputs: (model == null ? void 0 : model.outputs) || [],
137
+ data: (model == null ? void 0 : model.data) || {}
138
+ });
139
+ }
140
+ }
141
+ });
142
+ const providerMap = {};
143
+ const fileName = (_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId);
144
+ const providerName = fileName ? `${fileName}Provider` : "slot_Index";
145
+ const currentProvider = {
146
+ name: (0, import_utils.firstCharToLowerCase)(providerName),
147
+ class: (0, import_utils.firstCharToUpperCase)(providerName),
148
+ controllers: /* @__PURE__ */ new Set(),
149
+ useParams: false,
150
+ useEvents: false,
151
+ coms: /* @__PURE__ */ new Set(),
152
+ useController: false,
153
+ useData: false
154
+ };
155
+ providerMap[currentProvider.name] = currentProvider;
156
+ const typeDef = {
157
+ // 变量
158
+ vars: Object.assign({}, globalVarTypeDef),
159
+ // 输入
160
+ inputs: {},
161
+ // 输出
162
+ outputs: {}
163
+ };
164
+ const fxsMap = Object.assign({}, defaultFxsMap);
165
+ const pageConfigContent = pageConfigHandler.handle(scene);
166
+ (0, import_handleSlot.default)(ui, {
167
+ ...config,
168
+ getCurrentScene: () => {
169
+ return scene;
170
+ },
171
+ add: (value) => {
172
+ result.push({
173
+ ...value,
174
+ type: scene.type ? scene.type : "normal",
175
+ meta: scene,
176
+ pageConfigContent
177
+ // 添加页面配置内容
178
+ });
179
+ },
180
+ addJSModule: (module2) => {
181
+ if (!jsModulesMap.has(module2.id)) {
182
+ jsModulesMap.set(module2.id, module2);
183
+ }
184
+ },
185
+ getEventByDiagramId: (diagramId) => {
186
+ return event.find((event2) => event2.diagramId === diagramId);
187
+ },
188
+ getVarEvents: (params2) => {
189
+ if (!params2) {
190
+ return event.filter((event2) => {
191
+ return event2.type === "var" && !event2.meta.parentComId || event2.type === "listener" && !event2.meta.proxy.parentComId;
192
+ });
193
+ }
194
+ return event.filter((event2) => {
195
+ return event2.type === "var" && params2.comId === event2.meta.parentComId && params2.slotId === event2.meta.frameId || event2.type === "listener" && params2.comId === event2.meta.proxy.parentComId && params2.slotId === event2.meta.proxy.frameId;
196
+ });
197
+ },
198
+ getFxEvents: (params2) => {
199
+ if (!params2) {
200
+ return event.filter((event2) => {
201
+ return event2.type === "fx" && !event2.parentComId;
202
+ });
203
+ }
204
+ return event.filter((event2) => {
205
+ return event2.type === "fx" && params2.comId === event2.parentComId && params2.slotId === event2.parentSlotId;
206
+ });
207
+ },
208
+ checkIsRoot: () => true,
209
+ getEffectEvent: (params2) => {
210
+ if (!params2) {
211
+ return event.find((event2) => {
212
+ return !event2.slotId;
213
+ });
214
+ } else {
215
+ const { comId, slotId } = params2;
216
+ return event.find((event2) => {
217
+ return event2.slotId === slotId && event2.comId === comId;
218
+ });
219
+ }
220
+ },
221
+ getCurrentProvider: () => {
222
+ return currentProvider;
223
+ },
224
+ getRootProvider: () => {
225
+ return currentProvider;
226
+ },
227
+ getProviderMap: () => {
228
+ return providerMap;
229
+ },
230
+ getExtensionEventById,
231
+ getSceneById,
232
+ depth: 0,
233
+ getTypeDef: () => {
234
+ return typeDef;
235
+ },
236
+ getFxsMap: () => {
237
+ return fxsMap;
238
+ },
239
+ setAbstractEventTypeDefMap: (params2) => {
240
+ const { comId, eventId, typeDef: typeDef2, schema } = params2;
241
+ if (!abstractEventTypeDefMap[comId]) {
242
+ abstractEventTypeDefMap[comId] = {
243
+ typeDef: typeDef2,
244
+ eventIdMap: {}
245
+ };
246
+ }
247
+ abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
248
+ }
249
+ });
250
+ });
251
+ modules.forEach(({ scene, ui, event }) => {
252
+ var _a;
253
+ Object.entries(scene.coms || {}).forEach(([comId, comInfo]) => {
254
+ var _a2, _b, _c, _d, _e;
255
+ const { def, model } = comInfo;
256
+ const isJsCalculationComponent = (def == null ? void 0 : def.namespace) === "mybricks.taro._muilt-inputJs" || (def == null ? void 0 : def.namespace) === "mybricks.core-comlib.js-ai";
257
+ if (isJsCalculationComponent) {
258
+ const transformCode = ((_b = (_a2 = model == null ? void 0 : model.data) == null ? void 0 : _a2.fns) == null ? void 0 : _b.code) || ((_d = (_c = model == null ? void 0 : model.data) == null ? void 0 : _c.fns) == null ? void 0 : _d.transformCode) || ((_e = model == null ? void 0 : model.data) == null ? void 0 : _e.fns);
259
+ if (transformCode && !jsModulesMap.has(comId)) {
260
+ jsModulesMap.set(comId, {
261
+ id: comId,
262
+ title: comInfo.title || "JS计算",
263
+ transformCode: typeof transformCode === "string" ? transformCode : "",
264
+ inputs: (model == null ? void 0 : model.inputs) || [],
265
+ outputs: (model == null ? void 0 : model.outputs) || [],
266
+ data: (model == null ? void 0 : model.data) || {}
267
+ });
268
+ }
269
+ }
270
+ });
271
+ const providerMap = {};
272
+ const fileName = (_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId);
273
+ const providerName = fileName ? `${fileName}Provider` : "slot_Index";
274
+ const currentProvider = {
275
+ name: (0, import_utils.firstCharToLowerCase)(providerName),
276
+ class: (0, import_utils.firstCharToUpperCase)(providerName),
277
+ controllers: /* @__PURE__ */ new Set(),
278
+ useParams: false,
279
+ useEvents: false,
280
+ coms: /* @__PURE__ */ new Set(),
281
+ useController: false,
282
+ useData: false
283
+ };
284
+ providerMap[currentProvider.name] = currentProvider;
285
+ const typeDef = {
286
+ // 变量
287
+ vars: Object.assign({}, globalVarTypeDef),
288
+ // 输入
289
+ inputs: {},
290
+ // 输出
291
+ outputs: {}
292
+ };
293
+ const fxsMap = Object.assign({}, defaultFxsMap);
294
+ (0, import_handleSlot.default)(ui, {
295
+ ...config,
296
+ getCurrentScene: () => {
297
+ return scene;
298
+ },
299
+ add: (value) => {
300
+ result.push({
301
+ ...value,
302
+ type: scene.type,
303
+ meta: scene
304
+ });
305
+ },
306
+ addJSModule: (module2) => {
307
+ if (!jsModulesMap.has(module2.id)) {
308
+ jsModulesMap.set(module2.id, module2);
309
+ }
310
+ },
311
+ getEventByDiagramId: (diagramId) => {
312
+ return event.find((event2) => event2.diagramId === diagramId);
313
+ },
314
+ getVarEvents: (params2) => {
315
+ if (!params2) {
316
+ return event.filter((event2) => {
317
+ return event2.type === "var" && !event2.meta.parentComId || event2.type === "listener" && !event2.meta.proxy.parentComId;
318
+ });
319
+ }
320
+ return event.filter((event2) => {
321
+ return event2.type === "var" && params2.comId === event2.meta.parentComId && params2.slotId === event2.meta.frameId || event2.type === "listener" && params2.comId === event2.meta.proxy.parentComId && params2.slotId === event2.meta.proxy.frameId;
322
+ });
323
+ },
324
+ getFxEvents: (params2) => {
325
+ if (!params2) {
326
+ return event.filter((event2) => {
327
+ return event2.type === "fx" && !event2.parentComId;
328
+ });
329
+ }
330
+ return event.filter((event2) => {
331
+ return event2.type === "fx" && params2.comId === event2.parentComId && params2.slotId === event2.parentSlotId;
332
+ });
333
+ },
334
+ checkIsRoot: () => true,
335
+ getEffectEvent: (params2) => {
336
+ if (!params2) {
337
+ return event.find((event2) => {
338
+ return !event2.slotId;
339
+ });
340
+ } else {
341
+ const { comId, slotId } = params2;
342
+ return event.find((event2) => {
343
+ return event2.slotId === slotId && event2.comId === comId;
344
+ });
345
+ }
346
+ },
347
+ getCurrentProvider: () => {
348
+ return currentProvider;
349
+ },
350
+ getRootProvider() {
351
+ return currentProvider;
352
+ },
353
+ getProviderMap: () => {
354
+ return providerMap;
355
+ },
356
+ getExtensionEventById,
357
+ getSceneById,
358
+ depth: 0,
359
+ getTypeDef() {
360
+ return typeDef;
361
+ },
362
+ getFxsMap: () => {
363
+ return fxsMap;
364
+ },
365
+ setAbstractEventTypeDefMap: (params2) => {
366
+ const { comId, eventId, typeDef: typeDef2, schema } = params2;
367
+ if (!abstractEventTypeDefMap[comId]) {
368
+ abstractEventTypeDefMap[comId] = {
369
+ typeDef: typeDef2,
370
+ eventIdMap: {}
371
+ };
372
+ }
373
+ abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
374
+ },
375
+ getComponentController: ({ com }) => {
376
+ return com.id;
377
+ }
378
+ });
379
+ });
380
+ result.push({
381
+ type: "abstractEventTypeDef",
382
+ content: (0, import_abstractEventTypeDef.default)(abstractEventTypeDefMap, config),
383
+ importManager: new import_utils.ImportManager(config),
384
+ name: "abstractEventTypeDef"
385
+ });
386
+ result.push({
387
+ type: "jsModules",
388
+ content: (0, import_genJSModules.genJSModules)(Array.from(jsModulesMap.values())),
389
+ importManager: new import_utils.ImportManager(config),
390
+ name: "JSModules"
391
+ });
392
+ if (jsModulesMap.size > 0) {
393
+ const commonIndexContent = `import jsModulesGenerator from "./jsModules";
394
+ import { createJSHandle } from "../core/mybricks/index";
395
+
396
+ const jsModules: Record<string, (props: any, appContext: any) => any> = jsModulesGenerator({ createJSHandle });
397
+
398
+ export { jsModules };
399
+ `;
400
+ result.push({
401
+ type: "commonIndex",
402
+ content: commonIndexContent,
403
+ importManager: new import_utils.ImportManager(config),
404
+ name: "commonIndex"
405
+ });
406
+ }
407
+ const globalTabBarConfig = pageConfigHandler.getTabBarConfig();
408
+ if (globalTabBarConfig) {
409
+ result.push({
410
+ type: "tabBarConfig",
411
+ content: globalTabBarConfig,
412
+ importManager: new import_utils.ImportManager(config),
413
+ name: "tabBarConfig",
414
+ tabBarConfig: globalTabBarConfig
415
+ });
416
+ }
417
+ result.__tabBarImageFiles = pageConfigHandler.getTabBarImageFiles();
418
+ return result;
419
+ };
420
+ var transformConfig = (config) => {
421
+ if (!config.codeStyle) {
422
+ config.codeStyle = {
423
+ indent: 2
424
+ };
425
+ }
426
+ };
427
+ var toCodeTaro_default = toCodeTaro;
@@ -0,0 +1,19 @@
1
+ /** 生成组件 Inputs 映射代码 */
2
+ export declare const genComponentInputsCode: (indent: string, providerName: string, comId: string) => string;
3
+ /** 生成组件 Outputs 映射代码 */
4
+ export declare const genComponentOutputsCode: (indent: string, comId: string, comEventCode: string) => string;
5
+ /** 包装单个事件处理函数,注入 getConnections */
6
+ export declare const wrapEventProcess: (indent: string, eventId: string, defaultValue: string, process: string) => string;
7
+ /** 生成插槽渲染函数引用(使用 renderManager) */
8
+ export declare const genSlotRenderRef: ({ slotId, renderId, indent, isLast }: {
9
+ slotId: string;
10
+ renderId: string;
11
+ indent: string;
12
+ isLast: boolean;
13
+ }) => string;
14
+ /** 格式化插槽内容为 render 函数体代码 */
15
+ export declare const formatSlotContent: ({ uiContent, baseIndentSize, renderBodyIndent }: {
16
+ uiContent: string;
17
+ baseIndentSize: number;
18
+ renderBodyIndent: string;
19
+ }) => string;
@@ -0,0 +1,85 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/utils/code/component.ts
20
+ var component_exports = {};
21
+ __export(component_exports, {
22
+ formatSlotContent: () => formatSlotContent,
23
+ genComponentInputsCode: () => genComponentInputsCode,
24
+ genComponentOutputsCode: () => genComponentOutputsCode,
25
+ genSlotRenderRef: () => genSlotRenderRef,
26
+ wrapEventProcess: () => wrapEventProcess
27
+ });
28
+ module.exports = __toCommonJS(component_exports);
29
+ var import__ = require("../index");
30
+ var genComponentInputsCode = (indent, providerName, comId) => {
31
+ return `${indent}inputs['${comId}'] = useBindInputs(controllers.current.${providerName}, '${comId}');
32
+ `;
33
+ };
34
+ var genComponentOutputsCode = (indent, comId, comEventCode) => {
35
+ if (!comEventCode)
36
+ return "";
37
+ return `${indent}outputs['${comId}'] = {
38
+ ${comEventCode}${indent}};
39
+ `;
40
+ };
41
+ var wrapEventProcess = (indent, eventId, defaultValue, process) => {
42
+ return `${indent}${eventId}: Object.assign((${defaultValue}: any) => {
43
+ ${process}
44
+ ${indent}}, { getConnections: () => [1] }),
45
+ `;
46
+ };
47
+ var genSlotRenderRef = ({
48
+ slotId,
49
+ renderId,
50
+ indent,
51
+ isLast
52
+ }) => {
53
+ return `${indent}${slotId}: {
54
+ ${indent} render: ${renderId}_Render,
55
+ ${indent}}${isLast ? "" : ","}
56
+ `;
57
+ };
58
+ var formatSlotContent = ({
59
+ uiContent,
60
+ baseIndentSize,
61
+ renderBodyIndent
62
+ }) => {
63
+ const lines = uiContent.split("\n");
64
+ const formattedLines = [];
65
+ lines.forEach((line) => {
66
+ const trimmedLine = line.trim();
67
+ if (!trimmedLine) {
68
+ return;
69
+ }
70
+ const originalIndentMatch = line.match(/^(\s*)/);
71
+ const originalIndent = originalIndentMatch ? originalIndentMatch[1].length : 0;
72
+ const relativeIndentLevel = Math.floor(originalIndent / baseIndentSize);
73
+ const newIndent = renderBodyIndent + (0, import__.indentation)(baseIndentSize * relativeIndentLevel);
74
+ formattedLines.push(newIndent + trimmedLine);
75
+ });
76
+ return formattedLines.join("\n");
77
+ };
78
+ // Annotate the CommonJS export names for ESM import in node:
79
+ 0 && (module.exports = {
80
+ formatSlotContent,
81
+ genComponentInputsCode,
82
+ genComponentOutputsCode,
83
+ genSlotRenderRef,
84
+ wrapEventProcess
85
+ });
@@ -0,0 +1,18 @@
1
+ /** Taro/React UI 组件代码生成 */
2
+ export declare const getUiComponentCode: (params: {
3
+ componentName: string;
4
+ meta: any;
5
+ props: any;
6
+ resultStyle: Record<string, Record<string, string | number>>;
7
+ componentInputs?: string[];
8
+ componentOutputs?: string[];
9
+ comEventCode?: string;
10
+ slotsCode?: string;
11
+ eventHandlers?: Record<string, string>;
12
+ }, config: {
13
+ codeStyle: {
14
+ indent: number;
15
+ };
16
+ depth: number;
17
+ verbose?: boolean;
18
+ }) => string;