@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.
Files changed (101) hide show
  1. package/dist/cjs/core/comlib/{index.js → Index.js} +6 -6
  2. package/dist/cjs/core/utils/PopupRenderer.js +1 -1
  3. package/dist/cjs/core/utils/hooks.js +102 -38
  4. package/dist/cjs/core/utils/slots.js +11 -4
  5. package/dist/cjs/core/utils/useContext.js +6 -4
  6. package/dist/cjs/core/utils/with.js +3 -3
  7. package/dist/cjs/generate/generateTaroProjectJson.js +36 -11
  8. package/dist/cjs/generate/utils/commonDir.js +14 -10
  9. package/dist/cjs/generate/utils/pageImages.d.ts +14 -0
  10. package/dist/cjs/generate/utils/pageImages.js +36 -0
  11. package/dist/cjs/handleCom.js +37 -14
  12. package/dist/cjs/handleDom.d.ts +2 -0
  13. package/dist/cjs/handleDom.js +5 -2
  14. package/dist/cjs/handleGlobal.js +4 -2
  15. package/dist/cjs/handleSlot.d.ts +3 -0
  16. package/dist/cjs/handleSlot.js +38 -10
  17. package/dist/cjs/processors/processScene.js +3 -1
  18. package/dist/cjs/taro-template.json +313 -13
  19. package/dist/cjs/toCodeTaro.d.ts +4 -1
  20. package/dist/cjs/toCodeTaro.js +80 -1
  21. package/dist/cjs/utils/builder/buildResult.js +3 -16
  22. package/dist/cjs/utils/config/content/converter.js +2 -2
  23. package/dist/cjs/utils/config/content/pageConfig.js +4 -1
  24. package/dist/cjs/utils/config/content/saveBase64Image.d.ts +10 -0
  25. package/dist/cjs/utils/config/content/saveBase64Image.js +44 -3
  26. package/dist/cjs/utils/config/content/tabBarConfig.js +8 -2
  27. package/dist/cjs/utils/config/handlePageConfig.js +5 -3
  28. package/dist/cjs/utils/context/collectJSModules.d.ts +4 -0
  29. package/dist/cjs/utils/context/collectJSModules.js +4 -2
  30. package/dist/cjs/utils/logic/genJSModules.d.ts +8 -4
  31. package/dist/cjs/utils/logic/genJSModules.js +31 -33
  32. package/dist/cjs/utils/logic/handleProcess.js +4 -4
  33. package/dist/cjs/utils/logic/processChildren.d.ts +14 -1
  34. package/dist/cjs/utils/logic/processChildren.js +30 -6
  35. package/dist/cjs/utils/style/converter.js +34 -72
  36. package/dist/cjs/utils/templates/index.d.ts +1 -0
  37. package/dist/cjs/utils/templates/index.js +11 -2
  38. package/dist/cjs/utils/templates/renderManager.d.ts +4 -0
  39. package/dist/cjs/utils/templates/renderManager.js +10 -3
  40. package/dist/cjs/utils/templates/scene.js +13 -1
  41. package/dist/esm/core/comlib/{index.js → Index.js} +1 -1
  42. package/dist/esm/core/utils/PopupRenderer.js +1 -1
  43. package/dist/esm/core/utils/hooks.js +137 -53
  44. package/dist/esm/core/utils/popupRouter.js +2 -1
  45. package/dist/esm/core/utils/slots.js +24 -22
  46. package/dist/esm/core/utils/useContext.js +8 -10
  47. package/dist/esm/core/utils/with.js +3 -3
  48. package/dist/esm/generate/generateTaroProjectJson.js +28 -8
  49. package/dist/esm/generate/utils/commonDir.js +18 -14
  50. package/dist/esm/generate/utils/pageImages.d.ts +14 -0
  51. package/dist/esm/generate/utils/pageImages.d.ts.map +1 -0
  52. package/dist/esm/generate/utils/pageImages.js +15 -0
  53. package/dist/esm/handleCom.js +44 -17
  54. package/dist/esm/handleDom.d.ts +2 -0
  55. package/dist/esm/handleDom.js +6 -4
  56. package/dist/esm/handleGlobal.js +4 -2
  57. package/dist/esm/handleSlot.d.ts +3 -0
  58. package/dist/esm/handleSlot.js +57 -12
  59. package/dist/esm/processors/processComEvents.d.ts.map +1 -0
  60. package/dist/esm/processors/processScene.d.ts.map +1 -1
  61. package/dist/esm/processors/processScene.js +13 -3
  62. package/dist/esm/processors/processSceneLogic.d.ts.map +1 -0
  63. package/dist/esm/taro-template.json +313 -13
  64. package/dist/esm/toCodeTaro.d.ts +4 -1
  65. package/dist/esm/toCodeTaro.d.ts.map +1 -1
  66. package/dist/esm/toCodeTaro.js +89 -4
  67. package/dist/esm/utils/builder/buildResult.d.ts.map +1 -1
  68. package/dist/esm/utils/builder/buildResult.js +5 -14
  69. package/dist/esm/utils/common/helper.d.ts.map +1 -0
  70. package/dist/esm/utils/config/content/converter.js +2 -2
  71. package/dist/esm/utils/config/content/pageConfig.js +4 -1
  72. package/dist/esm/utils/config/content/saveBase64Image.d.ts +10 -0
  73. package/dist/esm/utils/config/content/saveBase64Image.js +42 -1
  74. package/dist/esm/utils/config/content/tabBarConfig.js +7 -2
  75. package/dist/esm/utils/config/handlePageConfig.d.ts.map +1 -1
  76. package/dist/esm/utils/config/handlePageConfig.js +5 -3
  77. package/dist/esm/utils/context/collectJSModules.d.ts +4 -0
  78. package/dist/esm/utils/context/collectJSModules.d.ts.map +1 -1
  79. package/dist/esm/utils/context/collectJSModules.js +1 -1
  80. package/dist/esm/utils/logic/genJSModules.d.ts +8 -4
  81. package/dist/esm/utils/logic/genJSModules.d.ts.map +1 -1
  82. package/dist/esm/utils/logic/genJSModules.js +16 -27
  83. package/dist/esm/utils/logic/handleProcess.js +4 -4
  84. package/dist/esm/utils/logic/processChildren.d.ts +14 -1
  85. package/dist/esm/utils/logic/processChildren.js +45 -8
  86. package/dist/esm/utils/style/converter.js +57 -106
  87. package/dist/esm/utils/templates/index.d.ts +1 -0
  88. package/dist/esm/utils/templates/index.js +9 -2
  89. package/dist/esm/utils/templates/renderManager.d.ts +4 -0
  90. package/dist/esm/utils/templates/renderManager.js +17 -4
  91. package/dist/esm/utils/templates/scene.js +8 -2
  92. package/package.json +1 -1
  93. package/dist/esm/generate/generateTaroProjectJson.d.ts.map +0 -1
  94. package/dist/esm/generate/utils/commonDir.d.ts.map +0 -1
  95. package/dist/esm/handleDom.d.ts.map +0 -1
  96. package/dist/esm/handleGlobal.d.ts.map +0 -1
  97. package/dist/esm/utils/config/content/converter.d.ts.map +0 -1
  98. package/dist/esm/utils/config/content/pageConfig.d.ts.map +0 -1
  99. package/dist/esm/utils/config/content/saveBase64Image.d.ts.map +0 -1
  100. package/dist/esm/utils/config/content/tabBarConfig.d.ts.map +0 -1
  101. package/dist/esm/utils/logic/processChildren.d.ts.map +0 -1
@@ -38,6 +38,7 @@ var import_templates = require("./utils/templates/index");
38
38
  var import_component = require("./utils/templates/component");
39
39
  var import_renderManager = require("./utils/templates/renderManager");
40
40
  var import_handleSlot = __toESM(require("./handleSlot"));
41
+ var import_handleDom = __toESM(require("./handleDom"));
41
42
  var import_processComEvents = require("./processors/processComEvents");
42
43
  var import_handleProcess = require("./utils/logic/handleProcess");
43
44
  var COM_PROTOCOL = {
@@ -56,16 +57,31 @@ var handleCom = (com, config) => {
56
57
  const { componentName, eventHandlers, comEventCode } = prepareComponent(com, config);
57
58
  const { cssContent, rootStyle } = prepareStyles(com);
58
59
  let accumulatedCssContent = cssContent;
60
+ if (com.child) {
61
+ rootStyle.position = "relative";
62
+ }
59
63
  const { slotsCode, accumulatedCssContent: slotCss, eventCode, childrenResults } = processComSlots(com, config, accumulatedCssContent);
60
64
  accumulatedCssContent = slotCss;
61
- const ui = generateUiCode(com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers);
65
+ let childrenUi = "";
66
+ if (com.child) {
67
+ const childResult = (0, import_handleDom.default)(com.child, {
68
+ ...config,
69
+ depth: config.depth + 1
70
+ });
71
+ childrenUi = childResult.ui;
72
+ if (childResult.cssContent) {
73
+ accumulatedCssContent += (accumulatedCssContent ? "\n" : "") + childResult.cssContent;
74
+ }
75
+ }
76
+ const ui = generateUiCode(com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers, childrenUi);
77
+ const hasEvents = Object.keys(eventHandlers).length > 0;
62
78
  return {
63
79
  slots: [],
64
80
  scopeSlots: [],
65
81
  ui,
66
82
  js: eventCode,
67
83
  cssContent: accumulatedCssContent,
68
- outputsConfig: Object.keys(eventHandlers).length > 0 ? { [meta.id]: eventHandlers } : void 0,
84
+ outputsConfig: hasEvents ? { [meta.id]: eventHandlers } : void 0,
69
85
  childrenResults,
70
86
  name: meta.name,
71
87
  // 返回解析后的稳定名称
@@ -117,7 +133,13 @@ var processComSlots = (com, config, initialCss) => {
117
133
  slotEntries.forEach(([slotId, slot], index) => {
118
134
  var _a, _b, _c, _d;
119
135
  const children = slot.comAry || slot.children || [];
136
+ const isLast = index === slotEntries.length - 1;
137
+ const slotIndent = (0, import_templates.indentation)(config.codeStyle.indent * (config.depth + 2));
120
138
  if (children.length === 0) {
139
+ slotsCode += `${slotIndent}${slotId}: {
140
+ ${slotIndent} render: () => null
141
+ ${slotIndent}}${isLast ? "" : ","}
142
+ `;
121
143
  return;
122
144
  }
123
145
  const slotLayout = (_a = com.props.data) == null ? void 0 : _a.layout;
@@ -127,6 +149,8 @@ var processComSlots = (com, config, initialCss) => {
127
149
  depth: 1,
128
150
  renderManager,
129
151
  slotKey: slotId,
152
+ // 给 slot 根容器打标用(slot wrapper className)
153
+ parentComId: meta.id,
130
154
  // 鸿蒙化:传递父容器的布局配置给插槽
131
155
  layout: slotLayout
132
156
  });
@@ -135,12 +159,10 @@ var processComSlots = (com, config, initialCss) => {
135
159
  accumulatedCssContent += (accumulatedCssContent ? "\n" : "") + result.cssContent;
136
160
  }
137
161
  const renderId = `${meta.id}_${slotId}`;
138
- const baseIndentSize = config.codeStyle.indent;
139
- const renderBodyIndent = (0, import_templates.indentation)(config.codeStyle.indent * 2);
140
- const formattedContent = (0, import_templates.formatSlotContent)(result.ui, baseIndentSize, renderBodyIndent);
141
- if (meta.def.namespace === "mybricks.taro.formContainer" && Array.isArray((_b = props.data) == null ? void 0 : _b.items) && result.childrenResults) {
162
+ const rawContent = result.ui;
163
+ if (meta.def.namespace === "mybricks.taro.formContainer" && Array.isArray((_b = props.data) == null ? void 0 : _b.items) && result.directChildren) {
142
164
  const items = (_c = props.data) == null ? void 0 : _c.items;
143
- result.childrenResults.forEach((childRes) => {
165
+ result.directChildren.forEach((childRes) => {
144
166
  const itemConfig = items.find((it) => it.id === childRes.id);
145
167
  if (itemConfig == null ? void 0 : itemConfig.comName) {
146
168
  childRes.name = itemConfig.comName;
@@ -150,14 +172,15 @@ var processComSlots = (com, config, initialCss) => {
150
172
  const logicCode = buildSlotLogicCode({
151
173
  parentComId: meta.id,
152
174
  slotKey: slotId,
153
- children: result.childrenResults,
175
+ children: result.directChildren,
154
176
  config
155
177
  });
156
178
  const description = `${meta.title || meta.id}的${slot.title || slotId}插槽`;
157
179
  renderManager.register(
158
180
  renderId,
159
- formattedContent,
160
- result.childrenResults,
181
+ rawContent,
182
+ result.directChildren,
183
+ // 仅传入直接子组件,避免递归替换导致的结构破坏
161
184
  logicCode,
162
185
  slot.type,
163
186
  slot.wrap || slot.itemWrap || ((_d = COM_PROTOCOL[meta.def.namespace]) == null ? void 0 : _d.useWrap),
@@ -166,12 +189,11 @@ var processComSlots = (com, config, initialCss) => {
166
189
  if (result.childrenResults) {
167
190
  allChildrenResults = allChildrenResults.concat(result.childrenResults);
168
191
  }
169
- const slotIndent = (0, import_templates.indentation)(config.codeStyle.indent * (config.depth + 2));
170
192
  slotsCode += (0, import_component.genSlotRenderRef)({
171
193
  slotId,
172
194
  renderId,
173
195
  indent: slotIndent,
174
- isLast: index === slotEntries.length - 1
196
+ isLast
175
197
  });
176
198
  });
177
199
  return { slotsCode, accumulatedCssContent, eventCode, childrenResults: allChildrenResults };
@@ -210,7 +232,7 @@ var buildSlotLogicCode = (args) => {
210
232
  `;
211
233
  return code;
212
234
  };
213
- var generateUiCode = (com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers) => {
235
+ var generateUiCode = (com, config, componentName, rootStyle, comEventCode, slotsCode, eventHandlers, childrenUi) => {
214
236
  var _a, _b, _c, _d;
215
237
  const { meta, props } = com;
216
238
  const scene = config.getCurrentScene();
@@ -225,7 +247,8 @@ var generateUiCode = (com, config, componentName, rootStyle, comEventCode, slots
225
247
  componentOutputs: (((_c = sceneCom == null ? void 0 : sceneCom.outputs) == null ? void 0 : _c.length) || 0) > 0 ? sceneCom.outputs : (((_d = meta.outputs) == null ? void 0 : _d.length) || 0) > 0 ? meta.outputs : void 0,
226
248
  comEventCode,
227
249
  slotsCode,
228
- eventHandlers
250
+ eventHandlers,
251
+ childrenUi
229
252
  },
230
253
  {
231
254
  codeStyle: config.codeStyle,
@@ -14,6 +14,8 @@ type HandleDomResult = {
14
14
  slots: string[];
15
15
  scopeSlots: string[];
16
16
  cssContent: string;
17
+ directChildren?: any[];
18
+ childrenResults?: any[];
17
19
  };
18
20
  declare const handleDom: (dom: Dom, config: HandleDomConfig) => HandleDomResult;
19
21
  export default handleDom;
@@ -26,8 +26,9 @@ var import_utils = require("./utils");
26
26
  var import_processChildren = require("./utils/logic/processChildren");
27
27
  var handleDom = (dom, config) => {
28
28
  var _a;
29
- const { props, children } = dom;
29
+ const { props } = dom;
30
30
  const domProps = props;
31
+ const children = (0, import_processChildren.normalizeChildren)(dom);
31
32
  const childResults = (0, import_processChildren.processChildren)(children, {
32
33
  ...config,
33
34
  depth: config.depth + 1
@@ -43,7 +44,9 @@ ${indent}</View>`;
43
44
  js: childResults.js,
44
45
  slots: childResults.slots,
45
46
  scopeSlots: childResults.scopeSlots,
46
- cssContent
47
+ cssContent,
48
+ directChildren: childResults.directChildren,
49
+ childrenResults: childResults.childrenResults
47
50
  };
48
51
  };
49
52
  var handleDom_default = handleDom;
@@ -24,6 +24,7 @@ __export(handleGlobal_exports, {
24
24
  module.exports = __toCommonJS(handleGlobal_exports);
25
25
  var import_utils = require("./utils");
26
26
  var import_handleProcess = require("./utils/logic/handleProcess");
27
+ var import_string = require("./utils/common/string");
27
28
  var handleGlobal = (params, config) => {
28
29
  const { tojson, globalFxs, globalVars } = params;
29
30
  const globalImportManager = new import_utils.ImportManager(config);
@@ -64,11 +65,12 @@ var handleGlobal = (params, config) => {
64
65
  return tojson.global;
65
66
  }
66
67
  });
68
+ const varKey = (0, import_string.getSafeVarName)(com);
67
69
  globalVarsRegisterChangeCode += `
68
- ${indent2}this.${com.title}.registerChange((value: any) => {
70
+ ${indent2}this.${varKey}.registerChange((value: any) => {
69
71
  ${res}
70
72
  ${indent2}})`;
71
- globalVarsInitCode += `${indent}${com.title}: any = createVariable(${JSON.stringify(com.model.data.initValue || {})})
73
+ globalVarsInitCode += `${indent}${varKey}: any = createVariable(${JSON.stringify(com.model.data.initValue || {})})
72
74
  `;
73
75
  });
74
76
  let globalFxsInitCode = "";
@@ -12,6 +12,8 @@ interface HandleSlotConfig extends BaseConfig {
12
12
  hasPopups?: boolean;
13
13
  /** handleCom 处理 slots 时的 slot key(如 item/content),用于识别 scope 入参 */
14
14
  slotKey?: string;
15
+ /** 父组件 id(用于给插槽根容器打标 className) */
16
+ parentComId?: string;
15
17
  }
16
18
  declare const handleSlot: (ui: UI, config: HandleSlotConfig) => {
17
19
  js: string;
@@ -20,6 +22,7 @@ declare const handleSlot: (ui: UI, config: HandleSlotConfig) => {
20
22
  cssContent: string;
21
23
  slots: any[];
22
24
  scopeSlots: any[];
25
+ directChildren: any[];
23
26
  childrenResults: any[];
24
27
  };
25
28
  export default handleSlot;
@@ -31,7 +31,7 @@ var handleSlot = (ui, config) => {
31
31
  var _a, _b;
32
32
  const importManager = new import_utils.ImportManager(config);
33
33
  const { props = {} } = ui;
34
- const children = ui.children || ui.comAry || [];
34
+ const children = (0, import_processChildren.normalizeChildren)(ui);
35
35
  const isRoot = config.checkIsRoot();
36
36
  const slotId = ((_a = ui.meta) == null ? void 0 : _a.id) || ui.id;
37
37
  const addDependencyImport = config.addParentDependencyImport || importManager.addImport.bind(importManager);
@@ -40,7 +40,7 @@ var handleSlot = (ui, config) => {
40
40
  const utilsPkg = config.getUtilsPackageName({ isRoot, isPopup: config.isPopup });
41
41
  addDependencyImport({
42
42
  packageName: utilsPkg,
43
- dependencyNames: ["useAppContext", "ScopedComContextProvider"],
43
+ dependencyNames: ["useAppContext"],
44
44
  importType: "named"
45
45
  });
46
46
  addDependencyImport({
@@ -63,7 +63,7 @@ var handleSlot = (ui, config) => {
63
63
  const { initCode, effectCode } = (0, import_processSceneLogic.processSceneLogic)(ui, config, addDependencyImport);
64
64
  let cssContent = ((0, import_utils.convertStyleAryToCss)((_b = props.style) == null ? void 0 : _b.styleAry, slotId) || "") + (childResults.cssContent ? "\n" + childResults.cssContent : "");
65
65
  const combinedJsCode = `${envDefineCode}${childResults.js}${initCode}${(0, import_scene.wrapInEffect)(indent2, effectCode)}`;
66
- const uiResult = generateSlotUi(ui, props, childResults.ui, config);
66
+ const uiResult = generateSlotUi(ui, props, childResults.ui, childResults.childrenResults, config);
67
67
  if (isRoot) {
68
68
  const renderDefinitions = renderManager ? renderManager.toCode("") : "";
69
69
  finalizeRootComponent(ui, config, importManager, combinedJsCode, renderDefinitions, uiResult, cssContent);
@@ -75,6 +75,7 @@ var handleSlot = (ui, config) => {
75
75
  cssContent,
76
76
  slots: [],
77
77
  scopeSlots: [],
78
+ directChildren: childResults.directChildren,
78
79
  childrenResults: childResults.childrenResults
79
80
  };
80
81
  };
@@ -82,28 +83,40 @@ var setupImports = (addImport, config, isRoot) => {
82
83
  const importParams = { isPopup: config.isPopup };
83
84
  const utilsPkg = config.getUtilsPackageName(importParams);
84
85
  const comPkg = config.getComponentPackageName(importParams);
85
- addImport({ packageName: "react", dependencyNames: ["useRef", "useEffect", "useState"], importType: "named" });
86
+ addImport({
87
+ packageName: "react",
88
+ dependencyNames: ["useRef", "useEffect", "useState", "createContext", "useContext"],
89
+ importType: "named"
90
+ });
86
91
  addImport({ packageName: "@tarojs/components", dependencyNames: ["View"], importType: "named" });
87
- const dependencyNames = ["WithCom", "WithWrapper", "SlotProvider"];
92
+ const dependencyNames = ["WithCom", "WithWrapper"];
88
93
  if (isRoot && config.hasPopups) {
89
94
  dependencyNames.push("PopupRenderer");
90
95
  }
91
96
  addImport({ packageName: utilsPkg, dependencyNames, importType: "named" });
92
97
  addImport({ packageName: comPkg, dependencyNames: ["useAppContext"], importType: "named" });
93
98
  if (isRoot) {
99
+ addImport({ packageName: "@/common/pageLife", dependencyNames: ["usePageLife"], importType: "named" });
94
100
  if (config.hasPopups) {
95
- addImport({ packageName: "../../common/popup", dependencyNames: ["POPUP_MAP", "POPUP_IDS"], importType: "named" });
101
+ addImport({ packageName: "@/common/popup", dependencyNames: ["POPUP_MAP", "POPUP_IDS"], importType: "named" });
96
102
  }
97
103
  addImport({ packageName: "./index.global.less", dependencyNames: [], importType: "module" });
98
104
  }
99
105
  };
100
- var generateSlotUi = (ui, props, childrenUi, config) => {
106
+ var generateSlotUi = (ui, props, childrenUi, childrenResults, config) => {
101
107
  const indent = (0, import_utils.indentation)(config.codeStyle.indent * config.depth);
102
- const mergedStyle = { width: "100%", height: "100%", ...ui.style || {}, ...props.style || {} };
108
+ const slotStyle = ui.style || {};
109
+ const propsStyle = props.style || {};
110
+ const mergedStyle = { width: "100%", height: "100%", ...slotStyle, ...propsStyle };
103
111
  const layout = config.layout || ui.layout || mergedStyle.layout;
104
- const styleCode = JSON.stringify((0, import_utils.convertRootStyle)({ ...mergedStyle, layout }));
112
+ const smart = isSmartLayout(layout);
113
+ const layoutAdjustment = smart ? { position: isHasInSmartLayout(childrenResults) ? "fixed" : "relative" } : hasFixedChildren(childrenResults) ? { transform: "translateX(0)" } : {};
114
+ const styleCode = JSON.stringify((0, import_utils.convertRootStyle)({ ...mergedStyle, layout, ...layoutAdjustment }));
105
115
  const rootClassName = (0, import_utils.getRootComponentClassName)(config.getCurrentScene(), config.checkIsRoot());
106
- const classNameAttr = rootClassName ? ` className='${rootClassName}'` : "";
116
+ const parentComId = config == null ? void 0 : config.parentComId;
117
+ const slotMarkClass = parentComId ? `slot-${parentComId}` : "";
118
+ const classNameStr = [rootClassName, slotMarkClass].filter(Boolean).join(" ");
119
+ const classNameAttr = classNameStr ? ` className='${classNameStr}'` : "";
107
120
  return `${indent}<View${classNameAttr} style={${styleCode}}>
108
121
  ${childrenUi}
109
122
  ${indent}</View>`;
@@ -124,4 +137,19 @@ var finalizeRootComponent = (ui, config, importManager, combinedJsCode, renderDe
124
137
  });
125
138
  config.add({ importManager, content: componentCode, cssContent, name: fileName });
126
139
  };
140
+ var hasFixedChildren = (childrenResults) => {
141
+ return childrenResults.some((item) => {
142
+ var _a;
143
+ return ((_a = item == null ? void 0 : item.rootStyle) == null ? void 0 : _a.position) === "fixed";
144
+ });
145
+ };
146
+ var isSmartLayout = (layout) => {
147
+ return layout === "smart" || (layout == null ? void 0 : layout.position) === "smart";
148
+ };
149
+ var isHasInSmartLayout = (childrenResults) => {
150
+ return childrenResults.some((item) => {
151
+ var _a;
152
+ return ((_a = item == null ? void 0 : item.rootStyle) == null ? void 0 : _a.inSmartLayout) === true;
153
+ });
154
+ };
127
155
  var handleSlot_default = handleSlot;
@@ -53,6 +53,7 @@ var processScene = (params) => {
53
53
  pageConfigHandler
54
54
  } = params;
55
55
  (0, import_collectJSModules.collectJSModulesFromScene)(scene, jsModulesMap);
56
+ const localJsModules = Object.entries(scene.coms || {}).map(([comId, comInfo]) => (0, import_collectJSModules.extractJSModuleFromCom)(comId, comInfo)).filter(Boolean);
56
57
  const fileName = (_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId);
57
58
  const currentProvider = (0, import_createProvider.createProvider)(fileName, true);
58
59
  const providerMap = (0, import_createProvider.createProviderMap)(currentProvider);
@@ -134,7 +135,8 @@ var processScene = (params) => {
134
135
  ...value,
135
136
  type: isPopup ? "popup" : (originalScene == null ? void 0 : originalScene.type) ? originalScene.type : "normal",
136
137
  meta: scene,
137
- pageConfigContent
138
+ pageConfigContent,
139
+ jsModules: localJsModules
138
140
  });
139
141
  },
140
142
  addJSModule: (module2) => {