@mybricks/plugin-ai 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rollupPluginBabelHelpers.js +164 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/agents/app.js +335 -0
- package/dist/agents/app.js.map +1 -0
- package/dist/agents/common.js +483 -0
- package/dist/agents/common.js.map +1 -0
- package/dist/agents/custom.js +16 -0
- package/dist/agents/custom.js.map +1 -0
- package/dist/agents/index.js +38 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/knowledges/knowledge-base.js +579 -0
- package/dist/agents/knowledges/knowledge-base.js.map +1 -0
- package/dist/agents/knowledges/knowledge-node.js +228 -0
- package/dist/agents/knowledges/knowledge-node.js.map +1 -0
- package/dist/agents/knowledges/types.js +105 -0
- package/dist/agents/knowledges/types.js.map +1 -0
- package/dist/agents/utils/config.js +229 -0
- package/dist/agents/utils/config.js.map +1 -0
- package/dist/agents/workspace/coding-manager.js +20 -0
- package/dist/agents/workspace/coding-manager.js.map +1 -0
- package/dist/agents/workspace/components-manager.js +113 -0
- package/dist/agents/workspace/components-manager.js.map +1 -0
- package/dist/agents/workspace/outline-focus.js +167 -0
- package/dist/agents/workspace/outline-focus.js.map +1 -0
- package/dist/agents/workspace/outline-info.js +430 -0
- package/dist/agents/workspace/outline-info.js.map +1 -0
- package/dist/agents/workspace/page-tree-generator.js +70 -0
- package/dist/agents/workspace/page-tree-generator.js.map +1 -0
- package/dist/agents/workspace/workspace.js +251 -0
- package/dist/agents/workspace/workspace.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js +100 -0
- package/dist/agents/workspace-by-knowledges/providers/component-docs-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js +120 -0
- package/dist/agents/workspace-by-knowledges/providers/focus-info-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js +146 -0
- package/dist/agents/workspace-by-knowledges/providers/project-info-provider.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/test.js +242 -0
- package/dist/agents/workspace-by-knowledges/test.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/components-manager.js +132 -0
- package/dist/agents/workspace-by-knowledges/utils/components-manager.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-focus.js +167 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-focus.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-info.js +430 -0
- package/dist/agents/workspace-by-knowledges/utils/outline-info.js.map +1 -0
- package/dist/agents/workspace-by-knowledges/workspace.js +169 -0
- package/dist/agents/workspace-by-knowledges/workspace.js.map +1 -0
- package/dist/api/cloud-components.js +85 -0
- package/dist/api/cloud-components.js.map +1 -0
- package/dist/api-record-replay/manager.js +168 -0
- package/dist/api-record-replay/manager.js.map +1 -0
- package/{src/api-record-replay/recorder.ts → dist/api-record-replay/recorder.js} +22 -32
- package/dist/api-record-replay/recorder.js.map +1 -0
- package/dist/api-record-replay/replayer.js +136 -0
- package/dist/api-record-replay/replayer.js.map +1 -0
- package/dist/components/attachments/index.js +124 -0
- package/dist/components/attachments/index.js.map +1 -0
- package/dist/components/attachments/index.less.js +8 -0
- package/dist/components/attachments/index.less.js.map +1 -0
- package/dist/components/icons/index.js +112 -0
- package/dist/components/icons/index.js.map +1 -0
- package/dist/components/icons/index.less.js +8 -0
- package/dist/components/icons/index.less.js.map +1 -0
- package/dist/components/mention/index.js +19 -0
- package/dist/components/mention/index.js.map +1 -0
- package/dist/components/mention/index.less.js +8 -0
- package/dist/components/mention/index.less.js.map +1 -0
- package/dist/components/messages/index.js +429 -0
- package/dist/components/messages/index.js.map +1 -0
- package/dist/components/messages/index.less.js +8 -0
- package/dist/components/messages/index.less.js.map +1 -0
- package/dist/components/sender/index.js +244 -0
- package/dist/components/sender/index.js.map +1 -0
- package/dist/components/sender/index.less.js +8 -0
- package/dist/components/sender/index.less.js.map +1 -0
- package/dist/context/RequestStatusTracker.js +44 -0
- package/dist/context/RequestStatusTracker.js.map +1 -0
- package/dist/context/index.js +45 -0
- package/dist/context/index.js.map +1 -0
- package/dist/data.js +4 -0
- package/dist/data.js.map +1 -0
- package/dist/index.js +306 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js +27 -0
- package/dist/plugin-ai/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
- package/dist/plugin-ai/package.json.js +8 -0
- package/dist/plugin-ai/package.json.js.map +1 -0
- package/dist/plugin-ai/test/index.js +206 -0
- package/dist/plugin-ai/test/index.js.map +1 -0
- package/dist/preset/createTemplates.js +29 -0
- package/dist/preset/createTemplates.js.map +1 -0
- package/dist/preset/index.js +13 -0
- package/dist/preset/index.js.map +1 -0
- package/dist/preset/prompts.js +34 -0
- package/dist/preset/prompts.js.map +1 -0
- package/{src/preset/user.ts → dist/preset/user.js} +4 -3
- package/dist/preset/user.js.map +1 -0
- package/dist/requestAsStream.js +269 -0
- package/dist/requestAsStream.js.map +1 -0
- package/dist/rxai/node_modules/idb/build/index.js +277 -0
- package/dist/rxai/node_modules/idb/build/index.js.map +1 -0
- package/dist/rxai/src/agent/base.js +16 -0
- package/dist/rxai/src/agent/base.js.map +1 -0
- package/dist/rxai/src/agent/planning.js +1076 -0
- package/dist/rxai/src/agent/planning.js.map +1 -0
- package/dist/rxai/src/agent/rxai.js +254 -0
- package/dist/rxai/src/agent/rxai.js.map +1 -0
- package/dist/rxai/src/error/base.js +39 -0
- package/dist/rxai/src/error/base.js.map +1 -0
- package/dist/rxai/src/prompt/base.js +11 -0
- package/dist/rxai/src/prompt/base.js.map +1 -0
- package/dist/rxai/src/prompt/planning.js +23 -0
- package/dist/rxai/src/prompt/planning.js.map +1 -0
- package/dist/rxai/src/prompt/tool.js +14 -0
- package/dist/rxai/src/prompt/tool.js.map +1 -0
- package/dist/rxai/src/request/request.js +123 -0
- package/dist/rxai/src/request/request.js.map +1 -0
- package/dist/rxai/src/tool/getHistoryRecords.js +65 -0
- package/dist/rxai/src/tool/getHistoryRecords.js.map +1 -0
- package/dist/rxai/src/tool/util.js +424 -0
- package/dist/rxai/src/tool/util.js.map +1 -0
- package/dist/rxai/src/utils/events.js +43 -0
- package/dist/rxai/src/utils/events.js.map +1 -0
- package/dist/rxai/src/utils/idb.js +240 -0
- package/dist/rxai/src/utils/idb.js.map +1 -0
- package/dist/rxai/src/utils/retry.js +32 -0
- package/dist/rxai/src/utils/retry.js.map +1 -0
- package/dist/rxai/src/utils/uuid.js +7 -0
- package/dist/rxai/src/utils/uuid.js.map +1 -0
- package/dist/startView/components/header/header.js +12 -0
- package/dist/startView/components/header/header.js.map +1 -0
- package/dist/startView/components/header/header.less.js +8 -0
- package/dist/startView/components/header/header.less.js.map +1 -0
- package/dist/startView/index.js +62 -0
- package/dist/startView/index.js.map +1 -0
- package/dist/startView/index.less.js +8 -0
- package/dist/startView/index.less.js.map +1 -0
- package/dist/tools/analyze-and-expand-prd.js +116 -0
- package/dist/tools/analyze-and-expand-prd.js.map +1 -0
- package/dist/tools/analyze-requirement-and-components.js +208 -0
- package/dist/tools/analyze-requirement-and-components.js.map +1 -0
- package/dist/tools/answer.js +33 -0
- package/dist/tools/answer.js.map +1 -0
- package/dist/tools/build-process.js +550 -0
- package/dist/tools/build-process.js.map +1 -0
- package/dist/tools/coding-subagent-as-tool.js +101 -0
- package/dist/tools/coding-subagent-as-tool.js.map +1 -0
- package/dist/tools/generate-ui-content.js +528 -0
- package/dist/tools/generate-ui-content.js.map +1 -0
- package/dist/tools/index.js +31 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/open-dsl.js +49 -0
- package/dist/tools/open-dsl.js.map +1 -0
- package/dist/tools/refactor-ui-content.js +292 -0
- package/dist/tools/refactor-ui-content.js.map +1 -0
- package/dist/tools/utils.js +832 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/view/components/header/header.js +59 -0
- package/dist/view/components/header/header.js.map +1 -0
- package/dist/view/components/header/header.less.js +8 -0
- package/dist/view/components/header/header.less.js.map +1 -0
- package/dist/view/index.js +184 -0
- package/dist/view/index.js.map +1 -0
- package/dist/view/index.less.js +8 -0
- package/dist/view/index.less.js.map +1 -0
- package/package.json +28 -6
- package/src/agents/app.ts +0 -301
- package/src/agents/common.ts +0 -471
- package/src/agents/custom.ts +0 -14
- package/src/agents/index.ts +0 -37
- package/src/agents/knowledges/README.md +0 -614
- package/src/agents/knowledges/SUMMARY.md +0 -527
- package/src/agents/knowledges/index.ts +0 -8
- package/src/agents/knowledges/knowledge-base.ts +0 -565
- package/src/agents/knowledges/knowledge-node.ts +0 -266
- package/src/agents/knowledges/types.ts +0 -208
- package/src/agents/utils/config.ts +0 -427
- package/src/agents/workspace/coding-manager.ts +0 -31
- package/src/agents/workspace/components-manager.ts +0 -124
- package/src/agents/workspace/outline-focus.ts +0 -188
- package/src/agents/workspace/outline-info.ts +0 -520
- package/src/agents/workspace/page-tree-generator.ts +0 -83
- package/src/agents/workspace/workspace.ts +0 -319
- package/src/agents/workspace-by-knowledges/MIGRATION.md +0 -568
- package/src/agents/workspace-by-knowledges/README.md +0 -521
- package/src/agents/workspace-by-knowledges/index.ts +0 -11
- package/src/agents/workspace-by-knowledges/providers/component-docs-provider.ts +0 -92
- package/src/agents/workspace-by-knowledges/providers/focus-info-provider.ts +0 -131
- package/src/agents/workspace-by-knowledges/providers/index.ts +0 -8
- package/src/agents/workspace-by-knowledges/providers/project-info-provider.ts +0 -151
- package/src/agents/workspace-by-knowledges/test.ts +0 -240
- package/src/agents/workspace-by-knowledges/types.ts +0 -56
- package/src/agents/workspace-by-knowledges/utils/components-manager.ts +0 -145
- package/src/agents/workspace-by-knowledges/utils/index.ts +0 -8
- package/src/agents/workspace-by-knowledges/utils/outline-focus.ts +0 -178
- package/src/agents/workspace-by-knowledges/utils/outline-info.ts +0 -521
- package/src/agents/workspace-by-knowledges/workspace.ts +0 -166
- package/src/api/cloud-components.ts +0 -129
- package/src/api-record-replay/README.md +0 -187
- package/src/api-record-replay/index.ts +0 -11
- package/src/api-record-replay/manager.ts +0 -168
- package/src/api-record-replay/replayer.ts +0 -148
- package/src/components/attachments/index.less +0 -117
- package/src/components/attachments/index.tsx +0 -136
- package/src/components/icons/index.less +0 -8
- package/src/components/icons/index.tsx +0 -44
- package/src/components/index.less +0 -34
- package/src/components/mention/index.less +0 -23
- package/src/components/mention/index.tsx +0 -19
- package/src/components/messages/index.less +0 -1013
- package/src/components/messages/index.tsx +0 -519
- package/src/components/sender/index.less +0 -203
- package/src/components/sender/index.tsx +0 -298
- package/src/components/types.ts +0 -31
- package/src/constants/index.ts +0 -8
- package/src/context/RequestStatusTracker.ts +0 -50
- package/src/context/index.ts +0 -83
- package/src/data.ts +0 -5
- package/src/global.d.ts +0 -100
- package/src/index.tsx +0 -264
- package/src/mock.ts +0 -1267
- package/src/preset/agents.ts +0 -380
- package/src/preset/createTemplates.ts +0 -25
- package/src/preset/index.ts +0 -12
- package/src/preset/prompts.ts +0 -235
- package/src/preset/requestAsStream.ts +0 -246
- package/src/startView/components/header/header.less +0 -17
- package/src/startView/components/header/header.tsx +0 -15
- package/src/startView/components/index.ts +0 -1
- package/src/startView/index.less +0 -34
- package/src/startView/index.tsx +0 -61
- package/src/tools/analyze-and-expand-prd.ts +0 -272
- package/src/tools/analyze-requirement-and-components.ts +0 -589
- package/src/tools/answer.ts +0 -59
- package/src/tools/build-process.ts +0 -1174
- package/src/tools/coding-subagent-as-tool.ts +0 -119
- package/src/tools/generate-ui-content.ts +0 -1083
- package/src/tools/index.ts +0 -28
- package/src/tools/open-dsl.ts +0 -69
- package/src/tools/refactor-ui-content.ts +0 -801
- package/src/tools/type.d.ts +0 -12
- package/src/tools/utils.ts +0 -914
- package/src/types/index.ts +0 -4
- package/src/view/components/header/header.less +0 -51
- package/src/view/components/header/header.tsx +0 -60
- package/src/view/components/index.ts +0 -1
- package/src/view/index.less +0 -5
- package/src/view/index.tsx +0 -168
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline-focus.js","sources":["../../../src/agents/workspace/outline-focus.ts"],"sourcesContent":["import { OutlineInfoManager, type OutlineNode, type SlotInfo } from './outline-info';\nimport { ComponentsManager } from './components-manager'\n\nexport interface FocusInfo {\n pageId?: string;\n comId?: string;\n title?: string;\n type?: 'page' | 'uiCom' | 'section' | 'logicCom';\n focusArea?: {\n selector: string;\n title: string;\n }\n diagramId?: string;\n}\n\nclass PageHierarchyGenerator {\n static generate(outlineInfo: OutlineNode, currentFocus: FocusInfo): string {\n const processedData = currentFocus.type === 'uiCom'\n ? this.filterToFocusedComponent(outlineInfo, currentFocus.comId!)\n : outlineInfo;\n\n return this.generateTreeDescription(processedData as OutlineNode, {\n pageId: currentFocus.pageId,\n comId: currentFocus.comId,\n });\n }\n\n private static containsComponent(data: OutlineNode, targetId: string): boolean {\n if (!data) return false;\n if (data.id === targetId) return true;\n\n if (data.slots && Array.isArray(data.slots)) {\n return data.slots.some(slot => {\n if (slot.components && Array.isArray(slot.components)) {\n return slot.components.some(component => this.containsComponent(component, targetId));\n }\n return false;\n });\n }\n return false;\n }\n\n private static hasChildren(data: OutlineNode): boolean {\n if (!data?.slots || !Array.isArray(data.slots)) {\n return false;\n }\n return data.slots.some(slot => {\n return slot.components && Array.isArray(slot.components) && slot.components.length > 0;\n });\n }\n\n private static filterToFocusedComponent(data: OutlineNode, targetId: string): OutlineNode | null {\n if (!data) return null;\n\n if (data.id === targetId) {\n return data;\n }\n\n if (data.slots && Array.isArray(data.slots)) {\n const filteredSlots = data.slots.map(slot => {\n if (slot.components && Array.isArray(slot.components)) {\n const filteredComponents = slot.components.map(component => {\n if (this.containsComponent(component, targetId)) {\n return this.filterToFocusedComponent(component, targetId);\n } else {\n const hasChildComponents = this.hasChildren(component);\n return {\n ...component,\n slots: undefined,\n _hasCollapsedChildren: hasChildComponents\n };\n }\n }).filter(Boolean) as OutlineNode[];\n\n return filteredComponents.length > 0 ? { ...slot, components: filteredComponents } : null;\n }\n return null;\n }).filter(Boolean) as SlotInfo[];\n\n if (filteredSlots.length > 0) {\n return { ...data, slots: filteredSlots };\n }\n }\n return null;\n }\n\n private static generateTreeDescription(data: OutlineNode | OutlineNode[], focusInfo: FocusInfo, level = 0): string {\n const indent = ' '.repeat(level);\n let result = '';\n\n if (!data) {\n return '无内容,代表内容为空';\n }\n\n if (Array.isArray(data)) {\n if (data.length === 0) {\n return '无内容,代表内容为空';\n }\n data.forEach(item => {\n result += this.generateTreeDescription(item, focusInfo, level);\n });\n return result;\n }\n\n if (data.asRoot) {\n if (Array.isArray(data.slots?.[0]?.components)) {\n data.slots?.[0]?.components.forEach(component => {\n result += this.generateTreeDescription(component, focusInfo, level);\n });\n return result;\n }\n }\n\n if (data.title) {\n const namespace = data.def?.namespace;\n const isFocused = data.id === focusInfo.comId ||\n data.id === focusInfo.pageId;\n const focusMarker = isFocused ? ' 【当前聚焦】' : '';\n const collapsedMarker = data._hasCollapsedChildren ? ' 【子组件已折叠】' : '';\n\n result += `${indent}- ${data.title}[id=${data.id}]${namespace ? `(${ComponentsManager.getAbbreviation(namespace)})` : ''}${focusMarker}${collapsedMarker}\\n`;\n }\n\n if (data.slots && Array.isArray(data.slots)) {\n data.slots.forEach(slot => {\n if (slot.components && Array.isArray(slot.components)) {\n slot.components.forEach(component => {\n result += this.generateTreeDescription(component, focusInfo, level + 1);\n });\n }\n });\n }\n\n return result;\n }\n}\n\nclass FocusDescriptionGenerator {\n static generate(currentFocus: FocusInfo): string {\n const { pageId, comId, title, type } = currentFocus ?? {};\n\n if (!currentFocus || (!currentFocus.pageId && !currentFocus.comId)) {\n return '当前没有聚焦到任何页面或组件。';\n }\n\n let focusDesc = '';\n\n switch (type) {\n case 'uiCom':\n focusDesc = `组件(title=${title},组件id=${comId})`;\n break;\n case 'page':\n case 'section':\n focusDesc = `页面(title=${title},页面id=${pageId})`;\n break;\n default:\n focusDesc = `未知类型(title=${title})`;\n }\n\n return `当前已聚焦到${focusDesc}中,后续用户的提问,关于\"这个\"、\"此\"、\"整体\",甚至不提主语,都是指代此元素及其子组件内容。`;\n }\n}\n\nexport class FocusOutlineInfoManager extends OutlineInfoManager {\n private focusInfo: FocusInfo;\n private focusPageOutlineInfo: OutlineNode | null;\n\n constructor({ api, focusInfo }: { api: any, focusInfo: FocusInfo }) {\n super({ api });\n this.focusInfo = { ...focusInfo };\n this.focusPageOutlineInfo = focusInfo?.pageId ? this.getPageOutline(focusInfo.pageId) : null;\n }\n\n getFocusPageOutline(): OutlineNode | null {\n return this.focusPageOutlineInfo;\n }\n\n generateFocusHierarchy(): string {\n if (!this.focusPageOutlineInfo || !this.focusInfo?.pageId) {\n return '无内容,代表内容为空';\n }\n return PageHierarchyGenerator.generate(this.focusPageOutlineInfo, this.focusInfo);\n }\n\n generateFocusDescription(): string {\n return FocusDescriptionGenerator.generate(this.focusInfo);\n }\n}\n"],"names":["PageHierarchyGenerator","generate","outlineInfo","currentFocus","processedData","type","filterToFocusedComponent","comId","generateTreeDescription","pageId","containsComponent","data","targetId","id","slots","Array","isArray","some","slot","components","component","hasChildren","length","filteredSlots","map","filteredComponents","hasChildComponents","_objectSpread","undefined","_hasCollapsedChildren","filter","Boolean","focusInfo","level","arguments","indent","repeat","result","forEach","item","asRoot","_data$slots","_data$slots2","title","_data$def","namespace","def","isFocused","focusMarker","collapsedMarker","concat","ComponentsManager","getAbbreviation","FocusDescriptionGenerator","focusDesc","FocusOutlineInfoManager","OutlineInfoManager","constructor","_ref","api","focusPageOutlineInfo","getPageOutline","getFocusPageOutline","generateFocusHierarchy","_this$focusInfo","generateFocusDescription"],"mappings":"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"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { ComponentsManager } from './components-manager.js';
|
|
3
|
+
|
|
4
|
+
// 设计器给出的 OutlineNode
|
|
5
|
+
|
|
6
|
+
var ROOT_NAMESPACE = 'root';
|
|
7
|
+
var ROOT_ID = '_root_';
|
|
8
|
+
var ROOT_SLOT_ID = '_rootSlot_';
|
|
9
|
+
class OutlineInfoManager {
|
|
10
|
+
constructor(_ref) {
|
|
11
|
+
var {
|
|
12
|
+
api
|
|
13
|
+
} = _ref;
|
|
14
|
+
_defineProperty(this, "getOriginOutlineRootCom", originOutline => {
|
|
15
|
+
var _originOutline$compon, _originOutline$compon2;
|
|
16
|
+
return originOutline !== null && originOutline !== void 0 && (_originOutline$compon = originOutline.components) !== null && _originOutline$compon !== void 0 && (_originOutline$compon = _originOutline$compon[0]) !== null && _originOutline$compon !== void 0 && _originOutline$compon.asRoot ? originOutline === null || originOutline === void 0 || (_originOutline$compon2 = originOutline.components) === null || _originOutline$compon2 === void 0 ? void 0 : _originOutline$compon2[0] : null;
|
|
17
|
+
});
|
|
18
|
+
this.api = api;
|
|
19
|
+
}
|
|
20
|
+
getOutlineInfo(id, type) {
|
|
21
|
+
if (type === "logicCom") {
|
|
22
|
+
var _this$api;
|
|
23
|
+
return (_this$api = this.api) === null || _this$api === void 0 || (_this$api = _this$api.logicCom) === null || _this$api === void 0 || (_this$api = _this$api.api) === null || _this$api === void 0 ? void 0 : _this$api.getOutlineInfo(id);
|
|
24
|
+
} else if (type === "uiCom") {
|
|
25
|
+
var _this$api2;
|
|
26
|
+
return (_this$api2 = this.api) === null || _this$api2 === void 0 || (_this$api2 = _this$api2.uiCom) === null || _this$api2 === void 0 || (_this$api2 = _this$api2.api) === null || _this$api2 === void 0 ? void 0 : _this$api2.getOutlineInfo(id);
|
|
27
|
+
} else {
|
|
28
|
+
var _this$api3;
|
|
29
|
+
return (_this$api3 = this.api) === null || _this$api3 === void 0 || (_this$api3 = _this$api3.page) === null || _this$api3 === void 0 || (_this$api3 = _this$api3.api) === null || _this$api3 === void 0 ? void 0 : _this$api3.getOutlineInfo(id);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
getPageOutline(pageId) {
|
|
33
|
+
return this.normalizePageOutline(this.getOutlineInfo(pageId, 'page'), pageId);
|
|
34
|
+
}
|
|
35
|
+
getUiComOutline(componentId) {
|
|
36
|
+
return this.getOutlineInfo(componentId, 'uiCom');
|
|
37
|
+
}
|
|
38
|
+
getLogicComOutline(componentId) {
|
|
39
|
+
return this.getOutlineInfo(componentId, 'logicCom');
|
|
40
|
+
}
|
|
41
|
+
getPageMetaInfo(pageId) {
|
|
42
|
+
var _this$getOriginOutlin;
|
|
43
|
+
var originOutlineJson = this.getOutlineInfo(pageId, 'page');
|
|
44
|
+
var rootId = this.getOriginOutlineRootCom(originOutlineJson) ? (_this$getOriginOutlin = this.getOriginOutlineRootCom(originOutlineJson)) === null || _this$getOriginOutlin === void 0 ? void 0 : _this$getOriginOutlin.id : undefined;
|
|
45
|
+
return {
|
|
46
|
+
pageId,
|
|
47
|
+
rootId
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
normalizePageOutline(outline, pageId) {
|
|
51
|
+
if ((outline === null || outline === void 0 ? void 0 : outline.id) === pageId) {
|
|
52
|
+
var _outline$layout, _outline$layout2, _rootNode$style;
|
|
53
|
+
var rootNode = outline;
|
|
54
|
+
var rootSlots = [{
|
|
55
|
+
id: ROOT_SLOT_ID,
|
|
56
|
+
components: outline === null || outline === void 0 ? void 0 : outline.components,
|
|
57
|
+
layout: outline === null || outline === void 0 ? void 0 : outline.layout
|
|
58
|
+
}];
|
|
59
|
+
var whInfo = {
|
|
60
|
+
width: outline === null || outline === void 0 || (_outline$layout = outline.layout) === null || _outline$layout === void 0 ? void 0 : _outline$layout.width,
|
|
61
|
+
height: outline === null || outline === void 0 || (_outline$layout2 = outline.layout) === null || _outline$layout2 === void 0 ? void 0 : _outline$layout2.height
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// 说明有asRoot组件,把asRoot的信息往上提取一层
|
|
65
|
+
var rootCom = this.getOriginOutlineRootCom(outline);
|
|
66
|
+
if (!!rootCom) {
|
|
67
|
+
rootNode = rootCom;
|
|
68
|
+
rootSlots = rootNode.slots;
|
|
69
|
+
}
|
|
70
|
+
var normalized = _objectSpread2(_objectSpread2({}, rootNode), {}, {
|
|
71
|
+
style: _objectSpread2(_objectSpread2({}, (_rootNode$style = rootNode.style) !== null && _rootNode$style !== void 0 ? _rootNode$style : {}), whInfo),
|
|
72
|
+
slots: rootSlots,
|
|
73
|
+
def: {
|
|
74
|
+
version: '1.0.0',
|
|
75
|
+
namespace: ROOT_NAMESPACE
|
|
76
|
+
},
|
|
77
|
+
asRoot: true
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
id: pageId,
|
|
81
|
+
title: outline.title,
|
|
82
|
+
// 注意用的是页面的title
|
|
83
|
+
slots: [{
|
|
84
|
+
id: ROOT_ID,
|
|
85
|
+
components: [normalized]
|
|
86
|
+
}]
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
id: pageId,
|
|
91
|
+
title: outline.title,
|
|
92
|
+
slots: [{
|
|
93
|
+
id: ROOT_ID,
|
|
94
|
+
components: [outline]
|
|
95
|
+
}]
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
getComponentIdToTitleMap(pageId) {
|
|
99
|
+
var _outline$title;
|
|
100
|
+
var outline = this.getPageOutline(pageId);
|
|
101
|
+
var componentMap = new Map();
|
|
102
|
+
componentMap.set(ROOT_ID, (_outline$title = outline.title) !== null && _outline$title !== void 0 ? _outline$title : '页面根节点');
|
|
103
|
+
function traverse(data) {
|
|
104
|
+
if (!data) return;
|
|
105
|
+
if (Array.isArray(data)) {
|
|
106
|
+
data.forEach(item => traverse(item));
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (data.id && data.title) {
|
|
110
|
+
componentMap.set(data.id, data.title);
|
|
111
|
+
}
|
|
112
|
+
if (data.slots && Array.isArray(data.slots)) {
|
|
113
|
+
data.slots.forEach(slot => {
|
|
114
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
115
|
+
slot.components.forEach(component => traverse(component));
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
traverse(outline);
|
|
121
|
+
return componentMap;
|
|
122
|
+
}
|
|
123
|
+
generateJSXByPageId(pageId) {
|
|
124
|
+
var targetComponentIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
125
|
+
var outline = this.getPageOutline(pageId);
|
|
126
|
+
return this.generateJSXByOutline(outline, targetComponentIds);
|
|
127
|
+
}
|
|
128
|
+
generateJSXByOutline(outlineInfo) {
|
|
129
|
+
var targetComponentIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
130
|
+
return OutlineJSXGenerator.generate(outlineInfo, targetComponentIds);
|
|
131
|
+
}
|
|
132
|
+
findParentNodeByComId(pageOutlineInfo, comId) {
|
|
133
|
+
function helper(node) {
|
|
134
|
+
if (!node || !node.slots) return null;
|
|
135
|
+
for (var slot of node.slots || []) {
|
|
136
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
137
|
+
for (var component of slot.components) {
|
|
138
|
+
if (component.id === comId) {
|
|
139
|
+
return node;
|
|
140
|
+
}
|
|
141
|
+
// 向下递归
|
|
142
|
+
var found = helper(component);
|
|
143
|
+
if (found) return found;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
return helper(pageOutlineInfo);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
class OutlineJSXGenerator {
|
|
153
|
+
/**
|
|
154
|
+
* 遮蔽base64和svg代码,避免DSL过大
|
|
155
|
+
*/
|
|
156
|
+
static maskLargeContent(obj) {
|
|
157
|
+
if (obj === null || obj === undefined) {
|
|
158
|
+
return obj;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// 如果是字符串,检查是否为base64或svg
|
|
162
|
+
if (typeof obj === 'string') {
|
|
163
|
+
// 检测base64图片(data:image开头或长base64字符串)
|
|
164
|
+
if (obj.startsWith('data:image/') || /^[A-Za-z0-9+/=]{100,}$/.test(obj)) {
|
|
165
|
+
var prefix = obj.substring(0, 22);
|
|
166
|
+
return "[BASE64_MASKED:".concat(prefix, "...length:").concat(obj.length, "]");
|
|
167
|
+
}
|
|
168
|
+
// 检测SVG代码
|
|
169
|
+
if (obj.includes('<svg') || obj.includes('<?xml') && obj.includes('svg')) {
|
|
170
|
+
var length = obj.length;
|
|
171
|
+
if (length > 200) {
|
|
172
|
+
return "[SVG_MASKED:length:".concat(length, "]");
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return obj;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// 如果是数组,递归处理每个元素
|
|
179
|
+
if (Array.isArray(obj)) {
|
|
180
|
+
return obj.map(item => this.maskLargeContent(item));
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// 如果是对象,递归处理每个属性
|
|
184
|
+
if (typeof obj === 'object') {
|
|
185
|
+
var result = {};
|
|
186
|
+
for (var key in obj) {
|
|
187
|
+
if (obj.hasOwnProperty(key)) {
|
|
188
|
+
result[key] = this.maskLargeContent(obj[key]);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
return obj;
|
|
194
|
+
}
|
|
195
|
+
static generate(outlineInfo) {
|
|
196
|
+
var _ancestorNodes$;
|
|
197
|
+
var targetComponentIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
198
|
+
this.namespacesSet.clear();
|
|
199
|
+
if (targetComponentIds.length === 0) {
|
|
200
|
+
var _jsx = this.processData(outlineInfo);
|
|
201
|
+
return {
|
|
202
|
+
id: outlineInfo.id,
|
|
203
|
+
jsx: _jsx,
|
|
204
|
+
namespaces: Array.from(this.namespacesSet)
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (targetComponentIds.length === 1) {
|
|
208
|
+
var targetNode = this.findNodeById(outlineInfo, targetComponentIds[0]);
|
|
209
|
+
if (targetNode) {
|
|
210
|
+
var _jsx2 = this.processData(targetNode);
|
|
211
|
+
return {
|
|
212
|
+
id: targetNode.id,
|
|
213
|
+
jsx: _jsx2,
|
|
214
|
+
namespaces: Array.from(this.namespacesSet)
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
var ancestorNodes = this.findMinimalCommonAncestors(outlineInfo, targetComponentIds);
|
|
219
|
+
var jsx = ancestorNodes.map(node => this.processData(node)).join('\n');
|
|
220
|
+
return {
|
|
221
|
+
id: (_ancestorNodes$ = ancestorNodes[0]) === null || _ancestorNodes$ === void 0 ? void 0 : _ancestorNodes$.id,
|
|
222
|
+
jsx,
|
|
223
|
+
namespaces: Array.from(this.namespacesSet)
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
static findMinimalCommonAncestors(root, targetIds) {
|
|
227
|
+
if (targetIds.length === 0) return [root];
|
|
228
|
+
if (targetIds.length === 1) {
|
|
229
|
+
var targetNode = this.findNodeById(root, targetIds[0]);
|
|
230
|
+
return targetNode ? [targetNode] : [];
|
|
231
|
+
}
|
|
232
|
+
var paths = [];
|
|
233
|
+
for (var targetId of targetIds) {
|
|
234
|
+
var path = this.findPathToNode(root, targetId);
|
|
235
|
+
if (path) {
|
|
236
|
+
paths.push(path);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
if (paths.length === 0) {
|
|
240
|
+
return [];
|
|
241
|
+
}
|
|
242
|
+
if (paths.length === 1) {
|
|
243
|
+
return [paths[0][paths[0].length - 1]];
|
|
244
|
+
}
|
|
245
|
+
var commonAncestor = null;
|
|
246
|
+
var minLength = Math.min(...paths.map(path => path.length));
|
|
247
|
+
var _loop = function _loop(i) {
|
|
248
|
+
var currentNodes = paths.map(path => path[i]);
|
|
249
|
+
var firstNode = currentNodes[0];
|
|
250
|
+
if (currentNodes.every(node => node.id === firstNode.id)) {
|
|
251
|
+
commonAncestor = firstNode;
|
|
252
|
+
} else {
|
|
253
|
+
return 1; // break
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
for (var i = 0; i < minLength; i++) {
|
|
257
|
+
if (_loop(i)) break;
|
|
258
|
+
}
|
|
259
|
+
if (commonAncestor) {
|
|
260
|
+
return [commonAncestor];
|
|
261
|
+
}
|
|
262
|
+
return [root];
|
|
263
|
+
}
|
|
264
|
+
static findPathToNode(root, targetId) {
|
|
265
|
+
if (root.id === targetId) {
|
|
266
|
+
return [root];
|
|
267
|
+
}
|
|
268
|
+
if (root.slots && Array.isArray(root.slots)) {
|
|
269
|
+
for (var slot of root.slots) {
|
|
270
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
271
|
+
for (var component of slot.components) {
|
|
272
|
+
var path = this.findPathToNode(component, targetId);
|
|
273
|
+
if (path) {
|
|
274
|
+
return [root, ...path];
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
static findNodeById(root, targetId) {
|
|
283
|
+
if (root.id === targetId) {
|
|
284
|
+
return root;
|
|
285
|
+
}
|
|
286
|
+
if (root.slots && Array.isArray(root.slots)) {
|
|
287
|
+
for (var slot of root.slots) {
|
|
288
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
289
|
+
for (var component of slot.components) {
|
|
290
|
+
var found = this.findNodeById(component, targetId);
|
|
291
|
+
if (found) return found;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
static extractLayout(style) {
|
|
299
|
+
if (!style) return {};
|
|
300
|
+
var layout = {};
|
|
301
|
+
['width', 'height', 'margin', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'].forEach(prop => {
|
|
302
|
+
if (style[prop] !== undefined) {
|
|
303
|
+
layout[prop] = style[prop];
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
if (style.layout !== undefined) {
|
|
307
|
+
if (style.layout === 'flex-column' || style.layout === 'flex') {
|
|
308
|
+
layout.display = 'flex';
|
|
309
|
+
layout.flexDirection = 'column';
|
|
310
|
+
}
|
|
311
|
+
if (style.layout === 'flex-row') {
|
|
312
|
+
layout.display = 'flex';
|
|
313
|
+
layout.flexDirection = 'row';
|
|
314
|
+
}
|
|
315
|
+
if (style.alignItems) layout.alignItems = style.alignItems;
|
|
316
|
+
if (style.justifyContent) layout.justifyContent = style.justifyContent;
|
|
317
|
+
if (style.layout === 'absolute') {
|
|
318
|
+
layout.position = 'relative';
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (style.position === 'absolute') {
|
|
322
|
+
['left', 'right', 'top', 'bottom', 'widthFact', 'heightFact', 'position'].forEach(prop => {
|
|
323
|
+
if (style[prop] !== undefined) {
|
|
324
|
+
layout[prop] = style[prop];
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
return layout;
|
|
329
|
+
}
|
|
330
|
+
static extractStyleArray(style) {
|
|
331
|
+
if (!(style !== null && style !== void 0 && style.css) || !Array.isArray(style.css)) return [];
|
|
332
|
+
return style.css.map(cssItem => {
|
|
333
|
+
var selector = cssItem.selector || '';
|
|
334
|
+
var cssProps = cssItem.css || {};
|
|
335
|
+
var cssString = Object.entries(cssProps).map(_ref2 => {
|
|
336
|
+
var [key, value] = _ref2;
|
|
337
|
+
return "".concat(key, ": '").concat(value, "'");
|
|
338
|
+
}).join(', ');
|
|
339
|
+
return "".concat(selector, " : { ").concat(cssString, " }");
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
static processData(node) {
|
|
343
|
+
var _node$def;
|
|
344
|
+
if (!node) return '';
|
|
345
|
+
if (Array.isArray(node)) {
|
|
346
|
+
return node.map(item => this.processData(item)).filter(Boolean).join('\n');
|
|
347
|
+
}
|
|
348
|
+
if (node.id && (_node$def = node.def) !== null && _node$def !== void 0 && _node$def.namespace) {
|
|
349
|
+
return this.generateComponentJSX(node);
|
|
350
|
+
}
|
|
351
|
+
if (node.slots && Array.isArray(node.slots)) {
|
|
352
|
+
return node.slots.map(slot => {
|
|
353
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
354
|
+
return this.processData(slot.components);
|
|
355
|
+
}
|
|
356
|
+
return '';
|
|
357
|
+
}).filter(Boolean).join('');
|
|
358
|
+
}
|
|
359
|
+
return '';
|
|
360
|
+
}
|
|
361
|
+
static generateComponentJSX(node) {
|
|
362
|
+
var _node$def2;
|
|
363
|
+
var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
364
|
+
if (!(node !== null && node !== void 0 && node.id)) return '';
|
|
365
|
+
var namespace = (_node$def2 = node.def) === null || _node$def2 === void 0 ? void 0 : _node$def2.namespace;
|
|
366
|
+
if (namespace !== ROOT_NAMESPACE) {
|
|
367
|
+
this.namespacesSet.add(namespace);
|
|
368
|
+
}
|
|
369
|
+
var layout = this.extractLayout(node.style);
|
|
370
|
+
var styleArray = this.extractStyleArray(node.style);
|
|
371
|
+
var jsx;
|
|
372
|
+
var namespaceTag = ComponentsManager.getAbbreviation(namespace);
|
|
373
|
+
|
|
374
|
+
// 遮蔽data中的base64和svg内容
|
|
375
|
+
var maskedData = node.data ? this.maskLargeContent(node.data) : null;
|
|
376
|
+
if (node.asRoot) {
|
|
377
|
+
jsx = "<".concat(ROOT_NAMESPACE, " id=\"").concat(ROOT_ID, "\"") + (maskedData ? " data={".concat(JSON.stringify(maskedData), "}") : '');
|
|
378
|
+
} else {
|
|
379
|
+
jsx = "<".concat(namespaceTag, " id=\"").concat(node.id, "\" title=\"").concat(node.title, "\"") + (maskedData ? " data={".concat(JSON.stringify(maskedData), "}") : '');
|
|
380
|
+
}
|
|
381
|
+
if (Object.keys(layout).length > 0) {
|
|
382
|
+
jsx += " layout={".concat(JSON.stringify(layout), "}");
|
|
383
|
+
}
|
|
384
|
+
if (styleArray.length > 0) {
|
|
385
|
+
// 遮蔽styleArray中的base64和svg内容
|
|
386
|
+
var maskedStyleArray = styleArray.map(style => this.maskLargeContent(style));
|
|
387
|
+
jsx += " styleAry={[".concat(maskedStyleArray.map(style => "\"".concat(style, "\"")).join(', '), "]}");
|
|
388
|
+
}
|
|
389
|
+
jsx += ' >';
|
|
390
|
+
var slotsJSX = this.generateSlotsJSX(node.slots || [], indent + ' ');
|
|
391
|
+
if (slotsJSX) {
|
|
392
|
+
jsx += slotsJSX;
|
|
393
|
+
jsx += "\n".concat(indent, "</").concat(namespaceTag, ">");
|
|
394
|
+
} else {
|
|
395
|
+
jsx += ' />';
|
|
396
|
+
}
|
|
397
|
+
return jsx;
|
|
398
|
+
}
|
|
399
|
+
static generateSlotsJSX(slots) {
|
|
400
|
+
var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
|
|
401
|
+
if (!slots || slots.length === 0) return '';
|
|
402
|
+
var slotsJSX = '';
|
|
403
|
+
slots.forEach(slot => {
|
|
404
|
+
if (slot.id) {
|
|
405
|
+
slotsJSX += "\n".concat(indent, "<slots.").concat(slot.id);
|
|
406
|
+
if (slot.title) {
|
|
407
|
+
slotsJSX += " title=\"".concat(slot.title, "\"");
|
|
408
|
+
}
|
|
409
|
+
if (slot.layout) {
|
|
410
|
+
slotsJSX += " layout={".concat(JSON.stringify(this.extractLayout(slot.layout)), "}");
|
|
411
|
+
}
|
|
412
|
+
slotsJSX += '>';
|
|
413
|
+
if (slot.components && Array.isArray(slot.components)) {
|
|
414
|
+
slot.components.forEach(component => {
|
|
415
|
+
var childJSX = this.generateComponentJSX(component, indent + ' ');
|
|
416
|
+
if (childJSX) {
|
|
417
|
+
slotsJSX += "\n".concat(indent, " ").concat(childJSX);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
slotsJSX += "\n".concat(indent, "</slots.").concat(slot.id, ">");
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
return slotsJSX;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
_defineProperty(OutlineJSXGenerator, "namespacesSet", new Set());
|
|
428
|
+
|
|
429
|
+
export { OutlineInfoManager };
|
|
430
|
+
//# sourceMappingURL=outline-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline-info.js","sources":["../../../src/agents/workspace/outline-info.ts"],"sourcesContent":["import { ComponentsManager } from \"./components-manager\";\n\nexport interface SlotInfo {\n id: string;\n title?: string;\n layout?: any;\n components?: OutlineNode[];\n}\n\nexport interface OutlineNode {\n id: string;\n title: string;\n def?: {\n namespace?: string;\n };\n asRoot?: boolean;\n data?: any;\n style?: any;\n slots?: SlotInfo[];\n _hasCollapsedChildren?: boolean;\n}\n\n// 设计器给出的 OutlineNode\nexport interface OriginOutlineNode extends OutlineNode {\n components: OutlineNode[]\n layout: {\n width: string | number\n height: string | number\n }\n}\n\n\nexport interface ComponentsResult {\n id: string;\n jsx: string;\n namespaces: string[];\n}\n\nconst ROOT_NAMESPACE = 'root';\nconst ROOT_ID = '_root_';\nconst ROOT_SLOT_ID = '_rootSlot_';\n\nexport class OutlineInfoManager {\n\n api: any;\n\n constructor({ api }: { api: any }) {\n this.api = api;\n }\n\n private getOutlineInfo(id: string, type: string): OriginOutlineNode {\n if (type === \"logicCom\") {\n return this.api?.logicCom?.api?.getOutlineInfo(id)\n } else if (type === \"uiCom\") {\n return this.api?.uiCom?.api?.getOutlineInfo(id)\n } else {\n return this.api?.page?.api?.getOutlineInfo(id)\n }\n }\n\n getPageOutline(pageId: string) {\n return this.normalizePageOutline(this.getOutlineInfo(pageId, 'page'), pageId);\n }\n\n getUiComOutline(componentId: string) {\n return this.getOutlineInfo(componentId, 'uiCom');\n }\n\n getLogicComOutline(componentId: string) {\n return this.getOutlineInfo(componentId, 'logicCom');\n }\n\n private getOriginOutlineRootCom = (originOutline: OriginOutlineNode) => {\n return originOutline?.components?.[0]?.asRoot ? originOutline?.components?.[0] : null\n }\n\n getPageMetaInfo(pageId: string) {\n const originOutlineJson = this.getOutlineInfo(pageId, 'page')\n\n const rootId = this.getOriginOutlineRootCom(originOutlineJson) ? this.getOriginOutlineRootCom(originOutlineJson)?.id : undefined;\n\n return {\n pageId,\n rootId\n }\n }\n \n\n private normalizePageOutline(outline: OriginOutlineNode, pageId: string): OutlineNode {\n if (outline?.id === pageId) {\n\n let rootNode: OutlineNode = outline\n let rootSlots: SlotInfo[] | undefined = [{\n id: ROOT_SLOT_ID,\n components: outline?.components,\n layout: outline?.layout\n }];\n const whInfo: any = {\n width: outline?.layout?.width,\n height: outline?.layout?.height,\n }\n\n // 说明有asRoot组件,把asRoot的信息往上提取一层\n const rootCom = this.getOriginOutlineRootCom(outline)\n if (!!rootCom) {\n rootNode = rootCom;\n rootSlots = rootNode.slots\n }\n\n const normalized = {\n ...rootNode,\n style: {\n ...(rootNode.style ?? {}),\n ...whInfo, // 注意用的是页面的宽高\n },\n slots: rootSlots,\n def: {\n version: '1.0.0',\n namespace: ROOT_NAMESPACE\n },\n asRoot: true\n };\n\n return {\n id: pageId,\n title: outline.title, // 注意用的是页面的title\n slots: [{ id: ROOT_ID, components: [normalized] }]\n };\n }\n\n return {\n id: pageId,\n title: outline.title,\n slots: [{ id: ROOT_ID, components: [outline] }]\n };\n }\n\n getComponentIdToTitleMap(pageId: string) {\n const outline = this.getPageOutline(pageId);\n const componentMap = new Map<string, string>();\n\n componentMap.set(ROOT_ID, outline.title ?? '页面根节点');\n\n function traverse(data: any) {\n if (!data) return;\n\n if (Array.isArray(data)) {\n data.forEach(item => traverse(item));\n return;\n }\n\n if (data.id && data.title) {\n componentMap.set(data.id, data.title);\n }\n\n if (data.slots && Array.isArray(data.slots)) {\n data.slots.forEach((slot: SlotInfo) => {\n if (slot.components && Array.isArray(slot.components)) {\n slot.components.forEach(component => traverse(component));\n }\n });\n }\n }\n\n traverse(outline);\n return componentMap;\n }\n\n generateJSXByPageId(pageId: string, targetComponentIds: string[] = []): ComponentsResult {\n const outline = this.getPageOutline(pageId);\n return this.generateJSXByOutline(outline, targetComponentIds);\n }\n\n generateJSXByOutline(outlineInfo: OutlineNode, targetComponentIds: string[] = []): ComponentsResult {\n return OutlineJSXGenerator.generate(outlineInfo, targetComponentIds);\n }\n\n findParentNodeByComId(pageOutlineInfo: OutlineNode, comId: string): OutlineNode | null {\n function helper(node: OutlineNode): OutlineNode | null {\n if (!node || !node.slots) return null;\n for (const slot of node.slots || []) {\n if (slot.components && Array.isArray(slot.components)) {\n for (const component of slot.components) {\n if (component.id === comId) {\n return node;\n }\n // 向下递归\n const found = helper(component);\n if (found) return found;\n }\n }\n }\n return null;\n }\n return helper(pageOutlineInfo);\n }\n}\n\nclass OutlineJSXGenerator {\n private static namespacesSet = new Set<string>();\n\n /**\n * 遮蔽base64和svg代码,避免DSL过大\n */\n private static maskLargeContent(obj: any): any {\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n // 如果是字符串,检查是否为base64或svg\n if (typeof obj === 'string') {\n // 检测base64图片(data:image开头或长base64字符串)\n if (obj.startsWith('data:image/') || /^[A-Za-z0-9+/=]{100,}$/.test(obj)) {\n const prefix = obj.substring(0, 22);\n return `[BASE64_MASKED:${prefix}...length:${obj.length}]`;\n }\n // 检测SVG代码\n if (obj.includes('<svg') || obj.includes('<?xml') && obj.includes('svg')) {\n const length = obj.length;\n if (length > 200) {\n return `[SVG_MASKED:length:${length}]`;\n }\n }\n return obj;\n }\n\n // 如果是数组,递归处理每个元素\n if (Array.isArray(obj)) {\n return obj.map(item => this.maskLargeContent(item));\n }\n\n // 如果是对象,递归处理每个属性\n if (typeof obj === 'object') {\n const result: any = {};\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n result[key] = this.maskLargeContent(obj[key]);\n }\n }\n return result;\n }\n\n return obj;\n }\n\n static generate(outlineInfo: OutlineNode, targetComponentIds: string[] = []): ComponentsResult {\n this.namespacesSet.clear();\n\n if (targetComponentIds.length === 0) {\n const jsx = this.processData(outlineInfo);\n return {\n id: outlineInfo.id,\n jsx,\n namespaces: Array.from(this.namespacesSet)\n };\n }\n\n if (targetComponentIds.length === 1) {\n const targetNode = this.findNodeById(outlineInfo, targetComponentIds[0]);\n if (targetNode) {\n const jsx = this.processData(targetNode);\n return {\n id: targetNode.id,\n jsx,\n namespaces: Array.from(this.namespacesSet)\n };\n }\n }\n\n const ancestorNodes = this.findMinimalCommonAncestors(outlineInfo, targetComponentIds);\n const jsx = ancestorNodes.map(node => this.processData(node)).join('\\n');\n\n return {\n id: ancestorNodes[0]?.id,\n jsx,\n namespaces: Array.from(this.namespacesSet)\n };\n }\n\n private static findMinimalCommonAncestors(root: OutlineNode, targetIds: string[]): OutlineNode[] {\n if (targetIds.length === 0) return [root];\n if (targetIds.length === 1) {\n const targetNode = this.findNodeById(root, targetIds[0]);\n return targetNode ? [targetNode] : [];\n }\n\n const paths: OutlineNode[][] = [];\n for (const targetId of targetIds) {\n const path = this.findPathToNode(root, targetId);\n if (path) {\n paths.push(path);\n }\n }\n\n if (paths.length === 0) {\n return [];\n }\n if (paths.length === 1) {\n return [paths[0][paths[0].length - 1]];\n }\n\n let commonAncestor: OutlineNode | null = null;\n const minLength = Math.min(...paths.map(path => path.length));\n\n for (let i = 0; i < minLength; i++) {\n const currentNodes = paths.map(path => path[i]);\n const firstNode = currentNodes[0];\n\n if (currentNodes.every(node => node.id === firstNode.id)) {\n commonAncestor = firstNode;\n } else {\n break;\n }\n }\n\n if (commonAncestor) {\n return [commonAncestor];\n }\n\n return [root];\n }\n\n private static findPathToNode(root: OutlineNode, targetId: string): OutlineNode[] | null {\n if (root.id === targetId) {\n return [root];\n }\n\n if (root.slots && Array.isArray(root.slots)) {\n for (const slot of root.slots) {\n if (slot.components && Array.isArray(slot.components)) {\n for (const component of slot.components) {\n const path = this.findPathToNode(component, targetId);\n if (path) {\n return [root, ...path];\n }\n }\n }\n }\n }\n\n return null;\n }\n\n private static findNodeById(root: OutlineNode, targetId: string): OutlineNode | null {\n if (root.id === targetId) {\n return root;\n }\n\n if (root.slots && Array.isArray(root.slots)) {\n for (const slot of root.slots) {\n if (slot.components && Array.isArray(slot.components)) {\n for (const component of slot.components) {\n const found = this.findNodeById(component, targetId);\n if (found) return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private static extractLayout(style: any): Record<string, any> {\n if (!style) return {};\n\n const layout: Record<string, any> = {};\n\n ['width', 'height', 'margin', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom']\n .forEach(prop => {\n if (style[prop] !== undefined) {\n layout[prop] = style[prop];\n }\n });\n\n if (style.layout !== undefined) {\n if (style.layout === 'flex-column' || style.layout === 'flex') {\n layout.display = 'flex';\n layout.flexDirection = 'column';\n }\n if (style.layout === 'flex-row') {\n layout.display = 'flex';\n layout.flexDirection = 'row';\n }\n if (style.alignItems) layout.alignItems = style.alignItems;\n if (style.justifyContent) layout.justifyContent = style.justifyContent;\n if (style.layout === 'absolute') {\n layout.position = 'relative';\n }\n }\n\n if (style.position === 'absolute') {\n ['left', 'right', 'top', 'bottom', 'widthFact', 'heightFact', 'position']\n .forEach(prop => {\n if (style[prop] !== undefined) {\n layout[prop] = style[prop];\n }\n })\n }\n\n return layout;\n }\n\n private static extractStyleArray(style: any): string[] {\n if (!style?.css || !Array.isArray(style.css)) return [];\n\n return style.css.map((cssItem: any) => {\n const selector = cssItem.selector || '';\n const cssProps = cssItem.css || {};\n\n const cssString = Object.entries(cssProps)\n .map(([key, value]) => `${key}: '${value}'`)\n .join(', ');\n\n return `${selector} : { ${cssString} }`;\n });\n }\n\n private static processData(node: OutlineNode | OutlineNode[]): string {\n if (!node) return '';\n\n if (Array.isArray(node)) {\n return node.map(item => this.processData(item)).filter(Boolean).join('\\n');\n }\n\n if (node.id && node.def?.namespace) {\n return this.generateComponentJSX(node);\n }\n\n if (node.slots && Array.isArray(node.slots)) {\n return node.slots.map(slot => {\n if (slot.components && Array.isArray(slot.components)) {\n return this.processData(slot.components);\n }\n return '';\n }).filter(Boolean).join('');\n }\n\n return '';\n }\n\n private static generateComponentJSX(node: OutlineNode, indent = ''): string {\n if (!node?.id) return '';\n\n const namespace = node.def?.namespace;\n if (namespace !== ROOT_NAMESPACE) {\n this.namespacesSet.add(namespace);\n }\n const layout = this.extractLayout(node.style);\n const styleArray = this.extractStyleArray(node.style);\n\n let jsx;\n\n const namespaceTag = ComponentsManager.getAbbreviation(namespace)\n\n // 遮蔽data中的base64和svg内容\n const maskedData = node.data ? this.maskLargeContent(node.data) : null;\n\n if (node.asRoot) {\n jsx = `<${ROOT_NAMESPACE} id=\"${ROOT_ID}\"` + (maskedData ? ` data={${JSON.stringify(maskedData)}}` : '');\n } else {\n jsx = `<${namespaceTag} id=\"${node.id}\" title=\"${node.title}\"` + (maskedData ? ` data={${JSON.stringify(maskedData)}}` : '');\n }\n\n if (Object.keys(layout).length > 0) {\n jsx += ` layout={${JSON.stringify(layout)}}`;\n }\n\n if (styleArray.length > 0) {\n // 遮蔽styleArray中的base64和svg内容\n const maskedStyleArray = styleArray.map(style => this.maskLargeContent(style));\n jsx += ` styleAry={[${maskedStyleArray.map(style => `\"${style}\"`).join(', ')}]}`;\n }\n\n jsx += ' >';\n\n const slotsJSX = this.generateSlotsJSX(node.slots || [], indent + ' ');\n if (slotsJSX) {\n jsx += slotsJSX;\n jsx += `\\n${indent}</${namespaceTag}>`;\n } else {\n jsx += ' />';\n }\n\n return jsx;\n }\n\n private static generateSlotsJSX(slots: SlotInfo[], indent = ' '): string {\n if (!slots || slots.length === 0) return '';\n\n let slotsJSX = '';\n slots.forEach(slot => {\n if (slot.id) {\n slotsJSX += `\\n${indent}<slots.${slot.id}`;\n\n if (slot.title) {\n slotsJSX += ` title=\"${slot.title}\"`;\n }\n\n if (slot.layout) {\n slotsJSX += ` layout={${JSON.stringify(this.extractLayout(slot.layout))}}`;\n }\n\n slotsJSX += '>';\n\n if (slot.components && Array.isArray(slot.components)) {\n slot.components.forEach(component => {\n const childJSX = this.generateComponentJSX(component, indent + ' ');\n if (childJSX) {\n slotsJSX += `\\n${indent} ${childJSX}`;\n }\n });\n }\n\n slotsJSX += `\\n${indent}</slots.${slot.id}>`;\n }\n });\n\n return slotsJSX;\n }\n}\n"],"names":["ROOT_NAMESPACE","ROOT_ID","ROOT_SLOT_ID","OutlineInfoManager","constructor","_ref","api","_defineProperty","originOutline","_originOutline$compon","_originOutline$compon2","components","asRoot","getOutlineInfo","id","type","_this$api","logicCom","_this$api2","uiCom","_this$api3","page","getPageOutline","pageId","normalizePageOutline","getUiComOutline","componentId","getLogicComOutline","getPageMetaInfo","_this$getOriginOutlin","originOutlineJson","rootId","getOriginOutlineRootCom","undefined","outline","_outline$layout","_outline$layout2","_rootNode$style","rootNode","rootSlots","layout","whInfo","width","height","rootCom","slots","normalized","_objectSpread","style","def","version","namespace","title","getComponentIdToTitleMap","_outline$title","componentMap","Map","set","traverse","data","Array","isArray","forEach","item","slot","component","generateJSXByPageId","targetComponentIds","arguments","length","generateJSXByOutline","outlineInfo","OutlineJSXGenerator","generate","findParentNodeByComId","pageOutlineInfo","comId","helper","node","found","maskLargeContent","obj","startsWith","test","prefix","substring","concat","includes","map","result","key","hasOwnProperty","_ancestorNodes$","namespacesSet","clear","jsx","processData","namespaces","from","targetNode","findNodeById","ancestorNodes","findMinimalCommonAncestors","join","root","targetIds","paths","targetId","path","findPathToNode","push","commonAncestor","minLength","Math","min","_loop","i","currentNodes","firstNode","every","extractLayout","prop","display","flexDirection","alignItems","justifyContent","position","extractStyleArray","css","cssItem","selector","cssProps","cssString","Object","entries","_ref2","value","_node$def","filter","Boolean","generateComponentJSX","_node$def2","indent","add","styleArray","namespaceTag","ComponentsManager","getAbbreviation","maskedData","JSON","stringify","keys","maskedStyleArray","slotsJSX","generateSlotsJSX","childJSX","Set"],"mappings":";;;AAsBA;;AAgBA,IAAMA,cAAc,GAAG,MAAM;AAC7B,IAAMC,OAAO,GAAG,QAAQ;AACxB,IAAMC,YAAY,GAAG,YAAY;AAE1B,MAAMC,kBAAkB,CAAC;EAI9BC,WAAWA,CAAAC,IAAA,EAAwB;IAAA,IAAvB;AAAEC,MAAAA;AAAkB,KAAC,GAAAD,IAAA;IAAAE,eAAA,CAAA,IAAA,EAAA,yBAAA,EA0BEC,aAAgC,IAAK;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;AACtE,MAAA,OAAOF,aAAa,KAAA,IAAA,IAAbA,aAAa,gBAAAC,qBAAA,GAAbD,aAAa,CAAEG,UAAU,cAAAF,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAAzBA,qBAAA,CAA4B,CAAC,CAAC,cAAAA,qBAAA,KAAA,MAAA,IAA9BA,qBAAA,CAAgCG,MAAM,GAAGJ,aAAa,aAAbA,aAAa,KAAA,MAAA,IAAA,CAAAE,sBAAA,GAAbF,aAAa,CAAEG,UAAU,MAAA,IAAA,IAAAD,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,sBAAA,CAA4B,CAAC,CAAC,GAAG,IAAI;IACvF,CAAC,CAAA;IA3BC,IAAI,CAACJ,GAAG,GAAGA,GAAG;AAChB,EAAA;AAEQO,EAAAA,cAAcA,CAACC,EAAU,EAAEC,IAAY,EAAqB;IAClE,IAAIA,IAAI,KAAK,UAAU,EAAE;AAAA,MAAA,IAAAC,SAAA;AACvB,MAAA,OAAA,CAAAA,SAAA,GAAO,IAAI,CAACV,GAAG,MAAA,IAAA,IAAAU,SAAA,KAAA,MAAA,IAAA,CAAAA,SAAA,GAARA,SAAA,CAAUC,QAAQ,MAAA,IAAA,IAAAD,SAAA,KAAA,MAAA,IAAA,CAAAA,SAAA,GAAlBA,SAAA,CAAoBV,GAAG,MAAA,IAAA,IAAAU,SAAA,KAAA,MAAA,GAAA,MAAA,GAAvBA,SAAA,CAAyBH,cAAc,CAACC,EAAE,CAAC;AACpD,IAAA,CAAC,MAAM,IAAIC,IAAI,KAAK,OAAO,EAAE;AAAA,MAAA,IAAAG,UAAA;AAC3B,MAAA,OAAA,CAAAA,UAAA,GAAO,IAAI,CAACZ,GAAG,MAAA,IAAA,IAAAY,UAAA,KAAA,MAAA,IAAA,CAAAA,UAAA,GAARA,UAAA,CAAUC,KAAK,MAAA,IAAA,IAAAD,UAAA,KAAA,MAAA,IAAA,CAAAA,UAAA,GAAfA,UAAA,CAAiBZ,GAAG,MAAA,IAAA,IAAAY,UAAA,KAAA,MAAA,GAAA,MAAA,GAApBA,UAAA,CAAsBL,cAAc,CAACC,EAAE,CAAC;AACjD,IAAA,CAAC,MAAM;AAAA,MAAA,IAAAM,UAAA;AACL,MAAA,OAAA,CAAAA,UAAA,GAAO,IAAI,CAACd,GAAG,MAAA,IAAA,IAAAc,UAAA,KAAA,MAAA,IAAA,CAAAA,UAAA,GAARA,UAAA,CAAUC,IAAI,MAAA,IAAA,IAAAD,UAAA,KAAA,MAAA,IAAA,CAAAA,UAAA,GAAdA,UAAA,CAAgBd,GAAG,MAAA,IAAA,IAAAc,UAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,UAAA,CAAqBP,cAAc,CAACC,EAAE,CAAC;AAChD,IAAA;AACF,EAAA;EAEAQ,cAAcA,CAACC,MAAc,EAAE;AAC7B,IAAA,OAAO,IAAI,CAACC,oBAAoB,CAAC,IAAI,CAACX,cAAc,CAACU,MAAM,EAAE,MAAM,CAAC,EAAEA,MAAM,CAAC;AAC/E,EAAA;EAEAE,eAAeA,CAACC,WAAmB,EAAE;AACnC,IAAA,OAAO,IAAI,CAACb,cAAc,CAACa,WAAW,EAAE,OAAO,CAAC;AAClD,EAAA;EAEAC,kBAAkBA,CAACD,WAAmB,EAAE;AACtC,IAAA,OAAO,IAAI,CAACb,cAAc,CAACa,WAAW,EAAE,UAAU,CAAC;AACrD,EAAA;EAMAE,eAAeA,CAACL,MAAc,EAAE;AAAA,IAAA,IAAAM,qBAAA;IAC9B,IAAMC,iBAAiB,GAAI,IAAI,CAACjB,cAAc,CAACU,MAAM,EAAE,MAAM,CAAC;IAE9D,IAAMQ,MAAM,GAAG,IAAI,CAACC,uBAAuB,CAACF,iBAAiB,CAAC,GAAA,CAAAD,qBAAA,GAAG,IAAI,CAACG,uBAAuB,CAACF,iBAAiB,CAAC,MAAA,IAAA,IAAAD,qBAAA,uBAA/CA,qBAAA,CAAiDf,EAAE,GAAGmB,SAAS;IAEhI,OAAO;MACLV,MAAM;AACNQ,MAAAA;KACD;AACH,EAAA;AAGQP,EAAAA,oBAAoBA,CAACU,OAA0B,EAAEX,MAAc,EAAe;IACpF,IAAI,CAAAW,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEpB,EAAE,MAAKS,MAAM,EAAE;AAAA,MAAA,IAAAY,eAAA,EAAAC,gBAAA,EAAAC,eAAA;MAE1B,IAAIC,QAAqB,GAAGJ,OAAO;MACnC,IAAIK,SAAiC,GAAG,CAAC;AACvCzB,QAAAA,EAAE,EAAEZ,YAAY;AAChBS,QAAAA,UAAU,EAAEuB,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEvB,UAAU;AAC/B6B,QAAAA,MAAM,EAAEN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEM;AACnB,OAAC,CAAC;AACF,MAAA,IAAMC,MAAW,GAAG;AAClBC,QAAAA,KAAK,EAAER,OAAO,KAAA,IAAA,IAAPA,OAAO,gBAAAC,eAAA,GAAPD,OAAO,CAAEM,MAAM,MAAA,IAAA,IAAAL,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAiBO,KAAK;AAC7BC,QAAAA,MAAM,EAAET,OAAO,KAAA,IAAA,IAAPA,OAAO,gBAAAE,gBAAA,GAAPF,OAAO,CAAEM,MAAM,MAAA,IAAA,IAAAJ,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBO;OAC1B;;AAED;AACA,MAAA,IAAMC,OAAO,GAAG,IAAI,CAACZ,uBAAuB,CAACE,OAAO,CAAC;MACrD,IAAI,CAAC,CAACU,OAAO,EAAE;AACbN,QAAAA,QAAQ,GAAGM,OAAO;QAClBL,SAAS,GAAGD,QAAQ,CAACO,KAAK;AAC5B,MAAA;AAEA,MAAA,IAAMC,UAAU,GAAAC,cAAA,CAAAA,cAAA,KACXT,QAAQ,CAAA,EAAA,EAAA,EAAA;AACXU,QAAAA,KAAK,EAAAD,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAA,CAAAV,eAAA,GACCC,QAAQ,CAACU,KAAK,MAAA,IAAA,IAAAX,eAAA,cAAAA,eAAA,GAAI,EAAE,CAAA,EACrBI,MAAM,CACV;AACDI,QAAAA,KAAK,EAAEN,SAAS;AAChBU,QAAAA,GAAG,EAAE;AACHC,UAAAA,OAAO,EAAE,OAAO;AAChBC,UAAAA,SAAS,EAAEnD;SACZ;AACDY,QAAAA,MAAM,EAAE;OAAI,CACb;MAED,OAAO;AACLE,QAAAA,EAAE,EAAES,MAAM;QACV6B,KAAK,EAAElB,OAAO,CAACkB,KAAK;AAAE;AACtBP,QAAAA,KAAK,EAAE,CAAC;AAAE/B,UAAAA,EAAE,EAAEb,OAAO;UAAEU,UAAU,EAAE,CAACmC,UAAU;SAAG;OAClD;AACH,IAAA;IAEA,OAAO;AACLhC,MAAAA,EAAE,EAAES,MAAM;MACV6B,KAAK,EAAElB,OAAO,CAACkB,KAAK;AACpBP,MAAAA,KAAK,EAAE,CAAC;AAAE/B,QAAAA,EAAE,EAAEb,OAAO;QAAEU,UAAU,EAAE,CAACuB,OAAO;OAAG;KAC/C;AACH,EAAA;EAEAmB,wBAAwBA,CAAC9B,MAAc,EAAE;AAAA,IAAA,IAAA+B,cAAA;AACvC,IAAA,IAAMpB,OAAO,GAAG,IAAI,CAACZ,cAAc,CAACC,MAAM,CAAC;AAC3C,IAAA,IAAMgC,YAAY,GAAG,IAAIC,GAAG,EAAkB;AAE9CD,IAAAA,YAAY,CAACE,GAAG,CAACxD,OAAO,EAAA,CAAAqD,cAAA,GAAEpB,OAAO,CAACkB,KAAK,cAAAE,cAAA,KAAA,MAAA,GAAAA,cAAA,GAAI,OAAO,CAAC;IAEnD,SAASI,QAAQA,CAACC,IAAS,EAAE;MAC3B,IAAI,CAACA,IAAI,EAAE;AAEX,MAAA,IAAIC,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE;QACvBA,IAAI,CAACG,OAAO,CAACC,IAAI,IAAIL,QAAQ,CAACK,IAAI,CAAC,CAAC;AACpC,QAAA;AACF,MAAA;AAEA,MAAA,IAAIJ,IAAI,CAAC7C,EAAE,IAAI6C,IAAI,CAACP,KAAK,EAAE;QACzBG,YAAY,CAACE,GAAG,CAACE,IAAI,CAAC7C,EAAE,EAAE6C,IAAI,CAACP,KAAK,CAAC;AACvC,MAAA;AAEA,MAAA,IAAIO,IAAI,CAACd,KAAK,IAAIe,KAAK,CAACC,OAAO,CAACF,IAAI,CAACd,KAAK,CAAC,EAAE;AAC3Cc,QAAAA,IAAI,CAACd,KAAK,CAACiB,OAAO,CAAEE,IAAc,IAAK;AACrC,UAAA,IAAIA,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;YACrDqD,IAAI,CAACrD,UAAU,CAACmD,OAAO,CAACG,SAAS,IAAIP,QAAQ,CAACO,SAAS,CAAC,CAAC;AAC3D,UAAA;AACF,QAAA,CAAC,CAAC;AACJ,MAAA;AACF,IAAA;IAEAP,QAAQ,CAACxB,OAAO,CAAC;AACjB,IAAA,OAAOqB,YAAY;AACrB,EAAA;EAEAW,mBAAmBA,CAAC3C,MAAc,EAAuD;AAAA,IAAA,IAArD4C,kBAA4B,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAnC,SAAA,GAAAmC,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACnE,IAAA,IAAMlC,OAAO,GAAG,IAAI,CAACZ,cAAc,CAACC,MAAM,CAAC;AAC3C,IAAA,OAAO,IAAI,CAAC+C,oBAAoB,CAACpC,OAAO,EAAEiC,kBAAkB,CAAC;AAC/D,EAAA;EAEAG,oBAAoBA,CAACC,WAAwB,EAAuD;AAAA,IAAA,IAArDJ,kBAA4B,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAnC,SAAA,GAAAmC,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC9E,IAAA,OAAOI,mBAAmB,CAACC,QAAQ,CAACF,WAAW,EAAEJ,kBAAkB,CAAC;AACtE,EAAA;AAEAO,EAAAA,qBAAqBA,CAACC,eAA4B,EAAEC,KAAa,EAAsB;IACrF,SAASC,MAAMA,CAACC,IAAiB,EAAsB;MACrD,IAAI,CAACA,IAAI,IAAI,CAACA,IAAI,CAACjC,KAAK,EAAE,OAAO,IAAI;MACrC,KAAK,IAAMmB,IAAI,IAAIc,IAAI,CAACjC,KAAK,IAAI,EAAE,EAAE;AACnC,QAAA,IAAImB,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;AACrD,UAAA,KAAK,IAAMsD,SAAS,IAAID,IAAI,CAACrD,UAAU,EAAE;AACvC,YAAA,IAAIsD,SAAS,CAACnD,EAAE,KAAK8D,KAAK,EAAE;AAC1B,cAAA,OAAOE,IAAI;AACb,YAAA;AACA;AACA,YAAA,IAAMC,KAAK,GAAGF,MAAM,CAACZ,SAAS,CAAC;YAC/B,IAAIc,KAAK,EAAE,OAAOA,KAAK;AACzB,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;IACA,OAAOF,MAAM,CAACF,eAAe,CAAC;AAChC,EAAA;AACF;AAEA,MAAMH,mBAAmB,CAAC;AAGxB;AACF;AACA;EACE,OAAeQ,gBAAgBA,CAACC,GAAQ,EAAO;AAC7C,IAAA,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKhD,SAAS,EAAE;AACrC,MAAA,OAAOgD,GAAG;AACZ,IAAA;;AAEA;AACA,IAAA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;AAC3B;AACA,MAAA,IAAIA,GAAG,CAACC,UAAU,CAAC,aAAa,CAAC,IAAI,wBAAwB,CAACC,IAAI,CAACF,GAAG,CAAC,EAAE;QACvE,IAAMG,MAAM,GAAGH,GAAG,CAACI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QACnC,OAAA,iBAAA,CAAAC,MAAA,CAAyBF,MAAM,EAAA,YAAA,CAAA,CAAAE,MAAA,CAAaL,GAAG,CAACZ,MAAM,EAAA,GAAA,CAAA;AACxD,MAAA;AACA;MACA,IAAIY,GAAG,CAACM,QAAQ,CAAC,MAAM,CAAC,IAAIN,GAAG,CAACM,QAAQ,CAAC,OAAO,CAAC,IAAIN,GAAG,CAACM,QAAQ,CAAC,KAAK,CAAC,EAAE;AACxE,QAAA,IAAMlB,MAAM,GAAGY,GAAG,CAACZ,MAAM;QACzB,IAAIA,MAAM,GAAG,GAAG,EAAE;UAChB,OAAA,qBAAA,CAAAiB,MAAA,CAA6BjB,MAAM,EAAA,GAAA,CAAA;AACrC,QAAA;AACF,MAAA;AACA,MAAA,OAAOY,GAAG;AACZ,IAAA;;AAEA;AACA,IAAA,IAAIrB,KAAK,CAACC,OAAO,CAACoB,GAAG,CAAC,EAAE;AACtB,MAAA,OAAOA,GAAG,CAACO,GAAG,CAACzB,IAAI,IAAI,IAAI,CAACiB,gBAAgB,CAACjB,IAAI,CAAC,CAAC;AACrD,IAAA;;AAEA;AACA,IAAA,IAAI,OAAOkB,GAAG,KAAK,QAAQ,EAAE;MAC3B,IAAMQ,MAAW,GAAG,EAAE;AACtB,MAAA,KAAK,IAAMC,GAAG,IAAIT,GAAG,EAAE;AACrB,QAAA,IAAIA,GAAG,CAACU,cAAc,CAACD,GAAG,CAAC,EAAE;AAC3BD,UAAAA,MAAM,CAACC,GAAG,CAAC,GAAG,IAAI,CAACV,gBAAgB,CAACC,GAAG,CAACS,GAAG,CAAC,CAAC;AAC/C,QAAA;AACF,MAAA;AACA,MAAA,OAAOD,MAAM;AACf,IAAA;AAEA,IAAA,OAAOR,GAAG;AACZ,EAAA;EAEA,OAAOR,QAAQA,CAACF,WAAwB,EAAuD;AAAA,IAAA,IAAAqB,eAAA;AAAA,IAAA,IAArDzB,kBAA4B,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAnC,SAAA,GAAAmC,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACzE,IAAA,IAAI,CAACyB,aAAa,CAACC,KAAK,EAAE;AAE1B,IAAA,IAAI3B,kBAAkB,CAACE,MAAM,KAAK,CAAC,EAAE;AACnC,MAAA,IAAM0B,IAAG,GAAG,IAAI,CAACC,WAAW,CAACzB,WAAW,CAAC;MACzC,OAAO;QACLzD,EAAE,EAAEyD,WAAW,CAACzD,EAAE;AAClBiF,QAAAA,GAAG,EAAHA,IAAG;AACHE,QAAAA,UAAU,EAAErC,KAAK,CAACsC,IAAI,CAAC,IAAI,CAACL,aAAa;OAC1C;AACH,IAAA;AAEA,IAAA,IAAI1B,kBAAkB,CAACE,MAAM,KAAK,CAAC,EAAE;AACnC,MAAA,IAAM8B,UAAU,GAAG,IAAI,CAACC,YAAY,CAAC7B,WAAW,EAAEJ,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACxE,MAAA,IAAIgC,UAAU,EAAE;AACd,QAAA,IAAMJ,KAAG,GAAG,IAAI,CAACC,WAAW,CAACG,UAAU,CAAC;QACxC,OAAO;UACLrF,EAAE,EAAEqF,UAAU,CAACrF,EAAE;AACjBiF,UAAAA,GAAG,EAAHA,KAAG;AACHE,UAAAA,UAAU,EAAErC,KAAK,CAACsC,IAAI,CAAC,IAAI,CAACL,aAAa;SAC1C;AACH,MAAA;AACF,IAAA;IAEA,IAAMQ,aAAa,GAAG,IAAI,CAACC,0BAA0B,CAAC/B,WAAW,EAAEJ,kBAAkB,CAAC;AACtF,IAAA,IAAM4B,GAAG,GAAGM,aAAa,CAACb,GAAG,CAACV,IAAI,IAAI,IAAI,CAACkB,WAAW,CAAClB,IAAI,CAAC,CAAC,CAACyB,IAAI,CAAC,IAAI,CAAC;IAExE,OAAO;AACLzF,MAAAA,EAAE,EAAA,CAAA8E,eAAA,GAAES,aAAa,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAT,eAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,eAAA,CAAkB9E,EAAE;MACxBiF,GAAG;AACHE,MAAAA,UAAU,EAAErC,KAAK,CAACsC,IAAI,CAAC,IAAI,CAACL,aAAa;KAC1C;AACH,EAAA;AAEA,EAAA,OAAeS,0BAA0BA,CAACE,IAAiB,EAAEC,SAAmB,EAAiB;IAC/F,IAAIA,SAAS,CAACpC,MAAM,KAAK,CAAC,EAAE,OAAO,CAACmC,IAAI,CAAC;AACzC,IAAA,IAAIC,SAAS,CAACpC,MAAM,KAAK,CAAC,EAAE;AAC1B,MAAA,IAAM8B,UAAU,GAAG,IAAI,CAACC,YAAY,CAACI,IAAI,EAAEC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,MAAA,OAAON,UAAU,GAAG,CAACA,UAAU,CAAC,GAAG,EAAE;AACvC,IAAA;IAEA,IAAMO,KAAsB,GAAG,EAAE;AACjC,IAAA,KAAK,IAAMC,QAAQ,IAAIF,SAAS,EAAE;MAChC,IAAMG,IAAI,GAAG,IAAI,CAACC,cAAc,CAACL,IAAI,EAAEG,QAAQ,CAAC;AAChD,MAAA,IAAIC,IAAI,EAAE;AACRF,QAAAA,KAAK,CAACI,IAAI,CAACF,IAAI,CAAC;AAClB,MAAA;AACF,IAAA;AAEA,IAAA,IAAIF,KAAK,CAACrC,MAAM,KAAK,CAAC,EAAE;AACtB,MAAA,OAAO,EAAE;AACX,IAAA;AACA,IAAA,IAAIqC,KAAK,CAACrC,MAAM,KAAK,CAAC,EAAE;AACtB,MAAA,OAAO,CAACqC,KAAK,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,CAAC,CAAC,CAACrC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxC,IAAA;IAEA,IAAI0C,cAAkC,GAAG,IAAI;AAC7C,IAAA,IAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAGR,KAAK,CAAClB,GAAG,CAACoB,IAAI,IAAIA,IAAI,CAACvC,MAAM,CAAC,CAAC;AAAC,IAAA,IAAA8C,KAAA,GAAA,SAAAA,KAAAA,CAAAC,CAAA,EAE1B;AAClC,MAAA,IAAMC,YAAY,GAAGX,KAAK,CAAClB,GAAG,CAACoB,IAAI,IAAIA,IAAI,CAACQ,CAAC,CAAC,CAAC;AAC/C,MAAA,IAAME,SAAS,GAAGD,YAAY,CAAC,CAAC,CAAC;AAEjC,MAAA,IAAIA,YAAY,CAACE,KAAK,CAACzC,IAAI,IAAIA,IAAI,CAAChE,EAAE,KAAKwG,SAAS,CAACxG,EAAE,CAAC,EAAE;AACxDiG,QAAAA,cAAc,GAAGO,SAAS;AAC5B,MAAA,CAAC,MAAM;AAAA,QAAA,OAAA,CAAA,CAAA;AAEP,MAAA;IACF,CAAC;IATD,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,SAAS,EAAEI,CAAC,EAAE,EAAA;MAAA,IAAAD,KAAA,CAAAC,CAAA,CAAA,EAO9B;AAAM,IAAA;AAIV,IAAA,IAAIL,cAAc,EAAE;MAClB,OAAO,CAACA,cAAc,CAAC;AACzB,IAAA;IAEA,OAAO,CAACP,IAAI,CAAC;AACf,EAAA;AAEA,EAAA,OAAeK,cAAcA,CAACL,IAAiB,EAAEG,QAAgB,EAAwB;AACvF,IAAA,IAAIH,IAAI,CAAC1F,EAAE,KAAK6F,QAAQ,EAAE;MACxB,OAAO,CAACH,IAAI,CAAC;AACf,IAAA;AAEA,IAAA,IAAIA,IAAI,CAAC3D,KAAK,IAAIe,KAAK,CAACC,OAAO,CAAC2C,IAAI,CAAC3D,KAAK,CAAC,EAAE;AAC3C,MAAA,KAAK,IAAMmB,IAAI,IAAIwC,IAAI,CAAC3D,KAAK,EAAE;AAC7B,QAAA,IAAImB,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;AACrD,UAAA,KAAK,IAAMsD,SAAS,IAAID,IAAI,CAACrD,UAAU,EAAE;YACvC,IAAMiG,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC5C,SAAS,EAAE0C,QAAQ,CAAC;AACrD,YAAA,IAAIC,IAAI,EAAE;AACR,cAAA,OAAO,CAACJ,IAAI,EAAE,GAAGI,IAAI,CAAC;AACxB,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,OAAeR,YAAYA,CAACI,IAAiB,EAAEG,QAAgB,EAAsB;AACnF,IAAA,IAAIH,IAAI,CAAC1F,EAAE,KAAK6F,QAAQ,EAAE;AACxB,MAAA,OAAOH,IAAI;AACb,IAAA;AAEA,IAAA,IAAIA,IAAI,CAAC3D,KAAK,IAAIe,KAAK,CAACC,OAAO,CAAC2C,IAAI,CAAC3D,KAAK,CAAC,EAAE;AAC3C,MAAA,KAAK,IAAMmB,IAAI,IAAIwC,IAAI,CAAC3D,KAAK,EAAE;AAC7B,QAAA,IAAImB,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;AACrD,UAAA,KAAK,IAAMsD,SAAS,IAAID,IAAI,CAACrD,UAAU,EAAE;YACvC,IAAMoE,KAAK,GAAG,IAAI,CAACqB,YAAY,CAACnC,SAAS,EAAE0C,QAAQ,CAAC;YACpD,IAAI5B,KAAK,EAAE,OAAOA,KAAK;AACzB,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,OAAeyC,aAAaA,CAACxE,KAAU,EAAuB;AAC5D,IAAA,IAAI,CAACA,KAAK,EAAE,OAAO,EAAE;IAErB,IAAMR,MAA2B,GAAG,EAAE;AAEtC,IAAA,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC,CACpFsB,OAAO,CAAC2D,IAAI,IAAI;AACf,MAAA,IAAIzE,KAAK,CAACyE,IAAI,CAAC,KAAKxF,SAAS,EAAE;AAC7BO,QAAAA,MAAM,CAACiF,IAAI,CAAC,GAAGzE,KAAK,CAACyE,IAAI,CAAC;AAC5B,MAAA;AACF,IAAA,CAAC,CAAC;AAEJ,IAAA,IAAIzE,KAAK,CAACR,MAAM,KAAKP,SAAS,EAAE;MAC9B,IAAIe,KAAK,CAACR,MAAM,KAAK,aAAa,IAAIQ,KAAK,CAACR,MAAM,KAAK,MAAM,EAAE;QAC7DA,MAAM,CAACkF,OAAO,GAAG,MAAM;QACvBlF,MAAM,CAACmF,aAAa,GAAG,QAAQ;AACjC,MAAA;AACA,MAAA,IAAI3E,KAAK,CAACR,MAAM,KAAK,UAAU,EAAE;QAC/BA,MAAM,CAACkF,OAAO,GAAG,MAAM;QACvBlF,MAAM,CAACmF,aAAa,GAAG,KAAK;AAC9B,MAAA;MACA,IAAI3E,KAAK,CAAC4E,UAAU,EAAEpF,MAAM,CAACoF,UAAU,GAAG5E,KAAK,CAAC4E,UAAU;MAC1D,IAAI5E,KAAK,CAAC6E,cAAc,EAAErF,MAAM,CAACqF,cAAc,GAAG7E,KAAK,CAAC6E,cAAc;AACtE,MAAA,IAAI7E,KAAK,CAACR,MAAM,KAAK,UAAU,EAAE;QAC/BA,MAAM,CAACsF,QAAQ,GAAG,UAAU;AAC9B,MAAA;AACF,IAAA;AAEA,IAAA,IAAI9E,KAAK,CAAC8E,QAAQ,KAAK,UAAU,EAAE;AACjC,MAAA,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CACtEhE,OAAO,CAAC2D,IAAI,IAAI;AACf,QAAA,IAAIzE,KAAK,CAACyE,IAAI,CAAC,KAAKxF,SAAS,EAAE;AAC7BO,UAAAA,MAAM,CAACiF,IAAI,CAAC,GAAGzE,KAAK,CAACyE,IAAI,CAAC;AAC5B,QAAA;AACF,MAAA,CAAC,CAAC;AACN,IAAA;AAEA,IAAA,OAAOjF,MAAM;AACf,EAAA;EAEA,OAAeuF,iBAAiBA,CAAC/E,KAAU,EAAY;IACrD,IAAI,EAACA,KAAK,KAAA,IAAA,IAALA,KAAK,eAALA,KAAK,CAAEgF,GAAG,CAAA,IAAI,CAACpE,KAAK,CAACC,OAAO,CAACb,KAAK,CAACgF,GAAG,CAAC,EAAE,OAAO,EAAE;AAEvD,IAAA,OAAOhF,KAAK,CAACgF,GAAG,CAACxC,GAAG,CAAEyC,OAAY,IAAK;AACrC,MAAA,IAAMC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI,EAAE;AACvC,MAAA,IAAMC,QAAQ,GAAGF,OAAO,CAACD,GAAG,IAAI,EAAE;MAElC,IAAMI,SAAS,GAAGC,MAAM,CAACC,OAAO,CAACH,QAAQ,CAAC,CACvC3C,GAAG,CAAC+C,KAAA,IAAA;AAAA,QAAA,IAAC,CAAC7C,GAAG,EAAE8C,KAAK,CAAC,GAAAD,KAAA;AAAA,QAAA,OAAA,EAAA,CAAAjD,MAAA,CAAQI,GAAG,EAAA,KAAA,CAAA,CAAAJ,MAAA,CAAMkD,KAAK,EAAA,GAAA,CAAA;AAAA,MAAA,CAAG,CAAC,CAC3CjC,IAAI,CAAC,IAAI,CAAC;AAEb,MAAA,OAAA,EAAA,CAAAjB,MAAA,CAAU4C,QAAQ,EAAA,OAAA,CAAA,CAAA5C,MAAA,CAAQ8C,SAAS,EAAA,IAAA,CAAA;AACrC,IAAA,CAAC,CAAC;AACJ,EAAA;EAEA,OAAepC,WAAWA,CAAClB,IAAiC,EAAU;AAAA,IAAA,IAAA2D,SAAA;AACpE,IAAA,IAAI,CAAC3D,IAAI,EAAE,OAAO,EAAE;AAEpB,IAAA,IAAIlB,KAAK,CAACC,OAAO,CAACiB,IAAI,CAAC,EAAE;MACvB,OAAOA,IAAI,CAACU,GAAG,CAACzB,IAAI,IAAI,IAAI,CAACiC,WAAW,CAACjC,IAAI,CAAC,CAAC,CAAC2E,MAAM,CAACC,OAAO,CAAC,CAACpC,IAAI,CAAC,IAAI,CAAC;AAC5E,IAAA;AAEA,IAAA,IAAIzB,IAAI,CAAChE,EAAE,IAAA,CAAA2H,SAAA,GAAI3D,IAAI,CAAC7B,GAAG,cAAAwF,SAAA,KAAA,MAAA,IAARA,SAAA,CAAUtF,SAAS,EAAE;AAClC,MAAA,OAAO,IAAI,CAACyF,oBAAoB,CAAC9D,IAAI,CAAC;AACxC,IAAA;AAEA,IAAA,IAAIA,IAAI,CAACjC,KAAK,IAAIe,KAAK,CAACC,OAAO,CAACiB,IAAI,CAACjC,KAAK,CAAC,EAAE;AAC3C,MAAA,OAAOiC,IAAI,CAACjC,KAAK,CAAC2C,GAAG,CAACxB,IAAI,IAAI;AAC5B,QAAA,IAAIA,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;AACrD,UAAA,OAAO,IAAI,CAACqF,WAAW,CAAChC,IAAI,CAACrD,UAAU,CAAC;AAC1C,QAAA;AACA,QAAA,OAAO,EAAE;MACX,CAAC,CAAC,CAAC+H,MAAM,CAACC,OAAO,CAAC,CAACpC,IAAI,CAAC,EAAE,CAAC;AAC7B,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;EAEA,OAAeqC,oBAAoBA,CAAC9D,IAAiB,EAAuB;AAAA,IAAA,IAAA+D,UAAA;AAAA,IAAA,IAArBC,MAAM,GAAA1E,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAnC,SAAA,GAAAmC,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;IAChE,IAAI,EAACU,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,IAAJA,IAAI,CAAEhE,EAAE,CAAA,EAAE,OAAO,EAAE;AAExB,IAAA,IAAMqC,SAAS,GAAA,CAAA0F,UAAA,GAAG/D,IAAI,CAAC7B,GAAG,MAAA,IAAA,IAAA4F,UAAA,KAAA,MAAA,GAAA,MAAA,GAARA,UAAA,CAAU1F,SAAS;IACrC,IAAIA,SAAS,KAAKnD,cAAc,EAAE;AAChC,MAAA,IAAI,CAAC6F,aAAa,CAACkD,GAAG,CAAC5F,SAAS,CAAC;AACnC,IAAA;IACA,IAAMX,MAAM,GAAG,IAAI,CAACgF,aAAa,CAAC1C,IAAI,CAAC9B,KAAK,CAAC;IAC7C,IAAMgG,UAAU,GAAG,IAAI,CAACjB,iBAAiB,CAACjD,IAAI,CAAC9B,KAAK,CAAC;AAErD,IAAA,IAAI+C,GAAG;AAEP,IAAA,IAAMkD,YAAY,GAAGC,iBAAiB,CAACC,eAAe,CAAChG,SAAS,CAAC;;AAEjE;AACA,IAAA,IAAMiG,UAAU,GAAGtE,IAAI,CAACnB,IAAI,GAAG,IAAI,CAACqB,gBAAgB,CAACF,IAAI,CAACnB,IAAI,CAAC,GAAG,IAAI;IAEtE,IAAImB,IAAI,CAAClE,MAAM,EAAE;MACfmF,GAAG,GAAG,IAAAT,MAAA,CAAItF,cAAc,EAAA,QAAA,CAAA,CAAAsF,MAAA,CAAQrF,OAAO,EAAA,IAAA,CAAA,IAAOmJ,UAAU,aAAA9D,MAAA,CAAa+D,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC,EAAA,GAAA,CAAA,GAAM,EAAE,CAAC;AAC1G,IAAA,CAAC,MAAM;AACLrD,MAAAA,GAAG,GAAG,GAAA,CAAAT,MAAA,CAAI2D,YAAY,EAAA,QAAA,CAAA,CAAA3D,MAAA,CAAQR,IAAI,CAAChE,EAAE,EAAA,aAAA,CAAA,CAAAwE,MAAA,CAAYR,IAAI,CAAC1B,KAAK,EAAA,IAAA,CAAA,IAAOgG,UAAU,GAAA,SAAA,CAAA9D,MAAA,CAAa+D,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC,EAAA,GAAA,CAAA,GAAM,EAAE,CAAC;AAC9H,IAAA;IAEA,IAAIf,MAAM,CAACkB,IAAI,CAAC/G,MAAM,CAAC,CAAC6B,MAAM,GAAG,CAAC,EAAE;MAClC0B,GAAG,IAAA,WAAA,CAAAT,MAAA,CAAgB+D,IAAI,CAACC,SAAS,CAAC9G,MAAM,CAAC,EAAA,GAAA,CAAG;AAC9C,IAAA;AAEA,IAAA,IAAIwG,UAAU,CAAC3E,MAAM,GAAG,CAAC,EAAE;AACzB;AACA,MAAA,IAAMmF,gBAAgB,GAAGR,UAAU,CAACxD,GAAG,CAACxC,KAAK,IAAI,IAAI,CAACgC,gBAAgB,CAAChC,KAAK,CAAC,CAAC;AAC9E+C,MAAAA,GAAG,mBAAAT,MAAA,CAAmBkE,gBAAgB,CAAChE,GAAG,CAACxC,KAAK,IAAA,IAAA,CAAAsC,MAAA,CAAQtC,KAAK,OAAG,CAAC,CAACuD,IAAI,CAAC,IAAI,CAAC,EAAA,IAAA,CAAI;AAClF,IAAA;AAEAR,IAAAA,GAAG,IAAI,IAAI;AAEX,IAAA,IAAM0D,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC5E,IAAI,CAACjC,KAAK,IAAI,EAAE,EAAEiG,MAAM,GAAG,IAAI,CAAC;AACvE,IAAA,IAAIW,QAAQ,EAAE;AACZ1D,MAAAA,GAAG,IAAI0D,QAAQ;MACf1D,GAAG,IAAA,IAAA,CAAAT,MAAA,CAASwD,MAAM,QAAAxD,MAAA,CAAK2D,YAAY,EAAA,GAAA,CAAG;AACxC,IAAA,CAAC,MAAM;AACLlD,MAAAA,GAAG,IAAI,KAAK;AACd,IAAA;AAEA,IAAA,OAAOA,GAAG;AACZ,EAAA;EAEA,OAAe2D,gBAAgBA,CAAC7G,KAAiB,EAAyB;AAAA,IAAA,IAAvBiG,MAAM,GAAA1E,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAnC,SAAA,GAAAmC,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;IAC9D,IAAI,CAACvB,KAAK,IAAIA,KAAK,CAACwB,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;IAE3C,IAAIoF,QAAQ,GAAG,EAAE;AACjB5G,IAAAA,KAAK,CAACiB,OAAO,CAACE,IAAI,IAAI;MACpB,IAAIA,IAAI,CAAClD,EAAE,EAAE;QACX2I,QAAQ,IAAA,IAAA,CAAAnE,MAAA,CAASwD,MAAM,EAAA,SAAA,CAAA,CAAAxD,MAAA,CAAUtB,IAAI,CAAClD,EAAE,CAAE;QAE1C,IAAIkD,IAAI,CAACZ,KAAK,EAAE;AACdqG,UAAAA,QAAQ,gBAAAnE,MAAA,CAAetB,IAAI,CAACZ,KAAK,EAAA,IAAA,CAAG;AACtC,QAAA;QAEA,IAAIY,IAAI,CAACxB,MAAM,EAAE;AACfiH,UAAAA,QAAQ,gBAAAnE,MAAA,CAAgB+D,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC9B,aAAa,CAACxD,IAAI,CAACxB,MAAM,CAAC,CAAC,EAAA,GAAA,CAAG;AAC5E,QAAA;AAEAiH,QAAAA,QAAQ,IAAI,GAAG;AAEf,QAAA,IAAIzF,IAAI,CAACrD,UAAU,IAAIiD,KAAK,CAACC,OAAO,CAACG,IAAI,CAACrD,UAAU,CAAC,EAAE;AACrDqD,UAAAA,IAAI,CAACrD,UAAU,CAACmD,OAAO,CAACG,SAAS,IAAI;YACnC,IAAM0F,QAAQ,GAAG,IAAI,CAACf,oBAAoB,CAAC3E,SAAS,EAAE6E,MAAM,GAAG,MAAM,CAAC;AACtE,YAAA,IAAIa,QAAQ,EAAE;cACZF,QAAQ,IAAA,IAAA,CAAAnE,MAAA,CAASwD,MAAM,QAAAxD,MAAA,CAAKqE,QAAQ,CAAE;AACxC,YAAA;AACF,UAAA,CAAC,CAAC;AACJ,QAAA;QAEAF,QAAQ,IAAA,IAAA,CAAAnE,MAAA,CAASwD,MAAM,EAAA,UAAA,CAAA,CAAAxD,MAAA,CAAWtB,IAAI,CAAClD,EAAE,EAAA,GAAA,CAAG;AAC9C,MAAA;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO2I,QAAQ;AACjB,EAAA;AACF;AAAClJ,eAAA,CAjUKiE,mBAAmB,EAAA,eAAA,EACQ,IAAIoF,GAAG,EAAU,CAAA;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 页面树生成器
|
|
5
|
+
*/
|
|
6
|
+
class PageTreeGenerator {
|
|
7
|
+
static generate(pagesInfo) {
|
|
8
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
9
|
+
var {
|
|
10
|
+
pageId: focusedPageId
|
|
11
|
+
} = options;
|
|
12
|
+
var processedPages = this.processRawData(pagesInfo);
|
|
13
|
+
return this.generateTreeText(processedPages, focusedPageId);
|
|
14
|
+
}
|
|
15
|
+
static processRawData(rawData) {
|
|
16
|
+
// 如果 rawData 是数组
|
|
17
|
+
if (Array.isArray(rawData)) {
|
|
18
|
+
var allPages = [];
|
|
19
|
+
rawData.forEach(canvas => {
|
|
20
|
+
if (canvas.pageAry && Array.isArray(canvas.pageAry)) {
|
|
21
|
+
// 多画布
|
|
22
|
+
allPages.push(...canvas.pageAry.map(page => ({
|
|
23
|
+
id: page.id,
|
|
24
|
+
title: page.title,
|
|
25
|
+
type: page.type,
|
|
26
|
+
componentType: page.componentType || undefined,
|
|
27
|
+
children: page.children || []
|
|
28
|
+
})));
|
|
29
|
+
} else if (canvas.id) {
|
|
30
|
+
allPages.push(_objectSpread2({}, canvas));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return allPages;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 如果不是数组
|
|
37
|
+
if (!(rawData !== null && rawData !== void 0 && rawData.pageAry)) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return rawData.pageAry.map(page => ({
|
|
41
|
+
id: page.id,
|
|
42
|
+
title: page.title,
|
|
43
|
+
type: page.type,
|
|
44
|
+
componentType: page.componentType || undefined,
|
|
45
|
+
children: page.children || []
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
static generateTreeText(pages, focusedPageId) {
|
|
49
|
+
var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
50
|
+
var result = '';
|
|
51
|
+
var indent = ' '.repeat(level);
|
|
52
|
+
pages.forEach(page => {
|
|
53
|
+
var line = "".concat(indent, "- ").concat(page.title, "[id=").concat(page.id, "]");
|
|
54
|
+
if (page.componentType) {
|
|
55
|
+
line += "(".concat(page.componentType, ")");
|
|
56
|
+
}
|
|
57
|
+
if (focusedPageId && page.id === focusedPageId) {
|
|
58
|
+
line += ' 【当前聚焦】';
|
|
59
|
+
}
|
|
60
|
+
result += line + '\n';
|
|
61
|
+
if (page.children && page.children.length > 0) {
|
|
62
|
+
result += this.generateTreeText(page.children, focusedPageId, level + 1);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { PageTreeGenerator };
|
|
70
|
+
//# sourceMappingURL=page-tree-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-tree-generator.js","sources":["../../../src/agents/workspace/page-tree-generator.ts"],"sourcesContent":["interface PageInfo {\n id: string;\n title: string;\n type: string;\n componentType?: string;\n children?: PageInfo[];\n}\n\ninterface PagesData {\n pageAry: PageInfo[];\n}\n\n\n/**\n * 页面树生成器\n */\nexport class PageTreeGenerator {\n static generate(pagesInfo: PagesData | PagesData[], options: { pageId?: string } = {}): string {\n const { pageId: focusedPageId } = options;\n\n const processedPages = this.processRawData(pagesInfo);\n return this.generateTreeText(processedPages, focusedPageId);\n }\n\n private static processRawData(rawData: PagesData | PagesData[]): PageInfo[] {\n // 如果 rawData 是数组\n if (Array.isArray(rawData)) {\n const allPages: PageInfo[] = [];\n rawData.forEach((canvas: any) => {\n if (canvas.pageAry && Array.isArray(canvas.pageAry)) { // 多画布\n allPages.push(...canvas.pageAry.map((page: any) => ({\n id: page.id,\n title: page.title,\n type: page.type,\n componentType: page.componentType || undefined,\n children: page.children || []\n })));\n } else if (canvas.id) {\n allPages.push({ ...canvas })\n }\n });\n return allPages;\n }\n\n // 如果不是数组\n if (!rawData?.pageAry) {\n return [];\n }\n\n return rawData.pageAry.map((page: PageInfo) => ({\n id: page.id,\n title: page.title,\n type: page.type,\n componentType: page.componentType || undefined,\n children: page.children || []\n }));\n }\n\n private static generateTreeText(pages: PageInfo[], focusedPageId?: string, level = 0): string {\n let result = '';\n const indent = ' '.repeat(level);\n\n pages.forEach(page => {\n let line = `${indent}- ${page.title}[id=${page.id}]`;\n\n if (page.componentType) {\n line += `(${page.componentType})`;\n }\n\n if (focusedPageId && page.id === focusedPageId) {\n line += ' 【当前聚焦】';\n }\n\n result += line + '\\n';\n\n if (page.children && page.children.length > 0) {\n result += this.generateTreeText(page.children, focusedPageId, level + 1);\n }\n });\n\n return result;\n }\n}"],"names":["PageTreeGenerator","generate","pagesInfo","options","arguments","length","undefined","pageId","focusedPageId","processedPages","processRawData","generateTreeText","rawData","Array","isArray","allPages","forEach","canvas","pageAry","push","map","page","id","title","type","componentType","children","_objectSpread","pages","level","result","indent","repeat","line","concat"],"mappings":"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"}
|