@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
@@ -9,6 +9,6 @@ var _hoisted_1 = {
9
9
  function _sfc_render(_ctx, _cache) {
10
10
  return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M128 810.666667h768v85.333333H128z m0-170.666667h512v85.333333H128z m0-170.666667h768v85.333334H128z m0-341.333333h768v85.333333H128z m0 170.666667h512v85.333333H128z" }, null, -1)])]);
11
11
  }
12
- var Left_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
12
+ var Left_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
13
13
  //#endregion
14
14
  export { Left_default as default };
@@ -9,6 +9,6 @@ var _hoisted_1 = {
9
9
  function _sfc_render(_ctx, _cache) {
10
10
  return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M128 128h768v85.333333H128z m0 682.666667h768v85.333333H128z m213.333333-170.666667h554.666667v85.333333H341.333333z m-213.333333-170.666667h768v85.333334H128z m213.333333-170.666666h554.666667v85.333333H341.333333z" }, null, -1)])]);
11
11
  }
12
- var Right_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
12
+ var Right_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
13
13
  //#endregion
14
14
  export { Right_default as default };
@@ -6,7 +6,7 @@ import NoRepeat_default from "../icons/background-repeat/NoRepeat.js";
6
6
  import { MContainer, defineFormItem } from "@tmagic/form";
7
7
  import { createBlock, defineComponent, markRaw, openBlock, unref } from "vue";
8
8
  //#region packages/editor/src/fields/StyleSetter/pro/Background.vue?vue&type=script&setup=true&lang.ts
9
- var Background_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var Background_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
10
  __name: "Background",
11
11
  props: {
12
12
  values: {},
@@ -2,7 +2,7 @@ import Border_default from "../components/Border.js";
2
2
  import { MContainer, defineFormItem } from "@tmagic/form";
3
3
  import { Fragment, createElementBlock, createVNode, defineComponent, openBlock, unref } from "vue";
4
4
  //#region packages/editor/src/fields/StyleSetter/pro/Border.vue?vue&type=script&setup=true&lang.ts
5
- var Border_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var Border_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  __name: "Border",
7
7
  props: {
8
8
  values: {},
@@ -4,7 +4,7 @@ import Right_default from "../icons/text-align/Right.js";
4
4
  import { MContainer, defineFormItem } from "@tmagic/form";
5
5
  import { createBlock, defineComponent, markRaw, openBlock, unref } from "vue";
6
6
  //#region packages/editor/src/fields/StyleSetter/pro/Font.vue?vue&type=script&setup=true&lang.ts
7
- var Font_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ var Font_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
8
  __name: "Font",
9
9
  props: {
10
10
  values: {},
@@ -16,7 +16,7 @@ import SpaceBetween_default from "../icons/justify-content/SpaceBetween.js";
16
16
  import { MContainer, defineFormItem } from "@tmagic/form";
17
17
  import { Fragment, createElementBlock, createVNode, defineComponent, markRaw, openBlock, unref, vShow, withDirectives } from "vue";
18
18
  //#region packages/editor/src/fields/StyleSetter/pro/Layout.vue?vue&type=script&setup=true&lang.ts
19
- var Layout_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
19
+ var Layout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
20
  __name: "Layout",
21
21
  props: {
22
22
  values: {},
@@ -1,7 +1,7 @@
1
1
  import { MContainer, defineFormItem } from "@tmagic/form";
2
2
  import { createBlock, defineComponent, openBlock, unref } from "vue";
3
3
  //#region packages/editor/src/fields/StyleSetter/pro/Position.vue?vue&type=script&setup=true&lang.ts
4
- var Position_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var Position_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  __name: "Position",
6
6
  props: {
7
7
  values: {},
@@ -1,7 +1,7 @@
1
1
  import { MContainer, defineFormItem } from "@tmagic/form";
2
2
  import { createBlock, defineComponent, openBlock, unref } from "vue";
3
3
  //#region packages/editor/src/fields/StyleSetter/pro/Transform.vue?vue&type=script&setup=true&lang.ts
4
- var Transform_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var Transform_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  __name: "Transform",
6
6
  props: {
7
7
  values: {},
@@ -2,7 +2,7 @@ import { UI_SELECT_MODE_EVENT_NAME } from "../utils/const.js";
2
2
  import { useServices } from "../hooks/use-services.js";
3
3
  import { TMagicButton, TMagicTooltip } from "@tmagic/design";
4
4
  import { getIdFromEl } from "@tmagic/utils";
5
- import { Fragment, computed, createBlock, createElementBlock, createTextVNode, createVNode, defineComponent, inject, openBlock, ref, toDisplayString, unref, withCtx, withModifiers } from "vue";
5
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, openBlock, ref, toDisplayString, unref, withCtx, withModifiers } from "vue";
6
6
  import { throttle } from "lodash-es";
7
7
  import { Close, Delete } from "@element-plus/icons-vue";
8
8
  //#region packages/editor/src/fields/UISelect.vue?vue&type=script&setup=true&lang.ts
@@ -11,7 +11,7 @@ var _hoisted_1 = {
11
11
  class: "m-fields-ui-select",
12
12
  style: { "display": "flex" }
13
13
  };
14
- var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ var UISelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
15
15
  name: "MFieldsUISelect",
16
16
  __name: "UISelect",
17
17
  props: {
@@ -34,6 +34,8 @@ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
34
34
  const mForm = inject("mForm");
35
35
  const val = computed(() => props.model[props.name]);
36
36
  const uiSelectMode = ref(false);
37
+ /** 对比模式下隐藏清除/选择等操作按钮,仅保留只读展示。 */
38
+ const isCompare = computed(() => Boolean(mForm?.isCompare));
37
39
  const cancelHandler = () => {
38
40
  uiService.set("uiSelectMode", false);
39
41
  uiSelectMode.value = false;
@@ -96,7 +98,8 @@ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
96
98
  "icon",
97
99
  "disabled",
98
100
  "size"
99
- ])])) : (openBlock(), createElementBlock("div", _hoisted_1, [val.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(unref(TMagicTooltip), {
101
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_1, [val.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [!isCompare.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
102
+ key: 0,
100
103
  content: "清除",
101
104
  placement: "top"
102
105
  }, {
@@ -114,7 +117,7 @@ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
114
117
  "size"
115
118
  ])]),
116
119
  _: 1
117
- }), createVNode(unref(TMagicTooltip), {
120
+ })) : createCommentVNode("v-if", true), createVNode(unref(TMagicTooltip), {
118
121
  content: "点击选中组件",
119
122
  placement: "top"
120
123
  }, {
@@ -134,7 +137,7 @@ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
134
137
  _: 1
135
138
  }, 8, ["disabled", "size"])]),
136
139
  _: 1
137
- })], 64)) : (openBlock(), createBlock(unref(TMagicTooltip), {
140
+ })], 64)) : !isCompare.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
138
141
  key: 1,
139
142
  content: "点击此处选择",
140
143
  placement: "top"
@@ -153,7 +156,7 @@ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
153
156
  _: 1
154
157
  }, 8, ["disabled", "size"])]),
155
158
  _: 1
156
- }))]));
159
+ })) : createCommentVNode("v-if", true)]));
157
160
  };
158
161
  }
159
162
  });
@@ -33,12 +33,15 @@ var useCodeBlockEdit = (codeBlockService) => {
33
33
  await nextTick();
34
34
  codeBlockEditorRef.value?.show();
35
35
  };
36
- const deleteCode = async (key) => {
37
- codeBlockService.deleteCodeDslByIds([key]);
36
+ const deleteCode = async (key, { historySource } = {}) => {
37
+ codeBlockService.deleteCodeDslByIds([key], { historySource });
38
38
  };
39
- const submitCodeBlockHandler = async (values) => {
39
+ const submitCodeBlockHandler = async (values, eventData) => {
40
40
  if (!codeId.value) return;
41
- await codeBlockService.setCodeDslById(codeId.value, values);
41
+ await codeBlockService.setCodeDslById(codeId.value, values, {
42
+ changeRecords: eventData?.changeRecords,
43
+ historySource: "props"
44
+ });
42
45
  codeBlockEditorRef.value?.hide();
43
46
  };
44
47
  return {
@@ -12,8 +12,11 @@ var useDataSourceEdit = (dataSourceService) => {
12
12
  editDialog.value.show();
13
13
  };
14
14
  const submitDataSourceHandler = (value, eventData) => {
15
- if (value.id) dataSourceService.update(value, { changeRecords: eventData.changeRecords });
16
- else dataSourceService.add(value);
15
+ if (value.id) dataSourceService.update(value, {
16
+ changeRecords: eventData.changeRecords,
17
+ historySource: "props"
18
+ });
19
+ else dataSourceService.add(value, { historySource: "props" });
17
20
  editDialog.value?.hide();
18
21
  };
19
22
  return {
@@ -38,7 +38,8 @@ var useStage = (stageOptions) => {
38
38
  guidesOptions: stageOptions.guidesOptions,
39
39
  disabledMultiSelect: stageOptions.disabledMultiSelect,
40
40
  alwaysMultiSelect: stageOptions.alwaysMultiSelect,
41
- disabledRule: stageOptions.disabledRule
41
+ disabledRule: stageOptions.disabledRule,
42
+ disabledFlashTip: stageOptions.disabledFlashTip
42
43
  });
43
44
  watch(() => editor_default.get("disabledMultiSelect"), (disabledMultiSelect) => {
44
45
  if (disabledMultiSelect) stage.disableMultiSelect();
@@ -69,32 +70,43 @@ var useStage = (stageOptions) => {
69
70
  });
70
71
  stage.on("update", (ev) => {
71
72
  if (ev.parentEl) {
72
- for (const data of ev.data) {
73
+ const pId = getIdFromEl()(ev.parentEl);
74
+ if (!pId) return;
75
+ const configs = ev.data.map((data) => {
73
76
  const id = getIdFromEl()(data.el);
74
- const pId = getIdFromEl()(ev.parentEl);
75
- id && pId && editor_default.moveToContainer({
77
+ if (!id) return null;
78
+ return {
76
79
  id,
77
80
  style: data.style
78
- }, pId);
79
- }
81
+ };
82
+ }).filter((cfg) => Boolean(cfg));
83
+ if (configs.length > 0) editor_default.moveToContainer(configs, pId);
80
84
  return;
81
85
  }
86
+ const configs = [];
87
+ const changeRecordList = [];
82
88
  ev.data.forEach((data) => {
83
89
  const id = getIdFromEl()(data.el);
84
90
  if (!id) return;
85
91
  const { style = {} } = data;
86
- editor_default.update({
92
+ configs.push({
87
93
  id,
88
94
  style
89
- }, { changeRecords: buildChangeRecords(style, "style") });
95
+ });
96
+ changeRecordList.push(buildChangeRecords(style, "style"));
97
+ });
98
+ if (configs.length === 0) return;
99
+ editor_default.update(configs, {
100
+ changeRecordList,
101
+ historySource: "stage"
90
102
  });
91
103
  });
92
104
  stage.on("sort", (ev) => {
93
- editor_default.sort(ev.src, ev.dist);
105
+ editor_default.sort(ev.src, ev.dist, { historySource: "stage" });
94
106
  });
95
107
  stage.on("remove", (ev) => {
96
108
  const nodes = ev.data.map(({ el }) => editor_default.getNodeById(getIdFromEl()(el) || ""));
97
- editor_default.remove(nodes.filter((node) => Boolean(node)));
109
+ editor_default.remove(nodes.filter((node) => Boolean(node)), { historySource: "stage" });
98
110
  });
99
111
  stage.on("select-parent", () => {
100
112
  const parent = editor_default.get("parent");
@@ -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) {
@@ -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
@@ -2,11 +2,13 @@ import { CODE_DRAFT_STORAGE_KEY, CodeDeleteErrorType, ColumnLayout, DragType, Ke
2
2
  import { useCodeBlockEdit } from "./hooks/use-code-block-edit.js";
3
3
  import { advancedTabConfig, arrayOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, numberOptions, styleTabConfig } from "./utils/props.js";
4
4
  import props_default from "./services/props.js";
5
+ import { getEditorConfig, setEditorConfig } from "./utils/config.js";
5
6
  import { UndoRedo } from "./utils/undo-redo.js";
7
+ import { createStackStep, describeRevertStep, deserializeStacks, detectStackOpType, detectTargetId, detectTargetName, getLastPushedHistoryIds, getOrCreateStack, markStackSaved, mergeSteps, serializeStacks, undoFloor } from "./utils/history.js";
8
+ import { idbDelete, idbGet, idbSet, isIndexedDBSupported, openIndexedDB } from "./utils/indexed-db.js";
6
9
  import history_default from "./services/history.js";
7
- import { getEditorConfig, setEditorConfig } from "./utils/config.js";
8
10
  import storage_default from "./services/storage.js";
9
- import { COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, Fixed2Other, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, change2Fixed, classifyDragSources, collectRelatedNodes, editorNodeMergeCustomizer, fixNodeLeft, fixNodePosition, generatePageName, generatePageNameByApp, getGuideLineFromCache, getInitPositionStyle, getNodeIndex, getPageFragmentList, getPageList, getPageNameList, getRelativeStyle, isIncludeDataSource, moveItemsInContainer, resolveSelectedNode, serializeConfig, setChildrenLayout, setLayout, toggleFixedPosition } from "./utils/editor.js";
11
+ import { COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, Fixed2Other, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, change2Fixed, classifyDragSources, collectRelatedNodes, describeStepForRevert, editorNodeMergeCustomizer, fixNodeLeft, fixNodePosition, generatePageName, generatePageNameByApp, getGuideLineFromCache, getInitPositionStyle, getNodeIndex, getPageFragmentList, getPageList, getPageNameList, getRelativeStyle, isIncludeDataSource, moveItemsInContainer, resolveSelectedNode, serializeConfig, setChildrenLayout, setLayout, toggleFixedPosition } from "./utils/editor.js";
10
12
  import { beforePaste, getAddParent, getDefaultConfig, getPositionInContainer } from "./utils/operator.js";
11
13
  import editor_default from "./services/editor.js";
12
14
  import { DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, H_GUIDE_LINE_STORAGE_KEY, LEFT_COLUMN_WIDTH_STORAGE_KEY, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, PROPS_PANEL_WIDTH_STORAGE_KEY, RIGHT_COLUMN_WIDTH_STORAGE_KEY, UI_SELECT_MODE_EVENT_NAME, V_GUIDE_LINE_STORAGE_KEY } from "./utils/const.js";
@@ -21,6 +23,7 @@ import { useFilter } from "./hooks/use-filter.js";
21
23
  import { useGetSo } from "./hooks/use-getso.js";
22
24
  import { useNextFloatBoxPosition } from "./hooks/use-next-float-box-position.js";
23
25
  import { useNodeStatus } from "./hooks/use-node-status.js";
26
+ import { getCodeBlockFormConfig } from "./utils/code-block.js";
24
27
  import { debug, error, info, log, warn } from "./utils/logger.js";
25
28
  import { getCascaderOptionsFromFields, getDisplayField, getFieldType, getFormConfig, getFormValue } from "./utils/data-source/index.js";
26
29
  import { IdleTask } from "./utils/dep/idle-task.js";
@@ -31,6 +34,10 @@ import SplitView_default from "./components/SplitView.js";
31
34
  import Icon_default from "./components/Icon.js";
32
35
  import ToolButton_default from "./components/ToolButton.js";
33
36
  import CodeEditor_default from "./layouts/CodeEditor.js";
37
+ import { confirmHistoryAction } from "./layouts/history-list/composables.js";
38
+ import Bucket_default from "./layouts/history-list/Bucket.js";
39
+ import BucketTab_default from "./layouts/history-list/BucketTab.js";
40
+ import { useHistoryRevert } from "./layouts/history-list/useHistoryRevert.js";
34
41
  import FormPanel_default from "./layouts/props-panel/FormPanel.js";
35
42
  import PropsPanel_default from "./layouts/props-panel/PropsPanel.js";
36
43
  import FloatingBox_default from "./components/FloatingBox.js";
@@ -45,9 +52,11 @@ import DataSourceConfigPanel_default from "./layouts/sidebar/data-source/DataSou
45
52
  import LayerPanel_default from "./layouts/sidebar/layer/LayerPanel.js";
46
53
  import ComponentListPanel_default from "./layouts/sidebar/ComponentListPanel.js";
47
54
  import codeBlock_default from "./services/codeBlock.js";
55
+ import componentList_default from "./services/componentList.js";
48
56
  import dataSource_default from "./services/dataSource.js";
49
57
  import dep_default from "./services/dep.js";
50
58
  import events_default from "./services/events.js";
59
+ import keybinding_default from "./services/keybinding.js";
51
60
  import stageOverlay_default from "./services/stageOverlay.js";
52
61
  import Editor_default from "./Editor.js";
53
62
  import CodeSelect_default from "./fields/CodeSelect.js";
@@ -61,6 +70,8 @@ import DataSourceMethodSelect_default from "./fields/DataSourceMethodSelect.js";
61
70
  import Index_default from "./fields/DataSourceFieldSelect/Index.js";
62
71
  import EventSelect_default from "./fields/EventSelect.js";
63
72
  import KeyValue_default from "./fields/KeyValue.js";
73
+ import CompareForm_default from "./components/CompareForm.js";
74
+ import HistoryDiffDialog_default from "./layouts/history-list/HistoryDiffDialog.js";
64
75
  import PageFragmentSelect_default from "./fields/PageFragmentSelect.js";
65
76
  import DisplayConds_default from "./fields/DisplayConds.js";
66
77
  import CondOpSelect_default from "./fields/CondOpSelect.js";
@@ -76,4 +87,4 @@ export * from "@tmagic/table";
76
87
  export * from "@tmagic/stage";
77
88
  export * from "@tmagic/design";
78
89
  export * from "@tmagic/utils";
79
- 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, 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, 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, dataSource_default as dataSourceService, debug, plugin_default as default, defaultIsExpandable, dep_default as depService, designPlugin, displayTabConfig, editorNodeMergeCustomizer, editor_default as editorService, eqOptions, error, eventTabConfig, events_default as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getDefaultConfig, getDisplayField, getEditorConfig, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getNodeIndex, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, history_default as historyService, info, isIncludeDataSource, monaco_editor_default as loadMonaco, log, moveItemsInContainer, numberOptions, props_default as propsService, resolveSelectedNode, serializeConfig, setChildrenLayout, setEditorConfig, setLayout, stageOverlay_default as stageOverlayService, storage_default as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, ui_default as uiService, updateStatus, useCodeBlockEdit, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, warn };
90
+ 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, 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, 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, keybinding_default as keybindingService, monaco_editor_default as loadMonaco, log, markStackSaved, mergeSteps, 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 };
@@ -2,11 +2,11 @@ import { isIncludeDataSource } from "./utils/editor.js";
2
2
  import { getDepNodeIds, getNodes, isPage, isValueIncludeDataSource } from "@tmagic/utils";
3
3
  import { DepTargetType, NODE_CONDS_KEY, NodeType, createCodeBlockTarget, createDataSourceCondTarget, createDataSourceMethodTarget, createDataSourceTarget, updateNode } from "@tmagic/core";
4
4
  import { nextTick, onBeforeUnmount, reactive, toRaw, watch } from "vue";
5
- import { cloneDeep } from "lodash-es";
5
+ import { cloneDeep as cloneDeep$1 } from "lodash-es";
6
6
  //#region packages/editor/src/initService.ts
7
7
  var initServiceState = (props, { editorService, historyService, componentListService, propsService, eventsService, uiService, codeBlockService, keybindingService, dataSourceService, depService }) => {
8
8
  watch(() => props.modelValue, (modelValue) => {
9
- editorService.set("root", modelValue || null);
9
+ editorService.set("root", modelValue || null, { historySource: "initial" });
10
10
  }, { immediate: true });
11
11
  watch(() => props.disabledMultiSelect, (disabledMultiSelect) => {
12
12
  editorService.set("disabledMultiSelect", disabledMultiSelect || false);
@@ -86,9 +86,9 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
86
86
  const root = editorService.get("root");
87
87
  if (!root) return;
88
88
  return editorService.get("stage")?.update({
89
- config: cloneDeep(node),
89
+ config: cloneDeep$1(node),
90
90
  parentId: editorService.getParentById(node.id)?.id,
91
- root: cloneDeep(root)
91
+ root: cloneDeep$1(root)
92
92
  });
93
93
  };
94
94
  const updateDataSourceSchema = async () => {
@@ -128,7 +128,7 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
128
128
  if (!stage) return;
129
129
  stage.reloadIframe(url);
130
130
  stage.renderer?.once("runtime-ready", (runtime) => {
131
- runtime.updateRootConfig?.(cloneDeep(toRaw(editorService.get("root"))));
131
+ runtime.updateRootConfig?.(cloneDeep$1(toRaw(editorService.get("root"))));
132
132
  const page = editorService.get("page");
133
133
  const node = editorService.get("node");
134
134
  page?.id && runtime?.updatePageId?.(page.id);
@@ -155,7 +155,7 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
155
155
  const stage = await getStage();
156
156
  const runtime = await stage.renderer?.getRuntime();
157
157
  const app = await getTMagicApp();
158
- if (!app?.dataSourceManager) runtime?.updateRootConfig?.(cloneDeep(toRaw(value)));
158
+ if (!app?.dataSourceManager) runtime?.updateRootConfig?.(cloneDeep$1(toRaw(value)));
159
159
  const page = editorService.get("page");
160
160
  const node = editorService.get("node");
161
161
  page?.id && runtime?.updatePageId?.(page.id);
@@ -165,7 +165,7 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
165
165
  if (value) {
166
166
  depService.clearIdleTasks();
167
167
  await (typeof Worker === "undefined" ? collectIdle(value.items, true) : depService.collectByWorker(value));
168
- const dsl = cloneDeep(toRaw(value));
168
+ const dsl = cloneDeep$1(toRaw(value));
169
169
  if (dsl.dataSources && dsl.dataSourceDeps && app?.dataSourceManager) for (const node of getNodes(getDepNodeIds(dsl.dataSourceDeps), dsl.items)) updateNode(app.dataSourceManager.compiledNode(node), dsl);
170
170
  runtime?.updateRootConfig?.(dsl);
171
171
  }
@@ -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 } },
@@ -1,10 +1,10 @@
1
1
  import { getEditorConfig } from "../utils/config.js";
2
+ import { serializeConfig } from "../utils/editor.js";
2
3
  import monaco_editor_default from "../utils/monaco-editor.js";
3
4
  import Icon_default from "../components/Icon.js";
4
5
  import { TMagicButton } from "@tmagic/design";
5
6
  import { Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, ref, unref, useTemplateRef, watch, withCtx } from "vue";
6
7
  import { throttle } from "lodash-es";
7
- import serialize from "serialize-javascript";
8
8
  import { FullScreen } from "@element-plus/icons-vue";
9
9
  //#region packages/editor/src/layouts/CodeEditor.vue?vue&type=script&setup=true&lang.ts
10
10
  var _hoisted_1 = { class: "magic-code-editor" };
@@ -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: {
@@ -94,10 +94,7 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
94
94
  const toString = (v, language) => {
95
95
  let value;
96
96
  if (typeof v !== "string") if (language === "json") value = JSON.stringify(v, null, 2);
97
- else value = serialize(v, {
98
- space: 2,
99
- unsafe: true
100
- }).replace(/"(\w+)":\s/g, "$1: ");
97
+ else value = serializeConfig(v);
101
98
  else value = v;
102
99
  if (language === "javascript" && value.startsWith("{") && value.endsWith("}")) value = `(${value})`;
103
100
  return value;
@@ -194,6 +191,10 @@ var CodeEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
194
191
  deep: true,
195
192
  immediate: true
196
193
  });
194
+ watch(() => props.modifiedValues, (v, preV) => {
195
+ if (props.type !== "diff") return;
196
+ if (v !== preV) setEditorValue(props.initValues, props.modifiedValues);
197
+ }, { deep: true });
197
198
  watch(() => props.options, (v) => {
198
199
  vsEditor?.updateOptions(v);
199
200
  vsDiffEditor?.updateOptions(v);
@@ -13,15 +13,17 @@ var _hoisted_1 = {
13
13
  ref: "content",
14
14
  style: { "min-width": "900px" }
15
15
  };
16
- var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
16
+ var Framework_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
17
17
  name: "MEditorFramework",
18
18
  __name: "Framework",
19
19
  props: {
20
20
  disabledPageFragment: { type: Boolean },
21
21
  pageBarSortOptions: {},
22
- pageFilterFunction: { type: Function }
22
+ pageFilterFunction: { type: Function },
23
+ hideSidebar: { type: Boolean }
23
24
  },
24
25
  setup(__props) {
26
+ const props = __props;
25
27
  const codeOptions = inject("codeOptions", {});
26
28
  const { editorService, uiService, storageService } = useServices();
27
29
  const contentEl = useTemplateRef("content");
@@ -41,7 +43,7 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
41
43
  });
42
44
  });
43
45
  const columnWidthChange = (columnW) => {
44
- storageService.setItem(LEFT_COLUMN_WIDTH_STORAGE_KEY, columnW.left, { protocol: Protocol.NUMBER });
46
+ if (!props.hideSidebar) storageService.setItem(LEFT_COLUMN_WIDTH_STORAGE_KEY, columnW.left, { protocol: Protocol.NUMBER });
45
47
  storageService.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY, columnW.right, { protocol: Protocol.NUMBER });
46
48
  uiService.set("columnWidth", columnW);
47
49
  };
@@ -64,7 +66,7 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
64
66
  const saveCode = (value) => {
65
67
  try {
66
68
  const parseDSL = getEditorConfig("parseDSL");
67
- editorService.set("root", parseDSL(value));
69
+ editorService.set("root", parseDSL(value), { historySource: "root-code" });
68
70
  } catch (e) {
69
71
  console.error(e);
70
72
  }
@@ -87,15 +89,14 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
87
89
  "left-class": "m-editor-framework-left",
88
90
  "center-class": "m-editor-framework-center",
89
91
  "right-class": "m-editor-framework-right",
90
- left: columnWidth.value.left,
92
+ left: __props.hideSidebar ? void 0 : columnWidth.value.left,
91
93
  right: columnWidth.value.right,
92
- "min-left": unref(200),
94
+ "min-left": __props.hideSidebar ? 0 : unref(200),
93
95
  "min-right": unref(300),
94
96
  "min-center": unref(400),
95
97
  width: frameworkRect.value.width,
96
98
  onChange: columnWidthChange
97
99
  }, createSlots({
98
- left: withCtx(() => [renderSlot(_ctx.$slots, "sidebar")]),
99
100
  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, {
100
101
  "disabled-page-fragment": __props.disabledPageFragment,
101
102
  "page-bar-sort-options": __props.pageBarSortOptions,
@@ -112,10 +113,14 @@ var Framework_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
112
113
  "filter-function"
113
114
  ])])]),
114
115
  _: 2
115
- }, [page.value ? {
116
+ }, [!__props.hideSidebar ? {
117
+ name: "left",
118
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "sidebar")]),
119
+ key: "0"
120
+ } : void 0, page.value ? {
116
121
  name: "right",
117
122
  fn: withCtx(() => [renderSlot(_ctx.$slots, "props-panel")]),
118
- key: "0"
123
+ key: "1"
119
124
  } : void 0]), 1032, [
120
125
  "left",
121
126
  "right",
@@ -1,11 +1,12 @@
1
1
  import { ColumnLayout } from "../type.js";
2
2
  import { useServices } from "../hooks/use-services.js";
3
+ import HistoryListPanel_default from "./history-list/HistoryListPanel.js";
3
4
  import NavMenuColumn_default from "./NavMenuColumn.js";
4
5
  import { NodeType } from "@tmagic/core";
5
6
  import { Fragment, computed, createBlock, createElementBlock, defineComponent, markRaw, normalizeStyle, onBeforeUnmount, onMounted, openBlock, renderList, unref, useTemplateRef } from "vue";
6
7
  import { Back, Delete, FullScreen, Grid, Memo, Right, ScaleToOriginal, ZoomIn, ZoomOut } from "@element-plus/icons-vue";
7
8
  //#region packages/editor/src/layouts/NavMenu.vue?vue&type=script&setup=true&lang.ts
8
- 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({
9
10
  name: "MEditorNavMenu",
10
11
  __name: "NavMenu",
11
12
  props: {
@@ -44,7 +45,7 @@ var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
44
45
  disabled: () => editorService.get("node")?.type === NodeType.PAGE,
45
46
  handler: () => {
46
47
  const node = editorService.get("node");
47
- node && editorService.remove(node);
48
+ node && editorService.remove(node, { historySource: "toolbar" });
48
49
  }
49
50
  });
50
51
  break;
@@ -54,7 +55,7 @@ var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
54
55
  className: "undo",
55
56
  icon: markRaw(Back),
56
57
  tooltip: `后退(${ctrl}+z)`,
57
- disabled: () => !historyService.state.canUndo,
58
+ disabled: () => !historyService.canUndo("page", editorService.get("page")?.id),
58
59
  handler: () => editorService.undo()
59
60
  });
60
61
  break;
@@ -64,10 +65,17 @@ var NavMenu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
64
65
  className: "redo",
65
66
  icon: markRaw(Right),
66
67
  tooltip: `前进(${ctrl}+Shift+z)`,
67
- disabled: () => !historyService.state.canRedo,
68
+ disabled: () => !historyService.canRedo("page", editorService.get("page")?.id),
68
69
  handler: () => editorService.redo()
69
70
  });
70
71
  break;
72
+ case "history-list":
73
+ config.push({
74
+ type: "component",
75
+ className: "history-list",
76
+ component: markRaw(HistoryListPanel_default)
77
+ });
78
+ break;
71
79
  case "zoom-in":
72
80
  config.push({
73
81
  type: "button",
@@ -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: {
@@ -0,0 +1,5 @@
1
+ import Bucket_vue_vue_type_script_setup_true_lang_default from "./Bucket.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/layouts/history-list/Bucket.vue
3
+ var Bucket_default = Bucket_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Bucket_default as default };