@tmagic/editor 1.8.0-beta.2 → 1.8.0-beta.20

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 (306) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +43 -9
  2. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +8 -4
  3. package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +3 -2
  4. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +22 -98
  5. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +32 -9
  6. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +68 -17
  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 +1 -1
  9. package/dist/es/components/ScrollBar.js +0 -1
  10. package/dist/es/components/ScrollBar.vue_vue_type_script_setup_true_lang.js +1 -1
  11. package/dist/es/components/ScrollViewer.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/dist/es/components/SearchInput.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/es/components/SplitView.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/es/components/ToolButton.vue_vue_type_script_setup_true_lang.js +7 -7
  15. package/dist/es/components/Tree.vue_vue_type_script_setup_true_lang.js +1 -1
  16. package/dist/es/components/TreeNode.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/es/components/ViewForm.js +5 -0
  18. package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +58 -0
  19. package/dist/es/editorProps.js +9 -1
  20. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +16 -5
  21. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +7 -7
  22. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +81 -44
  23. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +10 -3
  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 +13 -6
  26. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +11 -8
  27. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +39 -12
  28. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +11 -20
  29. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +11 -6
  30. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +30 -14
  31. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +11 -4
  32. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +5 -2
  33. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +38 -6
  34. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +151 -153
  35. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +5 -2
  36. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +5 -2
  37. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +8 -10
  38. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +5 -2
  39. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +28 -6
  40. package/dist/es/fields/StyleSetter/components/Box.vue_vue_type_script_setup_true_lang.js +1 -1
  41. package/dist/es/fields/StyleSetter/icons/align-items/Center.js +31 -0
  42. package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +31 -0
  43. package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +31 -0
  44. package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +50 -0
  45. package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +50 -0
  46. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +7 -7
  47. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +6 -3
  48. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +29 -6
  49. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +32 -6
  50. package/dist/es/fields/StyleSetter/icons/display/Block.js +1 -1
  51. package/dist/es/fields/StyleSetter/icons/display/Flex.js +1 -1
  52. package/dist/es/fields/StyleSetter/icons/display/Inline.js +1 -1
  53. package/dist/es/fields/StyleSetter/icons/display/InlineBlock.js +1 -1
  54. package/dist/es/fields/StyleSetter/icons/display/None.js +1 -1
  55. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +11 -3
  56. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +11 -3
  57. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +11 -3
  58. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +11 -3
  59. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +17 -3
  60. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +19 -3
  61. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +19 -3
  62. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +37 -3
  63. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +33 -3
  64. package/dist/es/fields/StyleSetter/icons/text-align/Center.js +1 -1
  65. package/dist/es/fields/StyleSetter/icons/text-align/Left.js +1 -1
  66. package/dist/es/fields/StyleSetter/icons/text-align/Right.js +1 -1
  67. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +56 -30
  68. package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +7 -4
  69. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +35 -26
  70. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +76 -48
  71. package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +29 -23
  72. package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +7 -4
  73. package/dist/es/fields/UISelect.js +0 -1
  74. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +5 -2
  75. package/dist/es/hooks/use-code-block-edit.js +6 -3
  76. package/dist/es/hooks/use-compare-form.js +119 -0
  77. package/dist/es/hooks/use-data-source-edit.js +5 -2
  78. package/dist/es/hooks/use-stage.js +9 -4
  79. package/dist/es/icons/CenterIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  80. package/dist/es/icons/CodeIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  81. package/dist/es/icons/DatasourceIcon.js +17 -0
  82. package/dist/es/icons/FolderMinusIcon.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/dist/es/index.js +24 -10
  84. package/dist/es/initService.js +19 -13
  85. package/dist/es/layouts/AddPageBox.vue_vue_type_script_setup_true_lang.js +1 -1
  86. package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +24 -12
  87. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +25 -18
  88. package/dist/es/layouts/NavMenu.vue_vue_type_script_setup_true_lang.js +4 -4
  89. package/dist/es/layouts/NavMenuColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  90. package/dist/es/layouts/history-list/Bucket.vue_vue_type_script_setup_true_lang.js +25 -38
  91. package/dist/es/layouts/history-list/BucketTab.js +5 -0
  92. package/dist/es/layouts/history-list/BucketTab.vue_vue_type_script_setup_true_lang.js +62 -0
  93. package/dist/es/layouts/history-list/GroupRow.vue_vue_type_script_setup_true_lang.js +177 -88
  94. package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +139 -37
  95. package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +164 -107
  96. package/dist/es/layouts/history-list/InitialRow.vue_vue_type_script_setup_true_lang.js +44 -9
  97. package/dist/es/layouts/history-list/PageTab.vue_vue_type_script_setup_true_lang.js +49 -53
  98. package/dist/es/layouts/history-list/composables.js +138 -108
  99. package/dist/es/layouts/history-list/useHistoryList.js +56 -0
  100. package/dist/es/layouts/history-list/useHistoryRevert.js +317 -0
  101. package/dist/es/layouts/page-bar/AddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  102. package/dist/es/layouts/page-bar/PageBar.vue_vue_type_script_setup_true_lang.js +5 -3
  103. package/dist/es/layouts/page-bar/PageBarScrollContainer.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/dist/es/layouts/page-bar/PageList.vue_vue_type_script_setup_true_lang.js +1 -1
  105. package/dist/es/layouts/page-bar/Search.vue_vue_type_script_setup_true_lang.js +2 -2
  106. package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +50 -7
  107. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +33 -13
  108. package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
  109. package/dist/es/layouts/sidebar/ComponentListPanel.vue_vue_type_script_setup_true_lang.js +3 -3
  110. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +26 -38
  111. package/dist/es/layouts/sidebar/code-block/CodeBlockList.vue_vue_type_script_setup_true_lang.js +4 -4
  112. package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +4 -4
  113. package/dist/es/layouts/sidebar/code-block/useContentMenu.js +19 -4
  114. package/dist/es/layouts/sidebar/data-source/DataSourceAddButton.vue_vue_type_script_setup_true_lang.js +1 -1
  115. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +23 -6
  116. package/dist/es/layouts/sidebar/data-source/DataSourceList.vue_vue_type_script_setup_true_lang.js +1 -1
  117. package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +27 -5
  118. package/dist/es/layouts/sidebar/data-source/useContentMenu.js +19 -4
  119. package/dist/es/layouts/sidebar/layer/LayerMenu.vue_vue_type_script_setup_true_lang.js +8 -8
  120. package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
  121. package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
  122. package/dist/es/layouts/sidebar/layer/LayerNodeTool.vue_vue_type_script_setup_true_lang.js +2 -2
  123. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +3 -2
  124. package/dist/es/layouts/sidebar/layer/use-click.js +3 -3
  125. package/dist/es/layouts/sidebar/layer/use-node-status.js +2 -2
  126. package/dist/es/layouts/workspace/Breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
  127. package/dist/es/layouts/workspace/Workspace.vue_vue_type_script_setup_true_lang.js +1 -1
  128. package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +9 -3
  129. package/dist/es/layouts/workspace/viewer/Stage.vue_vue_type_script_setup_true_lang.js +2 -2
  130. package/dist/es/layouts/workspace/viewer/StageOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
  131. package/dist/es/layouts/workspace/viewer/ViewerMenu.vue_vue_type_script_setup_true_lang.js +16 -16
  132. package/dist/es/plugin.js +5 -2
  133. package/dist/es/services/codeBlock.js +137 -56
  134. package/dist/es/services/dataSource.js +122 -52
  135. package/dist/es/services/dep.js +162 -41
  136. package/dist/es/services/editor.js +613 -179
  137. package/dist/es/services/history.js +350 -386
  138. package/dist/es/services/keybinding.js +6 -6
  139. package/dist/es/services/props.js +3 -2
  140. package/dist/es/services/storage.js +2 -2
  141. package/dist/es/services/ui.js +10 -2
  142. package/dist/es/style.css +549 -113
  143. package/dist/es/utils/config.js +4 -1
  144. package/dist/es/utils/const.js +2 -2
  145. package/dist/es/utils/content-menu.js +19 -11
  146. package/dist/es/utils/data-source/index.js +34 -11
  147. package/dist/es/utils/dep/collect-worker-client.js +114 -0
  148. package/dist/es/utils/dep/idle-task.js +47 -22
  149. package/dist/es/utils/dep/worker.js +1 -1
  150. package/dist/es/utils/editor.js +103 -49
  151. package/dist/es/utils/event.js +123 -0
  152. package/dist/es/utils/history.js +220 -0
  153. package/dist/es/utils/indexed-db.js +86 -0
  154. package/dist/es/utils/monaco-editor.js +22 -6
  155. package/dist/es/utils/operator.js +2 -2
  156. package/dist/es/utils/props.js +114 -33
  157. package/dist/es/utils/type-match-rules.js +367 -0
  158. package/dist/es/utils/undo-redo.js +60 -1
  159. package/dist/style.css +549 -113
  160. package/dist/themes/magic-admin.css +3028 -0
  161. package/dist/tmagic-editor.umd.cjs +14273 -10029
  162. package/package.json +8 -8
  163. package/src/Editor.vue +43 -2
  164. package/src/components/CodeBlockEditor.vue +3 -0
  165. package/src/components/CompareForm.vue +18 -146
  166. package/src/components/ContentMenu.vue +44 -8
  167. package/src/components/FloatingBox.vue +84 -9
  168. package/src/components/ScrollBar.vue +0 -67
  169. package/src/components/ToolButton.vue +2 -2
  170. package/src/components/ViewForm.vue +55 -0
  171. package/src/editorProps.ts +30 -0
  172. package/src/fields/Code.vue +10 -2
  173. package/src/fields/CodeLink.vue +2 -5
  174. package/src/fields/CodeSelect.vue +54 -40
  175. package/src/fields/CodeSelectCol.vue +8 -1
  176. package/src/fields/CondOpSelect.vue +2 -24
  177. package/src/fields/DataSourceFieldSelect/FieldSelect.vue +16 -2
  178. package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
  179. package/src/fields/DataSourceFields.vue +42 -8
  180. package/src/fields/DataSourceInput.vue +10 -28
  181. package/src/fields/DataSourceMethodSelect.vue +9 -4
  182. package/src/fields/DataSourceMethods.vue +42 -21
  183. package/src/fields/DataSourceMocks.vue +3 -0
  184. package/src/fields/DisplayConds.vue +18 -1
  185. package/src/fields/EventSelect.vue +145 -161
  186. package/src/fields/StyleSetter/Index.vue +3 -12
  187. package/src/fields/StyleSetter/components/Border.vue +15 -6
  188. package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
  189. package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
  190. package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
  191. package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
  192. package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
  193. package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
  194. package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
  195. package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
  196. package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
  197. package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
  198. package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
  199. package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
  200. package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
  201. package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
  202. package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
  203. package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
  204. package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
  205. package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
  206. package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
  207. package/src/fields/StyleSetter/pro/Background.vue +99 -55
  208. package/src/fields/StyleSetter/pro/Border.vue +9 -11
  209. package/src/fields/StyleSetter/pro/Font.vue +66 -64
  210. package/src/fields/StyleSetter/pro/Layout.vue +211 -139
  211. package/src/fields/StyleSetter/pro/Position.vue +69 -67
  212. package/src/fields/StyleSetter/pro/Transform.vue +23 -25
  213. package/src/fields/UISelect.vue +0 -12
  214. package/src/hooks/index.ts +1 -0
  215. package/src/hooks/use-code-block-edit.ts +4 -3
  216. package/src/hooks/use-compare-form.ts +187 -0
  217. package/src/hooks/use-data-source-edit.ts +2 -2
  218. package/src/hooks/use-stage.ts +5 -3
  219. package/src/icons/DatasourceIcon.vue +7 -0
  220. package/src/index.ts +12 -0
  221. package/src/initService.ts +26 -16
  222. package/src/layouts/CodeEditor.vue +34 -11
  223. package/src/layouts/Framework.vue +15 -8
  224. package/src/layouts/NavMenu.vue +3 -3
  225. package/src/layouts/history-list/Bucket.vue +33 -41
  226. package/src/layouts/history-list/BucketTab.vue +72 -0
  227. package/src/layouts/history-list/GroupRow.vue +190 -93
  228. package/src/layouts/history-list/HistoryDiffDialog.vue +169 -90
  229. package/src/layouts/history-list/HistoryListPanel.vue +191 -95
  230. package/src/layouts/history-list/InitialRow.vue +38 -8
  231. package/src/layouts/history-list/PageTab.vue +67 -43
  232. package/src/layouts/history-list/composables.ts +239 -125
  233. package/src/layouts/history-list/useHistoryList.ts +60 -0
  234. package/src/layouts/history-list/useHistoryRevert.ts +425 -0
  235. package/src/layouts/page-bar/PageBar.vue +4 -2
  236. package/src/layouts/props-panel/FormPanel.vue +72 -6
  237. package/src/layouts/props-panel/PropsPanel.vue +62 -18
  238. package/src/layouts/props-panel/use-style-panel.ts +4 -3
  239. package/src/layouts/sidebar/ComponentListPanel.vue +10 -6
  240. package/src/layouts/sidebar/Sidebar.vue +13 -6
  241. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  242. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
  243. package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
  244. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +34 -2
  245. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +29 -4
  246. package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
  247. package/src/layouts/sidebar/layer/LayerMenu.vue +21 -13
  248. package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
  249. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  250. package/src/layouts/sidebar/layer/LayerPanel.vue +4 -1
  251. package/src/layouts/sidebar/layer/use-click.ts +3 -3
  252. package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
  253. package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
  254. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  255. package/src/layouts/workspace/viewer/ViewerMenu.vue +15 -15
  256. package/src/plugin.ts +6 -3
  257. package/src/services/codeBlock.ts +152 -47
  258. package/src/services/dataSource.ts +120 -41
  259. package/src/services/dep.ts +292 -47
  260. package/src/services/editor.ts +820 -224
  261. package/src/services/history.ts +449 -412
  262. package/src/services/keybinding.ts +6 -6
  263. package/src/services/ui.ts +33 -5
  264. package/src/theme/code-block.scss +37 -0
  265. package/src/theme/common/var.scss +1 -1
  266. package/src/theme/component-list-panel.scss +2 -2
  267. package/src/theme/data-source-field.scss +4 -0
  268. package/src/theme/display-conds.scss +11 -0
  269. package/src/theme/event.scss +70 -1
  270. package/src/theme/floating-box.scss +9 -1
  271. package/src/theme/framework.scss +4 -1
  272. package/src/theme/history-list-panel.scss +157 -23
  273. package/src/theme/layer-node-content.scss +14 -0
  274. package/src/theme/nav-menu.scss +5 -1
  275. package/src/theme/page-bar.scss +0 -4
  276. package/src/theme/props-panel.scss +5 -4
  277. package/src/theme/scroll-bar.scss +64 -0
  278. package/src/theme/style-setter/border.scss +17 -5
  279. package/src/theme/theme.scss +4 -0
  280. package/src/theme/themes/magic-admin/index.scss +214 -0
  281. package/src/theme/ui-select.scss +9 -0
  282. package/src/type.ts +668 -124
  283. package/src/utils/config.ts +9 -1
  284. package/src/utils/const.ts +3 -2
  285. package/src/utils/content-menu.ts +20 -11
  286. package/src/utils/data-source/index.ts +32 -12
  287. package/src/utils/dep/collect-worker-client.ts +149 -0
  288. package/src/utils/dep/idle-task.ts +72 -35
  289. package/src/utils/dep/worker.ts +113 -9
  290. package/src/utils/editor.ts +166 -60
  291. package/src/utils/event.ts +224 -0
  292. package/src/utils/history.ts +286 -0
  293. package/src/utils/index.ts +4 -0
  294. package/src/utils/indexed-db.ts +122 -0
  295. package/src/utils/monaco-editor.ts +27 -0
  296. package/src/utils/operator.ts +2 -2
  297. package/src/utils/props.ts +114 -11
  298. package/src/utils/type-match-rules.ts +684 -0
  299. package/src/utils/undo-redo.ts +88 -0
  300. package/types/index.d.ts +1979 -515
  301. package/dist/es/layouts/history-list/CodeBlockTab.js +0 -5
  302. package/dist/es/layouts/history-list/CodeBlockTab.vue_vue_type_script_setup_true_lang.js +0 -62
  303. package/dist/es/layouts/history-list/DataSourceTab.js +0 -5
  304. package/dist/es/layouts/history-list/DataSourceTab.vue_vue_type_script_setup_true_lang.js +0 -62
  305. package/src/layouts/history-list/CodeBlockTab.vue +0 -61
  306. package/src/layouts/history-list/DataSourceTab.vue +0 -61
@@ -1,7 +1,7 @@
1
1
  import { computed, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, useTemplateRef } from "vue";
2
2
  import Gesto from "gesto";
3
3
  //#region packages/editor/src/components/ScrollBar.vue?vue&type=script&setup=true&lang.ts
4
- var ScrollBar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var ScrollBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  name: "MEditorScrollBar",
6
6
  __name: "ScrollBar",
7
7
  props: {
@@ -7,7 +7,7 @@ var _hoisted_1 = {
7
7
  class: "m-editor-scroll-viewer-container",
8
8
  ref: "container"
9
9
  };
10
- var ScrollViewer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var ScrollViewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  name: "MEditorScrollViewer",
12
12
  __name: "ScrollViewer",
13
13
  props: {
@@ -2,7 +2,7 @@ import { TMagicIcon, TMagicInput } from "@tmagic/design";
2
2
  import { createBlock, createVNode, defineComponent, openBlock, ref, unref, withCtx } from "vue";
3
3
  import { Search } from "@element-plus/icons-vue";
4
4
  //#region packages/editor/src/components/SearchInput.vue?vue&type=script&setup=true&lang.ts
5
- var SearchInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var SearchInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MEditorSearchInput",
7
7
  __name: "SearchInput",
8
8
  emits: ["search"],
@@ -1,7 +1,7 @@
1
1
  import Resizer_default from "./Resizer.js";
2
2
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, useTemplateRef, watchEffect } from "vue";
3
3
  //#region packages/editor/src/components/SplitView.vue?vue&type=script&setup=true&lang.ts
4
- var SplitView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
+ var SplitView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
5
  name: "MEditorSplitView",
6
6
  __name: "SplitView",
7
7
  props: {
@@ -9,7 +9,7 @@ var _hoisted_1 = {
9
9
  class: "menu-item-text"
10
10
  };
11
11
  var _hoisted_2 = { class: "el-dropdown-link menubar-menu-button" };
12
- var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var ToolButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  name: "MEditorToolButton",
14
14
  __name: "ToolButton",
15
15
  props: {
@@ -73,11 +73,11 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
73
73
  placement: "bottom-start",
74
74
  content: __props.data.tooltip
75
75
  }, {
76
- default: withCtx(() => [createVNode(unref(TMagicButton), {
76
+ default: withCtx(() => [createVNode(unref(TMagicButton), mergeProps({
77
77
  size: "small",
78
78
  link: "",
79
79
  disabled: disabled.value
80
- }, createSlots({ _: 2 }, [__props.data.icon ? {
80
+ }, __props.data.buttonProps || {}), createSlots({ _: 2 }, [__props.data.icon ? {
81
81
  name: "icon",
82
82
  fn: withCtx(() => [createVNode(Icon_default, { icon: __props.data.icon }, null, 8, ["icon"])]),
83
83
  key: "0"
@@ -85,15 +85,15 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
85
85
  name: "default",
86
86
  fn: withCtx(() => [createTextVNode(toDisplayString(__props.data.text), 1)]),
87
87
  key: "1"
88
- } : void 0]), 1032, ["disabled"])]),
88
+ } : void 0]), 1040, ["disabled"])]),
89
89
  _: 1
90
- }, 8, ["content"])) : (openBlock(), createBlock(unref(TMagicButton), {
90
+ }, 8, ["content"])) : (openBlock(), createBlock(unref(TMagicButton), mergeProps({
91
91
  key: 1,
92
92
  size: "small",
93
93
  link: "",
94
94
  disabled: disabled.value,
95
95
  title: __props.data.text
96
- }, createSlots({ _: 2 }, [__props.data.icon ? {
96
+ }, __props.data.buttonProps || {}), createSlots({ _: 2 }, [__props.data.icon ? {
97
97
  name: "icon",
98
98
  fn: withCtx(() => [createVNode(Icon_default, { icon: __props.data.icon }, null, 8, ["icon"])]),
99
99
  key: "0"
@@ -101,7 +101,7 @@ var ToolButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
101
101
  name: "default",
102
102
  fn: withCtx(() => [createTextVNode(toDisplayString(__props.data.text), 1)]),
103
103
  key: "1"
104
- } : void 0]), 1032, ["disabled", "title"]))], 64)) : __props.data.type === "dropdown" ? (openBlock(), createBlock(unref(TMagicDropdown), {
104
+ } : void 0]), 1040, ["disabled", "title"]))], 64)) : __props.data.type === "dropdown" ? (openBlock(), createBlock(unref(TMagicDropdown), {
105
105
  key: 3,
106
106
  trigger: "click",
107
107
  disabled: disabled.value,
@@ -5,7 +5,7 @@ var _hoisted_1 = {
5
5
  key: 1,
6
6
  class: "m-editor-tree-empty"
7
7
  };
8
- var Tree_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var Tree_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
9
  name: "MEditorTree",
10
10
  __name: "Tree",
11
11
  props: {
@@ -16,7 +16,7 @@ var _hoisted_4 = {
16
16
  key: 0,
17
17
  class: "m-editor-tree-node-children"
18
18
  };
19
- var TreeNode_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
19
+ var TreeNode_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
20
20
  name: "MEditorTreeNode",
21
21
  __name: "TreeNode",
22
22
  props: {
@@ -0,0 +1,5 @@
1
+ import ViewForm_vue_vue_type_script_setup_true_lang_default from "./ViewForm.vue_vue_type_script_setup_true_lang.js";
2
+ //#region packages/editor/src/components/ViewForm.vue
3
+ var ViewForm_default = ViewForm_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { ViewForm_default as default };
@@ -0,0 +1,58 @@
1
+ import { useCompareForm } from "../hooks/use-compare-form.js";
2
+ import { MForm } from "@tmagic/form";
3
+ import { createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeStyle, openBlock, unref } from "vue";
4
+ //#region packages/editor/src/components/ViewForm.vue?vue&type=script&setup=true&lang.ts
5
+ var ViewForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
+ name: "MEditorViewForm",
7
+ __name: "ViewForm",
8
+ props: {
9
+ value: {},
10
+ type: {},
11
+ category: { default: "node" },
12
+ dataSourceType: {},
13
+ labelWidth: { default: "120px" },
14
+ height: {},
15
+ extendState: {},
16
+ baseFormState: {},
17
+ size: {},
18
+ loadConfig: {},
19
+ services: {},
20
+ disabled: {
21
+ type: Boolean,
22
+ default: true
23
+ }
24
+ },
25
+ setup(__props, { expose: __expose }) {
26
+ const { config, currentValues, wrapperStyle, mergedExtendState, loadConfig, formRef } = useCompareForm(__props);
27
+ __expose({
28
+ form: formRef,
29
+ config,
30
+ reload: loadConfig
31
+ });
32
+ return (_ctx, _cache) => {
33
+ return openBlock(), createElementBlock("div", {
34
+ class: "m-editor-view-form-wrapper",
35
+ style: normalizeStyle(unref(wrapperStyle))
36
+ }, [unref(config).length ? (openBlock(), createBlock(unref(MForm), {
37
+ key: 0,
38
+ ref: "form",
39
+ class: "m-editor-view-form",
40
+ config: unref(config),
41
+ "init-values": unref(currentValues),
42
+ disabled: __props.disabled,
43
+ "label-width": __props.labelWidth,
44
+ "extend-state": unref(mergedExtendState),
45
+ size: __props.size
46
+ }, null, 8, [
47
+ "config",
48
+ "init-values",
49
+ "disabled",
50
+ "label-width",
51
+ "extend-state",
52
+ "size"
53
+ ])) : createCommentVNode("v-if", true)], 4);
54
+ };
55
+ }
56
+ });
57
+ //#endregion
58
+ export { ViewForm_vue_vue_type_script_setup_true_lang_default as default };
@@ -1,20 +1,28 @@
1
1
  import { CONTAINER_HIGHLIGHT_CLASS_NAME, ContainerHighlightType, RenderType } from "@tmagic/stage";
2
2
  import { getIdFromEl } from "@tmagic/utils";
3
3
  //#region packages/editor/src/editorProps.ts
4
+ /**
5
+ * 「属性配置表单校验」联动能力的 provide/inject 注入键。
6
+ * 使用 Symbol 避免与其它字符串键冲突,供 PropsPanel / FormPanel 注入判断校验失败时是否仍更新节点并记录错误。
7
+ */
8
+ var ENABLE_PROPS_FORM_VALIDATE = Symbol("enablePropsFormValidate");
4
9
  var defaultEditorProps = {
5
10
  renderType: RenderType.IFRAME,
6
11
  disabledMultiSelect: false,
7
12
  alwaysMultiSelect: false,
8
13
  disabledPageFragment: false,
14
+ disabledFlashTip: false,
9
15
  disabledStageOverlay: false,
10
16
  containerHighlightClassName: CONTAINER_HIGHLIGHT_CLASS_NAME,
11
17
  containerHighlightDuration: 800,
12
18
  containerHighlightType: ContainerHighlightType.DEFAULT,
19
+ containerHighlightAddOnly: false,
13
20
  disabledShowSrc: false,
14
21
  disabledDataSource: false,
15
22
  disabledCodeBlock: false,
16
23
  componentGroupList: () => [],
17
24
  datasourceList: () => [],
25
+ historyListExtraTabs: () => [],
18
26
  menu: () => ({
19
27
  left: [],
20
28
  right: []
@@ -32,4 +40,4 @@ var defaultEditorProps = {
32
40
  customContentMenu: (menus) => menus
33
41
  };
34
42
  //#endregion
35
- export { defaultEditorProps };
43
+ export { ENABLE_PROPS_FORM_VALIDATE, defaultEditorProps };
@@ -1,7 +1,8 @@
1
1
  import CodeEditor_default from "../layouts/CodeEditor.js";
2
- import { computed, createBlock, defineComponent, openBlock } from "vue";
2
+ import { FORM_SILENT_MODE_KEY } from "@tmagic/form";
3
+ import { computed, createBlock, createCommentVNode, defineComponent, inject, openBlock, unref } from "vue";
3
4
  //#region packages/editor/src/fields/Code.vue?vue&type=script&setup=true&lang.ts
4
- var Code_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5
6
  name: "MFieldsVsCode",
6
7
  __name: "Code",
7
8
  props: {
@@ -17,10 +18,19 @@ var Code_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
17
18
  },
18
19
  size: {},
19
20
  lastValues: {},
20
- isCompare: { type: Boolean }
21
+ isCompare: { type: Boolean },
22
+ text: {},
23
+ labelWidth: {},
24
+ labelPosition: {}
21
25
  },
22
26
  emits: ["change"],
23
27
  setup(__props, { emit: __emit }) {
28
+ /**
29
+ * 静默模式(submitForm/validateForm 隐藏挂载)下跳过 monaco 渲染:
30
+ * 校验由 FormItem 针对 model 中的值完成,与编辑器实例无关;本组件挂载无值副作用
31
+ * (save 仅由用户操作/编辑器内容变更触发),跳过可省去 monaco worker/model 的无谓实例化。
32
+ */
33
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
24
34
  const emit = __emit;
25
35
  const props = __props;
26
36
  /**
@@ -38,7 +48,8 @@ var Code_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
38
48
  emit("change", v);
39
49
  };
40
50
  return (_ctx, _cache) => {
41
- return openBlock(), createBlock(CodeEditor_default, {
51
+ return !unref(silentMode) ? (openBlock(), createBlock(CodeEditor_default, {
52
+ key: 0,
42
53
  height: __props.config.height,
43
54
  type: diffMode.value ? "diff" : void 0,
44
55
  "init-values": diffMode.value ? (__props.lastValues || {})[__props.name] : __props.model[__props.name],
@@ -62,7 +73,7 @@ var Code_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
62
73
  "autosize",
63
74
  "parse",
64
75
  "editor-custom-type"
65
- ]);
76
+ ])) : createCommentVNode("v-if", true);
66
77
  };
67
78
  }
68
79
  });
@@ -1,8 +1,8 @@
1
1
  import { getEditorConfig } from "../utils/config.js";
2
+ import { serializeConfig } from "../utils/editor.js";
2
3
  import { computed, createBlock, defineComponent, openBlock, reactive, resolveComponent, watch } from "vue";
3
- import serialize from "serialize-javascript";
4
4
  //#region packages/editor/src/fields/CodeLink.vue?vue&type=script&setup=true&lang.ts
5
- var CodeLink_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var CodeLink_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  name: "MFieldsCodeLink",
7
7
  __name: "CodeLink",
8
8
  props: {
@@ -15,7 +15,10 @@ var CodeLink_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
15
15
  disabled: { type: Boolean },
16
16
  size: {},
17
17
  lastValues: {},
18
- isCompare: { type: Boolean }
18
+ isCompare: { type: Boolean },
19
+ text: {},
20
+ labelWidth: {},
21
+ labelPosition: {}
19
22
  },
20
23
  emits: ["change"],
21
24
  setup(__props, { emit: __emit }) {
@@ -39,10 +42,7 @@ var CodeLink_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
39
42
  });
40
43
  const modelValue = reactive({ form: { [props.name]: "" } });
41
44
  watch(() => props.model[props.name], (value) => {
42
- modelValue.form = { [props.name]: serialize(value, {
43
- space: 2,
44
- unsafe: true
45
- }).replace(/"(\w+)":\s/g, "$1: ") };
45
+ modelValue.form = { [props.name]: serializeConfig(value) };
46
46
  }, { immediate: true });
47
47
  const changeHandler = (v) => {
48
48
  if (!props.name || !props.model) return;
@@ -1,11 +1,12 @@
1
1
  import { useServices } from "../hooks/use-services.js";
2
2
  import { MContainer } from "@tmagic/form";
3
- import { TMagicCard } from "@tmagic/design";
3
+ import { TMagicButton, TMagicCard } from "@tmagic/design";
4
4
  import { HookCodeType, HookType } from "@tmagic/core";
5
- import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, unref, watch, withCtx } from "vue";
5
+ import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, watch, withCtx } from "vue";
6
6
  import { isEmpty } from "lodash-es";
7
+ import { Plus } from "@element-plus/icons-vue";
7
8
  //#region packages/editor/src/fields/CodeSelect.vue?vue&type=script&setup=true&lang.ts
8
- var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
10
  name: "MFieldsCodeSelect",
10
11
  __name: "CodeSelect",
11
12
  props: {
@@ -18,7 +19,10 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
18
19
  disabled: { type: Boolean },
19
20
  size: {},
20
21
  lastValues: {},
21
- isCompare: { type: Boolean }
22
+ isCompare: { type: Boolean },
23
+ text: {},
24
+ labelWidth: {},
25
+ labelPosition: {}
22
26
  },
23
27
  emits: ["change"],
24
28
  setup(__props, { emit: __emit }) {
@@ -39,11 +43,21 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
39
43
  * 仅当存在历史值时才启用对比,避免 lastValues 缺失时退化为「全部新增」的空对比。
40
44
  */
41
45
  const isCompareMode = computed(() => Boolean(props.isCompare && props.lastValues));
46
+ const newHandler = () => {
47
+ const defaultCode = {
48
+ codeType: HookCodeType.CODE,
49
+ codeId: ""
50
+ };
51
+ const name = props.config.name || "";
52
+ const hookData = props.model[name]?.hookData || [];
53
+ emit("change", defaultCode, { modifyKey: `hookData.${hookData.length}` });
54
+ };
42
55
  const codeConfig = computed(() => ({
43
56
  type: "group-list",
44
57
  name: "hookData",
45
58
  enableToggleMode: false,
46
59
  expandAll: true,
60
+ addable: () => false,
47
61
  title: (mForm, { model, index }) => {
48
62
  if (model.codeType === HookCodeType.DATA_SOURCE_METHOD) {
49
63
  if (Array.isArray(model.codeId)) {
@@ -56,45 +70,54 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
56
70
  if (codeContent) return codeContent.name;
57
71
  return model.codeId || index;
58
72
  },
59
- items: [{
60
- type: "row",
61
- items: [
62
- {
63
- type: "select",
64
- name: "codeType",
65
- span: 6,
66
- options: [{
67
- value: HookCodeType.CODE,
68
- text: "代码块"
69
- }, {
70
- value: HookCodeType.DATA_SOURCE_METHOD,
71
- text: "数据源方法"
72
- }],
73
- defaultValue: "code",
74
- onChange: (_mForm, v, { setModel }) => {
75
- if (v === HookCodeType.DATA_SOURCE_METHOD) setModel("codeId", []);
76
- else setModel("codeId", "");
77
- return v;
78
- }
79
- },
80
- {
81
- type: "code-select-col",
82
- name: "codeId",
83
- span: 18,
84
- labelWidth: 0,
85
- display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
86
- notEditable: () => !codeBlockService.getEditStatus()
87
- },
88
- {
89
- type: "data-source-method-select",
90
- name: "codeId",
91
- span: 18,
92
- labelWidth: 0,
93
- display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
94
- notEditable: () => !dataSourceService.get("editable")
73
+ titlePrefix: props.config.name === void 0 ? void 0 : String(props.config.name),
74
+ items: [
75
+ {
76
+ text: "代码类型",
77
+ type: "select",
78
+ name: "codeType",
79
+ labelPosition: "right",
80
+ rules: [{
81
+ typeMatch: true,
82
+ trigger: "change"
83
+ }],
84
+ options: [{
85
+ value: HookCodeType.CODE,
86
+ text: "代码块"
87
+ }, {
88
+ value: HookCodeType.DATA_SOURCE_METHOD,
89
+ text: "数据源方法"
90
+ }],
91
+ defaultValue: HookCodeType.CODE,
92
+ onChange: (_mForm, v, { setModel }) => {
93
+ if (v === HookCodeType.DATA_SOURCE_METHOD) setModel("codeId", []);
94
+ else setModel("codeId", "");
95
+ return v;
95
96
  }
96
- ]
97
- }]
97
+ },
98
+ {
99
+ type: "code-select-col",
100
+ name: "codeId",
101
+ text: "代码块",
102
+ rules: [{
103
+ typeMatch: true,
104
+ trigger: "change"
105
+ }],
106
+ display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
107
+ notEditable: () => !codeBlockService.getEditStatus()
108
+ },
109
+ {
110
+ type: "data-source-method-select",
111
+ name: "codeId",
112
+ text: "数据源字段",
113
+ rules: [{
114
+ typeMatch: true,
115
+ trigger: "change"
116
+ }],
117
+ display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
118
+ notEditable: () => !dataSourceService.get("editable")
119
+ }
120
+ ]
98
121
  }));
99
122
  watch(() => props.model[props.name], (value) => {
100
123
  if (isEmpty(value)) props.model[props.name] = {
@@ -104,10 +127,11 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
104
127
  }, { immediate: true });
105
128
  const changeHandler = (v, eventData) => emit("change", v, eventData);
106
129
  return (_ctx, _cache) => {
107
- return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard), null, {
130
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard), { flat: __props.config.flat }, {
108
131
  default: withCtx(() => [createVNode(unref(MContainer), {
109
132
  config: codeConfig.value,
110
133
  size: __props.size,
134
+ class: "code-select-content",
111
135
  prop: __props.prop,
112
136
  disabled: __props.disabled,
113
137
  "is-compare": isCompareMode.value,
@@ -122,9 +146,22 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
122
146
  "is-compare",
123
147
  "last-values",
124
148
  "model"
149
+ ]), createVNode(unref(TMagicButton), {
150
+ class: "create-button fullWidth",
151
+ icon: unref(Plus),
152
+ size: __props.size,
153
+ disabled: __props.disabled,
154
+ onClick: _cache[0] || (_cache[0] = ($event) => newHandler())
155
+ }, {
156
+ default: withCtx(() => [createTextVNode("添加" + toDisplayString(__props.config.text), 1)]),
157
+ _: 1
158
+ }, 8, [
159
+ "icon",
160
+ "size",
161
+ "disabled"
125
162
  ])]),
126
163
  _: 1
127
- })], 2);
164
+ }, 8, ["flat"])], 2);
128
165
  };
129
166
  }
130
167
  });
@@ -10,7 +10,7 @@ import { Edit, View } from "@element-plus/icons-vue";
10
10
  //#region packages/editor/src/fields/CodeSelectCol.vue?vue&type=script&setup=true&lang.ts
11
11
  var _hoisted_1 = { class: "m-fields-code-select-col" };
12
12
  var _hoisted_2 = { class: "code-select-container" };
13
- var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
13
+ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
14
14
  name: "MFieldsCodeSelectCol",
15
15
  __name: "CodeSelectCol",
16
16
  props: {
@@ -26,7 +26,10 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
26
26
  },
27
27
  size: {},
28
28
  lastValues: {},
29
- isCompare: { type: Boolean }
29
+ isCompare: { type: Boolean },
30
+ text: {},
31
+ labelWidth: {},
32
+ labelPosition: {}
30
33
  },
31
34
  emits: ["change"],
32
35
  setup(__props, { emit: __emit }) {
@@ -47,7 +50,8 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
47
50
  */
48
51
  const isCompareMode = computed(() => Boolean(props.isCompare && props.lastValues));
49
52
  const notEditable = computed(() => filterFunction(mForm, props.config.notEditable, props));
50
- const hasCodeBlockSidePanel = computed(() => (uiService.get("sideBarItems") || []).find((item) => item.$key === SideItemKey.CODE_BLOCK));
53
+ const codeBlockSidePanel = computed(() => (uiService.get("sideBarItems") || []).find((item) => item.$key === SideItemKey.CODE_BLOCK));
54
+ const hasCodeBlockSidePanel = computed(() => codeBlockSidePanel.value);
51
55
  /**
52
56
  * 根据代码块id获取代码块参数配置
53
57
  * @param codeId 代码块ID
@@ -71,6 +75,7 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
71
75
  type: "select",
72
76
  name: props.name,
73
77
  disabled: props.disabled,
78
+ text: props.config.text,
74
79
  options: () => {
75
80
  if (codeDsl.value) return map(codeDsl.value, (value, key) => ({
76
81
  text: `${value.name}(${key})`,
@@ -102,6 +107,8 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
102
107
  emit("change", props.model[props.name], eventData);
103
108
  };
104
109
  const editCode = (id) => {
110
+ const sideBarItem = codeBlockSidePanel.value;
111
+ if (sideBarItem) uiService.set("sideBarActiveTabName", sideBarItem.text || sideBarItem.$key || SideItemKey.CODE_BLOCK);
105
112
  eventBus?.emit("edit-code", id);
106
113
  };
107
114
  return (_ctx, _cache) => {
@@ -1,10 +1,10 @@
1
- import { arrayOptions, eqOptions, numberOptions } from "../utils/props.js";
1
+ import { getCondOpOptionsByFieldType } from "../utils/props.js";
2
2
  import { useServices } from "../hooks/use-services.js";
3
3
  import { getFieldType } from "../utils/data-source/index.js";
4
4
  import { TMagicSelect, getDesignConfig } from "@tmagic/design";
5
5
  import { Fragment, computed, createBlock, createElementBlock, defineComponent, mergeProps, openBlock, renderList, resolveDynamicComponent, unref, withCtx } from "vue";
6
6
  //#region packages/editor/src/fields/CondOpSelect.vue?vue&type=script&setup=true&lang.ts
7
- var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
8
  name: "MFieldsCondOpSelect",
9
9
  __name: "CondOpSelect",
10
10
  props: {
@@ -17,7 +17,10 @@ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
17
17
  disabled: { type: Boolean },
18
18
  size: {},
19
19
  lastValues: {},
20
- isCompare: { type: Boolean }
20
+ isCompare: { type: Boolean },
21
+ text: {},
22
+ labelWidth: {},
23
+ labelPosition: {}
21
24
  },
22
25
  emits: ["change"],
23
26
  setup(__props, { emit: __emit }) {
@@ -27,22 +30,7 @@ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
27
30
  const optionComponent = getDesignConfig("components")?.option;
28
31
  const options = computed(() => {
29
32
  const [id, ...fieldNames] = [...props.config.parentFields || [], ...props.model.field];
30
- const type = getFieldType(dataSourceService.getDataSourceById(id), fieldNames);
31
- if (type === "array") return arrayOptions;
32
- if (type === "boolean" || type === "null") return [{
33
- text: "是",
34
- value: "is"
35
- }, {
36
- text: "不是",
37
- value: "not"
38
- }];
39
- if (type === "number") return [...eqOptions, ...numberOptions];
40
- if (type === "string") return [...arrayOptions, ...eqOptions];
41
- return [
42
- ...arrayOptions,
43
- ...eqOptions,
44
- ...numberOptions
45
- ];
33
+ return getCondOpOptionsByFieldType(getFieldType(dataSourceService.getDataSourceById(id), fieldNames));
46
34
  });
47
35
  const fieldChangeHandler = (v) => {
48
36
  emit("change", v);
@@ -9,9 +9,9 @@ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock
9
9
  import { Edit, View } from "@element-plus/icons-vue";
10
10
  //#region packages/editor/src/fields/DataSourceFieldSelect/FieldSelect.vue?vue&type=script&setup=true&lang.ts
11
11
  var _hoisted_1 = { class: "m-editor-data-source-field-select" };
12
- var FieldSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
13
  __name: "FieldSelect",
14
- props: /* @__PURE__ */ mergeModels({
14
+ props: /*@__PURE__*/ mergeModels({
15
15
  value: {},
16
16
  disabled: { type: Boolean },
17
17
  checkStrictly: { type: Boolean },
@@ -23,7 +23,7 @@ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
23
23
  "modelValue": { default: [] },
24
24
  "modelModifiers": {}
25
25
  }),
26
- emits: /* @__PURE__ */ mergeModels(["change"], ["update:modelValue"]),
26
+ emits: /*@__PURE__*/ mergeModels(["change"], ["update:modelValue"]),
27
27
  setup(__props, { emit: __emit }) {
28
28
  const props = __props;
29
29
  const emit = __emit;
@@ -49,7 +49,8 @@ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
49
49
  const selectFieldsId = ref([]);
50
50
  watch(modelValue, (value) => {
51
51
  if (props.dataSourceId) {
52
- selectDataSourceId.value = valueIsKey.value ? props.dataSourceId : `${DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX}${props.dataSourceId}`;
52
+ const dsIdValue = valueIsKey.value ? props.dataSourceId : `${DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX}${props.dataSourceId}`;
53
+ selectDataSourceId.value = dsIdValue;
53
54
  selectFieldsId.value = Array.isArray(value) ? value : [];
54
55
  } else if (Array.isArray(value) && value.length) {
55
56
  const [dsId, ...fields] = value;
@@ -89,9 +90,15 @@ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
89
90
  modelValue.value = v;
90
91
  emit("change", v);
91
92
  };
92
- const hasDataSourceSidePanel = computed(() => uiService.get("sideBarItems").find((item) => item.$key === SideItemKey.DATA_SOURCE));
93
+ const dataSourceSidePanel = computed(() => uiService.get("sideBarItems").find((item) => item.$key === SideItemKey.DATA_SOURCE));
94
+ const hasDataSourceSidePanel = computed(() => dataSourceSidePanel.value);
93
95
  const editHandler = (id) => {
94
- eventBus?.emit("edit-data-source", removeDataSourceFieldPrefix(id));
96
+ const sideBarItem = dataSourceSidePanel.value;
97
+ if (sideBarItem) uiService.set("sideBarActiveTabName", sideBarItem.text || sideBarItem.$key || SideItemKey.DATA_SOURCE);
98
+ const dataSourceId = removeDataSourceFieldPrefix(id);
99
+ const fieldPath = selectFieldsId.value;
100
+ if (fieldPath.length) eventBus?.emit("edit-data-source-field", dataSourceId, [...fieldPath]);
101
+ else eventBus?.emit("edit-data-source", dataSourceId);
95
102
  };
96
103
  return (_ctx, _cache) => {
97
104
  return openBlock(), createElementBlock("div", _hoisted_1, [__props.dataSourceId ? (openBlock(), createBlock(unref(TMagicCascader), {