@tmagic/editor 1.8.0-manmanyu.8 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +22 -13
  2. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +10 -5
  3. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +7 -6
  4. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +21 -119
  5. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +21 -5
  6. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +62 -16
  7. package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
  8. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +3 -2
  9. package/dist/es/components/ScrollBar.js +0 -1
  10. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +5 -4
  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 +1 -1
  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/components/ViewForm.js +5 -0
  18. package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +56 -0
  19. package/dist/es/editorProps.js +7 -1
  20. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +1 -1
  22. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +30 -113
  23. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +2 -2
  24. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +7 -19
  25. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +7 -6
  26. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +4 -2
  27. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +12 -4
  28. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +9 -20
  29. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +2 -2
  30. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +5 -3
  31. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +9 -4
  32. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +2 -2
  33. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +10 -110
  34. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +52 -363
  35. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +3 -6
  38. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +4 -35
  40. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +3 -3
  41. package/dist/es/fields/StyleSetter/configs.js +663 -0
  42. package/dist/es/fields/StyleSetter/icons/align-items/Center.js +1 -1
  43. package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +1 -1
  44. package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +1 -1
  45. package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +1 -1
  46. package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +1 -1
  47. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +1 -1
  48. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +1 -1
  49. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +1 -1
  50. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +1 -1
  51. package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
  52. package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
  53. package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
  54. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
  55. package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
  56. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +1 -1
  57. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +1 -1
  58. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +1 -1
  59. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +1 -1
  60. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +1 -1
  61. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +1 -1
  62. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +1 -1
  63. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +1 -1
  64. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +1 -1
  65. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
  66. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
  67. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
  68. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +29 -106
  69. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +8 -11
  70. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +30 -89
  71. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +29 -297
  72. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +29 -82
  73. package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +8 -24
  74. package/dist/es/fields/UISelect.js +0 -1
  75. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/es/fields/configs/codeSelect.js +98 -0
  77. package/dist/es/fields/configs/displayConds.js +158 -0
  78. package/dist/es/fields/configs/eventSelect.js +225 -0
  79. package/dist/es/fields/configs/stickyAddButton.js +21 -0
  80. package/dist/es/fields/headless-validation.js +139 -0
  81. package/dist/es/headless.js +2 -0
  82. package/dist/es/hooks/use-code-block-edit.js +4 -2
  83. package/dist/es/hooks/use-compare-form.js +101 -0
  84. package/dist/es/hooks/use-form-context.js +29 -0
  85. package/dist/es/hooks/use-stage.js +1 -0
  86. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  87. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/dist/es/icons/DatasourceIcon.js +1 -1
  89. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  90. package/dist/es/index.js +17 -9
  91. package/dist/es/initService.js +52 -16
  92. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
  93. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +26 -10
  94. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +11 -8
  95. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +3 -3
  96. package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  97. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +8 -5
  99. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +1 -1
  100. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +26 -10
  101. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +36 -28
  102. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/dist/es/layouts/history-list/composables.js +1 -1
  105. package/dist/es/layouts/history-list/useHistoryList.js +4 -4
  106. package/dist/es/layouts/history-list/useHistoryRevert.js +38 -33
  107. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  108. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +1 -1
  109. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
  111. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
  112. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +50 -20
  113. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +53 -35
  114. package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
  115. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +3 -3
  116. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +21 -36
  117. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +1 -1
  118. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
  119. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +19 -4
  120. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  121. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +9 -4
  122. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
  123. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
  124. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +19 -4
  125. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +3 -3
  126. package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
  127. package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
  128. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
  129. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +6 -4
  130. package/dist/es/layouts/sidebar/layer/use-click.js +3 -3
  131. package/dist/es/layouts/sidebar/layer/use-drag.js +11 -10
  132. package/dist/es/layouts/sidebar/layer/use-node-status.js +2 -2
  133. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
  134. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
  135. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +9 -3
  136. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +55 -9
  137. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
  138. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
  139. package/dist/es/plugin.js +35 -23
  140. package/dist/es/services/codeBlock.js +40 -31
  141. package/dist/es/services/dataSource.js +46 -34
  142. package/dist/es/services/dep.js +162 -41
  143. package/dist/es/services/editor.js +373 -137
  144. package/dist/es/services/events.js +4 -4
  145. package/dist/es/services/history.js +275 -392
  146. package/dist/es/services/keybinding.js +3 -3
  147. package/dist/es/services/props.js +2 -1
  148. package/dist/es/services/storage.js +2 -2
  149. package/dist/es/services/ui.js +7 -2
  150. package/dist/es/style.css +277 -114
  151. package/dist/es/utils/code-block.js +14 -7
  152. package/dist/es/utils/config.js +4 -1
  153. package/dist/es/utils/const.js +2 -2
  154. package/dist/es/utils/content-menu.js +2 -2
  155. package/dist/es/utils/data-source/index.js +34 -12
  156. package/dist/es/utils/dep/collect-worker-client.js +154 -0
  157. package/dist/es/utils/dep/idle-task.js +70 -22
  158. package/dist/es/utils/dep/worker.js +1 -1
  159. package/dist/es/utils/editor.js +4 -2
  160. package/dist/es/utils/event.js +135 -0
  161. package/dist/es/utils/history.js +35 -47
  162. package/dist/es/utils/monaco-editor.js +22 -6
  163. package/dist/es/utils/operator.js +2 -2
  164. package/dist/es/utils/props.js +50 -106
  165. package/dist/es/utils/type-match-rules.js +356 -0
  166. package/dist/style.css +277 -114
  167. package/dist/themes/magic-admin.css +978 -175
  168. package/dist/tmagic-editor-headless.umd.cjs +10880 -0
  169. package/dist/tmagic-editor.umd.cjs +13047 -11363
  170. package/package.json +18 -13
  171. package/src/Editor.vue +23 -6
  172. package/src/components/CodeBlockEditor.vue +3 -0
  173. package/src/components/CodeParams.vue +10 -4
  174. package/src/components/CompareForm.vue +20 -190
  175. package/src/components/ContentMenu.vue +34 -6
  176. package/src/components/FloatingBox.vue +71 -7
  177. package/src/components/ScrollBar.vue +0 -67
  178. package/src/components/ViewForm.vue +54 -0
  179. package/src/editorProps.ts +23 -10
  180. package/src/fields/Code.vue +1 -1
  181. package/src/fields/CodeSelect.vue +20 -113
  182. package/src/fields/CodeSelectCol.vue +1 -1
  183. package/src/fields/CondOpSelect.vue +5 -26
  184. package/src/fields/DataSourceFieldSelect/FieldSelect.vue +2 -2
  185. package/src/fields/DataSourceFieldSelect/Index.vue +4 -1
  186. package/src/fields/DataSourceFields.vue +5 -1
  187. package/src/fields/DataSourceInput.vue +10 -28
  188. package/src/fields/DataSourceMethodSelect.vue +1 -1
  189. package/src/fields/DataSourceMethods.vue +6 -2
  190. package/src/fields/DataSourceMocks.vue +3 -0
  191. package/src/fields/DataSourceSelect.vue +1 -1
  192. package/src/fields/DisplayConds.vue +17 -139
  193. package/src/fields/EventSelect.vue +29 -416
  194. package/src/fields/KeyValue.vue +1 -1
  195. package/src/fields/StyleSetter/Index.vue +2 -8
  196. package/src/fields/StyleSetter/components/Border.vue +4 -38
  197. package/src/fields/StyleSetter/components/Box.vue +1 -1
  198. package/src/fields/StyleSetter/components/Position.vue +1 -1
  199. package/src/fields/StyleSetter/configs.ts +690 -0
  200. package/src/fields/StyleSetter/pro/Background.vue +9 -64
  201. package/src/fields/StyleSetter/pro/Border.vue +5 -16
  202. package/src/fields/StyleSetter/pro/Font.vue +11 -71
  203. package/src/fields/StyleSetter/pro/Layout.vue +10 -230
  204. package/src/fields/StyleSetter/pro/Position.vue +11 -82
  205. package/src/fields/StyleSetter/pro/Transform.vue +6 -34
  206. package/src/fields/UISelect.vue +0 -12
  207. package/src/fields/configs/codeSelect.ts +127 -0
  208. package/src/fields/configs/displayConds.ts +184 -0
  209. package/src/fields/configs/eventSelect.ts +309 -0
  210. package/src/fields/configs/stickyAddButton.ts +32 -0
  211. package/src/fields/headless-validation.ts +177 -0
  212. package/src/headless.ts +33 -0
  213. package/src/hooks/index.ts +1 -0
  214. package/src/hooks/use-compare-form.ts +166 -0
  215. package/src/hooks/use-form-context.ts +56 -0
  216. package/src/hooks/use-stage.ts +1 -0
  217. package/src/index.ts +9 -0
  218. package/src/initService.ts +73 -18
  219. package/src/layouts/CodeEditor.vue +32 -6
  220. package/src/layouts/Framework.vue +7 -6
  221. package/src/layouts/history-list/BucketTab.vue +2 -2
  222. package/src/layouts/history-list/HistoryDiffDialog.vue +33 -15
  223. package/src/layouts/history-list/HistoryListPanel.vue +16 -18
  224. package/src/layouts/history-list/useHistoryRevert.ts +57 -41
  225. package/src/layouts/props-panel/FormPanel.vue +75 -20
  226. package/src/layouts/props-panel/PropsPanel.vue +81 -30
  227. package/src/layouts/props-panel/use-style-panel.ts +4 -3
  228. package/src/layouts/sidebar/ComponentListPanel.vue +6 -2
  229. package/src/layouts/sidebar/Sidebar.vue +5 -3
  230. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
  231. package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
  232. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +3 -0
  233. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +3 -3
  234. package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
  235. package/src/layouts/sidebar/layer/LayerMenu.vue +2 -2
  236. package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
  237. package/src/layouts/sidebar/layer/LayerPanel.vue +5 -2
  238. package/src/layouts/sidebar/layer/use-click.ts +3 -3
  239. package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
  240. package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
  241. package/src/layouts/workspace/viewer/Stage.vue +80 -10
  242. package/src/layouts/workspace/viewer/ViewerMenu.vue +7 -7
  243. package/src/plugin.ts +35 -25
  244. package/src/services/codeBlock.ts +4 -0
  245. package/src/services/dataSource.ts +3 -0
  246. package/src/services/dep.ts +292 -47
  247. package/src/services/editor.ts +383 -120
  248. package/src/services/events.ts +8 -7
  249. package/src/services/history.ts +22 -1
  250. package/src/services/keybinding.ts +3 -3
  251. package/src/services/ui.ts +26 -5
  252. package/src/theme/code-block.scss +0 -37
  253. package/src/theme/display-conds.scss +4 -0
  254. package/src/theme/event.scss +25 -33
  255. package/src/theme/floating-box.scss +9 -1
  256. package/src/theme/framework.scss +4 -1
  257. package/src/theme/layer-node-content.scss +14 -0
  258. package/src/theme/nav-menu.scss +5 -1
  259. package/src/theme/props-panel.scss +17 -3
  260. package/src/theme/scroll-bar.scss +64 -0
  261. package/src/theme/theme.scss +3 -0
  262. package/src/theme/themes/magic-admin/index.scss +109 -9
  263. package/src/theme/ui-select.scss +9 -0
  264. package/src/type.ts +216 -6
  265. package/src/utils/code-block.ts +1 -0
  266. package/src/utils/config.ts +9 -1
  267. package/src/utils/const.ts +3 -3
  268. package/src/utils/content-menu.ts +2 -2
  269. package/src/utils/data-source/index.ts +31 -12
  270. package/src/utils/dep/collect-worker-client.ts +215 -0
  271. package/src/utils/dep/idle-task.ts +104 -35
  272. package/src/utils/dep/worker.ts +113 -9
  273. package/src/utils/event.ts +237 -0
  274. package/src/utils/index.ts +2 -0
  275. package/src/utils/monaco-editor.ts +27 -0
  276. package/src/utils/operator.ts +2 -2
  277. package/src/utils/props.ts +61 -122
  278. package/src/utils/type-match-rules.ts +697 -0
  279. package/types/headless.d.ts +17 -0
  280. package/types/index.d.ts +1494 -978
  281. package/src/fields/StyleSetter/icons/align-items/index copy.ts +0 -5
@@ -22,6 +22,7 @@ var useStage = (stageOptions) => {
22
22
  containerHighlightClassName: stageOptions.containerHighlightClassName,
23
23
  containerHighlightDuration: stageOptions.containerHighlightDuration,
24
24
  containerHighlightType: stageOptions.containerHighlightType,
25
+ containerHighlightAddOnly: stageOptions.containerHighlightAddOnly,
25
26
  disabledDragStart: stageOptions.disabledDragStart,
26
27
  renderType: stageOptions.renderType,
27
28
  canSelect: (el, event, stop) => {
@@ -5,7 +5,7 @@ var _hoisted_1 = {
5
5
  fill: "none",
6
6
  xmlns: "http://www.w3.org/2000/svg"
7
7
  };
8
- var CenterIcon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var CenterIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
9
  name: "MEditorCenterIcon",
10
10
  __name: "CenterIcon",
11
11
  setup(__props) {
@@ -6,7 +6,7 @@ var _hoisted_1 = {
6
6
  xmlns: "http://www.w3.org/2000/svg",
7
7
  "xmlns:xlink": "http://www.w3.org/1999/xlink"
8
8
  };
9
- var CodeIcon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var CodeIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
10
  name: "MEditorCodeIcon",
11
11
  __name: "CodeIcon",
12
12
  setup(__props) {
@@ -12,6 +12,6 @@ var _hoisted_1 = {
12
12
  function _sfc_render(_ctx, _cache) {
13
13
  return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M6.25 9.723C4.392 9.6095 2.804 9.137 1.875 8.4775V9.7495C1.875 10.6165 3.7665 11.3365 6.25 11.4745V12.348C4.392 12.2345 2.804 11.763 1.875 11.102V12.3745H1V4.0625C1 2.371 3.742 1 7.125 1C10.507 1 13.249 2.371 13.249 4.0625V6.8255H12.374V5.6405C11.3025 6.5295 9.352 7.1245 7.1245 7.1245C4.897 7.1245 2.947 6.5295 1.8745 5.6405V7.1245C1.8745 7.9915 3.7665 8.712 6.2495 8.85L6.25 9.723ZM7.125 14.999C3.742 14.999 1 13.8245 1 12.3745H1.875C1.875 13.3415 4.225 14.124 7.125 14.124V14.999ZM7.125 6.2495C10.024 6.2495 12.3745 5.2695 12.3745 4.0625C12.3745 2.855 10.0245 1.875 7.1245 1.875C4.225 1.875 1.8745 2.855 1.8745 4.0625C1.8745 5.2695 4.2255 6.2495 7.125 6.2495ZM14.7385 11.9895L14.1295 11.6345C14.1635 11.4485 14.1855 11.2585 14.1855 11.062C14.1843 10.8697 14.1655 10.6779 14.1295 10.489L14.7385 10.134C14.988 9.987 15.073 9.667 14.929 9.416L14.409 8.507C14.3752 8.44726 14.3299 8.39483 14.2757 8.35275C14.2215 8.31066 14.1595 8.27977 14.0933 8.26186C14.027 8.24395 13.9579 8.23938 13.8898 8.24842C13.8218 8.25745 13.7563 8.27992 13.697 8.3145L13.081 8.6735C12.7931 8.42269 12.4616 8.22694 12.103 8.096V7.6495C12.103 7.36 11.8705 7.1245 11.5825 7.1245H10.5415C10.4728 7.12476 10.4049 7.13855 10.3415 7.16507C10.2782 7.1916 10.2206 7.23034 10.1723 7.2791C10.1239 7.32785 10.0856 7.38565 10.0595 7.4492C10.0335 7.51276 10.0202 7.58082 10.0205 7.6495V8.096C9.66186 8.22694 9.33035 8.42269 9.0425 8.6735L8.4265 8.3145C8.36725 8.27999 8.30174 8.2576 8.23377 8.2486C8.1658 8.23961 8.09672 8.24419 8.03053 8.2621C7.96435 8.28001 7.90238 8.31088 7.84821 8.35292C7.79405 8.39495 7.74877 8.44733 7.715 8.507L7.195 9.417C7.12576 9.53751 7.10688 9.68047 7.14246 9.81482C7.17804 9.94917 7.2652 10.0641 7.385 10.1345L7.9945 10.489C7.9585 10.6775 7.9395 10.8695 7.9385 11.062C7.9385 11.2585 7.96 11.4485 7.9945 11.635L7.3855 11.99C7.1355 12.1365 7.0505 12.4565 7.1945 12.7075L7.715 13.6165C7.74877 13.6762 7.79405 13.7285 7.84821 13.7706C7.90238 13.8126 7.96435 13.8435 8.03053 13.8614C8.09672 13.8793 8.1658 13.8839 8.23377 13.8749C8.30174 13.8659 8.36725 13.8435 8.4265 13.809L9.0425 13.4505C9.33023 13.7015 9.66178 13.8972 10.0205 14.028V14.474C10.0205 14.764 10.2535 14.999 10.5415 14.999H11.5825C11.7211 14.9983 11.8538 14.9427 11.9514 14.8442C12.049 14.7458 12.1035 14.6126 12.103 14.474V14.028C12.4616 13.8971 12.7931 13.7013 13.081 13.4505L13.697 13.809C13.7563 13.8434 13.8218 13.8657 13.8897 13.8746C13.9577 13.8835 14.0267 13.8789 14.0929 13.861C14.159 13.8431 14.221 13.8123 14.2751 13.7703C14.3293 13.7283 14.3746 13.6761 14.4085 13.6165L14.929 12.7065C14.998 12.586 15.0168 12.4431 14.9811 12.3089C14.9454 12.1746 14.8583 12.0599 14.7385 11.9895ZM14.092 12.5065L13.852 12.915C13.8193 12.9693 13.7667 13.0086 13.7054 13.0246C13.6441 13.0406 13.579 13.0319 13.524 13.0005L12.8575 12.623C12.5109 13.0069 12.0497 13.2688 11.5425 13.37V13.889C11.5425 14.0185 11.4345 14.124 11.3015 14.124H10.822C10.7907 14.1243 10.7597 14.1184 10.7308 14.1067C10.7018 14.0949 10.6754 14.0776 10.6531 14.0557C10.6308 14.0338 10.6131 14.0077 10.6009 13.9789C10.5887 13.9502 10.5823 13.9193 10.582 13.888V13.37C10.0746 13.2689 9.61328 13.007 9.2665 12.623L8.6 13C8.54495 13.0316 8.47971 13.0403 8.4183 13.0243C8.35688 13.0083 8.30418 12.9689 8.2715 12.9145L8.0315 12.506C8.01582 12.4792 8.00564 12.4496 8.00158 12.4189C7.99752 12.3881 7.99965 12.3569 8.00785 12.327C8.01605 12.297 8.03016 12.2691 8.04933 12.2447C8.0685 12.2203 8.09236 12.2 8.1195 12.185L8.789 11.805C8.70604 11.5658 8.66313 11.3146 8.662 11.0615C8.662 10.8005 8.709 10.552 8.7895 10.3175L8.1195 9.9375C8.09247 9.92244 8.06872 9.90213 8.04964 9.87777C8.03056 9.85341 8.01654 9.82549 8.00839 9.79564C8.00024 9.76579 7.99813 9.73461 8.00218 9.70394C8.00624 9.67326 8.01637 9.64371 8.032 9.617L8.272 9.208C8.30467 9.15373 8.35729 9.1144 8.41858 9.09843C8.47988 9.08245 8.54499 9.09109 8.6 9.1225L9.2665 9.5005C9.61315 9.11663 10.0743 8.85468 10.5815 8.7535V8.235C10.5815 8.105 10.689 8 10.822 8H11.302C11.4345 8 11.542 8.105 11.542 8.236V8.754C12.0492 8.85518 12.5104 9.11713 12.857 9.501L13.524 9.123C13.579 9.09159 13.6441 9.08295 13.7054 9.09893C13.7667 9.1149 13.8193 9.15423 13.852 9.2085L14.092 9.6175C14.1077 9.64423 14.1179 9.67383 14.122 9.70455C14.1261 9.73528 14.124 9.76652 14.1159 9.79643C14.1077 9.82634 14.0937 9.85431 14.0745 9.87871C14.0554 9.90311 14.0316 9.92344 14.0045 9.9385L13.335 10.3185C13.4135 10.5525 13.462 10.801 13.462 11.062C13.462 11.3225 13.4145 11.571 13.335 11.8055L14.0045 12.1855C14.0316 12.2006 14.0554 12.2209 14.0745 12.2453C14.0937 12.2697 14.1077 12.2977 14.1159 12.3276C14.124 12.3575 14.1261 12.3887 14.122 12.4194C14.1179 12.4502 14.1077 12.4798 14.092 12.5065ZM11.062 9.7495C10.7139 9.7495 10.3801 9.88778 10.1339 10.1339C9.88778 10.3801 9.7495 10.7139 9.7495 11.062C9.7495 11.4101 9.88778 11.7439 10.1339 11.9901C10.3801 12.2362 10.7139 12.3745 11.062 12.3745C11.4101 12.3745 11.7439 12.2362 11.9901 11.9901C12.2362 11.7439 12.3745 11.4101 12.3745 11.062C12.3745 10.7139 12.2362 10.3801 11.9901 10.1339C11.7439 9.88778 11.4101 9.7495 11.062 9.7495ZM11.062 11.4995C10.946 11.4995 10.8347 11.4534 10.7526 11.3714C10.6706 11.2893 10.6245 11.178 10.6245 11.062C10.6245 10.946 10.6706 10.8347 10.7526 10.7526C10.8347 10.6706 10.946 10.6245 11.062 10.6245C11.178 10.6245 11.2893 10.6706 11.3714 10.7526C11.4534 10.8347 11.4995 10.946 11.4995 11.062C11.4995 11.178 11.4534 11.2893 11.3714 11.3714C11.2893 11.4534 11.178 11.4995 11.062 11.4995Z" }, null, -1)])]);
14
14
  }
15
- var DatasourceIcon_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
15
+ var DatasourceIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
16
16
  //#endregion
17
17
  export { DatasourceIcon_default as default };
@@ -8,7 +8,7 @@ var _hoisted_1 = {
8
8
  fill: "currentColor",
9
9
  xmlns: "http://www.w3.org/2000/svg"
10
10
  };
11
- var FolderMinusIcon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ var FolderMinusIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
12
  name: "MEditorFolderMinusIcon",
13
13
  __name: "FolderMinusIcon",
14
14
  setup(__props) {
package/dist/es/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { CODE_DRAFT_STORAGE_KEY, CodeDeleteErrorType, ColumnLayout, DragType, KeyBindingCommand, Keys, LayerOffset, Layout, SideItemKey, canUsePluginMethods } from "./type.js";
2
2
  import { useCodeBlockEdit } from "./hooks/use-code-block-edit.js";
3
- import { advancedTabConfig, arrayOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, numberOptions, styleTabConfig } from "./utils/props.js";
3
+ import { getEditorConfig, isGlobalFlat, setEditorConfig } from "./utils/config.js";
4
+ import { getCodeBlockFormConfig } from "./utils/code-block.js";
5
+ import { useCompareForm } from "./hooks/use-compare-form.js";
6
+ import { advancedTabConfig, arrayOptions, booleanOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, getCondOpOptionsByFieldType, numberOptions, styleTabConfig } from "./utils/props.js";
4
7
  import props_default from "./services/props.js";
5
- import { getEditorConfig, setEditorConfig } from "./utils/config.js";
6
8
  import { UndoRedo } from "./utils/undo-redo.js";
7
- import { createStackStep, describeRevertStep, deserializeStacks, detectPageTargetId, detectPageTargetName, detectStackOpType, getLastPushedHistoryIds, getOrCreateStack, markStackSaved, mergePageSteps, mergeStackSteps, serializeStacks, undoFloor } from "./utils/history.js";
9
+ import { createStackStep, describeRevertStep, deserializeStacks, detectStackOpType, detectTargetId, detectTargetName, getLastPushedHistoryIds, getOrCreateStack, markStackSaved, mergeSteps, serializeStacks, undoFloor } from "./utils/history.js";
8
10
  import { idbDelete, idbGet, idbSet, isIndexedDBSupported, openIndexedDB } from "./utils/indexed-db.js";
9
11
  import history_default from "./services/history.js";
10
12
  import storage_default from "./services/storage.js";
@@ -23,11 +25,15 @@ import { useFilter } from "./hooks/use-filter.js";
23
25
  import { useGetSo } from "./hooks/use-getso.js";
24
26
  import { useNextFloatBoxPosition } from "./hooks/use-next-float-box-position.js";
25
27
  import { useNodeStatus } from "./hooks/use-node-status.js";
26
- import { getCodeBlockFormConfig } from "./utils/code-block.js";
27
28
  import { debug, error, info, log, warn } from "./utils/logger.js";
28
- import { getCascaderOptionsFromFields, getDisplayField, getFieldType, getFormConfig, getFormValue } from "./utils/data-source/index.js";
29
+ import { getCascaderOptionsFromFields, getDisplayField, getFieldType, getFormConfig, getFormValue, resolveFieldByPath } from "./utils/data-source/index.js";
29
30
  import { IdleTask } from "./utils/dep/idle-task.js";
30
31
  import { ScrollViewer } from "./utils/scroll-viewer.js";
32
+ import codeBlock_default from "./services/codeBlock.js";
33
+ import dataSource_default from "./services/dataSource.js";
34
+ import { ALL_COND_OPS, editorTypeMatchRules, validateDataSourceFieldSelect } from "./utils/type-match-rules.js";
35
+ import events_default from "./services/events.js";
36
+ import { EVENT_NAME_VALUE_SEPARATOR, collectEventNameOptionValues, getCompActionAllowedValues, getCompActionOptions, getEventNameAllowedValues, getEventNameOptions, isEventNameCheckStrictly, normalizeCompActionValue } from "./utils/event.js";
31
37
  import monaco_editor_default from "./utils/monaco-editor.js";
32
38
  import Resizer_default from "./components/Resizer.js";
33
39
  import SplitView_default from "./components/SplitView.js";
@@ -49,12 +55,12 @@ import CodeBlockList_default from "./layouts/sidebar/code-block/CodeBlockList.js
49
55
  import CodeBlockListPanel_default from "./layouts/sidebar/code-block/CodeBlockListPanel.js";
50
56
  import DataSourceAddButton_default from "./layouts/sidebar/data-source/DataSourceAddButton.js";
51
57
  import DataSourceConfigPanel_default from "./layouts/sidebar/data-source/DataSourceConfigPanel.js";
58
+ import LayerNodeContent_default from "./layouts/sidebar/layer/LayerNodeContent.js";
52
59
  import LayerPanel_default from "./layouts/sidebar/layer/LayerPanel.js";
53
60
  import ComponentListPanel_default from "./layouts/sidebar/ComponentListPanel.js";
54
- import codeBlock_default from "./services/codeBlock.js";
55
- import dataSource_default from "./services/dataSource.js";
61
+ import componentList_default from "./services/componentList.js";
56
62
  import dep_default from "./services/dep.js";
57
- import events_default from "./services/events.js";
63
+ import keybinding_default from "./services/keybinding.js";
58
64
  import stageOverlay_default from "./services/stageOverlay.js";
59
65
  import Editor_default from "./Editor.js";
60
66
  import CodeSelect_default from "./fields/CodeSelect.js";
@@ -69,11 +75,13 @@ import Index_default from "./fields/DataSourceFieldSelect/Index.js";
69
75
  import EventSelect_default from "./fields/EventSelect.js";
70
76
  import KeyValue_default from "./fields/KeyValue.js";
71
77
  import CompareForm_default from "./components/CompareForm.js";
78
+ import ViewForm_default from "./components/ViewForm.js";
72
79
  import HistoryDiffDialog_default from "./layouts/history-list/HistoryDiffDialog.js";
73
80
  import PageFragmentSelect_default from "./fields/PageFragmentSelect.js";
74
81
  import DisplayConds_default from "./fields/DisplayConds.js";
75
82
  import CondOpSelect_default from "./fields/CondOpSelect.js";
76
83
  import Index_default$1 from "./fields/StyleSetter/Index.js";
84
+ import { editorFields } from "./fields/headless-validation.js";
77
85
  import plugin_default from "./plugin.js";
78
86
  import formPlugin from "@tmagic/form";
79
87
  import tablePlugin from "@tmagic/table";
@@ -85,4 +93,4 @@ export * from "@tmagic/table";
85
93
  export * from "@tmagic/stage";
86
94
  export * from "@tmagic/design";
87
95
  export * from "@tmagic/utils";
88
- export { CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CodeBlockEditor_default as CodeBlockEditor, CodeBlockList_default as CodeBlockList, CodeBlockListPanel_default as CodeBlockListPanel, CodeDeleteErrorType, CodeSelect_default as CodeSelect, CodeSelectCol_default as CodeSelectCol, ColumnLayout, CompareForm_default as CompareForm, ComponentListPanel_default as ComponentListPanel, CondOpSelect_default as CondOpSelect, ContentMenu_default as ContentMenu, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, DataSourceAddButton_default as DataSourceAddButton, DataSourceConfigPanel_default as DataSourceConfigPanel, Index_default as DataSourceFieldSelect, DataSourceFields_default as DataSourceFields, DataSourceInput_default as DataSourceInput, DataSourceMethodSelect_default as DataSourceMethodSelect, DataSourceMethods_default as DataSourceMethods, DataSourceMocks_default as DataSourceMocks, DataSourceSelect_default as DataSourceSelect, DepTargetType, DisplayConds_default as DisplayConds, DragType, EventSelect_default as EventSelect, Fixed2Other, FloatingBox_default as FloatingBox, H_GUIDE_LINE_STORAGE_KEY, HistoryDiffDialog_default as HistoryDiffDialog, Bucket_default as HistoryListBucket, BucketTab_default as HistoryListBucketTab, Icon_default as Icon, IdleTask, KeyBindingCommand, KeyValue_default as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerOffset, LayerPanel_default as LayerPanel, Layout, SplitView_default as LayoutContainer, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, PROPS_PANEL_WIDTH_STORAGE_KEY, PageFragmentSelect_default as PageFragmentSelect, FormPanel_default as PropsFormPanel, PropsPanel_default as PropsPanel, RIGHT_COLUMN_WIDTH_STORAGE_KEY, Resizer_default as Resizer, ScrollViewer, SideItemKey, SplitView_default as SplitView, StageCore, Index_default$1 as StyleSetter, CodeEditor_default as TMagicCodeEditor, Editor_default as TMagicEditor, ToolButton_default as ToolButton, Tree_default as Tree, TreeNode_default as TreeNode, UI_SELECT_MODE_EVENT_NAME, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, advancedTabConfig, arrayOptions, beforePaste, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, codeBlock_default as codeBlockService, collectRelatedNodes, confirmHistoryAction, createStackStep, dataSource_default as dataSourceService, debug, plugin_default as default, defaultIsExpandable, dep_default as depService, describeRevertStep, describeStepForRevert, deserializeStacks, designPlugin, detectPageTargetId, detectPageTargetName, detectStackOpType, displayTabConfig, editorNodeMergeCustomizer, editor_default as editorService, eqOptions, error, eventTabConfig, events_default as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getDefaultConfig, getDisplayField, getEditorConfig, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getLastPushedHistoryIds, getNodeIndex, getOrCreateStack, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, history_default as historyService, idbDelete, idbGet, idbSet, info, isIncludeDataSource, isIndexedDBSupported, monaco_editor_default as loadMonaco, log, markStackSaved, mergePageSteps, mergeStackSteps, moveItemsInContainer, numberOptions, openIndexedDB, props_default as propsService, resolveSelectedNode, serializeConfig, serializeStacks, setChildrenLayout, setEditorConfig, setLayout, stageOverlay_default as stageOverlayService, storage_default as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, ui_default as uiService, undoFloor, updateStatus, useCodeBlockEdit, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useHistoryRevert, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, warn };
96
+ export { ALL_COND_OPS, CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CodeBlockEditor_default as CodeBlockEditor, CodeBlockList_default as CodeBlockList, CodeBlockListPanel_default as CodeBlockListPanel, CodeDeleteErrorType, CodeSelect_default as CodeSelect, CodeSelectCol_default as CodeSelectCol, ColumnLayout, CompareForm_default as CompareForm, ComponentListPanel_default as ComponentListPanel, CondOpSelect_default as CondOpSelect, ContentMenu_default as ContentMenu, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, DataSourceAddButton_default as DataSourceAddButton, DataSourceConfigPanel_default as DataSourceConfigPanel, Index_default as DataSourceFieldSelect, DataSourceFields_default as DataSourceFields, DataSourceInput_default as DataSourceInput, DataSourceMethodSelect_default as DataSourceMethodSelect, DataSourceMethods_default as DataSourceMethods, DataSourceMocks_default as DataSourceMocks, DataSourceSelect_default as DataSourceSelect, DepTargetType, DisplayConds_default as DisplayConds, DragType, EVENT_NAME_VALUE_SEPARATOR, EventSelect_default as EventSelect, Fixed2Other, FloatingBox_default as FloatingBox, H_GUIDE_LINE_STORAGE_KEY, HistoryDiffDialog_default as HistoryDiffDialog, Bucket_default as HistoryListBucket, BucketTab_default as HistoryListBucketTab, Icon_default as Icon, IdleTask, KeyBindingCommand, KeyValue_default as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerNodeContent_default as LayerNodeContent, LayerOffset, LayerPanel_default as LayerPanel, Layout, SplitView_default as LayoutContainer, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, PROPS_PANEL_WIDTH_STORAGE_KEY, PageFragmentSelect_default as PageFragmentSelect, FormPanel_default as PropsFormPanel, PropsPanel_default as PropsPanel, RIGHT_COLUMN_WIDTH_STORAGE_KEY, Resizer_default as Resizer, ScrollViewer, SideItemKey, SplitView_default as SplitView, StageCore, Index_default$1 as StyleSetter, CodeEditor_default as TMagicCodeEditor, Editor_default as TMagicEditor, ToolButton_default as ToolButton, Tree_default as Tree, TreeNode_default as TreeNode, UI_SELECT_MODE_EVENT_NAME, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, ViewForm_default as ViewForm, advancedTabConfig, arrayOptions, beforePaste, booleanOptions, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, codeBlock_default as codeBlockService, collectEventNameOptionValues, collectRelatedNodes, componentList_default as componentListService, confirmHistoryAction, createStackStep, dataSource_default as dataSourceService, debug, plugin_default as default, defaultIsExpandable, dep_default as depService, describeRevertStep, describeStepForRevert, deserializeStacks, designPlugin, detectStackOpType, detectTargetId, detectTargetName, displayTabConfig, editorFields, editorNodeMergeCustomizer, editor_default as editorService, editorTypeMatchRules, eqOptions, error, eventTabConfig, events_default as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getCompActionAllowedValues, getCompActionOptions, getCondOpOptionsByFieldType, getDefaultConfig, getDisplayField, getEditorConfig, getEventNameAllowedValues, getEventNameOptions, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getLastPushedHistoryIds, getNodeIndex, getOrCreateStack, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, history_default as historyService, idbDelete, idbGet, idbSet, info, isEventNameCheckStrictly, isGlobalFlat, isIncludeDataSource, isIndexedDBSupported, keybinding_default as keybindingService, monaco_editor_default as loadMonaco, log, markStackSaved, mergeSteps, moveItemsInContainer, normalizeCompActionValue, numberOptions, openIndexedDB, props_default as propsService, resolveFieldByPath, resolveSelectedNode, serializeConfig, serializeStacks, setChildrenLayout, setEditorConfig, setLayout, stageOverlay_default as stageOverlayService, storage_default as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, ui_default as uiService, undoFloor, updateStatus, useCodeBlockEdit, useCompareForm, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useHistoryRevert, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, validateDataSourceFieldSelect, warn };
@@ -1,9 +1,22 @@
1
1
  import { isIncludeDataSource } from "./utils/editor.js";
2
+ import { error } from "./utils/logger.js";
2
3
  import { getDepNodeIds, getNodes, isPage, isValueIncludeDataSource } from "@tmagic/utils";
3
4
  import { DepTargetType, NODE_CONDS_KEY, NodeType, createCodeBlockTarget, createDataSourceCondTarget, createDataSourceMethodTarget, createDataSourceTarget, updateNode } from "@tmagic/core";
4
5
  import { nextTick, onBeforeUnmount, reactive, toRaw, watch } from "vue";
5
6
  import { cloneDeep as cloneDeep$1 } from "lodash-es";
6
7
  //#region packages/editor/src/initService.ts
8
+ /**
9
+ * select 为异步串行执行,节点不可选中(如已从 DSL 中移除)时会抛错。
10
+ * 在 watch 回调中调用不能把拒绝抛回调用方,否则会变成 Vue 的「Unhandled error during execution of watcher callback」,
11
+ * 这里统一兜底成日志。
12
+ */
13
+ var selectNode = async (editorService, id) => {
14
+ try {
15
+ await editorService.select(id);
16
+ } catch (e) {
17
+ error(e);
18
+ }
19
+ };
7
20
  var initServiceState = (props, { editorService, historyService, componentListService, propsService, eventsService, uiService, codeBlockService, keybindingService, dataSourceService, depService }) => {
8
21
  watch(() => props.modelValue, (modelValue) => {
9
22
  editorService.set("root", modelValue || null, { historySource: "initial" });
@@ -46,7 +59,10 @@ var initServiceState = (props, { editorService, historyService, componentListSer
46
59
  for (const [key, value] of Object.entries(eventsList)) dataSourceService.setFormEvent(key, value);
47
60
  for (const [key, value] of Object.entries(methodsList)) dataSourceService.setFormMethod(key, value);
48
61
  }, { immediate: true });
49
- watch(() => props.defaultSelected, (defaultSelected) => defaultSelected && editorService.select(defaultSelected), { immediate: true });
62
+ watch(() => props.defaultSelected, (defaultSelected) => {
63
+ if (!defaultSelected || !editorService.getNodeById(defaultSelected)) return;
64
+ selectNode(editorService, defaultSelected);
65
+ }, { immediate: true });
50
66
  watch(() => props.stageRect, (stageRect) => stageRect && uiService.set("stageRect", stageRect), { immediate: true });
51
67
  watch(() => props.disabledCodeBlock, (disabledCodeBlock) => propsService.setDisabledCodeBlock(disabledCodeBlock ?? false), { immediate: true });
52
68
  watch(() => props.disabledDataSource, (disabledDataSource) => propsService.setDisabledDataSource(disabledDataSource ?? false), { immediate: true });
@@ -57,6 +73,7 @@ var initServiceState = (props, { editorService, historyService, componentListSer
57
73
  uiService.resetState();
58
74
  componentListService.resetState();
59
75
  codeBlockService.resetState();
76
+ eventsService.resetState();
60
77
  keybindingService.reset();
61
78
  depService.reset();
62
79
  });
@@ -110,15 +127,15 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
110
127
  return pageId;
111
128
  };
112
129
  const collectIdle = (nodes, deep, type) => Promise.all(nodes.map((node) => {
113
- if (node.type === NodeType.ROOT) return Promise.resolve();
130
+ if (node.type === NodeType.ROOT) return Promise.resolve(true);
114
131
  return depService.collectIdle([node], { pageId: getPageIdByNode(node) }, deep, type);
115
- }));
132
+ })).then((results) => results.every(Boolean));
116
133
  watch(() => editorService.get("stage"), (stage) => {
117
134
  if (!stage) return;
118
135
  stage.on("rerender", async () => {
119
136
  const node = editorService.get("node");
120
137
  if (!node) return;
121
- await collectIdle([node], true, DepTargetType.DATA_SOURCE);
138
+ if (!await collectIdle([node], true, DepTargetType.DATA_SOURCE)) return;
122
139
  updateStageNode(node);
123
140
  });
124
141
  });
@@ -151,10 +168,20 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
151
168
  });
152
169
  });
153
170
  };
171
+ /**
172
+ * root 是否已经不是编辑器当前的 root。
173
+ *
174
+ * `editorService.set('root', v)` 是同步赋值后再派发 `root-change`,因此派发那一刻 `v` 一定
175
+ * 就是当前 root;但处理 `root-change` 要等 stage / runtime / 依赖收集等异步过程,期间 root
176
+ * 可能被新的一次整体替换(外部重设 DSL、更新 root 节点、源码保存等)顶掉,此时手上的 `v`
177
+ * 已是过期快照,继续用它刷画布或回写给外部都会与新 root 互相覆盖。
178
+ */
179
+ const isStaleRoot = (value) => toRaw(editorService.get("root")) !== toRaw(value);
154
180
  const updateStageDsl = async (value) => {
155
181
  const stage = await getStage();
156
182
  const runtime = await stage.renderer?.getRuntime();
157
183
  const app = await getTMagicApp();
184
+ if (isStaleRoot(value)) return;
158
185
  if (!app?.dataSourceManager) runtime?.updateRootConfig?.(cloneDeep$1(toRaw(value)));
159
186
  const page = editorService.get("page");
160
187
  const node = editorService.get("node");
@@ -165,6 +192,7 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
165
192
  if (value) {
166
193
  depService.clearIdleTasks();
167
194
  await (typeof Worker === "undefined" ? collectIdle(value.items, true) : depService.collectByWorker(value));
195
+ if (isStaleRoot(value)) return;
168
196
  const dsl = cloneDeep$1(toRaw(value));
169
197
  if (dsl.dataSources && dsl.dataSourceDeps && app?.dataSourceManager) for (const node of getNodes(getDepNodeIds(dsl.dataSourceDeps), dsl.items)) updateNode(app.dataSourceManager.compiledNode(node), dsl);
170
198
  runtime?.updateRootConfig?.(dsl);
@@ -175,7 +203,7 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
175
203
  depService.addTarget(createDataSourceMethodTarget(ds, reactive({})));
176
204
  depService.addTarget(createDataSourceCondTarget(ds, reactive({})));
177
205
  };
178
- const rootChangeHandler = (value, preValue) => {
206
+ const rootChangeHandler = (value) => {
179
207
  if (!value) return;
180
208
  value.codeBlocks = value.codeBlocks || {};
181
209
  value.dataSources = value.dataSources || [];
@@ -201,12 +229,13 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
201
229
  editorService.set("parent", null);
202
230
  editorService.set("page", null);
203
231
  }
204
- if (toRaw(value) !== toRaw(preValue)) emit("update:modelValue", value);
232
+ if (isStaleRoot(value)) return;
233
+ if (toRaw(props.modelValue) !== toRaw(value)) emit("update:modelValue", value);
205
234
  })();
206
235
  };
207
236
  const nodeAddHandler = (nodes) => {
208
- collectIdle(nodes, true).then(() => {
209
- updateStageNodes(nodes);
237
+ collectIdle(nodes, true).then((completed) => {
238
+ if (completed) updateStageNodes(nodes);
210
239
  });
211
240
  };
212
241
  const nodeUpdateHandler = (data) => {
@@ -235,8 +264,8 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
235
264
  else normalNodes.push(newNode);
236
265
  if (needRecollectNodes.length) {
237
266
  const handler = async () => {
238
- await collectIdle(needRecollectNodes, true, DepTargetType.DATA_SOURCE);
239
- await collectIdle(needRecollectNodes, true, DepTargetType.DATA_SOURCE_COND);
267
+ if (!await collectIdle(needRecollectNodes, true, DepTargetType.DATA_SOURCE)) return;
268
+ if (!await collectIdle(needRecollectNodes, true, DepTargetType.DATA_SOURCE_COND)) return;
240
269
  updateStageNodes(needRecollectNodes);
241
270
  };
242
271
  handler();
@@ -249,8 +278,8 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
249
278
  depService.clear(nodes);
250
279
  };
251
280
  const historyChangeHandler = (page) => {
252
- collectIdle([page], true).then(() => {
253
- updateStageNode(page);
281
+ collectIdle([page], true).then((completed) => {
282
+ if (completed) updateStageNode(page);
254
283
  });
255
284
  };
256
285
  editorService.on("history-change", historyChangeHandler);
@@ -310,7 +339,13 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
310
339
  depService.addTarget(createDataSourceMethodTarget(config, reactive({})));
311
340
  collectIdlePromises = [collectIdle(root.items, true, DepTargetType.DATA_SOURCE_METHOD)];
312
341
  }
313
- Promise.all(collectIdlePromises).then(() => updateDataSourceSchema()).then(() => updateDsData()).then(() => updateStageNodes(root.items));
342
+ const handler = async () => {
343
+ if (!(await Promise.all(collectIdlePromises)).every(Boolean)) return;
344
+ updateDataSourceSchema();
345
+ await updateDsData();
346
+ updateStageNodes(root.items);
347
+ };
348
+ handler();
314
349
  }
315
350
  } else if (root?.dataSources) updateDsData();
316
351
  };
@@ -323,12 +358,13 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
323
358
  const root = editorService.get("root");
324
359
  if (!root) return;
325
360
  const handler = async () => {
326
- const nodes = getNodes(Object.keys(root.dataSourceDeps?.[id] || {}), root.items);
327
- await Promise.all([
361
+ const nodeIds = Object.keys(root.dataSourceDeps?.[id] || {});
362
+ const nodes = getNodes(nodeIds, root.items);
363
+ if (!(await Promise.all([
328
364
  collectIdle(nodes, false, DepTargetType.DATA_SOURCE),
329
365
  collectIdle(nodes, false, DepTargetType.DATA_SOURCE_COND),
330
366
  collectIdle(nodes, false, DepTargetType.DATA_SOURCE_METHOD)
331
- ]);
367
+ ])).every(Boolean)) return;
332
368
  updateDataSourceSchema();
333
369
  (await getTMagicApp())?.dataSourceManager?.removeDataSource(id);
334
370
  updateStageNodes(nodes);
@@ -7,7 +7,7 @@ import { Plus } from "@element-plus/icons-vue";
7
7
  //#region packages/editor/src/layouts/AddPageBox.vue?vue&type=script&setup=true&lang.ts
8
8
  var _hoisted_1 = { class: "m-editor-empty-panel" };
9
9
  var _hoisted_2 = { class: "m-editor-empty-content" };
10
- var AddPageBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var AddPageBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  name: "MEditorAddPageBox",
12
12
  __name: "AddPageBox",
13
13
  props: { disabledPageFragment: { type: Boolean } },
@@ -12,7 +12,7 @@ var _hoisted_2 = {
12
12
  ref: "codeEditor",
13
13
  class: "magic-code-editor-content"
14
14
  };
15
- var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
15
+ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
16
  name: "MEditorCodeEditor",
17
17
  __name: "CodeEditor",
18
18
  props: {
@@ -93,9 +93,10 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
93
93
  };
94
94
  const toString = (v, language) => {
95
95
  let value;
96
- if (typeof v !== "string") if (language === "json") value = JSON.stringify(v, null, 2);
97
- else value = serializeConfig(v);
98
- else value = v;
96
+ if (typeof v !== "string") {
97
+ if (language === "json") value = JSON.stringify(v, null, 2);
98
+ else value = serializeConfig(v);
99
+ } else value = v;
99
100
  if (language === "javascript" && value.startsWith("{") && value.endsWith("}")) value = `(${value})`;
100
101
  return value;
101
102
  };
@@ -110,6 +111,7 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
110
111
  const values = ref("");
111
112
  const loading = ref(false);
112
113
  const codeEditorEl = useTemplateRef("codeEditor");
114
+ let destroyed = false;
113
115
  const resizeObserver = new globalThis.ResizeObserver(throttle(() => {
114
116
  vsEditor?.layout();
115
117
  vsDiffEditor?.layout();
@@ -150,11 +152,17 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
150
152
  emit("save", props.parse ? parseCode(newValue, props.language) : newValue);
151
153
  }
152
154
  };
155
+ const isEditorElValid = () => !destroyed && !!codeEditorEl.value && codeEditorEl.value.isConnected;
153
156
  const init = async () => {
154
- if (!codeEditorEl.value) return;
155
- if (codeEditorEl.value.clientHeight === 0) await nextTick();
157
+ if (!isEditorElValid()) return;
158
+ if (codeEditorEl.value.clientHeight === 0) {
159
+ await nextTick();
160
+ if (!isEditorElValid()) return;
161
+ }
156
162
  cachedExtraHeight = null;
157
163
  monaco = await monaco_editor_default();
164
+ if (!isEditorElValid()) return;
165
+ const editorEl = codeEditorEl.value;
158
166
  const options = {
159
167
  value: values.value,
160
168
  language: props.language,
@@ -163,19 +171,26 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
163
171
  ...props.options
164
172
  };
165
173
  if (props.type === "diff") {
166
- vsDiffEditor = await getEditorConfig("customCreateMonacoDiffEditor")(monaco, codeEditorEl.value, options);
174
+ vsDiffEditor = await getEditorConfig("customCreateMonacoDiffEditor")(monaco, editorEl, options);
167
175
  vsDiffEditor.getModifiedEditor().onDidChangeModelContent(() => {
168
176
  if (props.autosize) setAutoHeight(getEditorValue());
169
177
  });
170
178
  } else {
171
- vsEditor = await getEditorConfig("customCreateMonacoEditor")(monaco, codeEditorEl.value, options);
179
+ vsEditor = await getEditorConfig("customCreateMonacoEditor")(monaco, editorEl, options);
172
180
  vsEditor.onDidChangeModelContent(() => {
173
181
  if (props.autosize) setAutoHeight(getEditorValue());
174
182
  });
175
183
  }
184
+ if (destroyed) {
185
+ vsEditor?.dispose();
186
+ vsDiffEditor?.dispose();
187
+ vsEditor = null;
188
+ vsDiffEditor = null;
189
+ return;
190
+ }
176
191
  setEditorValue(props.initValues, props.modifiedValues);
177
192
  emit("initd", vsEditor);
178
- codeEditorEl.value.addEventListener("keydown", handleKeyDown);
193
+ editorEl.addEventListener("keydown", handleKeyDown);
179
194
  if (props.type !== "diff" && props.autoSave) vsEditor?.onDidBlurEditorWidget(() => {
180
195
  const newValue = getEditorValue();
181
196
  if (values.value !== newValue) {
@@ -183,7 +198,7 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
183
198
  emit("save", props.parse ? parseCode(newValue, props.language) : newValue);
184
199
  }
185
200
  });
186
- resizeObserver.observe(codeEditorEl.value);
201
+ resizeObserver.observe(editorEl);
187
202
  };
188
203
  watch(() => props.initValues, (v, preV) => {
189
204
  if (v !== preV) setEditorValue(props.initValues, props.modifiedValues);
@@ -205,6 +220,7 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
205
220
  loading.value = false;
206
221
  });
207
222
  onBeforeUnmount(() => {
223
+ destroyed = true;
208
224
  resizeObserver.disconnect();
209
225
  vsEditor?.dispose();
210
226
  vsDiffEditor?.dispose();
@@ -8,7 +8,7 @@ import AddPageBox_default from "./AddPageBox.js";
8
8
  import CodeEditor_default from "./CodeEditor.js";
9
9
  import { computed, createCommentVNode, createElementBlock, createSlots, createVNode, defineComponent, inject, normalizeClass, onBeforeUnmount, onMounted, openBlock, renderSlot, unref, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
10
10
  //#region packages/editor/src/layouts/Framework.vue?vue&type=script&setup=true&lang.ts
11
- var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ var Framework_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
12
  name: "MEditorFramework",
13
13
  __name: "Framework",
14
14
  props: {
@@ -29,13 +29,16 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
29
29
  const pageLength = computed(() => editorService.get("pageLength") || 0);
30
30
  const showSrc = computed(() => uiService.get("showSrc"));
31
31
  const columnWidth = computed(() => uiService.get("columnWidth"));
32
+ const minLeftColumnWidth = computed(() => uiService.get("minLeftColumnWidth"));
33
+ const minCenterColumnWidth = computed(() => uiService.get("minCenterColumnWidth"));
34
+ const minRightColumnWidth = computed(() => uiService.get("minRightColumnWidth"));
32
35
  watch(pageLength, () => {
33
36
  splitViewRef.value?.updateWidth();
34
37
  });
35
38
  watch(() => uiService.get("hideSlideBar"), (hideSlideBar) => {
36
39
  uiService.set("columnWidth", {
37
40
  ...columnWidth.value,
38
- left: hideSlideBar ? 0 : storageService.getItem("$MagicEditorLeftColumnWidthData", { protocol: Protocol.NUMBER }) || 310
41
+ left: hideSlideBar ? 0 : storageService.getItem("$MagicEditorLeftColumnWidthData", { protocol: Protocol.NUMBER }) || 345
39
42
  });
40
43
  });
41
44
  const columnWidthChange = (columnW) => {
@@ -80,13 +83,13 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
80
83
  renderSlot(_ctx.$slots, "header"),
81
84
  renderSlot(_ctx.$slots, "nav"),
82
85
  renderSlot(_ctx.$slots, "content-before"),
83
- showSrc.value ? renderSlot(_ctx.$slots, "src-code", { key: 0 }, () => [createVNode(CodeEditor_default, {
86
+ showSrc.value ? renderSlot(_ctx.$slots, "src-code", {}, () => [createVNode(CodeEditor_default, {
84
87
  class: "m-editor-content",
85
88
  "editor-custom-type": "m-editor-content",
86
89
  "init-values": root.value,
87
90
  options: unref(codeOptions),
88
91
  onSave: saveCode
89
- }, null, 8, ["init-values", "options"])]) : createCommentVNode("v-if", true),
92
+ }, null, 8, ["init-values", "options"])], void 0, 0) : createCommentVNode("v-if", true),
90
93
  withDirectives(createVNode(SplitView_default, {
91
94
  ref: "splitView",
92
95
  class: "m-editor-content",
@@ -95,13 +98,13 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
95
98
  "right-class": "m-editor-framework-right",
96
99
  left: __props.hideSidebar ? void 0 : columnWidth.value.left,
97
100
  right: columnWidth.value.right,
98
- "min-left": __props.hideSidebar ? 0 : unref(238),
99
- "min-right": unref(300),
100
- "min-center": unref(400),
101
+ "min-left": __props.hideSidebar ? 0 : minLeftColumnWidth.value,
102
+ "min-right": minRightColumnWidth.value,
103
+ "min-center": minCenterColumnWidth.value,
101
104
  width: frameworkRect.value.width,
102
105
  onChange: columnWidthChange
103
106
  }, createSlots({
104
- center: withCtx(() => [page.value ? renderSlot(_ctx.$slots, "workspace", { key: 0 }) : renderSlot(_ctx.$slots, "empty", { key: 1 }, () => [createVNode(AddPageBox_default, { "disabled-page-fragment": __props.disabledPageFragment }, null, 8, ["disabled-page-fragment"])]), renderSlot(_ctx.$slots, "page-bar", {}, () => [createVNode(PageBar_default, {
107
+ center: withCtx(() => [page.value ? renderSlot(_ctx.$slots, "workspace", {}, void 0, void 0, 0) : renderSlot(_ctx.$slots, "empty", {}, () => [createVNode(AddPageBox_default, { "disabled-page-fragment": __props.disabledPageFragment }, null, 8, ["disabled-page-fragment"])], void 0, 1), renderSlot(_ctx.$slots, "page-bar", {}, () => [createVNode(PageBar_default, {
105
108
  "disabled-page-fragment": __props.disabledPageFragment,
106
109
  "page-bar-sort-options": __props.pageBarSortOptions,
107
110
  "filter-function": __props.pageFilterFunction
@@ -6,7 +6,7 @@ import { NodeType } from "@tmagic/core";
6
6
  import { Fragment, computed, createBlock, createElementBlock, defineComponent, markRaw, normalizeStyle, onBeforeUnmount, onMounted, openBlock, renderList, unref, useTemplateRef } from "vue";
7
7
  import { Back, Delete, FullScreen, Grid, Memo, Right, ScaleToOriginal, ZoomIn, ZoomOut } from "@element-plus/icons-vue";
8
8
  //#region packages/editor/src/layouts/NavMenu.vue?vue&type=script&setup=true&lang.ts
9
- var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var NavMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
10
  name: "MEditorNavMenu",
11
11
  __name: "NavMenu",
12
12
  props: {
@@ -55,7 +55,7 @@ var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
55
55
  className: "undo",
56
56
  icon: markRaw(Back),
57
57
  tooltip: `后退(${ctrl}+z)`,
58
- disabled: () => !historyService.state.canUndo,
58
+ disabled: () => !historyService.canUndo("page", editorService.get("page")?.id),
59
59
  handler: () => editorService.undo()
60
60
  });
61
61
  break;
@@ -65,7 +65,7 @@ var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
65
65
  className: "redo",
66
66
  icon: markRaw(Right),
67
67
  tooltip: `前进(${ctrl}+Shift+z)`,
68
- disabled: () => !historyService.state.canRedo,
68
+ disabled: () => !historyService.canRedo("page", editorService.get("page")?.id),
69
69
  handler: () => editorService.redo()
70
70
  });
71
71
  break;
@@ -4,7 +4,7 @@ import { Fragment, computed, createBlock, createElementBlock, createElementVNode
4
4
  import { ArrowDown, ArrowUp } from "@element-plus/icons-vue";
5
5
  //#region packages/editor/src/layouts/NavMenuColumn.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = { class: "m-editor-nav-menu-overflow-list" };
7
- var NavMenuColumn_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ var NavMenuColumn_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
8
  name: "MEditorNavMenuColumn",
9
9
  __name: "NavMenuColumn",
10
10
  props: {
@@ -7,7 +7,7 @@ var _hoisted_1 = { class: "m-editor-history-list-bucket" };
7
7
  var _hoisted_2 = { class: "m-editor-history-list-bucket-title" };
8
8
  var _hoisted_3 = { class: "m-editor-history-list-bucket-count" };
9
9
  var _hoisted_4 = { class: "m-editor-history-list-ul" };
10
- var Bucket_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var Bucket_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  name: "MEditorHistoryListBucket",
12
12
  __name: "Bucket",
13
13
  props: {
@@ -1,14 +1,17 @@
1
1
  import Bucket_default from "./Bucket.js";
2
2
  import { TMagicScrollbar } from "@tmagic/design";
3
- import { Fragment, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
3
+ import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
4
4
  //#region packages/editor/src/layouts/history-list/BucketTab.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = {
6
6
  key: 0,
7
7
  class: "m-editor-history-list-empty"
8
8
  };
9
- var _hoisted_2 = { class: "m-editor-history-list-toolbar" };
9
+ var _hoisted_2 = {
10
+ key: 0,
11
+ class: "m-editor-history-list-toolbar"
12
+ };
10
13
  var _hoisted_3 = ["title"];
11
- var BucketTab_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ var BucketTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
15
  name: "MEditorHistoryListBucketTab",
13
16
  __name: "BucketTab",
14
17
  props: {
@@ -26,11 +29,11 @@ var BucketTab_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
26
29
  ],
27
30
  setup(__props) {
28
31
  return (_ctx, _cache) => {
29
- return !__props.buckets.length ? (openBlock(), createElementBlock("div", _hoisted_1, "暂无操作记录")) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("div", _hoisted_2, [createElementVNode("span", {
32
+ return !__props.buckets.length ? (openBlock(), createElementBlock("div", _hoisted_1, "暂无操作记录")) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [__props.config.showClear !== false ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("span", {
30
33
  class: "m-editor-history-list-clear",
31
34
  title: `清空${__props.config.title}的历史记录`,
32
35
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("clear"))
33
- }, "清空", 8, _hoisted_3)]), createVNode(unref(TMagicScrollbar), { "max-height": "360px" }, {
36
+ }, "清空", 8, _hoisted_3)])) : createCommentVNode("v-if", true), createVNode(unref(TMagicScrollbar), { "max-height": "360px" }, {
34
37
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.buckets, (bucket) => {
35
38
  return openBlock(), createBlock(Bucket_default, {
36
39
  key: `${__props.config.prefix}-${bucket.id}`,
@@ -42,7 +42,7 @@ var _hoisted_18 = ["onClick"];
42
42
  var _hoisted_19 = ["title"];
43
43
  var _hoisted_20 = ["title"];
44
44
  var _hoisted_21 = ["title"];
45
- var GroupRow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
45
+ var GroupRow_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
46
46
  name: "MEditorHistoryListGroupRow",
47
47
  __name: "GroupRow",
48
48
  props: {