@tmagic/editor 1.8.0-manmanyu.9 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +22 -13
  2. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +10 -5
  3. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +7 -6
  4. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +21 -122
  5. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +21 -5
  6. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +62 -16
  7. package/dist/es/components/Icon.vue_vue_type_script_setup_true_lang.js +1 -1
  8. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +3 -2
  9. package/dist/es/components/ScrollBar.js +0 -1
  10. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +5 -4
  11. package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +1 -1
  15. package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +1 -1
  16. package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/es/components/ViewForm.js +5 -0
  18. package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +56 -0
  19. package/dist/es/editorProps.js +7 -1
  20. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +1 -1
  22. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +30 -113
  23. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +2 -2
  24. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +7 -19
  25. package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +7 -6
  26. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +4 -2
  27. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +12 -4
  28. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +9 -20
  29. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +2 -2
  30. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +5 -3
  31. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +9 -4
  32. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +2 -2
  33. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +10 -110
  34. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +52 -363
  35. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +3 -6
  38. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +4 -35
  40. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +3 -3
  41. package/dist/es/fields/StyleSetter/configs.js +663 -0
  42. package/dist/es/fields/StyleSetter/icons/align-items/Center.js +1 -1
  43. package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +1 -1
  44. package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +1 -1
  45. package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +1 -1
  46. package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +1 -1
  47. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +1 -1
  48. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +1 -1
  49. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +1 -1
  50. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +1 -1
  51. package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
  52. package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
  53. package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
  54. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
  55. package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
  56. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +1 -1
  57. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +1 -1
  58. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +1 -1
  59. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +1 -1
  60. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +1 -1
  61. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +1 -1
  62. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +1 -1
  63. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +1 -1
  64. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +1 -1
  65. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
  66. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
  67. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
  68. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +29 -106
  69. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +8 -11
  70. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +30 -89
  71. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +29 -297
  72. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +29 -82
  73. package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +8 -24
  74. package/dist/es/fields/UISelect.js +0 -1
  75. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/es/fields/configs/codeSelect.js +98 -0
  77. package/dist/es/fields/configs/displayConds.js +158 -0
  78. package/dist/es/fields/configs/eventSelect.js +225 -0
  79. package/dist/es/fields/configs/stickyAddButton.js +21 -0
  80. package/dist/es/fields/headless-validation.js +139 -0
  81. package/dist/es/headless.js +2 -0
  82. package/dist/es/hooks/use-code-block-edit.js +4 -2
  83. package/dist/es/hooks/use-compare-form.js +101 -0
  84. package/dist/es/hooks/use-form-context.js +29 -0
  85. package/dist/es/hooks/use-stage.js +1 -0
  86. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  87. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/dist/es/icons/DatasourceIcon.js +1 -1
  89. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  90. package/dist/es/index.js +16 -8
  91. package/dist/es/initService.js +52 -16
  92. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
  93. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +26 -10
  94. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +11 -8
  95. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  96. package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  97. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +8 -5
  99. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +1 -1
  100. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +26 -10
  101. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +11 -13
  102. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/dist/es/layouts/history-list/composables.js +1 -1
  105. package/dist/es/layouts/history-list/useHistoryRevert.js +38 -33
  106. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  107. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +1 -1
  108. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
  109. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
  111. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +50 -20
  112. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +53 -35
  113. package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
  114. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +3 -3
  115. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +21 -36
  116. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +1 -1
  117. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
  118. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +19 -4
  119. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  120. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +9 -4
  121. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
  122. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
  123. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +19 -4
  124. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +3 -3
  125. package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
  126. package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
  127. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +1 -1
  128. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +6 -4
  129. package/dist/es/layouts/sidebar/layer/use-click.js +3 -3
  130. package/dist/es/layouts/sidebar/layer/use-drag.js +11 -10
  131. package/dist/es/layouts/sidebar/layer/use-node-status.js +2 -2
  132. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
  133. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
  134. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +9 -3
  135. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +55 -9
  136. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
  137. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
  138. package/dist/es/plugin.js +35 -23
  139. package/dist/es/services/codeBlock.js +8 -3
  140. package/dist/es/services/dataSource.js +3 -0
  141. package/dist/es/services/dep.js +162 -41
  142. package/dist/es/services/editor.js +344 -113
  143. package/dist/es/services/events.js +4 -4
  144. package/dist/es/services/history.js +17 -1
  145. package/dist/es/services/keybinding.js +3 -3
  146. package/dist/es/services/props.js +2 -1
  147. package/dist/es/services/storage.js +2 -2
  148. package/dist/es/services/ui.js +7 -2
  149. package/dist/es/style.css +277 -114
  150. package/dist/es/utils/code-block.js +14 -7
  151. package/dist/es/utils/config.js +4 -1
  152. package/dist/es/utils/const.js +2 -2
  153. package/dist/es/utils/content-menu.js +2 -2
  154. package/dist/es/utils/data-source/index.js +34 -12
  155. package/dist/es/utils/dep/collect-worker-client.js +154 -0
  156. package/dist/es/utils/dep/idle-task.js +70 -22
  157. package/dist/es/utils/dep/worker.js +1 -1
  158. package/dist/es/utils/editor.js +4 -2
  159. package/dist/es/utils/event.js +135 -0
  160. package/dist/es/utils/monaco-editor.js +22 -6
  161. package/dist/es/utils/operator.js +2 -2
  162. package/dist/es/utils/props.js +50 -106
  163. package/dist/es/utils/type-match-rules.js +356 -0
  164. package/dist/style.css +277 -114
  165. package/dist/themes/magic-admin.css +978 -175
  166. package/dist/tmagic-editor-headless.umd.cjs +10880 -0
  167. package/dist/tmagic-editor.umd.cjs +12695 -10896
  168. package/package.json +18 -13
  169. package/src/Editor.vue +23 -6
  170. package/src/components/CodeBlockEditor.vue +3 -0
  171. package/src/components/CodeParams.vue +10 -4
  172. package/src/components/CompareForm.vue +20 -190
  173. package/src/components/ContentMenu.vue +34 -6
  174. package/src/components/FloatingBox.vue +71 -7
  175. package/src/components/ScrollBar.vue +0 -67
  176. package/src/components/ViewForm.vue +54 -0
  177. package/src/editorProps.ts +23 -10
  178. package/src/fields/Code.vue +1 -1
  179. package/src/fields/CodeSelect.vue +20 -113
  180. package/src/fields/CodeSelectCol.vue +1 -1
  181. package/src/fields/CondOpSelect.vue +5 -26
  182. package/src/fields/DataSourceFieldSelect/FieldSelect.vue +2 -2
  183. package/src/fields/DataSourceFieldSelect/Index.vue +4 -1
  184. package/src/fields/DataSourceFields.vue +5 -1
  185. package/src/fields/DataSourceInput.vue +10 -28
  186. package/src/fields/DataSourceMethodSelect.vue +1 -1
  187. package/src/fields/DataSourceMethods.vue +6 -2
  188. package/src/fields/DataSourceMocks.vue +3 -0
  189. package/src/fields/DataSourceSelect.vue +1 -1
  190. package/src/fields/DisplayConds.vue +17 -139
  191. package/src/fields/EventSelect.vue +29 -416
  192. package/src/fields/KeyValue.vue +1 -1
  193. package/src/fields/StyleSetter/Index.vue +2 -8
  194. package/src/fields/StyleSetter/components/Border.vue +4 -38
  195. package/src/fields/StyleSetter/components/Box.vue +1 -1
  196. package/src/fields/StyleSetter/components/Position.vue +1 -1
  197. package/src/fields/StyleSetter/configs.ts +690 -0
  198. package/src/fields/StyleSetter/pro/Background.vue +9 -64
  199. package/src/fields/StyleSetter/pro/Border.vue +5 -16
  200. package/src/fields/StyleSetter/pro/Font.vue +11 -71
  201. package/src/fields/StyleSetter/pro/Layout.vue +10 -230
  202. package/src/fields/StyleSetter/pro/Position.vue +11 -82
  203. package/src/fields/StyleSetter/pro/Transform.vue +6 -34
  204. package/src/fields/UISelect.vue +0 -12
  205. package/src/fields/configs/codeSelect.ts +127 -0
  206. package/src/fields/configs/displayConds.ts +184 -0
  207. package/src/fields/configs/eventSelect.ts +309 -0
  208. package/src/fields/configs/stickyAddButton.ts +32 -0
  209. package/src/fields/headless-validation.ts +177 -0
  210. package/src/headless.ts +33 -0
  211. package/src/hooks/index.ts +1 -0
  212. package/src/hooks/use-compare-form.ts +166 -0
  213. package/src/hooks/use-form-context.ts +56 -0
  214. package/src/hooks/use-stage.ts +1 -0
  215. package/src/index.ts +9 -0
  216. package/src/initService.ts +73 -18
  217. package/src/layouts/CodeEditor.vue +32 -6
  218. package/src/layouts/Framework.vue +7 -6
  219. package/src/layouts/history-list/BucketTab.vue +2 -2
  220. package/src/layouts/history-list/HistoryDiffDialog.vue +33 -15
  221. package/src/layouts/history-list/HistoryListPanel.vue +16 -18
  222. package/src/layouts/history-list/useHistoryRevert.ts +57 -41
  223. package/src/layouts/props-panel/FormPanel.vue +75 -20
  224. package/src/layouts/props-panel/PropsPanel.vue +81 -30
  225. package/src/layouts/props-panel/use-style-panel.ts +4 -3
  226. package/src/layouts/sidebar/ComponentListPanel.vue +6 -2
  227. package/src/layouts/sidebar/Sidebar.vue +5 -3
  228. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
  229. package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
  230. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +3 -0
  231. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +3 -3
  232. package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
  233. package/src/layouts/sidebar/layer/LayerMenu.vue +2 -2
  234. package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
  235. package/src/layouts/sidebar/layer/LayerPanel.vue +5 -2
  236. package/src/layouts/sidebar/layer/use-click.ts +3 -3
  237. package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
  238. package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
  239. package/src/layouts/workspace/viewer/Stage.vue +80 -10
  240. package/src/layouts/workspace/viewer/ViewerMenu.vue +7 -7
  241. package/src/plugin.ts +35 -25
  242. package/src/services/codeBlock.ts +4 -0
  243. package/src/services/dataSource.ts +3 -0
  244. package/src/services/dep.ts +292 -47
  245. package/src/services/editor.ts +383 -120
  246. package/src/services/events.ts +8 -7
  247. package/src/services/history.ts +22 -1
  248. package/src/services/keybinding.ts +3 -3
  249. package/src/services/ui.ts +26 -5
  250. package/src/theme/code-block.scss +0 -37
  251. package/src/theme/display-conds.scss +4 -0
  252. package/src/theme/event.scss +25 -33
  253. package/src/theme/floating-box.scss +9 -1
  254. package/src/theme/framework.scss +4 -1
  255. package/src/theme/layer-node-content.scss +14 -0
  256. package/src/theme/nav-menu.scss +5 -1
  257. package/src/theme/props-panel.scss +17 -3
  258. package/src/theme/scroll-bar.scss +64 -0
  259. package/src/theme/theme.scss +3 -0
  260. package/src/theme/themes/magic-admin/index.scss +109 -9
  261. package/src/theme/ui-select.scss +9 -0
  262. package/src/type.ts +216 -6
  263. package/src/utils/code-block.ts +1 -0
  264. package/src/utils/config.ts +9 -1
  265. package/src/utils/const.ts +3 -3
  266. package/src/utils/content-menu.ts +2 -2
  267. package/src/utils/data-source/index.ts +31 -12
  268. package/src/utils/dep/collect-worker-client.ts +215 -0
  269. package/src/utils/dep/idle-task.ts +104 -35
  270. package/src/utils/dep/worker.ts +113 -9
  271. package/src/utils/event.ts +237 -0
  272. package/src/utils/index.ts +2 -0
  273. package/src/utils/monaco-editor.ts +27 -0
  274. package/src/utils/operator.ts +2 -2
  275. package/src/utils/props.ts +61 -122
  276. package/src/utils/type-match-rules.ts +697 -0
  277. package/types/headless.d.ts +17 -0
  278. package/types/index.d.ts +1199 -724
  279. package/src/fields/StyleSetter/icons/align-items/index copy.ts +0 -5
@@ -4,11 +4,12 @@ import { PROPS_PANEL_WIDTH_STORAGE_KEY } from "../../utils/const.js";
4
4
  import { useServices } from "../../hooks/use-services.js";
5
5
  import Resizer_default from "../../components/Resizer.js";
6
6
  import Icon_default from "../../components/Icon.js";
7
+ import { ENABLE_PROPS_FORM_VALIDATE } from "../../editorProps.js";
7
8
  import FormPanel_default from "./FormPanel.js";
8
9
  import { useStylePanel } from "./use-style-panel.js";
9
10
  import { TMagicButton } from "@tmagic/design";
10
11
  import { setValueByKeyPath } from "@tmagic/utils";
11
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
12
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
12
13
  import { Close, Sugar } from "@element-plus/icons-vue";
13
14
  //#region packages/editor/src/layouts/props-panel/PropsPanel.vue?vue&type=script&setup=true&lang.ts
14
15
  var _hoisted_1 = {
@@ -16,13 +17,10 @@ var _hoisted_1 = {
16
17
  class: "m-editor-props-panel"
17
18
  };
18
19
  var _hoisted_2 = { class: "m-editor-props-style-panel-title" };
19
- var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
+ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
21
  name: "MEditorPropsPanel",
21
22
  __name: "PropsPanel",
22
- props: {
23
- disabledShowSrc: { type: Boolean },
24
- extendState: { type: Function }
25
- },
23
+ props: { disabledShowSrc: { type: Boolean } },
26
24
  emits: [
27
25
  "submit-error",
28
26
  "form-error",
@@ -32,6 +30,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
32
30
  setup(__props, { expose: __expose, emit: __emit }) {
33
31
  const emit = __emit;
34
32
  const { editorService, uiService, propsService, storageService } = useServices();
33
+ const enablePropsFormValidate = inject(ENABLE_PROPS_FORM_VALIDATE, false);
35
34
  const values = ref({});
36
35
  const curFormConfig = ref([]);
37
36
  const node = computed(() => editorService.get("node"));
@@ -40,39 +39,65 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
40
39
  tabPosition: "right",
41
40
  items: styleTabConfig.items
42
41
  }];
42
+ let initSeq = 0;
43
+ let mounted = true;
43
44
  const init = async () => {
45
+ initSeq += 1;
46
+ const seq = initSeq;
44
47
  if (!node.value) {
48
+ if (seq !== initSeq || !mounted) return;
45
49
  curFormConfig.value = [];
46
50
  return;
47
51
  }
48
52
  const type = node.value.type || (node.value.items ? "container" : "text");
49
- curFormConfig.value = await propsService.getPropsConfig(type, { node: node.value });
53
+ const config = await propsService.getPropsConfig(type, { node: node.value });
54
+ if (seq !== initSeq || !mounted) return;
55
+ if (!node.value) return;
56
+ curFormConfig.value = config;
50
57
  values.value = node.value;
51
58
  };
52
59
  watchEffect(init);
53
60
  propsService.on("props-configs-change", init);
54
61
  onBeforeUnmount(() => {
62
+ mounted = false;
55
63
  propsService.off("props-configs-change", init);
56
64
  });
57
- const submit = async (v, eventData) => {
65
+ const submit = async (v, eventData, error, source = "props") => {
58
66
  try {
59
67
  if (!v.id) v.id = values.value.id;
60
- const newValue = {
61
- ...v,
62
- style: {}
63
- };
64
- if (v.style) {
65
- Object.entries(v.style).forEach(([key, value]) => {
66
- if (value !== "" && newValue.style) newValue.style[key] = value;
67
- });
68
- eventData?.changeRecords?.forEach((record) => {
69
- if (record.propPath?.startsWith("style") && record.value === "") setValueByKeyPath(record.propPath, record.value, newValue);
70
- });
71
- }
72
68
  const historySource = eventData ? "props" : "code";
69
+ const replace = historySource === "code";
70
+ let newValue;
71
+ if (replace) {
72
+ if (source === "style") newValue = {
73
+ ...values.value,
74
+ id: v.id || values.value.id,
75
+ style: { ...v.style || {} }
76
+ };
77
+ else newValue = { ...v };
78
+ } else {
79
+ newValue = {
80
+ ...v,
81
+ style: {}
82
+ };
83
+ if (v.style) {
84
+ Object.entries(v.style).forEach(([key, value]) => {
85
+ if (value !== "" && newValue.style) newValue.style[key] = value;
86
+ });
87
+ eventData?.changeRecords?.forEach((record) => {
88
+ if (record.propPath?.startsWith("style") && record.value === "") setValueByKeyPath(record.propPath, record.value, newValue);
89
+ });
90
+ }
91
+ }
73
92
  editorService.update(newValue, {
74
93
  changeRecords: eventData?.changeRecords,
75
- historySource
94
+ historySource,
95
+ replace,
96
+ ...enablePropsFormValidate && error ? { invalidInfo: {
97
+ id: newValue.id,
98
+ source,
99
+ error: error?.message
100
+ } } : {}
76
101
  });
77
102
  } catch (e) {
78
103
  emit("submit-error", e);
@@ -122,8 +147,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
122
147
  config: curFormConfig.value,
123
148
  values: values.value,
124
149
  disabledShowSrc: __props.disabledShowSrc,
125
- extendState: __props.extendState,
126
- onSubmit: submit,
150
+ onSubmit: _cache[0] || (_cache[0] = (v, eventData, error) => submit(v, eventData, error, "props")),
127
151
  onSubmitError: errorHandler,
128
152
  onFormError: errorHandler,
129
153
  onMounted: mountedHandler,
@@ -132,8 +156,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
132
156
  "class",
133
157
  "config",
134
158
  "values",
135
- "disabledShowSrc",
136
- "extendState"
159
+ "disabledShowSrc"
137
160
  ]),
138
161
  unref(showStylePanel) ? (openBlock(), createBlock(Resizer_default, {
139
162
  key: 0,
@@ -147,30 +170,25 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
147
170
  config: styleFormConfig,
148
171
  values: values.value,
149
172
  disabledShowSrc: __props.disabledShowSrc,
150
- extendState: __props.extendState,
151
- onSubmit: submit,
173
+ onSubmit: _cache[2] || (_cache[2] = (v, eventData, error) => submit(v, eventData, error, "style")),
152
174
  onSubmitError: errorHandler,
153
175
  onFormError: errorHandler
154
176
  }, {
155
- "props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[2] || (_cache[2] = createElementVNode("span", null, "样式", -1)), createElementVNode("div", null, [createVNode(unref(TMagicButton), {
177
+ "props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[4] || (_cache[4] = createElementVNode("span", null, "样式", -1)), createElementVNode("div", null, [createVNode(unref(TMagicButton), {
156
178
  link: "",
157
179
  size: "small",
158
- onClick: _cache[0] || (_cache[0] = ($event) => unref(toggleStylePanel)(false))
180
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(toggleStylePanel)(false))
159
181
  }, {
160
182
  default: withCtx(() => [createVNode(Icon_default, { icon: unref(Close) }, null, 8, ["icon"])]),
161
183
  _: 1
162
184
  })])])]),
163
185
  _: 1
164
- }, 8, [
165
- "values",
166
- "disabledShowSrc",
167
- "extendState"
168
- ])) : createCommentVNode("v-if", true),
186
+ }, 8, ["values", "disabledShowSrc"])) : createCommentVNode("v-if", true),
169
187
  unref(showStylePanelToggleButton) && !unref(showStylePanel) ? (openBlock(), createBlock(unref(TMagicButton), {
170
188
  key: 2,
171
189
  class: "m-editor-props-panel-style-icon",
172
190
  circle: "",
173
- onClick: _cache[1] || (_cache[1] = ($event) => unref(toggleStylePanel)(true))
191
+ onClick: _cache[3] || (_cache[3] = ($event) => unref(toggleStylePanel)(true))
174
192
  }, {
175
193
  default: withCtx(() => [createVNode(Icon_default, { icon: unref(Sugar) }, null, 8, ["icon"])]),
176
194
  _: 1
@@ -23,8 +23,9 @@ var useStylePanel = ({ uiService, storageService }, propsPanelWidth) => {
23
23
  columnWidth.center += propsPanelWidth.value;
24
24
  }
25
25
  if (columnWidth.center < 0) {
26
- columnWidth.right = columnWidth.right + columnWidth.center - 400;
27
- columnWidth.center = 400;
26
+ const minCenterColumnWidth = uiService.get("minCenterColumnWidth");
27
+ columnWidth.right = columnWidth.right + columnWidth.center - minCenterColumnWidth;
28
+ columnWidth.center = minCenterColumnWidth;
28
29
  propsPanelWidth.value = columnWidth.right / 2;
29
30
  }
30
31
  storageService.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY, columnWidth.right, { protocol: Protocol.NUMBER });
@@ -10,7 +10,7 @@ import { Grid } from "@element-plus/icons-vue";
10
10
  //#region packages/editor/src/layouts/sidebar/ComponentListPanel.vue?vue&type=script&setup=true&lang.ts
11
11
  var _hoisted_1 = ["onClick", "onDragstart"];
12
12
  var _hoisted_2 = ["title"];
13
- var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
13
+ var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
14
14
  name: "MEditorComponentListPanel",
15
15
  __name: "ComponentListPanel",
16
16
  setup(__props) {
@@ -23,7 +23,7 @@ var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
23
23
  const stage = computed(() => editorService.get("stage"));
24
24
  const list = computed(() => componentListService.getList().map((group) => ({
25
25
  ...group,
26
- items: group.items.filter((item) => item.text.includes(searchText.value))
26
+ items: group.items.filter((item) => `${item.text || ""}${item.desc || ""}${item.type}`.toLocaleLowerCase().includes(searchText.value.toLocaleLowerCase()))
27
27
  })));
28
28
  const collapseValue = ref();
29
29
  watch(list, () => {
@@ -70,7 +70,7 @@ var ComponentListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
70
70
  return;
71
71
  }
72
72
  if (timeout || !stage.value) return;
73
- timeout = stage.value.delayedMarkContainer(e);
73
+ timeout = stage.value.delayedMarkContainer(e, [], true);
74
74
  };
75
75
  return (_ctx, _cache) => {
76
76
  return openBlock(), createBlock(unref(TMagicScrollbar), null, {
@@ -9,7 +9,7 @@ import DataSourceListPanel_default from "./data-source/DataSourceListPanel.js";
9
9
  import LayerPanel_default from "./layer/LayerPanel.js";
10
10
  import ComponentListPanel_default from "./ComponentListPanel.js";
11
11
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toHandlers, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
12
- import { Close, Coin, EditPen, Goods, List } from "@element-plus/icons-vue";
12
+ import { Box, Close, Coin, EditPen, Finished } from "@element-plus/icons-vue";
13
13
  //#region packages/editor/src/layouts/sidebar/Sidebar.vue?vue&type=script&setup=true&lang.ts
14
14
  var _hoisted_1 = {
15
15
  key: 0,
@@ -30,7 +30,7 @@ var _hoisted_5 = {
30
30
  class: "m-editor-sidebar-tips"
31
31
  };
32
32
  var _hoisted_6 = { class: "m-editor-slide-list-box" };
33
- var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
33
+ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
34
34
  name: "MEditorSidebar",
35
35
  __name: "Sidebar",
36
36
  props: {
@@ -61,6 +61,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
61
61
  const taskLength = computed(() => depService.get("taskLength"));
62
62
  const tipsBarVisible = ref(true);
63
63
  const columnLeftWidth = computed(() => uiService.get("columnWidth")[ColumnLayout.LEFT]);
64
+ const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
64
65
  const { height: editorContentHeight } = useEditorContentHeight();
65
66
  const columnLeftHeight = ref(0);
66
67
  const unWatchEditorContentHeight = watch(editorContentHeight, (height) => {
@@ -81,7 +82,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
81
82
  [SideItemKey.COMPONENT_LIST]: {
82
83
  $key: SideItemKey.COMPONENT_LIST,
83
84
  type: "component",
84
- icon: Goods,
85
+ icon: Box,
85
86
  text: "组件",
86
87
  component: ComponentListPanel_default,
87
88
  slots: {}
@@ -89,7 +90,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
89
90
  layer: {
90
91
  $key: SideItemKey.LAYER,
91
92
  type: "component",
92
- icon: List,
93
+ icon: Finished,
93
94
  text: "已选组件",
94
95
  props: {
95
96
  layerContentMenu: props.layerContentMenu,
@@ -144,7 +145,8 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
144
145
  watch(() => props.data.status, (status) => {
145
146
  activeTabName.value = status || "0";
146
147
  });
147
- const { dragstartHandler, dragendHandler, floatBoxStates, showingBoxKeys } = useFloatBox(computed(() => sideBarItems.value.map((sideBarItem) => sideBarItem.$key)));
148
+ const slideKeys = computed(() => sideBarItems.value.map((sideBarItem) => sideBarItem.$key));
149
+ const { dragstartHandler, dragendHandler, floatBoxStates, showingBoxKeys } = useFloatBox(slideKeys);
148
150
  watch(() => showingBoxKeys.value.length, () => {
149
151
  if (!showingBoxKeys.value.some((key) => activeTabName.value === sideBarItems.value.find((v) => v.$key === key)?.text) && activeTabName.value) return;
150
152
  const nextSlideBarItem = sideBarItems.value.find((sideBarItem) => !showingBoxKeys.value.includes(sideBarItem.$key));
@@ -189,23 +191,17 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
189
191
  }, config.props || {}, toHandlers(config?.listeners || {})), createSlots({ _: 2 }, [
190
192
  config.$key === "component-list" || config.slots?.componentList ? {
191
193
  name: "component-list",
192
- fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", {
193
- key: 0,
194
- componentGroupList
195
- }) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
194
+ fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", { componentGroupList }, void 0, void 0, 0) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
196
195
  key: "0"
197
196
  } : void 0,
198
197
  config.$key === "component-list" || config.slots?.componentListPanelHeader ? {
199
198
  name: "component-list-panel-header",
200
- fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", { key: 0 }) : config.slots?.componentListPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
199
+ fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", {}, void 0, void 0, 0) : config.slots?.componentListPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
201
200
  key: "1"
202
201
  } : void 0,
203
202
  config.$key === "component-list" || config.slots?.componentListItem ? {
204
203
  name: "component-list-item",
205
- fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", {
206
- key: 0,
207
- component
208
- }) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
204
+ fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", { component }, void 0, void 0, 0) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
209
205
  key: 1,
210
206
  component
211
207
  }, null, 8, ["component"])) : createCommentVNode("v-if", true)]),
@@ -213,34 +209,30 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
213
209
  } : void 0,
214
210
  config.$key === "layer" || config.slots?.layerPanelHeader ? {
215
211
  name: "layer-panel-header",
216
- fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", { key: 0 }) : config.slots?.layerPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
212
+ fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", {}, void 0, void 0, 0) : config.slots?.layerPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
217
213
  key: "3"
218
214
  } : void 0,
219
215
  config.$key === "code-block" || config.slots?.codeBlockPanelHeader ? {
220
216
  name: "code-block-panel-header",
221
- fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", { key: 0 }) : config.slots?.codeBlockPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
217
+ fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
222
218
  key: "4"
223
219
  } : void 0,
224
220
  config.$key === "code-block" || config.slots?.codeBlockPanelTool ? {
225
221
  name: "code-block-panel-tool",
226
222
  fn: withCtx(({ id, data }) => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-tool", {
227
- key: 0,
228
223
  id,
229
224
  data
230
- }) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
225
+ }, void 0, void 0, 0) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
231
226
  key: "5"
232
227
  } : void 0,
233
228
  config.$key === "code-block" || config.slots?.codeBlockPanelSearch ? {
234
229
  name: "code-block-panel-search",
235
- fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", { key: 0 }) : config.slots?.codeBlockPanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
230
+ fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
236
231
  key: "6"
237
232
  } : void 0,
238
233
  config.$key === "layer" || config.slots?.layerNodeContent ? {
239
234
  name: "layer-node-content",
240
- fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", {
241
- key: 0,
242
- data: nodeData
243
- }) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
235
+ fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
244
236
  key: 1,
245
237
  data: nodeData
246
238
  }, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
@@ -248,10 +240,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
248
240
  } : void 0,
249
241
  config.$key === "layer" || config.slots?.layerNodeLabel ? {
250
242
  name: "layer-node-label",
251
- fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", {
252
- key: 0,
253
- data: nodeData
254
- }) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
243
+ fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
255
244
  key: 1,
256
245
  data: nodeData
257
246
  }, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
@@ -259,10 +248,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
259
248
  } : void 0,
260
249
  config.$key === "layer" || config.slots?.layerNodeTool ? {
261
250
  name: "layer-node-tool",
262
- fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", {
263
- key: 0,
264
- data: nodeData
265
- }) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
251
+ fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
266
252
  key: 1,
267
253
  data: nodeData
268
254
  }, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
@@ -270,15 +256,12 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
270
256
  } : void 0,
271
257
  config.$key === "data-source" || config.slots?.dataSourcePanelTool ? {
272
258
  name: "data-source-panel-tool",
273
- fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", {
274
- key: 0,
275
- data
276
- }) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
259
+ fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", { data }, void 0, void 0, 0) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
277
260
  key: "10"
278
261
  } : void 0,
279
262
  config.$key === "data-source" || config.slots?.dataSourcePanelSearch ? {
280
263
  name: "data-source-panel-search",
281
- fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", { key: 0 }) : config.slots?.dataSourcePanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.dataSourcePanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
264
+ fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", {}, void 0, void 0, 0) : config.slots?.dataSourcePanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.dataSourcePanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
282
265
  key: "11"
283
266
  } : void 0
284
267
  ]), 1040)) : createCommentVNode("v-if", true)], 2)), [[vShow, [
@@ -301,6 +284,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
301
284
  "onUpdate:height": _cache[2] || (_cache[2] = ($event) => columnLeftHeight.value = $event),
302
285
  width: columnLeftWidth.value,
303
286
  title: config.text,
287
+ "framework-width": frameworkWidth.value,
304
288
  position: {
305
289
  left: unref(floatBoxStates)[config.$key].left,
306
290
  top: unref(floatBoxStates)[config.$key].top
@@ -317,6 +301,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
317
301
  "height",
318
302
  "width",
319
303
  "title",
304
+ "framework-width",
320
305
  "position"
321
306
  ])) : createCommentVNode("v-if", true)], 64);
322
307
  }), 256))]))], 64);
@@ -9,7 +9,7 @@ import { DepTargetType } from "@tmagic/core";
9
9
  import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx, withModifiers } from "vue";
10
10
  import { Close, Edit, View } from "@element-plus/icons-vue";
11
11
  //#region packages/editor/src/layouts/sidebar/code-block/CodeBlockList.vue?vue&type=script&setup=true&lang.ts
12
- var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var CodeBlockList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  name: "MEditorCodeBlockList",
14
14
  __name: "CodeBlockList",
15
15
  props: {
@@ -9,7 +9,7 @@ import { TMagicButton, TMagicScrollbar } from "@tmagic/design";
9
9
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, openBlock, renderSlot, unref, useTemplateRef, watch, withCtx } from "vue";
10
10
  //#region packages/editor/src/layouts/sidebar/code-block/CodeBlockListPanel.vue?vue&type=script&setup=true&lang.ts
11
11
  var _hoisted_1 = { class: "search-wrapper" };
12
- var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  name: "MEditorCodeBlockListPanel",
14
14
  __name: "CodeBlockListPanel",
15
15
  props: {
@@ -20,7 +20,7 @@ var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
20
20
  },
21
21
  setup(__props) {
22
22
  const props = __props;
23
- const eventBus = inject("eventBus");
23
+ const eventBus = inject("eventBus", null);
24
24
  const { codeBlockService } = useServices();
25
25
  const editable = computed(() => codeBlockService.getEditStatus());
26
26
  const { codeId, codeBlockEditor, codeConfig, editCode, deleteCode, createCodeBlock, submitCodeBlockHandler } = useCodeBlockEdit(codeBlockService);
@@ -37,10 +37,10 @@ var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
37
37
  const editDialogCloseHandler = () => {
38
38
  if (codeBlockListRef.value) for (const [, status] of codeBlockListRef.value.nodeStatusMap.entries()) status.selected = false;
39
39
  };
40
- const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler } = useContentMenu((id) => {
40
+ const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler, getTarget } = useContentMenu((id) => {
41
41
  codeBlockListRef.value?.deleteCode(id, { historySource: "tree-contextmenu" });
42
42
  });
43
- const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block"));
43
+ const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block", getTarget));
44
44
  return (_ctx, _cache) => {
45
45
  return openBlock(), createElementBlock(Fragment, null, [
46
46
  createVNode(unref(TMagicScrollbar), { class: "m-editor-code-block-list m-editor-layer-panel" }, {
@@ -3,9 +3,17 @@ import { cloneDeep } from "lodash-es";
3
3
  import { CopyDocument, Delete, Edit } from "@element-plus/icons-vue";
4
4
  //#region packages/editor/src/layouts/sidebar/code-block/useContentMenu.ts
5
5
  var useContentMenu = (deleteCode) => {
6
- const eventBus = inject("eventBus");
6
+ const eventBus = inject("eventBus", null);
7
7
  const menuRef = useTemplateRef("menu");
8
8
  let selectId = "";
9
+ let selectData = null;
10
+ const getTarget = () => {
11
+ if (!selectId) return null;
12
+ return {
13
+ id: selectId,
14
+ data: selectData ?? void 0
15
+ };
16
+ };
9
17
  const menuData = [
10
18
  {
11
19
  type: "button",
@@ -43,17 +51,24 @@ var useContentMenu = (deleteCode) => {
43
51
  event.preventDefault();
44
52
  if (data.type === "code") {
45
53
  menuRef.value?.show(event);
46
- if (data.id) selectId = `${data.id}`;
47
- else selectId = "";
54
+ if (data.id) {
55
+ selectId = `${data.id}`;
56
+ selectData = data;
57
+ } else {
58
+ selectId = "";
59
+ selectData = null;
60
+ }
48
61
  }
49
62
  };
50
63
  const contentMenuHideHandler = () => {
51
64
  selectId = "";
65
+ selectData = null;
52
66
  };
53
67
  return {
54
68
  menuData,
55
69
  nodeContentMenuHandler,
56
- contentMenuHideHandler
70
+ contentMenuHideHandler,
71
+ getTarget
57
72
  };
58
73
  };
59
74
  //#endregion
@@ -2,7 +2,7 @@ import ToolButton_default from "../../../components/ToolButton.js";
2
2
  import { TMagicButton, TMagicPopover } from "@tmagic/design";
3
3
  import { Fragment, createBlock, createElementBlock, createTextVNode, createVNode, defineComponent, guardReactiveProps, normalizeProps, openBlock, renderList, toDisplayString, unref, withCtx } from "vue";
4
4
  //#region packages/editor/src/layouts/sidebar/data-source/DataSourceAddButton.vue?vue&type=script&setup=true&lang.ts
5
- var DataSourceAddButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var DataSourceAddButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MEditorDataSourceAddButton",
7
7
  __name: "DataSourceAddButton",
8
8
  props: {
@@ -6,10 +6,10 @@ import { MFormBox } from "@tmagic/form";
6
6
  import { tMagicMessage } from "@tmagic/design";
7
7
  import { computed, createBlock, createVNode, defineComponent, inject, isRef, mergeModels, nextTick, openBlock, provide, ref, unref, useModel, watch, watchEffect, withCtx } from "vue";
8
8
  //#region packages/editor/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue?vue&type=script&setup=true&lang.ts
9
- var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
10
  name: "MEditorDataSourceConfigPanel",
11
11
  __name: "DataSourceConfigPanel",
12
- props: /* @__PURE__ */ mergeModels({
12
+ props: /*@__PURE__*/ mergeModels({
13
13
  title: {},
14
14
  values: {},
15
15
  disabled: { type: Boolean },
@@ -24,7 +24,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PU
24
24
  "width": { default: 670 },
25
25
  "widthModifiers": {}
26
26
  }),
27
- emits: /* @__PURE__ */ mergeModels([
27
+ emits: /*@__PURE__*/ mergeModels([
28
28
  "submit",
29
29
  "close",
30
30
  "open"
@@ -38,7 +38,9 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PU
38
38
  const initValues = ref({});
39
39
  const dataSourceConfig = ref([]);
40
40
  const { height: editorHeight } = useEditorContentHeight();
41
- const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
41
+ const parentFloating = inject("parentFloating", ref(null));
42
+ const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, parentFloating);
43
+ const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
42
44
  /** 供「方法定义」tab 内的字段消费,用于打开数据源详情后自动打开指定方法 */
43
45
  provide("editingDataSourceMethodName", computed(() => props.editMethodName));
44
46
  /** 供「数据定义」tab 内的字段消费,用于打开数据源详情后自动打开指定字段 */
@@ -77,6 +79,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PU
77
79
  });
78
80
  return (_ctx, _cache) => {
79
81
  return openBlock(), createBlock(FloatingBox_default, {
82
+ "body-style": { padding: "0 16px" },
80
83
  visible: boxVisible.value,
81
84
  "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => boxVisible.value = $event),
82
85
  width: width.value,
@@ -84,6 +87,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PU
84
87
  height: unref(editorHeight),
85
88
  "onUpdate:height": _cache[2] || (_cache[2] = ($event) => isRef(editorHeight) ? editorHeight.value = $event : null),
86
89
  title: __props.title,
90
+ "framework-width": frameworkWidth.value,
87
91
  position: unref(boxPosition)
88
92
  }, {
89
93
  body: withCtx(() => [createVNode(unref(MFormBox), {
@@ -107,6 +111,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /* @__PU
107
111
  "width",
108
112
  "height",
109
113
  "title",
114
+ "framework-width",
110
115
  "position"
111
116
  ]);
112
117
  };
@@ -8,7 +8,7 @@ import { DepTargetType } from "@tmagic/core";
8
8
  import { computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx, withModifiers } from "vue";
9
9
  import { Close, Edit, View } from "@element-plus/icons-vue";
10
10
  //#region packages/editor/src/layouts/sidebar/data-source/DataSourceList.vue?vue&type=script&setup=true&lang.ts
11
- var DataSourceList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ var DataSourceList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
12
  name: "MEditorDataSourceList",
13
13
  __name: "DataSourceList",
14
14
  props: {
@@ -11,7 +11,7 @@ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createEl
11
11
  import { mergeWith } from "lodash-es";
12
12
  //#region packages/editor/src/layouts/sidebar/data-source/DataSourceListPanel.vue?vue&type=script&setup=true&lang.ts
13
13
  var _hoisted_1 = { class: "search-wrapper" };
14
- var DataSourceListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ var DataSourceListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
15
15
  name: "MEditorDataSourceListPanel",
16
16
  __name: "DataSourceListPanel",
17
17
  props: {
@@ -21,7 +21,7 @@ var DataSourceListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE
21
21
  },
22
22
  setup(__props) {
23
23
  const props = __props;
24
- const eventBus = inject("eventBus");
24
+ const eventBus = inject("eventBus", null);
25
25
  const { dataSourceService } = useServices();
26
26
  const { editDialog, dataSourceValues, dialogTitle, editable, editHandler, submitDataSourceHandler } = useDataSourceEdit(dataSourceService);
27
27
  /** 打开数据源详情时需要直接定位并打开的方法名,为空则正常展示「数据定义」tab */
@@ -85,8 +85,8 @@ var DataSourceListPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE
85
85
  eventBus?.on("remove-data-source", (id) => {
86
86
  removeHandler(id);
87
87
  });
88
- const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler } = useContentMenu();
89
- const menuData = computed(() => props.customContentMenu(contentMenuData, "data-source"));
88
+ const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler, getTarget } = useContentMenu();
89
+ const menuData = computed(() => props.customContentMenu(contentMenuData, "data-source", getTarget));
90
90
  return (_ctx, _cache) => {
91
91
  return openBlock(), createElementBlock(Fragment, null, [
92
92
  createVNode(unref(TMagicScrollbar), { class: "data-source-list-panel m-editor-layer-panel" }, {
@@ -3,9 +3,17 @@ import { cloneDeep } from "lodash-es";
3
3
  import { CopyDocument, Delete, Edit } from "@element-plus/icons-vue";
4
4
  //#region packages/editor/src/layouts/sidebar/data-source/useContentMenu.ts
5
5
  var useContentMenu = () => {
6
- const eventBus = inject("eventBus");
6
+ const eventBus = inject("eventBus", null);
7
7
  const menuRef = useTemplateRef("menu");
8
8
  let selectId = "";
9
+ let selectData = null;
10
+ const getTarget = () => {
11
+ if (!selectId) return null;
12
+ return {
13
+ id: selectId,
14
+ data: selectData ?? void 0
15
+ };
16
+ };
9
17
  const menuData = [
10
18
  {
11
19
  type: "button",
@@ -42,17 +50,24 @@ var useContentMenu = () => {
42
50
  event.preventDefault();
43
51
  if (data.type === "ds") {
44
52
  menuRef.value?.show(event);
45
- if (data.id) selectId = `${data.id}`;
46
- else selectId = "";
53
+ if (data.id) {
54
+ selectId = `${data.id}`;
55
+ selectData = data;
56
+ } else {
57
+ selectId = "";
58
+ selectData = null;
59
+ }
47
60
  }
48
61
  };
49
62
  const contentMenuHideHandler = () => {
50
63
  selectId = "";
64
+ selectData = null;
51
65
  };
52
66
  return {
53
67
  menuData,
54
68
  nodeContentMenuHandler,
55
- contentMenuHideHandler
69
+ contentMenuHideHandler,
70
+ getTarget
56
71
  };
57
72
  };
58
73
  //#endregion