@tmagic/editor 1.8.0-beta.1 → 1.8.0-beta.10

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 (232) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +31 -5
  2. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +21 -113
  3. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +7 -1
  4. package/dist/es/components/CompareForm.js +5 -0
  5. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +196 -0
  6. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +2 -2
  8. package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +1 -1
  11. package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +7 -7
  15. package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +1 -1
  16. package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/es/editorProps.js +2 -0
  18. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +20 -4
  19. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +3 -6
  20. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +19 -3
  21. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +42 -8
  22. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +14 -6
  24. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +3 -3
  25. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +41 -16
  26. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +2 -2
  27. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +9 -5
  28. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +40 -19
  29. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +17 -9
  30. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +4 -2
  31. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +1 -1
  32. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +59 -12
  33. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +12 -7
  34. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  35. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +28 -6
  38. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +1 -1
  40. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +1 -1
  41. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +1 -1
  42. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +1 -1
  43. package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
  44. package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
  45. package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
  46. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
  47. package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
  48. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +1 -1
  49. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +1 -1
  50. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +1 -1
  51. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +1 -1
  52. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +1 -1
  53. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +1 -1
  54. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +1 -1
  55. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +1 -1
  56. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +1 -1
  57. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
  58. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
  59. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
  60. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +1 -1
  61. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +1 -1
  62. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +1 -1
  63. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +1 -1
  64. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +1 -1
  65. package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +1 -1
  66. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +9 -6
  67. package/dist/es/hooks/use-code-block-edit.js +7 -4
  68. package/dist/es/hooks/use-data-source-edit.js +5 -2
  69. package/dist/es/hooks/use-stage.js +22 -10
  70. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  71. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  72. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  73. package/dist/es/index.js +14 -3
  74. package/dist/es/initService.js +7 -7
  75. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +7 -6
  77. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +14 -9
  78. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +12 -4
  79. package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  80. package/dist/es/layouts/history-list/Bucket.js +5 -0
  81. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +71 -0
  82. package/dist/es/layouts/history-list/BucketTab.js +5 -0
  83. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +62 -0
  84. package/dist/es/layouts/history-list/GroupRow.js +5 -0
  85. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +269 -0
  86. package/dist/es/layouts/history-list/HistoryDiffDialog.js +5 -0
  87. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +287 -0
  88. package/dist/es/layouts/history-list/HistoryListPanel.js +5 -0
  89. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +327 -0
  90. package/dist/es/layouts/history-list/InitialRow.js +5 -0
  91. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +83 -0
  92. package/dist/es/layouts/history-list/PageTab.js +5 -0
  93. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +95 -0
  94. package/dist/es/layouts/history-list/composables.js +184 -0
  95. package/dist/es/layouts/history-list/useHistoryList.js +56 -0
  96. package/dist/es/layouts/history-list/useHistoryRevert.js +306 -0
  97. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +5 -3
  99. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
  100. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
  101. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
  102. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +6 -2
  104. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +2 -2
  105. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +8 -4
  106. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +4 -4
  107. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +2 -2
  108. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +1 -1
  109. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +19 -6
  111. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
  112. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +25 -3
  113. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +1 -1
  114. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +6 -6
  115. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +2 -2
  116. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +1 -1
  117. package/dist/es/layouts/sidebar/layer/use-node-status.js +1 -1
  118. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
  119. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
  120. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  121. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +2 -2
  122. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
  123. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +9 -9
  124. package/dist/es/services/BaseService.js +31 -68
  125. package/dist/es/services/codeBlock.js +286 -8
  126. package/dist/es/services/componentList.js +2 -2
  127. package/dist/es/services/dataSource.js +287 -8
  128. package/dist/es/services/dep.js +21 -9
  129. package/dist/es/services/editor.js +655 -194
  130. package/dist/es/services/events.js +2 -2
  131. package/dist/es/services/history.js +390 -47
  132. package/dist/es/services/keybinding.js +5 -5
  133. package/dist/es/services/props.js +8 -8
  134. package/dist/es/services/stageOverlay.js +2 -2
  135. package/dist/es/services/storage.js +2 -2
  136. package/dist/es/services/ui.js +5 -2
  137. package/dist/es/style.css +456 -8
  138. package/dist/es/utils/code-block.js +122 -0
  139. package/dist/es/utils/content-menu.js +19 -12
  140. package/dist/es/utils/data-source/index.js +2 -0
  141. package/dist/es/utils/dep/worker.js +1 -1
  142. package/dist/es/utils/editor.js +105 -51
  143. package/dist/es/utils/history.js +220 -0
  144. package/dist/es/utils/indexed-db.js +86 -0
  145. package/dist/es/utils/undo-redo.js +80 -1
  146. package/dist/style.css +456 -8
  147. package/dist/tmagic-editor.umd.cjs +10135 -5646
  148. package/package.json +8 -8
  149. package/src/Editor.vue +25 -1
  150. package/src/components/CodeBlockEditor.vue +20 -109
  151. package/src/components/CodeParams.vue +6 -0
  152. package/src/components/CompareForm.vue +277 -0
  153. package/src/components/ToolButton.vue +2 -2
  154. package/src/editorProps.ts +9 -0
  155. package/src/fields/Code.vue +19 -3
  156. package/src/fields/CodeLink.vue +2 -5
  157. package/src/fields/CodeSelect.vue +17 -1
  158. package/src/fields/CodeSelectCol.vue +37 -3
  159. package/src/fields/DataSourceFieldSelect/FieldSelect.vue +23 -3
  160. package/src/fields/DataSourceFieldSelect/Index.vue +2 -2
  161. package/src/fields/DataSourceFields.vue +48 -10
  162. package/src/fields/DataSourceInput.vue +3 -3
  163. package/src/fields/DataSourceMethodSelect.vue +12 -4
  164. package/src/fields/DataSourceMethods.vue +55 -24
  165. package/src/fields/DataSourceMocks.vue +13 -3
  166. package/src/fields/DataSourceSelect.vue +4 -1
  167. package/src/fields/EventSelect.vue +57 -8
  168. package/src/fields/KeyValue.vue +17 -4
  169. package/src/fields/StyleSetter/components/Border.vue +15 -6
  170. package/src/fields/UISelect.vue +5 -2
  171. package/src/hooks/use-code-block-edit.ts +9 -5
  172. package/src/hooks/use-data-source-edit.ts +2 -2
  173. package/src/hooks/use-stage.ts +26 -9
  174. package/src/index.ts +8 -0
  175. package/src/initService.ts +1 -1
  176. package/src/layouts/CodeEditor.vue +17 -5
  177. package/src/layouts/Framework.vue +11 -6
  178. package/src/layouts/NavMenu.vue +12 -3
  179. package/src/layouts/history-list/Bucket.vue +91 -0
  180. package/src/layouts/history-list/BucketTab.vue +72 -0
  181. package/src/layouts/history-list/GroupRow.vue +304 -0
  182. package/src/layouts/history-list/HistoryDiffDialog.vue +273 -0
  183. package/src/layouts/history-list/HistoryListPanel.vue +367 -0
  184. package/src/layouts/history-list/InitialRow.vue +71 -0
  185. package/src/layouts/history-list/PageTab.vue +118 -0
  186. package/src/layouts/history-list/composables.ts +309 -0
  187. package/src/layouts/history-list/useHistoryList.ts +60 -0
  188. package/src/layouts/history-list/useHistoryRevert.ts +405 -0
  189. package/src/layouts/page-bar/PageBar.vue +4 -2
  190. package/src/layouts/props-panel/PropsPanel.vue +5 -1
  191. package/src/layouts/sidebar/ComponentListPanel.vue +9 -5
  192. package/src/layouts/sidebar/Sidebar.vue +8 -3
  193. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  194. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
  195. package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
  196. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +31 -2
  197. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +27 -2
  198. package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
  199. package/src/layouts/sidebar/layer/LayerMenu.vue +19 -11
  200. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  201. package/src/layouts/sidebar/layer/use-node-status.ts +9 -6
  202. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  203. package/src/layouts/workspace/viewer/ViewerMenu.vue +8 -8
  204. package/src/services/BaseService.ts +35 -86
  205. package/src/services/codeBlock.ts +361 -5
  206. package/src/services/dataSource.ts +336 -6
  207. package/src/services/dep.ts +32 -9
  208. package/src/services/editor.ts +834 -194
  209. package/src/services/history.ts +509 -49
  210. package/src/services/keybinding.ts +3 -3
  211. package/src/services/props.ts +2 -2
  212. package/src/services/ui.ts +7 -0
  213. package/src/theme/history-list-panel.scss +557 -0
  214. package/src/theme/page-bar.scss +0 -4
  215. package/src/theme/props-panel.scss +3 -3
  216. package/src/theme/style-setter/border.scss +4 -1
  217. package/src/theme/theme.scss +1 -0
  218. package/src/type.ts +594 -31
  219. package/src/utils/code-block.ts +150 -0
  220. package/src/utils/content-menu.ts +25 -13
  221. package/src/utils/data-source/index.ts +2 -0
  222. package/src/utils/dep/worker.ts +5 -3
  223. package/src/utils/editor.ts +166 -60
  224. package/src/utils/history.ts +286 -0
  225. package/src/utils/index.ts +3 -0
  226. package/src/utils/indexed-db.ts +122 -0
  227. package/src/utils/undo-redo.ts +111 -0
  228. package/types/index.d.ts +3171 -889
  229. package/dist/es/utils/compose.js +0 -44
  230. package/dist/es/utils/editor-history.js +0 -100
  231. package/src/utils/compose.ts +0 -52
  232. package/src/utils/editor-history.ts +0 -138
@@ -18,17 +18,18 @@ import keybinding_default from "./services/keybinding.js";
18
18
  import stageOverlay_default from "./services/stageOverlay.js";
19
19
  import { defaultEditorProps } from "./editorProps.js";
20
20
  import { initServiceEvents, initServiceState } from "./initService.js";
21
- import { createBlock, createVNode, defineComponent, mergeDefaults, openBlock, provide, renderSlot, unref, withCtx } from "vue";
21
+ import { createBlock, createVNode, defineComponent, mergeDefaults, openBlock, provide, ref, renderSlot, unref, withCtx } from "vue";
22
22
  import { EventEmitter } from "events";
23
23
  //#region packages/editor/src/Editor.vue?vue&type=script&setup=true&lang.ts
24
- var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
24
+ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
25
25
  name: "MEditor",
26
26
  __name: "Editor",
27
- props: /* @__PURE__ */ mergeDefaults({
27
+ props: /*@__PURE__*/ mergeDefaults({
28
28
  modelValue: {},
29
29
  componentGroupList: {},
30
30
  datasourceList: {},
31
31
  sidebar: {},
32
+ hideSidebar: { type: Boolean },
32
33
  menu: {},
33
34
  layerContentMenu: {},
34
35
  stageContentMenu: {},
@@ -53,6 +54,7 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
53
54
  disabledMultiSelect: { type: Boolean },
54
55
  alwaysMultiSelect: { type: Boolean },
55
56
  disabledPageFragment: { type: Boolean },
57
+ disabledFlashTip: { type: Boolean },
56
58
  disabledStageOverlay: { type: Boolean },
57
59
  disabledShowSrc: { type: Boolean },
58
60
  disabledDataSource: { type: Boolean },
@@ -69,6 +71,7 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
69
71
  beforeDblclick: { type: Function },
70
72
  beforeLayerNodeDblclick: { type: Function },
71
73
  extendFormState: { type: Function },
74
+ historyListExtraTabs: {},
72
75
  pageBarSortOptions: {},
73
76
  pageFilterFunction: { type: Function }
74
77
  }, defaultEditorProps),
@@ -118,17 +121,38 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
118
121
  guidesOptions: props.guidesOptions,
119
122
  disabledMultiSelect: props.disabledMultiSelect,
120
123
  alwaysMultiSelect: props.alwaysMultiSelect,
124
+ disabledFlashTip: props.disabledFlashTip,
121
125
  beforeDblclick: props.beforeDblclick
122
126
  };
123
127
  stageOverlay_default.set("stageOptions", stageOptions);
128
+ const propsPanelRef = ref(null);
124
129
  provide("services", services);
125
130
  provide("codeOptions", props.codeOptions);
126
131
  provide("stageOptions", stageOptions);
132
+ /**
133
+ * 把顶层 `extendFormState` 提供给非 PropsPanel 链路上的组件使用(例如历史差异对话框 HistoryDiffDialog
134
+ * 内部的 CompareForm)。这样所有依赖业务上下文的表单 filterFunction 都能拿到一致的扩展状态,
135
+ * 与 PropsPanel 通过 `:extend-state` 显式传入的方式保持等价。
136
+ */
137
+ provide("extendFormState", props.extendFormState);
138
+ /**
139
+ * 提供 PropsPanel 主属性表单的 formState getter,供历史差异弹窗复用,
140
+ * 让 CompareForm 与 PropsPanel 的 filterFunction 上下文保持一致。
141
+ */
142
+ provide("getPropsPanelFormState", () => propsPanelRef.value?.configForm?.formState);
143
+ /**
144
+ * 把历史记录面板的自定义扩展 tab 提供给深层的 HistoryListPanel(它挂在 NavMenu 中,
145
+ * 以 markRaw component 形式渲染,无法直接通过 props 透传)。业务方可借此在历史记录
146
+ * 面板内追加自定义模块的历史 tab。
147
+ */
148
+ provide("historyListExtraTabs", props.historyListExtraTabs);
127
149
  provide("eventBus", new EventEmitter());
128
150
  const propsPanelMountedHandler = (e) => {
151
+ propsPanelRef.value = e;
129
152
  emit("props-panel-mounted", e);
130
153
  };
131
154
  const propsPanelUnmountedHandler = () => {
155
+ propsPanelRef.value = null;
132
156
  emit("props-panel-unmounted");
133
157
  };
134
158
  const propsPanelSubmitErrorHandler = (e) => {
@@ -145,7 +169,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
145
169
  return openBlock(), createBlock(Framework_default, {
146
170
  "disabled-page-fragment": __props.disabledPageFragment,
147
171
  "page-bar-sort-options": __props.pageBarSortOptions,
148
- "page-filter-function": __props.pageFilterFunction
172
+ "page-filter-function": __props.pageFilterFunction,
173
+ "hide-sidebar": __props.hideSidebar
149
174
  }, {
150
175
  header: withCtx(() => [renderSlot(_ctx.$slots, "header")]),
151
176
  nav: withCtx(() => [renderSlot(_ctx.$slots, "nav", { editorService: unref(editor_default) }, () => [createVNode(NavMenu_default, { data: __props.menu }, null, 8, ["data"])])]),
@@ -225,7 +250,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
225
250
  }, 8, [
226
251
  "disabled-page-fragment",
227
252
  "page-bar-sort-options",
228
- "page-filter-function"
253
+ "page-filter-function",
254
+ "hide-sidebar"
229
255
  ]);
230
256
  };
231
257
  }
@@ -3,9 +3,10 @@ import { useServices } from "../hooks/use-services.js";
3
3
  import { useWindowRect } from "../hooks/use-window-rect.js";
4
4
  import { useEditorContentHeight } from "../hooks/use-editor-content-height.js";
5
5
  import { useNextFloatBoxPosition } from "../hooks/use-next-float-box-position.js";
6
+ import { getCodeBlockFormConfig } from "../utils/code-block.js";
6
7
  import CodeEditor_default from "../layouts/CodeEditor.js";
7
8
  import FloatingBox_default from "./FloatingBox.js";
8
- import { MFormBox, defineFormConfig, defineFormItem } from "@tmagic/form";
9
+ import { MFormBox } from "@tmagic/form";
9
10
  import { TMagicButton, TMagicDialog, TMagicTag, tMagicMessage, tMagicMessageBox } from "@tmagic/design";
10
11
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, nextTick, openBlock, ref, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
11
12
  //#region packages/editor/src/components/CodeBlockEditor.vue?vue&type=script&setup=true&lang.ts
@@ -16,10 +17,10 @@ var _hoisted_1 = { style: {
16
17
  var _hoisted_2 = { style: { "flex": "1" } };
17
18
  var _hoisted_3 = { style: { "flex": "1" } };
18
19
  var _hoisted_4 = { class: "dialog-footer" };
19
- var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
+ var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
21
  name: "MEditorCodeBlockEditor",
21
22
  __name: "CodeBlockEditor",
22
- props: /* @__PURE__ */ mergeModels({
23
+ props: /*@__PURE__*/ mergeModels({
23
24
  content: {},
24
25
  disabled: { type: Boolean },
25
26
  isDataSource: { type: Boolean },
@@ -33,7 +34,7 @@ var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
33
34
  },
34
35
  "visibleModifiers": {}
35
36
  }),
36
- emits: /* @__PURE__ */ mergeModels([
37
+ emits: /*@__PURE__*/ mergeModels([
37
38
  "submit",
38
39
  "close",
39
40
  "open"
@@ -53,114 +54,21 @@ var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
53
54
  formBox.value.form.values.content = magicVsEditorRef.value.getEditorValue();
54
55
  difVisible.value = false;
55
56
  };
56
- const defaultParamColConfig = defineFormItem({
57
- type: "row",
58
- label: "参数类型",
59
- items: [{
60
- text: "参数类型",
61
- labelWidth: "70px",
62
- type: "select",
63
- name: "type",
64
- options: [
65
- {
66
- text: "数字",
67
- label: "数字",
68
- value: "number"
69
- },
70
- {
71
- text: "字符串",
72
- label: "字符串",
73
- value: "text"
74
- },
75
- {
76
- text: "组件",
77
- label: "组件",
78
- value: "ui-select"
79
- }
80
- ]
81
- }]
82
- });
83
- const functionConfig = computed(() => defineFormConfig([
84
- {
85
- text: "名称",
86
- name: "name",
87
- rules: [{
88
- required: true,
89
- message: "请输入名称",
90
- trigger: "blur"
91
- }]
92
- },
93
- {
94
- text: "描述",
95
- name: "desc"
96
- },
97
- {
98
- text: "执行时机",
99
- name: "timing",
100
- type: "select",
101
- options: () => {
102
- const options = [{
103
- text: "初始化前",
104
- value: "beforeInit"
105
- }, {
106
- text: "初始化后",
107
- value: "afterInit"
108
- }];
109
- if (props.dataSourceType !== "base") {
110
- options.push({
111
- text: "请求前",
112
- value: "beforeRequest"
113
- });
114
- options.push({
115
- text: "请求后",
116
- value: "afterRequest"
117
- });
118
- }
119
- return options;
120
- },
121
- display: () => props.isDataSource
122
- },
123
- {
124
- type: "table",
125
- border: true,
126
- text: "参数",
127
- enableFullscreen: false,
128
- enableToggleMode: false,
129
- name: "params",
130
- dropSort: false,
131
- items: [
132
- {
133
- type: "text",
134
- label: "参数名",
135
- name: "name"
136
- },
137
- {
138
- type: "text",
139
- label: "描述",
140
- name: "extra"
141
- },
142
- codeBlockService.getParamsColConfig() || defaultParamColConfig
143
- ]
144
- },
145
- {
146
- name: "content",
147
- type: "vs-code",
148
- options: inject("codeOptions", {}),
149
- autosize: {
150
- minRows: 10,
151
- maxRows: 30
152
- },
153
- onChange: (_formState, code) => {
154
- try {
155
- getEditorConfig("parseDSL")(code);
156
- return code;
157
- } catch (error) {
158
- tMagicMessage.error(error.message);
159
- throw error;
160
- }
161
- }
162
- }
163
- ]));
57
+ const codeOptions = inject("codeOptions", {});
58
+ /**
59
+ * 代码块编辑表单配置。统一委托到 utils/code-block 的 `getCodeBlockFormConfig`,
60
+ * 与 CompareForm 等其它使用方共享同一份 schema,避免双份维护。
61
+ *
62
+ * 这里以 computed 包裹是为了让 `props.isDataSource` / `props.dataSourceType` 变化时
63
+ * "执行时机"字段的可见性与可选项实时刷新。
64
+ */
65
+ const functionConfig = computed(() => getCodeBlockFormConfig({
66
+ paramColConfig: codeBlockService.getParamsColConfig(),
67
+ isDataSource: () => Boolean(props.isDataSource),
68
+ dataSourceType: () => props.dataSourceType,
69
+ codeOptions,
70
+ editable: true
71
+ }));
164
72
  const parseContent = (content) => {
165
73
  if (typeof content === "string") return getEditorConfig("parseDSL")(content);
166
74
  return content;
@@ -304,7 +212,7 @@ var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
304
212
  })])]),
305
213
  default: withCtx(() => [createElementVNode("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(unref(TMagicTag), {
306
214
  size: "small",
307
- type: "info"
215
+ type: "danger"
308
216
  }, {
309
217
  default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("修改前", -1)])]),
310
218
  _: 1
@@ -2,11 +2,13 @@ import { error } from "../utils/logger.js";
2
2
  import { MForm } from "@tmagic/form";
3
3
  import { computed, createBlock, defineComponent, openBlock, unref, useTemplateRef } from "vue";
4
4
  //#region packages/editor/src/components/CodeParams.vue?vue&type=script&setup=true&lang.ts
5
- var CodeParams_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var CodeParams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MEditorCodeParams",
7
7
  __name: "CodeParams",
8
8
  props: {
9
9
  model: {},
10
+ lastValues: {},
11
+ isCompare: { type: Boolean },
10
12
  size: {},
11
13
  disabled: { type: Boolean },
12
14
  name: {},
@@ -56,6 +58,8 @@ var CodeParams_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
56
58
  ref: "form",
57
59
  config: codeParamsConfig.value,
58
60
  "init-values": __props.model,
61
+ "last-values": __props.lastValues,
62
+ "is-compare": __props.isCompare,
59
63
  disabled: __props.disabled,
60
64
  size: __props.size,
61
65
  "watch-props": false,
@@ -63,6 +67,8 @@ var CodeParams_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
63
67
  }, null, 8, [
64
68
  "config",
65
69
  "init-values",
70
+ "last-values",
71
+ "is-compare",
66
72
  "disabled",
67
73
  "size"
68
74
  ]);
@@ -0,0 +1,5 @@
1
+ import CompareForm_vue_vue_type_script_setup_true_lang_default from "./CompareForm.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/components/CompareForm.vue
3
+ var CompareForm_default = CompareForm_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { CompareForm_default as default };
@@ -0,0 +1,196 @@
1
+ import { getCodeBlockFormConfig } from "../utils/code-block.js";
2
+ import { MForm } from "@tmagic/form";
3
+ import { HookType } from "@tmagic/core";
4
+ import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, inject, normalizeStyle, openBlock, provide, ref, unref, useTemplateRef, watch, watchEffect } from "vue";
5
+ import { isEqual } from "lodash-es";
6
+ //#region packages/editor/src/components/CompareForm.vue?vue&type=script&setup=true&lang.ts
7
+ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
+ name: "MEditorCompareForm",
9
+ __name: "CompareForm",
10
+ props: {
11
+ value: {},
12
+ lastValue: {},
13
+ type: {},
14
+ category: { default: "node" },
15
+ dataSourceType: {},
16
+ labelWidth: { default: "120px" },
17
+ height: {},
18
+ extendState: {
19
+ type: Function,
20
+ default: (state) => state
21
+ },
22
+ baseFormState: {},
23
+ selfDiffFieldTypes: {},
24
+ loadConfig: {},
25
+ services: {}
26
+ },
27
+ setup(__props, { expose: __expose }) {
28
+ const props = __props;
29
+ provide("services", props.services);
30
+ const config = ref([]);
31
+ /** vs-code 编辑器的 monaco 配置项,沿用 Editor 顶层 provide('codeOptions', ...) 的注入。 */
32
+ const codeOptions = inject("codeOptions", {});
33
+ /** 将代码块的 content 字段统一成字符串,便于在表单/对比中展示 */
34
+ const normalizeCodeBlockValue = (v) => {
35
+ if (!v) return {};
36
+ const next = { ...v };
37
+ if (next.content && typeof next.content !== "string") try {
38
+ next.content = next.content.toString();
39
+ } catch {
40
+ next.content = "";
41
+ }
42
+ return next;
43
+ };
44
+ const currentValues = computed(() => {
45
+ if (props.category === "code-block") return normalizeCodeBlockValue(props.value);
46
+ return props.value || {};
47
+ });
48
+ const lastValuesProcessed = computed(() => {
49
+ if (props.category === "code-block") return normalizeCodeBlockValue(props.lastValue);
50
+ return props.lastValue || {};
51
+ });
52
+ /**
53
+ * 外层包裹层的样式:当传入 `height` 时启用固定高度 + 内部滚动,
54
+ * 这样滚动条会出现在 CompareForm 内部,避免父容器(如 Dialog)自身也产生滚动。
55
+ */
56
+ const wrapperStyle = computed(() => {
57
+ if (!props.height) return void 0;
58
+ return {
59
+ height: props.height,
60
+ overflow: "auto"
61
+ };
62
+ });
63
+ /**
64
+ * `code-select` 字段在历史数据中存在两种"语义为空"的形态:
65
+ * - 字符串 `''`(旧数据 / 用户从未配置过钩子);
66
+ * - `{ hookType: HookType.CODE, hookData: [] }`(CodeSelect.vue 在挂载时
67
+ * 写入的默认结构,参见 packages/editor/src/fields/CodeSelect.vue 中
68
+ * `props.model[props.name] = { hookType: HookType.CODE, hookData: [] }`)。
69
+ *
70
+ * 直接 `isEqual` 会把两者判为不等,从而在历史对比里对每个未配置过钩子的组件
71
+ * 都展示一份"差异",体验很糟糕。这里把它们视为相等,跳过对比。
72
+ *
73
+ * 其它类型字段沿用 MForm/Container 的默认 `!isEqual` 判断逻辑。
74
+ */
75
+ const isEmptyCodeSelectValue = (v) => {
76
+ if (v === "" || v === void 0 || v === null) return true;
77
+ if (Array.isArray(v) && v.length === 0) return true;
78
+ return typeof v === "object" && v.hookType === HookType.CODE && Array.isArray(v.hookData) && v.hookData.length === 0;
79
+ };
80
+ const showDiff = ({ curValue, lastValue, config }) => {
81
+ if (config?.type === "code-select") {
82
+ if (isEmptyCodeSelectValue(curValue) && isEmptyCodeSelectValue(lastValue)) return false;
83
+ }
84
+ return !isEqual(curValue, lastValue);
85
+ };
86
+ const removeStyleDisplayConfig = (formConfig) => formConfig.map((item) => {
87
+ if (!("type" in item)) return item;
88
+ if (item?.type !== "tab" || !Array.isArray(item.items)) return item;
89
+ return {
90
+ ...item,
91
+ items: item.items.map((tabPane) => {
92
+ if (tabPane?.title !== "样式" || !Array.isArray(tabPane.items)) return tabPane;
93
+ return {
94
+ ...tabPane,
95
+ display: true
96
+ };
97
+ })
98
+ };
99
+ });
100
+ const mergedExtendState = (state) => {
101
+ return props.extendState(props.baseFormState || state);
102
+ };
103
+ /**
104
+ * 内置的默认 FormConfig 加载逻辑:按 `category` 从对应 service / 工具取配置。
105
+ * 作为 ctx.defaultLoadConfig 透传给自定义 `loadConfig`,方便复用与二次加工。
106
+ */
107
+ const defaultLoadConfig = async () => {
108
+ if (!props.services) return [];
109
+ switch (props.category) {
110
+ case "node":
111
+ if (!props.type) return [];
112
+ return removeStyleDisplayConfig(await props.services.propsService.getPropsConfig(props.type, { node: props.value }));
113
+ case "data-source": return props.services.dataSourceService.getFormConfig(props.type || "base").map((item) => "type" in item && item.type === "tab" ? {
114
+ ...item,
115
+ active: "fields"
116
+ } : item);
117
+ case "code-block": return getCodeBlockFormConfig({
118
+ paramColConfig: props.services.codeBlockService.getParamsColConfig(),
119
+ isDataSource: () => Boolean(props.dataSourceType),
120
+ dataSourceType: () => props.dataSourceType,
121
+ codeOptions,
122
+ editable: false
123
+ });
124
+ default: return [];
125
+ }
126
+ };
127
+ const loadConfig = async () => {
128
+ if (props.loadConfig) {
129
+ config.value = await props.loadConfig({
130
+ category: props.category,
131
+ type: props.type,
132
+ dataSourceType: props.dataSourceType,
133
+ defaultLoadConfig
134
+ });
135
+ return;
136
+ }
137
+ config.value = await defaultLoadConfig();
138
+ };
139
+ watch([
140
+ () => props.category,
141
+ () => props.type,
142
+ () => props.dataSourceType,
143
+ () => props.loadConfig
144
+ ], () => {
145
+ loadConfig();
146
+ }, { immediate: true });
147
+ const formRef = useTemplateRef("form");
148
+ /**
149
+ * 把 services / stage 注入 MForm 的 formState,避免 propsService 注入的表单配置中
150
+ * 形如 `display: ({ services }) => services.uiService.get(...)` 的 filterFunction
151
+ * 在执行时拿不到 `formState.services` 而报错。
152
+ *
153
+ * 与 props-panel/FormPanel.vue 中的注入方式保持一致:
154
+ * - services:整个 useServices() 返回的服务集合;
155
+ * - stage:当前 editorService.get('stage') 的最新值。
156
+ */
157
+ watchEffect(() => {
158
+ if (formRef.value && props.services) {
159
+ formRef.value.formState.stage = props.services.editorService.get("stage");
160
+ formRef.value.formState.services = props.services;
161
+ }
162
+ });
163
+ __expose({
164
+ form: formRef,
165
+ config,
166
+ reload: loadConfig
167
+ });
168
+ return (_ctx, _cache) => {
169
+ return openBlock(), createElementBlock("div", {
170
+ class: "m-editor-compare-form-wrapper",
171
+ style: normalizeStyle(wrapperStyle.value)
172
+ }, [config.value.length ? (openBlock(), createBlock(unref(MForm), {
173
+ key: 0,
174
+ ref: "form",
175
+ class: "m-editor-compare-form",
176
+ config: config.value,
177
+ "init-values": currentValues.value,
178
+ "last-values": lastValuesProcessed.value,
179
+ "is-compare": true,
180
+ disabled: true,
181
+ "label-width": __props.labelWidth,
182
+ "extend-state": mergedExtendState,
183
+ "show-diff": showDiff,
184
+ "self-diff-field-types": __props.selfDiffFieldTypes
185
+ }, null, 8, [
186
+ "config",
187
+ "init-values",
188
+ "last-values",
189
+ "label-width",
190
+ "self-diff-field-types"
191
+ ])) : createCommentVNode("v-if", true)], 4);
192
+ };
193
+ }
194
+ });
195
+ //#endregion
196
+ export { CompareForm_vue_vue_type_script_setup_true_lang_default as default };
@@ -2,7 +2,7 @@ import ToolButton_default from "./ToolButton.js";
2
2
  import { useZIndex } from "@tmagic/design";
3
3
  import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveComponent, useTemplateRef, vShow, withCtx, withDirectives, withModifiers } from "vue";
4
4
  //#region packages/editor/src/components/ContentMenu.vue?vue&type=script&setup=true&lang.ts
5
- var ContentMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var ContentMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MEditorContentMenu",
7
7
  __name: "ContentMenu",
8
8
  props: {
@@ -9,9 +9,9 @@ var _hoisted_1 = {
9
9
  ref: "title",
10
10
  class: "m-editor-float-box-title"
11
11
  };
12
- var FloatingBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  __name: "FloatingBox",
14
- props: /* @__PURE__ */ mergeModels({
14
+ props: /*@__PURE__*/ mergeModels({
15
15
  position: { default: () => ({
16
16
  left: 0,
17
17
  top: 0
@@ -3,7 +3,7 @@ import { createBlock, createElementBlock, createElementVNode, createVNode, defin
3
3
  import { Edit } from "@element-plus/icons-vue";
4
4
  //#region packages/editor/src/components/Icon.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = ["src"];
6
- var Icon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
6
+ var Icon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
7
7
  name: "MEditorIcon",
8
8
  __name: "Icon",
9
9
  props: { icon: {} },
@@ -1,7 +1,7 @@
1
1
  import { useGetSo } from "../hooks/use-getso.js";
2
2
  import { createElementBlock, defineComponent, normalizeClass, openBlock, renderSlot, unref, useTemplateRef } from "vue";
3
3
  //#region packages/editor/src/components/Resizer.vue?vue&type=script&setup=true&lang.ts
4
- var Resizer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var Resizer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  name: "MEditorResizer",
6
6
  __name: "Resizer",
7
7
  emits: ["change"],
@@ -1,7 +1,7 @@
1
1
  import { computed, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, useTemplateRef } from "vue";
2
2
  import Gesto from "gesto";
3
3
  //#region packages/editor/src/components/ScrollBar.vue?vue&type=script&setup=true&lang.ts
4
- var ScrollBar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var ScrollBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  name: "MEditorScrollBar",
6
6
  __name: "ScrollBar",
7
7
  props: {
@@ -7,7 +7,7 @@ var _hoisted_1 = {
7
7
  class: "m-editor-scroll-viewer-container",
8
8
  ref: "container"
9
9
  };
10
- var ScrollViewer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var ScrollViewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  name: "MEditorScrollViewer",
12
12
  __name: "ScrollViewer",
13
13
  props: {
@@ -2,7 +2,7 @@ import { TMagicIcon, TMagicInput } from "@tmagic/design";
2
2
  import { createBlock, createVNode, defineComponent, openBlock, ref, unref, withCtx } from "vue";
3
3
  import { Search } from "@element-plus/icons-vue";
4
4
  //#region packages/editor/src/components/SearchInput.vue?vue&type=script&setup=true&lang.ts
5
- var SearchInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var SearchInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MEditorSearchInput",
7
7
  __name: "SearchInput",
8
8
  emits: ["search"],
@@ -1,7 +1,7 @@
1
1
  import Resizer_default from "./Resizer.js";
2
2
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, useTemplateRef, watchEffect } from "vue";
3
3
  //#region packages/editor/src/components/SplitView.vue?vue&type=script&setup=true&lang.ts
4
- var SplitView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var SplitView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  name: "MEditorSplitView",
6
6
  __name: "SplitView",
7
7
  props: {
@@ -9,7 +9,7 @@ var _hoisted_1 = {
9
9
  class: "menu-item-text"
10
10
  };
11
11
  var _hoisted_2 = { class: "el-dropdown-link menubar-menu-button" };
12
- var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var ToolButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  name: "MEditorToolButton",
14
14
  __name: "ToolButton",
15
15
  props: {
@@ -73,11 +73,11 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
73
73
  placement: "bottom-start",
74
74
  content: __props.data.tooltip
75
75
  }, {
76
- default: withCtx(() => [createVNode(unref(TMagicButton), {
76
+ default: withCtx(() => [createVNode(unref(TMagicButton), mergeProps({
77
77
  size: "small",
78
78
  link: "",
79
79
  disabled: disabled.value
80
- }, createSlots({ _: 2 }, [__props.data.icon ? {
80
+ }, __props.data.buttonProps || {}), createSlots({ _: 2 }, [__props.data.icon ? {
81
81
  name: "icon",
82
82
  fn: withCtx(() => [createVNode(Icon_default, { icon: __props.data.icon }, null, 8, ["icon"])]),
83
83
  key: "0"
@@ -85,15 +85,15 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
85
85
  name: "default",
86
86
  fn: withCtx(() => [createTextVNode(toDisplayString(__props.data.text), 1)]),
87
87
  key: "1"
88
- } : void 0]), 1032, ["disabled"])]),
88
+ } : void 0]), 1040, ["disabled"])]),
89
89
  _: 1
90
- }, 8, ["content"])) : (openBlock(), createBlock(unref(TMagicButton), {
90
+ }, 8, ["content"])) : (openBlock(), createBlock(unref(TMagicButton), mergeProps({
91
91
  key: 1,
92
92
  size: "small",
93
93
  link: "",
94
94
  disabled: disabled.value,
95
95
  title: __props.data.text
96
- }, createSlots({ _: 2 }, [__props.data.icon ? {
96
+ }, __props.data.buttonProps || {}), createSlots({ _: 2 }, [__props.data.icon ? {
97
97
  name: "icon",
98
98
  fn: withCtx(() => [createVNode(Icon_default, { icon: __props.data.icon }, null, 8, ["icon"])]),
99
99
  key: "0"
@@ -101,7 +101,7 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
101
101
  name: "default",
102
102
  fn: withCtx(() => [createTextVNode(toDisplayString(__props.data.text), 1)]),
103
103
  key: "1"
104
- } : void 0]), 1032, ["disabled", "title"]))], 64)) : __props.data.type === "dropdown" ? (openBlock(), createBlock(unref(TMagicDropdown), {
104
+ } : void 0]), 1040, ["disabled", "title"]))], 64)) : __props.data.type === "dropdown" ? (openBlock(), createBlock(unref(TMagicDropdown), {
105
105
  key: 3,
106
106
  trigger: "click",
107
107
  disabled: disabled.value,
@@ -5,7 +5,7 @@ var _hoisted_1 = {
5
5
  key: 1,
6
6
  class: "m-editor-tree-empty"
7
7
  };
8
- var Tree_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var Tree_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
9
  name: "MEditorTree",
10
10
  __name: "Tree",
11
11
  props: {
@@ -16,7 +16,7 @@ var _hoisted_4 = {
16
16
  key: 0,
17
17
  class: "m-editor-tree-node-children"
18
18
  };
19
- var TreeNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
19
+ var TreeNode_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
20
  name: "MEditorTreeNode",
21
21
  __name: "TreeNode",
22
22
  props: {