@tmagic/editor 1.7.6 → 1.7.8-beta.1

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 (238) hide show
  1. package/LICENSE +235 -164
  2. package/dist/es/Editor.js +5 -0
  3. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +214 -0
  4. package/dist/es/_virtual/_plugin-vue_export-helper.js +8 -0
  5. package/dist/es/components/CodeBlockEditor.js +5 -0
  6. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +337 -0
  7. package/dist/es/components/CodeParams.js +5 -0
  8. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +63 -0
  9. package/dist/es/components/ContentMenu.js +5 -0
  10. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +160 -0
  11. package/dist/es/components/FloatingBox.js +5 -0
  12. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +161 -0
  13. package/dist/es/components/Icon.js +5 -0
  14. package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +39 -0
  15. package/dist/es/components/Resizer.js +5 -0
  16. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +20 -0
  17. package/dist/es/components/ScrollBar.js +6 -0
  18. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +72 -0
  19. package/dist/es/components/ScrollViewer.js +5 -0
  20. package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +104 -0
  21. package/dist/es/components/SearchInput.js +5 -0
  22. package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +40 -0
  23. package/dist/es/components/SplitView.js +5 -0
  24. package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +135 -0
  25. package/dist/es/components/ToolButton.js +5 -0
  26. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +131 -0
  27. package/dist/es/components/Tree.js +5 -0
  28. package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +60 -0
  29. package/dist/es/components/TreeNode.js +5 -0
  30. package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +126 -0
  31. package/dist/es/editorProps.js +34 -0
  32. package/dist/es/fields/Code.js +5 -0
  33. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +54 -0
  34. package/dist/es/fields/CodeLink.js +5 -0
  35. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +69 -0
  36. package/dist/es/fields/CodeSelect.js +5 -0
  37. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +116 -0
  38. package/dist/es/fields/CodeSelectCol.js +5 -0
  39. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +145 -0
  40. package/dist/es/fields/CondOpSelect.js +5 -0
  41. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +81 -0
  42. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.js +5 -0
  43. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +158 -0
  44. package/dist/es/fields/DataSourceFieldSelect/Index.js +5 -0
  45. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +155 -0
  46. package/dist/es/fields/DataSourceFields.js +5 -0
  47. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +390 -0
  48. package/dist/es/fields/DataSourceInput.js +5 -0
  49. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +268 -0
  50. package/dist/es/fields/DataSourceMethodSelect.js +5 -0
  51. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +144 -0
  52. package/dist/es/fields/DataSourceMethods.js +5 -0
  53. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +148 -0
  54. package/dist/es/fields/DataSourceMocks.js +5 -0
  55. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +259 -0
  56. package/dist/es/fields/DataSourceSelect.js +5 -0
  57. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +101 -0
  58. package/dist/es/fields/DisplayConds.js +5 -0
  59. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +156 -0
  60. package/dist/es/fields/EventSelect.js +5 -0
  61. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +338 -0
  62. package/dist/es/fields/KeyValue.js +5 -0
  63. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +158 -0
  64. package/dist/es/fields/PageFragmentSelect.js +5 -0
  65. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +81 -0
  66. package/dist/es/fields/StyleSetter/Index.js +5 -0
  67. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +92 -0
  68. package/dist/es/fields/StyleSetter/components/BackgroundPosition.js +5 -0
  69. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +96 -0
  70. package/dist/es/fields/StyleSetter/components/Border.js +5 -0
  71. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +100 -0
  72. package/dist/es/fields/StyleSetter/components/Box.js +5 -0
  73. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +81 -0
  74. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +17 -0
  75. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +14 -0
  76. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +17 -0
  77. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +17 -0
  78. package/dist/es/fields/StyleSetter/icons/display/Block.js +14 -0
  79. package/dist/es/fields/StyleSetter/icons/display/Flex.js +14 -0
  80. package/dist/es/fields/StyleSetter/icons/display/Inline.js +14 -0
  81. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +14 -0
  82. package/dist/es/fields/StyleSetter/icons/display/None.js +14 -0
  83. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +14 -0
  84. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +14 -0
  85. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +14 -0
  86. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +14 -0
  87. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +14 -0
  88. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +14 -0
  89. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +14 -0
  90. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +14 -0
  91. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +14 -0
  92. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +14 -0
  93. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +14 -0
  94. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +14 -0
  95. package/dist/es/fields/StyleSetter/pro/Background.js +5 -0
  96. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +114 -0
  97. package/dist/es/fields/StyleSetter/pro/Border.js +5 -0
  98. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +50 -0
  99. package/dist/es/fields/StyleSetter/pro/Font.js +5 -0
  100. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +98 -0
  101. package/dist/es/fields/StyleSetter/pro/Layout.js +5 -0
  102. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +287 -0
  103. package/dist/es/fields/StyleSetter/pro/Position.js +5 -0
  104. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +95 -0
  105. package/dist/es/fields/UISelect.js +6 -0
  106. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +161 -0
  107. package/dist/es/hooks/use-code-block-edit.js +54 -0
  108. package/dist/es/hooks/use-data-source-edit.js +29 -0
  109. package/dist/es/hooks/use-editor-content-height.js +17 -0
  110. package/dist/es/hooks/use-filter.js +35 -0
  111. package/dist/es/hooks/use-float-box.js +76 -0
  112. package/dist/es/hooks/use-getso.js +28 -0
  113. package/dist/es/hooks/use-next-float-box-position.js +27 -0
  114. package/dist/es/hooks/use-node-status.js +28 -0
  115. package/dist/es/hooks/use-services.js +9 -0
  116. package/dist/es/hooks/use-stage.js +107 -0
  117. package/dist/es/hooks/use-window-rect.js +19 -0
  118. package/dist/es/icons/CenterIcon.js +5 -0
  119. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +40 -0
  120. package/dist/es/icons/CodeIcon.js +5 -0
  121. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +19 -0
  122. package/dist/es/icons/FolderMinusIcon.js +5 -0
  123. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +27 -0
  124. package/dist/es/index.js +79 -0
  125. package/dist/es/initService.js +392 -0
  126. package/dist/es/layouts/AddPageBox.js +5 -0
  127. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +38 -0
  128. package/dist/es/layouts/CodeEditor.js +5 -0
  129. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +270 -0
  130. package/dist/es/layouts/Framework.js +5 -0
  131. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +134 -0
  132. package/dist/es/layouts/NavMenu.js +5 -0
  133. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +181 -0
  134. package/dist/es/layouts/page-bar/AddButton.js +5 -0
  135. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +57 -0
  136. package/dist/es/layouts/page-bar/PageBar.js +5 -0
  137. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +135 -0
  138. package/dist/es/layouts/page-bar/PageBarScrollContainer.js +5 -0
  139. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +119 -0
  140. package/dist/es/layouts/page-bar/PageList.js +5 -0
  141. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +54 -0
  142. package/dist/es/layouts/page-bar/Search.js +5 -0
  143. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +60 -0
  144. package/dist/es/layouts/props-panel/FormPanel.js +5 -0
  145. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +129 -0
  146. package/dist/es/layouts/props-panel/PropsPanel.js +5 -0
  147. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +179 -0
  148. package/dist/es/layouts/props-panel/use-style-panel.js +40 -0
  149. package/dist/es/layouts/sidebar/ComponentListPanel.js +5 -0
  150. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +121 -0
  151. package/dist/es/layouts/sidebar/Sidebar.js +5 -0
  152. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +314 -0
  153. package/dist/es/layouts/sidebar/code-block/CodeBlockList.js +5 -0
  154. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +161 -0
  155. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.js +5 -0
  156. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +113 -0
  157. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +60 -0
  158. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.js +5 -0
  159. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +44 -0
  160. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.js +5 -0
  161. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +103 -0
  162. package/dist/es/layouts/sidebar/data-source/DataSourceList.js +5 -0
  163. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +162 -0
  164. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.js +5 -0
  165. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +133 -0
  166. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +59 -0
  167. package/dist/es/layouts/sidebar/layer/LayerMenu.js +5 -0
  168. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +90 -0
  169. package/dist/es/layouts/sidebar/layer/LayerNodeTool.js +5 -0
  170. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +35 -0
  171. package/dist/es/layouts/sidebar/layer/LayerPanel.js +5 -0
  172. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +99 -0
  173. package/dist/es/layouts/sidebar/layer/use-click.js +68 -0
  174. package/dist/es/layouts/sidebar/layer/use-drag.js +118 -0
  175. package/dist/es/layouts/sidebar/layer/use-keybinding.js +36 -0
  176. package/dist/es/layouts/sidebar/layer/use-node-status.js +75 -0
  177. package/dist/es/layouts/workspace/Breadcrumb.js +5 -0
  178. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +39 -0
  179. package/dist/es/layouts/workspace/Workspace.js +5 -0
  180. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +43 -0
  181. package/dist/es/layouts/workspace/viewer/NodeListMenu.js +5 -0
  182. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +88 -0
  183. package/dist/es/layouts/workspace/viewer/Stage.js +5 -0
  184. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +206 -0
  185. package/dist/es/layouts/workspace/viewer/StageOverlay.js +5 -0
  186. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +89 -0
  187. package/dist/es/layouts/workspace/viewer/ViewerMenu.js +5 -0
  188. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +132 -0
  189. package/dist/es/plugin.js +61 -0
  190. package/dist/es/services/BaseService.js +148 -0
  191. package/dist/es/services/codeBlock.js +251 -0
  192. package/dist/es/services/componentList.js +29 -0
  193. package/dist/es/services/dataSource.js +157 -0
  194. package/dist/es/services/dep.js +173 -0
  195. package/dist/es/services/editor.js +752 -0
  196. package/dist/es/services/events.js +64 -0
  197. package/dist/es/services/history.js +84 -0
  198. package/dist/es/services/keybinding.js +182 -0
  199. package/dist/es/services/props.js +215 -0
  200. package/dist/es/services/stageOverlay.js +161 -0
  201. package/dist/es/services/storage.js +127 -0
  202. package/dist/es/services/ui.js +112 -0
  203. package/dist/es/style.css +1937 -0
  204. package/dist/es/type.js +90 -0
  205. package/dist/es/utils/compose.js +44 -0
  206. package/dist/es/utils/config.js +8 -0
  207. package/dist/es/utils/const.js +15 -0
  208. package/dist/es/utils/content-menu.js +76 -0
  209. package/dist/es/utils/data-source/formConfigs/base.js +28 -0
  210. package/dist/es/utils/data-source/formConfigs/http.js +74 -0
  211. package/dist/es/utils/data-source/index.js +201 -0
  212. package/dist/es/utils/dep/idle-task.js +76 -0
  213. package/dist/es/utils/dep/worker.js +19 -0
  214. package/dist/es/utils/editor.js +261 -0
  215. package/dist/es/utils/keybinding-config.js +106 -0
  216. package/dist/es/utils/logger.js +18 -0
  217. package/dist/es/utils/monaco-editor.js +13 -0
  218. package/dist/es/utils/operator.js +73 -0
  219. package/dist/es/utils/props.js +232 -0
  220. package/dist/es/utils/scroll-viewer.js +115 -0
  221. package/dist/es/utils/tree.js +11 -0
  222. package/dist/es/utils/undo-redo.js +43 -0
  223. package/dist/style.css +10 -10
  224. package/dist/tmagic-editor.umd.cjs +18427 -21980
  225. package/package.json +17 -13
  226. package/src/fields/CodeLink.vue +2 -2
  227. package/src/fields/DataSourceFieldSelect/Index.vue +10 -2
  228. package/src/fields/EventSelect.vue +6 -5
  229. package/src/index.ts +1 -73
  230. package/src/layouts/CodeEditor.vue +15 -8
  231. package/src/layouts/Framework.vue +1 -1
  232. package/src/plugin.ts +92 -0
  233. package/src/type.ts +6 -7
  234. package/src/utils/index.ts +1 -0
  235. package/src/utils/monaco-editor.ts +13 -6
  236. package/src/utils/props.ts +2 -0
  237. package/types/index.d.ts +3388 -3342
  238. package/dist/tmagic-editor.js +0 -17037
@@ -0,0 +1,287 @@
1
+ import Box_default from "../components/Box.js";
2
+ import Block_default from "../icons/display/Block.js";
3
+ import Flex_default from "../icons/display/Flex.js";
4
+ import Inline_default from "../icons/display/Inline.js";
5
+ import InlineBlock_default from "../icons/display/InlineBlock.js";
6
+ import None_default from "../icons/display/None.js";
7
+ import Column_default from "../icons/flex-direction/Column.js";
8
+ import ColumnReverse_default from "../icons/flex-direction/ColumnReverse.js";
9
+ import Row_default from "../icons/flex-direction/Row.js";
10
+ import RowReverse_default from "../icons/flex-direction/RowReverse.js";
11
+ import Center_default from "../icons/justify-content/Center.js";
12
+ import FlexEnd_default from "../icons/justify-content/FlexEnd.js";
13
+ import FlexStart_default from "../icons/justify-content/FlexStart.js";
14
+ import SpaceAround_default from "../icons/justify-content/SpaceAround.js";
15
+ import SpaceBetween_default from "../icons/justify-content/SpaceBetween.js";
16
+ import { MContainer } from "@tmagic/form";
17
+ import { Fragment, createElementBlock, createVNode, defineComponent, markRaw, openBlock, unref, vShow, withDirectives } from "vue";
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({
20
+ __name: "Layout",
21
+ props: {
22
+ values: {},
23
+ disabled: { type: Boolean },
24
+ size: {}
25
+ },
26
+ emits: ["change"],
27
+ setup(__props, { emit: __emit }) {
28
+ const emit = __emit;
29
+ const config = { items: [
30
+ {
31
+ name: "display",
32
+ text: "模式",
33
+ type: "radioGroup",
34
+ childType: "button",
35
+ labelWidth: "68px",
36
+ options: [
37
+ {
38
+ value: "inline",
39
+ icon: markRaw(Inline_default),
40
+ tooltip: "内联布局 inline"
41
+ },
42
+ {
43
+ value: "flex",
44
+ icon: markRaw(Flex_default),
45
+ tooltip: "弹性布局 flex"
46
+ },
47
+ {
48
+ value: "block",
49
+ icon: markRaw(Block_default),
50
+ tooltip: "块级布局 block"
51
+ },
52
+ {
53
+ value: "inline-block",
54
+ icon: markRaw(InlineBlock_default),
55
+ tooltip: "内联块布局 inline-block"
56
+ },
57
+ {
58
+ value: "none",
59
+ icon: markRaw(None_default),
60
+ tooltip: "隐藏 none"
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ name: "flexDirection",
66
+ text: "主轴方向",
67
+ type: "radioGroup",
68
+ childType: "button",
69
+ labelWidth: "68px",
70
+ options: [
71
+ {
72
+ value: "row",
73
+ icon: markRaw(Row_default),
74
+ tooltip: "水平方向 起点在左侧 row"
75
+ },
76
+ {
77
+ value: "row-reverse",
78
+ icon: markRaw(RowReverse_default),
79
+ tooltip: "水平方向 起点在右侧 row-reverse"
80
+ },
81
+ {
82
+ value: "column",
83
+ icon: markRaw(Column_default),
84
+ tooltip: "垂直方向 起点在上沿 column"
85
+ },
86
+ {
87
+ value: "column-reverse",
88
+ icon: markRaw(ColumnReverse_default),
89
+ tooltip: "垂直方向 起点在下沿 column-reverse"
90
+ }
91
+ ],
92
+ display: (mForm, { model }) => model.display === "flex"
93
+ },
94
+ {
95
+ name: "justifyContent",
96
+ text: "主轴对齐",
97
+ type: "radioGroup",
98
+ childType: "button",
99
+ labelWidth: "68px",
100
+ options: [
101
+ {
102
+ value: "flex-start",
103
+ icon: markRaw(FlexStart_default),
104
+ tooltip: "左对齐 flex-start"
105
+ },
106
+ {
107
+ value: "flex-end",
108
+ icon: markRaw(FlexEnd_default),
109
+ tooltip: "右对齐 flex-end"
110
+ },
111
+ {
112
+ value: "center",
113
+ icon: markRaw(Center_default),
114
+ tooltip: "居中 center"
115
+ },
116
+ {
117
+ value: "space-between",
118
+ icon: markRaw(SpaceBetween_default),
119
+ tooltip: "两端对齐 space-between"
120
+ },
121
+ {
122
+ value: "space-around",
123
+ icon: markRaw(SpaceAround_default),
124
+ tooltip: "横向平分 space-around"
125
+ }
126
+ ],
127
+ display: (mForm, { model }) => model.display === "flex"
128
+ },
129
+ {
130
+ name: "alignItems",
131
+ text: "辅轴对齐",
132
+ type: "radioGroup",
133
+ childType: "button",
134
+ labelWidth: "68px",
135
+ options: [
136
+ {
137
+ value: "flex-start",
138
+ icon: markRaw(FlexStart_default),
139
+ tooltip: "左对齐 flex-start"
140
+ },
141
+ {
142
+ value: "flex-end",
143
+ icon: markRaw(FlexEnd_default),
144
+ tooltip: "右对齐 flex-end"
145
+ },
146
+ {
147
+ value: "center",
148
+ icon: markRaw(Center_default),
149
+ tooltip: "居中 center"
150
+ },
151
+ {
152
+ value: "space-between",
153
+ icon: markRaw(SpaceBetween_default),
154
+ tooltip: "两端对齐 space-between"
155
+ },
156
+ {
157
+ value: "space-around",
158
+ icon: markRaw(SpaceAround_default),
159
+ tooltip: "横向平分 space-around"
160
+ }
161
+ ],
162
+ display: (mForm, { model }) => model.display === "flex"
163
+ },
164
+ {
165
+ name: "flexWrap",
166
+ text: "换行",
167
+ type: "radioGroup",
168
+ childType: "button",
169
+ labelWidth: "68px",
170
+ options: [
171
+ {
172
+ value: "nowrap",
173
+ text: "不换行",
174
+ tooltip: "不换行 nowrap"
175
+ },
176
+ {
177
+ value: "wrap",
178
+ text: "正换行",
179
+ tooltip: "第一行在上方 wrap"
180
+ },
181
+ {
182
+ value: "wrap-reverse",
183
+ text: "逆换行",
184
+ tooltip: "第一行在下方 wrap-reverse"
185
+ }
186
+ ],
187
+ display: (mForm, { model }) => model.display === "flex"
188
+ },
189
+ {
190
+ type: "row",
191
+ items: [{
192
+ name: "width",
193
+ text: "宽度",
194
+ labelWidth: "68px",
195
+ type: "data-source-field-select",
196
+ fieldConfig: { type: "text" }
197
+ }, {
198
+ name: "height",
199
+ text: "高度",
200
+ labelWidth: "68px",
201
+ type: "data-source-field-select",
202
+ fieldConfig: { type: "text" }
203
+ }]
204
+ },
205
+ {
206
+ type: "row",
207
+ items: [{
208
+ type: "data-source-field-select",
209
+ text: "overflow",
210
+ name: "overflow",
211
+ labelWidth: "68px",
212
+ checkStrictly: false,
213
+ dataSourceFieldType: ["string"],
214
+ fieldConfig: {
215
+ type: "select",
216
+ clearable: true,
217
+ allowCreate: true,
218
+ options: [
219
+ {
220
+ text: "visible",
221
+ value: "visible"
222
+ },
223
+ {
224
+ text: "hidden",
225
+ value: "hidden"
226
+ },
227
+ {
228
+ text: "clip",
229
+ value: "clip"
230
+ },
231
+ {
232
+ text: "scroll",
233
+ value: "scroll"
234
+ },
235
+ {
236
+ text: "auto",
237
+ value: "auto"
238
+ },
239
+ {
240
+ text: "overlay",
241
+ value: "overlay"
242
+ },
243
+ {
244
+ text: "initial",
245
+ value: "initial"
246
+ }
247
+ ]
248
+ }
249
+ }, {
250
+ type: "data-source-field-select",
251
+ text: "透明度",
252
+ name: "opacity",
253
+ labelWidth: "68px",
254
+ dataSourceFieldType: ["string", "number"],
255
+ fieldConfig: { type: "text" }
256
+ }]
257
+ }
258
+ ] };
259
+ const change = (value, eventData) => {
260
+ emit("change", value, eventData);
261
+ };
262
+ return (_ctx, _cache) => {
263
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(MContainer), {
264
+ config,
265
+ model: __props.values,
266
+ size: __props.size,
267
+ disabled: __props.disabled,
268
+ onChange: change
269
+ }, null, 8, [
270
+ "model",
271
+ "size",
272
+ "disabled"
273
+ ]), withDirectives(createVNode(Box_default, {
274
+ model: __props.values,
275
+ size: __props.size,
276
+ disabled: __props.disabled,
277
+ onChange: change
278
+ }, null, 8, [
279
+ "model",
280
+ "size",
281
+ "disabled"
282
+ ]), [[vShow, !["fixed", "absolute"].includes(__props.values.position)]])], 64);
283
+ };
284
+ }
285
+ });
286
+ //#endregion
287
+ export { Layout_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,5 @@
1
+ import Position_vue_vue_type_script_setup_true_lang_default from "./Position.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/fields/StyleSetter/pro/Position.vue
3
+ var Position_default = Position_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { Position_default as default };
@@ -0,0 +1,95 @@
1
+ import { MContainer } from "@tmagic/form";
2
+ import { createBlock, defineComponent, openBlock, unref } from "vue";
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({
5
+ __name: "Position",
6
+ props: {
7
+ values: {},
8
+ disabled: { type: Boolean },
9
+ size: {}
10
+ },
11
+ emits: ["change"],
12
+ setup(__props, { emit: __emit }) {
13
+ const props = __props;
14
+ const emit = __emit;
15
+ const positionText = {
16
+ static: "不定位",
17
+ relative: "相对定位",
18
+ absolute: "绝对定位",
19
+ fixed: "固定定位",
20
+ sticky: "粘性定位"
21
+ };
22
+ const config = { items: [
23
+ {
24
+ name: "position",
25
+ text: "定位",
26
+ labelWidth: "68px",
27
+ type: "data-source-field-select",
28
+ fieldConfig: {
29
+ type: "select",
30
+ options: Object.keys(positionText).map((item) => ({
31
+ value: item,
32
+ text: `${item}(${positionText[item]})`
33
+ }))
34
+ }
35
+ },
36
+ {
37
+ type: "row",
38
+ labelWidth: "68px",
39
+ display: () => props.values.position !== "static",
40
+ items: [{
41
+ name: "left",
42
+ type: "data-source-field-select",
43
+ text: "left",
44
+ fieldConfig: { type: "text" }
45
+ }, {
46
+ name: "top",
47
+ type: "data-source-field-select",
48
+ text: "top",
49
+ fieldConfig: { type: "text" }
50
+ }]
51
+ },
52
+ {
53
+ type: "row",
54
+ labelWidth: "68px",
55
+ display: () => props.values.position !== "static",
56
+ items: [{
57
+ name: "right",
58
+ type: "data-source-field-select",
59
+ text: "right",
60
+ fieldConfig: { type: "text" }
61
+ }, {
62
+ name: "bottom",
63
+ type: "data-source-field-select",
64
+ text: "bottom",
65
+ fieldConfig: { type: "text" }
66
+ }]
67
+ },
68
+ {
69
+ labelWidth: "68px",
70
+ name: "zIndex",
71
+ text: "zIndex",
72
+ type: "data-source-field-select",
73
+ fieldConfig: { type: "text" }
74
+ }
75
+ ] };
76
+ const change = (value, eventData) => {
77
+ emit("change", value, eventData);
78
+ };
79
+ return (_ctx, _cache) => {
80
+ return openBlock(), createBlock(unref(MContainer), {
81
+ config,
82
+ model: __props.values,
83
+ size: __props.size,
84
+ disabled: __props.disabled,
85
+ onChange: change
86
+ }, null, 8, [
87
+ "model",
88
+ "size",
89
+ "disabled"
90
+ ]);
91
+ };
92
+ }
93
+ });
94
+ //#endregion
95
+ export { Position_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,6 @@
1
+ import UISelect_vue_vue_type_script_setup_true_lang_default from "./UISelect.vue_vue_type_script_setup_true_lang.js";
2
+ /* empty css */
3
+ //#region packages/editor/src/fields/UISelect.vue
4
+ var UISelect_default = UISelect_vue_vue_type_script_setup_true_lang_default;
5
+ //#endregion
6
+ export { UISelect_default as default };
@@ -0,0 +1,161 @@
1
+ import { UI_SELECT_MODE_EVENT_NAME } from "../utils/const.js";
2
+ import { useServices } from "../hooks/use-services.js";
3
+ import { TMagicButton, TMagicTooltip } from "@tmagic/design";
4
+ import { getIdFromEl } from "@tmagic/utils";
5
+ import { Fragment, computed, createBlock, createElementBlock, createTextVNode, createVNode, defineComponent, inject, openBlock, ref, toDisplayString, unref, withCtx, withModifiers } from "vue";
6
+ import { throttle } from "lodash-es";
7
+ import { Close, Delete } from "@element-plus/icons-vue";
8
+ //#region packages/editor/src/fields/UISelect.vue?vue&type=script&setup=true&lang.ts
9
+ var _hoisted_1 = {
10
+ key: 1,
11
+ class: "m-fields-ui-select",
12
+ style: { "display": "flex" }
13
+ };
14
+ var UISelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
15
+ name: "MFieldsUISelect",
16
+ __name: "UISelect",
17
+ props: {
18
+ config: {},
19
+ model: {},
20
+ initValues: {},
21
+ values: {},
22
+ name: {},
23
+ prop: {},
24
+ disabled: { type: Boolean },
25
+ size: {},
26
+ lastValues: {},
27
+ isCompare: { type: Boolean }
28
+ },
29
+ emits: ["change"],
30
+ setup(__props, { emit: __emit }) {
31
+ const props = __props;
32
+ const emit = __emit;
33
+ const { editorService, uiService, stageOverlayService } = useServices();
34
+ const mForm = inject("mForm");
35
+ const val = computed(() => props.model[props.name]);
36
+ const uiSelectMode = ref(false);
37
+ const cancelHandler = () => {
38
+ uiService.set("uiSelectMode", false);
39
+ uiSelectMode.value = false;
40
+ globalThis.document.removeEventListener(UI_SELECT_MODE_EVENT_NAME, clickHandler);
41
+ };
42
+ const clickHandler = ({ detail }) => {
43
+ let { id } = detail;
44
+ if (detail.nodeType) id = getIdFromEl()(detail) || id;
45
+ if (id) {
46
+ emit("change", id);
47
+ mForm?.$emit("field-change", props.prop, id);
48
+ }
49
+ if (cancelHandler) cancelHandler();
50
+ };
51
+ const toName = computed(() => {
52
+ return editorService.getNodeById(val.value)?.name || "";
53
+ });
54
+ const startSelect = () => {
55
+ uiService.set("uiSelectMode", true);
56
+ uiSelectMode.value = true;
57
+ globalThis.document.addEventListener(UI_SELECT_MODE_EVENT_NAME, clickHandler);
58
+ };
59
+ const deleteHandler = () => {
60
+ if (props.model) {
61
+ emit("change", "");
62
+ mForm?.$emit("field-change", props.prop, "");
63
+ }
64
+ };
65
+ const selectNode = async (id) => {
66
+ await editorService.select(id);
67
+ editorService.get("stage")?.select(id);
68
+ stageOverlayService.get("stage")?.select(id);
69
+ };
70
+ const highlight = throttle((id) => {
71
+ editorService.highlight(id);
72
+ editorService.get("stage")?.highlight(id);
73
+ stageOverlayService.get("stage")?.highlight(id);
74
+ }, 150);
75
+ const unhighlight = () => {
76
+ editorService.set("highlightNode", null);
77
+ editorService.get("stage")?.clearHighlight();
78
+ stageOverlayService.get("stage")?.clearHighlight();
79
+ };
80
+ return (_ctx, _cache) => {
81
+ return uiSelectMode.value ? (openBlock(), createElementBlock("div", {
82
+ key: 0,
83
+ class: "m-fields-ui-select",
84
+ onClick: cancelHandler
85
+ }, [createVNode(unref(TMagicButton), {
86
+ type: "danger",
87
+ icon: unref(Delete),
88
+ disabled: __props.disabled,
89
+ size: __props.size,
90
+ link: "",
91
+ style: { "padding": "0" }
92
+ }, {
93
+ default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode("取消", -1)])]),
94
+ _: 1
95
+ }, 8, [
96
+ "icon",
97
+ "disabled",
98
+ "size"
99
+ ])])) : (openBlock(), createElementBlock("div", _hoisted_1, [val.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(unref(TMagicTooltip), {
100
+ content: "清除",
101
+ placement: "top"
102
+ }, {
103
+ default: withCtx(() => [createVNode(unref(TMagicButton), {
104
+ style: { "padding": "0" },
105
+ type: "danger",
106
+ icon: unref(Close),
107
+ disabled: __props.disabled,
108
+ size: __props.size,
109
+ link: "",
110
+ onClick: withModifiers(deleteHandler, ["stop"])
111
+ }, null, 8, [
112
+ "icon",
113
+ "disabled",
114
+ "size"
115
+ ])]),
116
+ _: 1
117
+ }), createVNode(unref(TMagicTooltip), {
118
+ content: "点击选中组件",
119
+ placement: "top"
120
+ }, {
121
+ default: withCtx(() => [createVNode(unref(TMagicButton), {
122
+ link: "",
123
+ style: {
124
+ "padding": "0",
125
+ "margin": "0"
126
+ },
127
+ disabled: __props.disabled,
128
+ size: __props.size,
129
+ onClick: _cache[0] || (_cache[0] = ($event) => selectNode(val.value)),
130
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => unref(highlight)(val.value)),
131
+ onMouseleave: unhighlight
132
+ }, {
133
+ default: withCtx(() => [createTextVNode(toDisplayString(`${toName.value}_${val.value}`), 1)]),
134
+ _: 1
135
+ }, 8, ["disabled", "size"])]),
136
+ _: 1
137
+ })], 64)) : (openBlock(), createBlock(unref(TMagicTooltip), {
138
+ key: 1,
139
+ content: "点击此处选择",
140
+ placement: "top"
141
+ }, {
142
+ default: withCtx(() => [createVNode(unref(TMagicButton), {
143
+ link: "",
144
+ style: {
145
+ "padding": "0",
146
+ "margin": "0"
147
+ },
148
+ disabled: __props.disabled,
149
+ size: __props.size,
150
+ onClick: startSelect
151
+ }, {
152
+ default: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode("点击此处选择", -1)])]),
153
+ _: 1
154
+ }, 8, ["disabled", "size"])]),
155
+ _: 1
156
+ }))]));
157
+ };
158
+ }
159
+ });
160
+ //#endregion
161
+ export { UISelect_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,54 @@
1
+ import { tMagicMessage } from "@tmagic/design";
2
+ import { nextTick, ref, useTemplateRef } from "vue";
3
+ import { cloneDeep } from "lodash-es";
4
+ //#region packages/editor/src/hooks/use-code-block-edit.ts
5
+ var useCodeBlockEdit = (codeBlockService) => {
6
+ const codeConfig = ref();
7
+ const codeId = ref();
8
+ const codeBlockEditorRef = useTemplateRef("codeBlockEditor");
9
+ const createCodeBlock = async () => {
10
+ codeConfig.value = {
11
+ name: "",
12
+ content: "({app, params, flowState}) => {\n // place your code here\n}",
13
+ params: []
14
+ };
15
+ codeId.value = await codeBlockService.getUniqueId();
16
+ await nextTick();
17
+ codeBlockEditorRef.value?.show();
18
+ };
19
+ const editCode = async (id) => {
20
+ const codeBlock = await codeBlockService.getCodeContentById(id);
21
+ if (!codeBlock) {
22
+ tMagicMessage.error("获取代码块内容失败");
23
+ return;
24
+ }
25
+ let codeContent = codeBlock.content;
26
+ if (typeof codeContent !== "string") codeContent = codeContent.toString();
27
+ codeConfig.value = {
28
+ ...cloneDeep(codeBlock),
29
+ content: codeContent
30
+ };
31
+ codeId.value = id;
32
+ await nextTick();
33
+ codeBlockEditorRef.value?.show();
34
+ };
35
+ const deleteCode = async (key) => {
36
+ codeBlockService.deleteCodeDslByIds([key]);
37
+ };
38
+ const submitCodeBlockHandler = async (values) => {
39
+ if (!codeId.value) return;
40
+ await codeBlockService.setCodeDslById(codeId.value, values);
41
+ codeBlockEditorRef.value?.hide();
42
+ };
43
+ return {
44
+ codeId,
45
+ codeConfig,
46
+ codeBlockEditor: codeBlockEditorRef,
47
+ createCodeBlock,
48
+ editCode,
49
+ deleteCode,
50
+ submitCodeBlockHandler
51
+ };
52
+ };
53
+ //#endregion
54
+ export { useCodeBlockEdit };
@@ -0,0 +1,29 @@
1
+ import { computed, ref } from "vue";
2
+ //#region packages/editor/src/hooks/use-data-source-edit.ts
3
+ var useDataSourceEdit = (dataSourceService) => {
4
+ const dialogTitle = ref("");
5
+ const editDialog = ref();
6
+ const dataSourceValues = ref({});
7
+ const editable = computed(() => dataSourceService.get("editable"));
8
+ const editHandler = (id) => {
9
+ if (!editDialog.value) return;
10
+ dataSourceValues.value = { ...dataSourceService.getDataSourceById(id) || {} };
11
+ dialogTitle.value = `编辑${dataSourceValues.value.title || ""}`;
12
+ editDialog.value.show();
13
+ };
14
+ const submitDataSourceHandler = (value, eventData) => {
15
+ if (value.id) dataSourceService.update(value, { changeRecords: eventData.changeRecords });
16
+ else dataSourceService.add(value);
17
+ editDialog.value?.hide();
18
+ };
19
+ return {
20
+ dialogTitle,
21
+ editDialog,
22
+ dataSourceValues,
23
+ editable,
24
+ editHandler,
25
+ submitDataSourceHandler
26
+ };
27
+ };
28
+ //#endregion
29
+ export { useDataSourceEdit };
@@ -0,0 +1,17 @@
1
+ import { useServices } from "./use-services.js";
2
+ import { computed, ref, watch } from "vue";
3
+ //#region packages/editor/src/hooks/use-editor-content-height.ts
4
+ var useEditorContentHeight = () => {
5
+ const { uiService } = useServices();
6
+ const frameworkHeight = computed(() => uiService.get("frameworkRect").height);
7
+ const navMenuHeight = computed(() => uiService.get("navMenuRect").height);
8
+ const editorContentHeight = computed(() => frameworkHeight.value - navMenuHeight.value);
9
+ const height = ref(0);
10
+ watch(editorContentHeight, () => {
11
+ if (height.value > 0 && height.value === editorContentHeight.value) return;
12
+ height.value = editorContentHeight.value;
13
+ }, { immediate: true });
14
+ return { height };
15
+ };
16
+ //#endregion
17
+ export { useEditorContentHeight };
@@ -0,0 +1,35 @@
1
+ import { updateStatus } from "../utils/tree.js";
2
+ import { traverseNode } from "@tmagic/utils";
3
+ import { ref } from "vue";
4
+ //#region packages/editor/src/hooks/use-filter.ts
5
+ var useFilter = (nodeData, nodeStatusMap, filterNodeMethod) => {
6
+ const filterIsMatch = (value, data) => {
7
+ const string = !Array.isArray(value) ? [value] : value;
8
+ if (!string.length) return true;
9
+ return string.some((v) => filterNodeMethod(v, data));
10
+ };
11
+ const filter = (text) => {
12
+ if (!nodeData.value.length) return;
13
+ nodeData.value.forEach((node) => {
14
+ traverseNode(node, (node, parents) => {
15
+ if (!nodeStatusMap.value) return;
16
+ const visible = filterIsMatch(text, node);
17
+ if (visible && parents.length) parents.forEach((parent) => {
18
+ if (text || text.length) updateStatus(nodeStatusMap.value, parent.id, {
19
+ visible,
20
+ expand: true
21
+ });
22
+ });
23
+ updateStatus(nodeStatusMap.value, node.id, { visible });
24
+ });
25
+ });
26
+ };
27
+ return {
28
+ filterText: ref(""),
29
+ filterTextChangeHandler(text) {
30
+ filter(text);
31
+ }
32
+ };
33
+ };
34
+ //#endregion
35
+ export { useFilter };