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

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 (308) 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 +156 -155
  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/events.js +2 -2
  138. package/dist/es/services/history.js +350 -386
  139. package/dist/es/services/keybinding.js +6 -6
  140. package/dist/es/services/props.js +3 -2
  141. package/dist/es/services/storage.js +2 -2
  142. package/dist/es/services/ui.js +10 -2
  143. package/dist/es/style.css +549 -113
  144. package/dist/es/utils/config.js +4 -1
  145. package/dist/es/utils/const.js +2 -2
  146. package/dist/es/utils/content-menu.js +19 -11
  147. package/dist/es/utils/data-source/index.js +34 -11
  148. package/dist/es/utils/dep/collect-worker-client.js +114 -0
  149. package/dist/es/utils/dep/idle-task.js +70 -22
  150. package/dist/es/utils/dep/worker.js +1 -1
  151. package/dist/es/utils/editor.js +103 -49
  152. package/dist/es/utils/event.js +135 -0
  153. package/dist/es/utils/history.js +220 -0
  154. package/dist/es/utils/indexed-db.js +86 -0
  155. package/dist/es/utils/monaco-editor.js +22 -6
  156. package/dist/es/utils/operator.js +2 -2
  157. package/dist/es/utils/props.js +114 -33
  158. package/dist/es/utils/type-match-rules.js +367 -0
  159. package/dist/es/utils/undo-redo.js +60 -1
  160. package/dist/style.css +549 -113
  161. package/dist/themes/magic-admin.css +3028 -0
  162. package/dist/tmagic-editor.umd.cjs +14403 -10121
  163. package/package.json +8 -8
  164. package/src/Editor.vue +43 -2
  165. package/src/components/CodeBlockEditor.vue +3 -0
  166. package/src/components/CompareForm.vue +18 -146
  167. package/src/components/ContentMenu.vue +44 -8
  168. package/src/components/FloatingBox.vue +84 -9
  169. package/src/components/ScrollBar.vue +0 -67
  170. package/src/components/ToolButton.vue +2 -2
  171. package/src/components/ViewForm.vue +55 -0
  172. package/src/editorProps.ts +30 -0
  173. package/src/fields/Code.vue +10 -2
  174. package/src/fields/CodeLink.vue +2 -5
  175. package/src/fields/CodeSelect.vue +54 -40
  176. package/src/fields/CodeSelectCol.vue +8 -1
  177. package/src/fields/CondOpSelect.vue +2 -24
  178. package/src/fields/DataSourceFieldSelect/FieldSelect.vue +16 -2
  179. package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
  180. package/src/fields/DataSourceFields.vue +42 -8
  181. package/src/fields/DataSourceInput.vue +10 -28
  182. package/src/fields/DataSourceMethodSelect.vue +9 -4
  183. package/src/fields/DataSourceMethods.vue +42 -21
  184. package/src/fields/DataSourceMocks.vue +3 -0
  185. package/src/fields/DisplayConds.vue +18 -1
  186. package/src/fields/EventSelect.vue +152 -166
  187. package/src/fields/StyleSetter/Index.vue +3 -12
  188. package/src/fields/StyleSetter/components/Border.vue +15 -6
  189. package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
  190. package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
  191. package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
  192. package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
  193. package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
  194. package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
  195. package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
  196. package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
  197. package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
  198. package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
  199. package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
  200. package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
  201. package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
  202. package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
  203. package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
  204. package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
  205. package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
  206. package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
  207. package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
  208. package/src/fields/StyleSetter/pro/Background.vue +99 -55
  209. package/src/fields/StyleSetter/pro/Border.vue +9 -11
  210. package/src/fields/StyleSetter/pro/Font.vue +66 -64
  211. package/src/fields/StyleSetter/pro/Layout.vue +211 -139
  212. package/src/fields/StyleSetter/pro/Position.vue +69 -67
  213. package/src/fields/StyleSetter/pro/Transform.vue +23 -25
  214. package/src/fields/UISelect.vue +0 -12
  215. package/src/hooks/index.ts +1 -0
  216. package/src/hooks/use-code-block-edit.ts +4 -3
  217. package/src/hooks/use-compare-form.ts +187 -0
  218. package/src/hooks/use-data-source-edit.ts +2 -2
  219. package/src/hooks/use-stage.ts +5 -3
  220. package/src/icons/DatasourceIcon.vue +7 -0
  221. package/src/index.ts +12 -0
  222. package/src/initService.ts +26 -16
  223. package/src/layouts/CodeEditor.vue +34 -11
  224. package/src/layouts/Framework.vue +15 -8
  225. package/src/layouts/NavMenu.vue +3 -3
  226. package/src/layouts/history-list/Bucket.vue +33 -41
  227. package/src/layouts/history-list/BucketTab.vue +72 -0
  228. package/src/layouts/history-list/GroupRow.vue +190 -93
  229. package/src/layouts/history-list/HistoryDiffDialog.vue +169 -90
  230. package/src/layouts/history-list/HistoryListPanel.vue +191 -95
  231. package/src/layouts/history-list/InitialRow.vue +38 -8
  232. package/src/layouts/history-list/PageTab.vue +67 -43
  233. package/src/layouts/history-list/composables.ts +239 -125
  234. package/src/layouts/history-list/useHistoryList.ts +60 -0
  235. package/src/layouts/history-list/useHistoryRevert.ts +425 -0
  236. package/src/layouts/page-bar/PageBar.vue +4 -2
  237. package/src/layouts/props-panel/FormPanel.vue +72 -6
  238. package/src/layouts/props-panel/PropsPanel.vue +62 -18
  239. package/src/layouts/props-panel/use-style-panel.ts +4 -3
  240. package/src/layouts/sidebar/ComponentListPanel.vue +10 -6
  241. package/src/layouts/sidebar/Sidebar.vue +13 -6
  242. package/src/layouts/sidebar/code-block/CodeBlockList.vue +5 -5
  243. package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +5 -2
  244. package/src/layouts/sidebar/code-block/useContentMenu.ts +14 -2
  245. package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +34 -2
  246. package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +29 -4
  247. package/src/layouts/sidebar/data-source/useContentMenu.ts +14 -2
  248. package/src/layouts/sidebar/layer/LayerMenu.vue +21 -13
  249. package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
  250. package/src/layouts/sidebar/layer/LayerNodeTool.vue +7 -4
  251. package/src/layouts/sidebar/layer/LayerPanel.vue +4 -1
  252. package/src/layouts/sidebar/layer/use-click.ts +3 -3
  253. package/src/layouts/sidebar/layer/use-node-status.ts +2 -2
  254. package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
  255. package/src/layouts/workspace/viewer/Stage.vue +1 -1
  256. package/src/layouts/workspace/viewer/ViewerMenu.vue +15 -15
  257. package/src/plugin.ts +6 -3
  258. package/src/services/codeBlock.ts +152 -47
  259. package/src/services/dataSource.ts +120 -41
  260. package/src/services/dep.ts +292 -47
  261. package/src/services/editor.ts +820 -224
  262. package/src/services/events.ts +3 -3
  263. package/src/services/history.ts +449 -412
  264. package/src/services/keybinding.ts +6 -6
  265. package/src/services/ui.ts +33 -5
  266. package/src/theme/code-block.scss +37 -0
  267. package/src/theme/common/var.scss +1 -1
  268. package/src/theme/component-list-panel.scss +2 -2
  269. package/src/theme/data-source-field.scss +4 -0
  270. package/src/theme/display-conds.scss +11 -0
  271. package/src/theme/event.scss +70 -1
  272. package/src/theme/floating-box.scss +9 -1
  273. package/src/theme/framework.scss +4 -1
  274. package/src/theme/history-list-panel.scss +157 -23
  275. package/src/theme/layer-node-content.scss +14 -0
  276. package/src/theme/nav-menu.scss +5 -1
  277. package/src/theme/page-bar.scss +0 -4
  278. package/src/theme/props-panel.scss +5 -4
  279. package/src/theme/scroll-bar.scss +64 -0
  280. package/src/theme/style-setter/border.scss +17 -5
  281. package/src/theme/theme.scss +4 -0
  282. package/src/theme/themes/magic-admin/index.scss +214 -0
  283. package/src/theme/ui-select.scss +9 -0
  284. package/src/type.ts +668 -124
  285. package/src/utils/config.ts +9 -1
  286. package/src/utils/const.ts +3 -2
  287. package/src/utils/content-menu.ts +20 -11
  288. package/src/utils/data-source/index.ts +32 -12
  289. package/src/utils/dep/collect-worker-client.ts +149 -0
  290. package/src/utils/dep/idle-task.ts +104 -35
  291. package/src/utils/dep/worker.ts +113 -9
  292. package/src/utils/editor.ts +166 -60
  293. package/src/utils/event.ts +237 -0
  294. package/src/utils/history.ts +286 -0
  295. package/src/utils/index.ts +4 -0
  296. package/src/utils/indexed-db.ts +122 -0
  297. package/src/utils/monaco-editor.ts +27 -0
  298. package/src/utils/operator.ts +2 -2
  299. package/src/utils/props.ts +114 -11
  300. package/src/utils/type-match-rules.ts +684 -0
  301. package/src/utils/undo-redo.ts +88 -0
  302. package/types/index.d.ts +1990 -517
  303. package/dist/es/layouts/history-list/CodeBlockTab.js +0 -5
  304. package/dist/es/layouts/history-list/CodeBlockTab.vue_vue_type_script_setup_true_lang.js +0 -62
  305. package/dist/es/layouts/history-list/DataSourceTab.js +0 -5
  306. package/dist/es/layouts/history-list/DataSourceTab.vue_vue_type_script_setup_true_lang.js +0 -62
  307. package/src/layouts/history-list/CodeBlockTab.vue +0 -61
  308. package/src/layouts/history-list/DataSourceTab.vue +0 -61
@@ -1,19 +1,20 @@
1
1
  import { useServices } from "../hooks/use-services.js";
2
- import { getCascaderOptionsFromFields } from "../utils/data-source/index.js";
2
+ import { getCompActionAllowedValues, getCompActionOptions, getEventNameAllowedValues, getEventNameOptions, normalizeCompActionValue } from "../utils/event.js";
3
3
  import { MContainer, MPanel, MTable, defineFormItem } from "@tmagic/form";
4
4
  import { TMagicButton } from "@tmagic/design";
5
- import { DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX, traverseNode } from "@tmagic/utils";
6
5
  import { ActionType } from "@tmagic/core";
7
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
6
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderList, unref, withCtx } from "vue";
8
7
  import { has } from "lodash-es";
9
- import { Delete } from "@element-plus/icons-vue";
8
+ import { Delete, Plus } from "@element-plus/icons-vue";
10
9
  //#region packages/editor/src/fields/EventSelect.vue?vue&type=script&setup=true&lang.ts
11
10
  var _hoisted_1 = { class: "m-fields-event-select" };
12
11
  var _hoisted_2 = {
13
12
  key: 1,
14
- class: "fullWidth"
13
+ class: "fullWidth event-select-container"
15
14
  };
16
- var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
15
+ var _hoisted_3 = { class: "event-select-header" };
16
+ var _hoisted_4 = { class: "event-item-header" };
17
+ var EventSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
17
18
  name: "MFieldsEventSelect",
18
19
  __name: "EventSelect",
19
20
  props: {
@@ -26,7 +27,10 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
26
27
  disabled: { type: Boolean },
27
28
  size: {},
28
29
  lastValues: {},
29
- isCompare: { type: Boolean }
30
+ isCompare: { type: Boolean },
31
+ text: {},
32
+ labelWidth: {},
33
+ labelPosition: {}
30
34
  },
31
35
  emits: ["change"],
32
36
  setup(__props, { emit: __emit }) {
@@ -36,82 +40,65 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
36
40
  const eventNameConfig = computed(() => {
37
41
  return {
38
42
  name: "name",
39
- text: "事件",
43
+ text: "事件类型",
40
44
  type: (mForm, { formValue }) => {
41
45
  if (props.config.src !== "component" || formValue.type === "page-fragment-container" && formValue.pageFragmentId) return "cascader";
42
46
  return "select";
43
47
  },
44
- labelWidth: "40px",
48
+ labelWidth: "70px",
45
49
  checkStrictly: () => props.config.src !== "component",
46
50
  valueSeparator: ".",
47
- options: (mForm, { formValue }) => {
48
- let events = [];
49
- if (props.config.src === "component") {
50
- events = eventsService.getEvent(formValue.type);
51
- if (formValue.type === "page-fragment-container" && formValue.pageFragmentId) {
52
- const pageFragment = editorService.get("root")?.items?.find((page) => page.id === formValue.pageFragmentId);
53
- if (pageFragment) {
54
- events = [{
55
- label: pageFragment.name || "页面片容器",
56
- value: pageFragment.id,
57
- children: events
58
- }];
59
- pageFragment.items.forEach((node) => {
60
- traverseNode(node, (node) => {
61
- const nodeEvents = node.type && eventsService.getEvent(node.type) || [];
62
- events.push({
63
- label: `${node.name}_${node.id}`,
64
- value: `${node.id}`,
65
- children: nodeEvents
66
- });
67
- });
68
- });
69
- return events;
70
- }
71
- }
72
- return events.map((option) => ({
73
- text: option.label,
74
- value: option.value
75
- }));
76
- }
77
- if (props.config.src === "datasource") {
78
- events = dataSourceService.getFormEvent(formValue.type);
79
- const fields = dataSourceService.getDataSourceById(formValue.id)?.fields || [];
80
- if (fields.length > 0) return [...events, {
81
- label: "数据变化",
82
- value: DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX,
83
- children: getCascaderOptionsFromFields(fields)
84
- }];
85
- return events;
86
- }
87
- },
51
+ options: (_mForm, { formValue }) => getEventNameOptions(props.config.src, formValue),
52
+ rules: [{
53
+ validator: ({ value, callback }, { formValue }) => {
54
+ const allowedNames = getEventNameAllowedValues(props.config, formValue);
55
+ if (allowedNames && allowedNames.size > 0 && value && !allowedNames.has(value)) return callback(`事件名(${value})不存在`);
56
+ callback();
57
+ },
58
+ trigger: "blur"
59
+ }],
88
60
  ...props.config.eventNameConfig
89
61
  };
90
62
  });
63
+ const actionTypeOptions = computed(() => {
64
+ const o = [{
65
+ text: "组件",
66
+ label: "组件",
67
+ value: ActionType.COMP
68
+ }];
69
+ if (!propsService.getDisabledCodeBlock()) o.push({
70
+ text: "代码",
71
+ label: "代码",
72
+ disabled: !Object.keys(codeBlockService.getCodeDsl() || {}).length,
73
+ value: ActionType.CODE
74
+ });
75
+ if (!propsService.getDisabledDataSource()) o.push({
76
+ text: "数据源",
77
+ label: "数据源",
78
+ value: ActionType.DATA_SOURCE
79
+ });
80
+ return o;
81
+ });
91
82
  const actionTypeConfig = computed(() => {
92
83
  return {
93
84
  name: "actionType",
94
85
  text: "联动类型",
95
86
  type: "select",
87
+ labelPosition: "left",
96
88
  defaultValue: ActionType.COMP,
97
- options: () => {
98
- const o = [{
99
- text: "组件",
100
- label: "组件",
101
- value: ActionType.COMP
102
- }];
103
- if (!propsService.getDisabledCodeBlock()) o.push({
104
- text: "代码",
105
- label: "代码",
106
- disabled: !Object.keys(codeBlockService.getCodeDsl() || {}).length,
107
- value: ActionType.CODE
108
- });
109
- if (!propsService.getDisabledDataSource()) o.push({
110
- text: "数据源",
111
- label: "数据源",
112
- value: ActionType.DATA_SOURCE
113
- });
114
- return o;
89
+ options: actionTypeOptions.value,
90
+ rules: [{
91
+ required: true,
92
+ message: "联动类型不能为空"
93
+ }, {
94
+ typeMatch: true,
95
+ trigger: "blur"
96
+ }],
97
+ onChange: (_mForm, _v, { setModel }) => {
98
+ setModel("to", "");
99
+ setModel("method", "");
100
+ setModel("codeId", "");
101
+ setModel("dataSourceMethod", []);
115
102
  },
116
103
  ...props.config.actionTypeConfig
117
104
  };
@@ -121,10 +108,15 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
121
108
  name: "to",
122
109
  text: "联动组件",
123
110
  type: "ui-select",
111
+ labelPosition: "left",
124
112
  display: (_mForm, { model }) => model.actionType === ActionType.COMP,
125
- onChange: (_MForm, _v, { setModel }) => {
113
+ onChange: (_mForm, _v, { setModel }) => {
126
114
  setModel("method", "");
127
115
  },
116
+ rules: [{
117
+ typeMatch: true,
118
+ trigger: "blur"
119
+ }],
128
120
  ...props.config.targetCompConfig
129
121
  };
130
122
  });
@@ -132,6 +124,7 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
132
124
  return {
133
125
  name: "method",
134
126
  text: "动作",
127
+ labelPosition: "left",
135
128
  type: (mForm, { model }) => {
136
129
  const to = editorService.getNodeById(model.to);
137
130
  if (to && to.type === "page-fragment-container" && to.pageFragmentId) return "cascader";
@@ -139,33 +132,16 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
139
132
  },
140
133
  checkStrictly: () => props.config.src !== "component",
141
134
  display: (mForm, { model }) => model.actionType === ActionType.COMP,
142
- options: (mForm, { model }) => {
143
- const node = editorService.getNodeById(model.to);
144
- if (!node?.type) return [];
145
- let methods = [];
146
- methods = eventsService.getMethod(node.type, model.to);
147
- if (node.type === "page-fragment-container" && node.pageFragmentId) {
148
- const pageFragment = editorService.get("root")?.items?.find((page) => page.id === node.pageFragmentId);
149
- if (pageFragment) {
150
- methods = [];
151
- pageFragment.items.forEach((node) => {
152
- traverseNode(node, (node) => {
153
- const nodeMethods = node.type && eventsService.getMethod(node.type, node.id) || [];
154
- if (nodeMethods.length) methods.push({
155
- label: `${node.name}_${node.id}`,
156
- value: `${node.id}`,
157
- children: nodeMethods
158
- });
159
- });
160
- });
161
- return methods;
162
- }
135
+ options: (_mForm, { model }) => getCompActionOptions(model.to),
136
+ rules: [{
137
+ trigger: "blur",
138
+ validator: ({ value, callback }, { model }) => {
139
+ const allowedMethods = getCompActionAllowedValues(props.config, model);
140
+ const normalized = normalizeCompActionValue(value);
141
+ if (allowedMethods && allowedMethods.size > 0 && normalized && !allowedMethods.has(normalized)) return callback(`动作名(${normalized})不存在`);
142
+ callback();
163
143
  }
164
- return methods.map((method) => ({
165
- text: method.label,
166
- value: method.value
167
- }));
168
- },
144
+ }],
169
145
  ...props.config.compActionConfig
170
146
  };
171
147
  });
@@ -197,7 +173,7 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
197
173
  name: "name",
198
174
  label: "事件名",
199
175
  type: eventNameConfig.value.type,
200
- options: (mForm, { formValue }) => eventsService.getEvent(formValue.type).map((option) => ({
176
+ options: (mForm, { formValue }) => eventsService.getEvent(formValue.type, { node: editorService.getNodeById(formValue.id) }).map((option) => ({
201
177
  text: option.label,
202
178
  value: option.value
203
179
  }))
@@ -214,7 +190,10 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
214
190
  options: (mForm, { model }) => {
215
191
  const node = editorService.getNodeById(model.to);
216
192
  if (!node?.type) return [];
217
- return eventsService.getMethod(node.type, model.to).map((option) => ({
193
+ return eventsService.getMethod(node.type, {
194
+ targetId: model.to,
195
+ node
196
+ }).map((option) => ({
218
197
  text: option.label,
219
198
  value: option.value
220
199
  }));
@@ -224,12 +203,14 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
224
203
  }));
225
204
  const actionsConfig = computed(() => defineFormItem({
226
205
  type: "panel",
206
+ labelPosition: "left",
227
207
  items: [{
228
208
  type: "group-list",
229
209
  name: "actions",
230
210
  expandAll: true,
231
211
  enableToggleMode: false,
232
212
  titlePrefix: "动作",
213
+ labelPosition: "left",
233
214
  items: [
234
215
  actionTypeConfig.value,
235
216
  targetCompConfig.value,
@@ -311,73 +292,93 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
311
292
  "last-values",
312
293
  "is-compare",
313
294
  "config"
314
- ])) : (openBlock(), createElementBlock("div", _hoisted_2, [!isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
315
- key: 0,
316
- class: "create-button",
317
- type: "primary",
318
- size: __props.size,
319
- disabled: __props.disabled,
320
- onClick: _cache[0] || (_cache[0] = ($event) => addEvent())
321
- }, {
322
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("添加事件", -1)])]),
323
- _: 1
324
- }, 8, ["size", "disabled"])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(displayList.value, (entry) => {
325
- return openBlock(), createBlock(unref(MPanel), {
326
- key: entry.index,
327
- disabled: __props.disabled,
295
+ ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
296
+ createElementVNode("div", _hoisted_3, [_cache[3] || (_cache[3] = createElementVNode("div", { class: "event-select-title" }, "事件配置", -1)), !isCompareMode.value && displayList.value.length > 0 ? (openBlock(), createBlock(unref(TMagicButton), {
297
+ key: 0,
298
+ class: "create-button",
299
+ text: "",
300
+ type: "primary",
301
+ icon: unref(Plus),
328
302
  size: __props.size,
329
- prop: `${__props.prop}.${entry.index}`,
330
- config: actionsConfig.value,
331
- model: entry.cardItem,
332
- "last-values": entry.lastCardItem,
333
- "is-compare": isCompareMode.value,
334
- "label-width": __props.config.labelWidth || "100px",
335
- onChange: onChangeHandler
303
+ disabled: __props.disabled,
304
+ onClick: _cache[0] || (_cache[0] = ($event) => addEvent())
336
305
  }, {
337
- header: withCtx(() => [createVNode(unref(MContainer), {
338
- class: "fullWidth",
339
- config: eventNameConfig.value,
340
- model: entry.cardItem,
341
- "last-values": entry.lastCardItem,
342
- "is-compare": isCompareMode.value,
306
+ default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode("添加事件", -1)])]),
307
+ _: 1
308
+ }, 8, [
309
+ "icon",
310
+ "size",
311
+ "disabled"
312
+ ])) : createCommentVNode("v-if", true)]),
313
+ (openBlock(true), createElementBlock(Fragment, null, renderList(displayList.value, (entry) => {
314
+ return openBlock(), createBlock(unref(MPanel), {
315
+ key: entry.index,
343
316
  disabled: __props.disabled,
344
317
  size: __props.size,
345
318
  prop: `${__props.prop}.${entry.index}`,
346
- onChange: eventNameChangeHandler
347
- }, null, 8, [
319
+ config: actionsConfig.value,
320
+ model: entry.cardItem,
321
+ "last-values": entry.lastCardItem,
322
+ "is-compare": isCompareMode.value,
323
+ "hide-expand": false,
324
+ "label-width": __props.config.labelWidth || "100px",
325
+ onChange: onChangeHandler
326
+ }, {
327
+ header: withCtx(() => [createElementVNode("div", _hoisted_4, [createVNode(unref(MContainer), {
328
+ class: "fullWidth",
329
+ config: eventNameConfig.value,
330
+ model: entry.cardItem,
331
+ "last-values": entry.lastCardItem,
332
+ "is-compare": isCompareMode.value,
333
+ disabled: __props.disabled,
334
+ size: __props.size,
335
+ prop: `${__props.prop}.${entry.index}`,
336
+ onChange: eventNameChangeHandler
337
+ }, null, 8, [
338
+ "config",
339
+ "model",
340
+ "last-values",
341
+ "is-compare",
342
+ "disabled",
343
+ "size",
344
+ "prop"
345
+ ]), !isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
346
+ key: 0,
347
+ class: "event-item-delete-button",
348
+ link: "",
349
+ icon: unref(Delete),
350
+ disabled: __props.disabled,
351
+ size: __props.size,
352
+ onClick: ($event) => removeEvent(Number(entry.index))
353
+ }, null, 8, [
354
+ "icon",
355
+ "disabled",
356
+ "size",
357
+ "onClick"
358
+ ])) : createCommentVNode("v-if", true)])]),
359
+ _: 2
360
+ }, 1032, [
361
+ "disabled",
362
+ "size",
363
+ "prop",
348
364
  "config",
349
365
  "model",
350
366
  "last-values",
351
367
  "is-compare",
352
- "disabled",
353
- "size",
354
- "prop"
355
- ]), !isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
356
- key: 0,
357
- style: { "color": "#f56c6c" },
358
- link: "",
359
- icon: unref(Delete),
360
- disabled: __props.disabled,
361
- size: __props.size,
362
- onClick: ($event) => removeEvent(Number(entry.index))
363
- }, null, 8, [
364
- "icon",
365
- "disabled",
366
- "size",
367
- "onClick"
368
- ])) : createCommentVNode("v-if", true)]),
369
- _: 2
370
- }, 1032, [
371
- "disabled",
372
- "size",
373
- "prop",
374
- "config",
375
- "model",
376
- "last-values",
377
- "is-compare",
378
- "label-width"
379
- ]);
380
- }), 128))]))]);
368
+ "label-width"
369
+ ]);
370
+ }), 128)),
371
+ !isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
372
+ key: 0,
373
+ class: "create-button fullWidth",
374
+ icon: unref(Plus),
375
+ disabled: __props.disabled,
376
+ onClick: _cache[1] || (_cache[1] = ($event) => addEvent())
377
+ }, {
378
+ default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("添加事件", -1)])]),
379
+ _: 1
380
+ }, 8, ["icon", "disabled"])) : createCommentVNode("v-if", true)
381
+ ]))]);
381
382
  };
382
383
  }
383
384
  });
@@ -6,7 +6,7 @@ import { Delete, Plus } from "@element-plus/icons-vue";
6
6
  //#region packages/editor/src/fields/KeyValue.vue?vue&type=script&setup=true&lang.ts
7
7
  var _hoisted_1 = { class: "m-fields-key-value" };
8
8
  var _hoisted_2 = { key: 0 };
9
- var KeyValue_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var KeyValue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
10
  name: "MFieldsKeyValue",
11
11
  __name: "KeyValue",
12
12
  props: {
@@ -22,7 +22,10 @@ var KeyValue_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
22
22
  },
23
23
  size: {},
24
24
  lastValues: {},
25
- isCompare: { type: Boolean }
25
+ isCompare: { type: Boolean },
26
+ text: {},
27
+ labelWidth: {},
28
+ labelPosition: {}
26
29
  },
27
30
  emits: ["change"],
28
31
  setup(__props, { emit: __emit }) {
@@ -7,7 +7,7 @@ import { Edit } from "@element-plus/icons-vue";
7
7
  //#region packages/editor/src/fields/PageFragmentSelect.vue?vue&type=script&setup=true&lang.ts
8
8
  var _hoisted_1 = { class: "m-fields-page-fragment-select" };
9
9
  var _hoisted_2 = { class: "page-fragment-select-container" };
10
- var PageFragmentSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var PageFragmentSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  name: "MFieldsPageFragmentSelect",
12
12
  __name: "PageFragmentSelect",
13
13
  props: {
@@ -23,7 +23,10 @@ var PageFragmentSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
23
23
  },
24
24
  size: {},
25
25
  lastValues: {},
26
- isCompare: { type: Boolean }
26
+ isCompare: { type: Boolean },
27
+ text: {},
28
+ labelWidth: {},
29
+ labelPosition: {}
27
30
  },
28
31
  emits: ["change"],
29
32
  setup(__props, { emit: __emit }) {
@@ -1,4 +1,3 @@
1
- import Icon_default from "../../components/Icon.js";
2
1
  import Background_default from "./pro/Background.js";
3
2
  import Font_default from "./pro/Font.js";
4
3
  import Layout_default from "./pro/Layout.js";
@@ -7,9 +6,8 @@ import Border_default from "./pro/Border.js";
7
6
  import Transform_default from "./pro/Transform.js";
8
7
  import { TMagicCollapse, TMagicCollapseItem } from "@tmagic/design";
9
8
  import { Fragment, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, openBlock, renderList, resolveDynamicComponent, shallowRef, toDisplayString, unref, withCtx } from "vue";
10
- import { Grid } from "@element-plus/icons-vue";
11
9
  //#region packages/editor/src/fields/StyleSetter/Index.vue?vue&type=script&setup=true&lang.ts
12
- var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
13
11
  name: "MFieldsStyleSetter",
14
12
  __name: "Index",
15
13
  props: {
@@ -22,11 +20,13 @@ var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
22
20
  disabled: { type: Boolean },
23
21
  size: {},
24
22
  lastValues: {},
25
- isCompare: { type: Boolean }
23
+ isCompare: { type: Boolean },
24
+ text: {},
25
+ labelWidth: {},
26
+ labelPosition: {}
26
27
  },
27
28
  emits: ["change", "addDiffCount"],
28
29
  setup(__props, { emit: __emit }) {
29
- const props = __props;
30
30
  const emit = __emit;
31
31
  const list = [
32
32
  {
@@ -57,10 +57,6 @@ var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
57
57
  ];
58
58
  const collapseValue = shallowRef(Array(list.length).fill(1).map((x, i) => `${i}`));
59
59
  const change = (v, eventData) => {
60
- eventData.changeRecords?.forEach((record) => {
61
- if (props.prop) record.propPath = `${props.prop}.${record.propPath}`;
62
- else if (props.name) record.propPath = `${props.name}.${record.propPath}`;
63
- });
64
60
  emit("change", v, eventData);
65
61
  };
66
62
  const onAddDiffCount = () => emit("addDiffCount");
@@ -75,10 +71,11 @@ var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
75
71
  key: index,
76
72
  name: `${index}`
77
73
  }, {
78
- title: withCtx(() => [createVNode(Icon_default, { icon: unref(Grid) }, null, 8, ["icon"]), createTextVNode(toDisplayString(item.title), 1)]),
74
+ title: withCtx(() => [createTextVNode(toDisplayString(item.title), 1)]),
79
75
  default: withCtx(() => [item.component ? (openBlock(), createBlock(resolveDynamicComponent(item.component), {
80
76
  key: 0,
81
77
  values: __props.model[__props.name],
78
+ prop: __props.prop || __props.name,
82
79
  "last-values": __props.lastValues?.[__props.name],
83
80
  "is-compare": __props.isCompare,
84
81
  size: __props.size,
@@ -87,6 +84,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
87
84
  onAddDiffCount
88
85
  }, null, 40, [
89
86
  "values",
87
+ "prop",
90
88
  "last-values",
91
89
  "is-compare",
92
90
  "size",
@@ -4,7 +4,7 @@ import { Fragment, createBlock, createElementBlock, createElementVNode, createVN
4
4
  var _hoisted_1 = { class: "background-position-container" };
5
5
  var _hoisted_2 = { class: "presets-value-list" };
6
6
  var _hoisted_3 = { class: "custom-value" };
7
- var BackgroundPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ var BackgroundPosition_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
8
  __name: "BackgroundPosition",
9
9
  props: {
10
10
  config: {},
@@ -16,7 +16,10 @@ var BackgroundPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
16
16
  disabled: { type: Boolean },
17
17
  size: {},
18
18
  lastValues: {},
19
- isCompare: { type: Boolean }
19
+ isCompare: { type: Boolean },
20
+ text: {},
21
+ labelWidth: {},
22
+ labelPosition: {}
20
23
  },
21
24
  emits: ["change"],
22
25
  setup(__props, { emit: __emit }) {
@@ -7,7 +7,7 @@ var _hoisted_3 = { class: "border-icon-container-row" };
7
7
  var _hoisted_4 = { class: "border-icon-container-row" };
8
8
  var _hoisted_5 = { class: "border-icon-container-row" };
9
9
  var _hoisted_6 = { class: "border-value-container" };
10
- var Border_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
10
+ var Border_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
11
11
  __name: "Border",
12
12
  props: {
13
13
  model: {},
@@ -54,6 +54,13 @@ var Border_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
54
54
  ] }));
55
55
  const selectDirection = (d) => direction.value = d || "";
56
56
  const emit = __emit;
57
+ const props = __props;
58
+ const hasValue = (value) => value !== void 0 && value !== null && value !== "";
59
+ const isConfigured = (d) => [
60
+ "Width",
61
+ "Color",
62
+ "Style"
63
+ ].some((key) => hasValue(props.model?.[`border${d}${key}`]));
57
64
  const change = (value, eventData) => {
58
65
  eventData.changeRecords?.forEach((record) => {
59
66
  emit("change", record.value, { modifyKey: record.propPath });
@@ -63,25 +70,40 @@ var Border_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
63
70
  return (_ctx, _cache) => {
64
71
  return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [
65
72
  createElementVNode("div", _hoisted_3, [createElementVNode("div", {
66
- class: normalizeClass(["border-icon border-icon-top", { active: direction.value === "Top" }]),
73
+ class: normalizeClass(["border-icon border-icon-top", {
74
+ active: direction.value === "Top",
75
+ configured: isConfigured("Top")
76
+ }]),
67
77
  onClick: _cache[0] || (_cache[0] = ($event) => selectDirection("Top"))
68
78
  }, null, 2)]),
69
79
  createElementVNode("div", _hoisted_4, [
70
80
  createElementVNode("div", {
71
- class: normalizeClass(["border-icon border-icon-left", { active: direction.value === "Left" }]),
81
+ class: normalizeClass(["border-icon border-icon-left", {
82
+ active: direction.value === "Left",
83
+ configured: isConfigured("Left")
84
+ }]),
72
85
  onClick: _cache[1] || (_cache[1] = ($event) => selectDirection("Left"))
73
86
  }, null, 2),
74
87
  createElementVNode("div", {
75
- class: normalizeClass(["border-icon", { active: direction.value === "" }]),
88
+ class: normalizeClass(["border-icon center", {
89
+ active: direction.value === "",
90
+ configured: isConfigured("")
91
+ }]),
76
92
  onClick: _cache[2] || (_cache[2] = ($event) => selectDirection())
77
93
  }, null, 2),
78
94
  createElementVNode("div", {
79
- class: normalizeClass(["border-icon border-icon-right", { active: direction.value === "Right" }]),
95
+ class: normalizeClass(["border-icon border-icon-right", {
96
+ active: direction.value === "Right",
97
+ configured: isConfigured("Right")
98
+ }]),
80
99
  onClick: _cache[3] || (_cache[3] = ($event) => selectDirection("Right"))
81
100
  }, null, 2)
82
101
  ]),
83
102
  createElementVNode("div", _hoisted_5, [createElementVNode("div", {
84
- class: normalizeClass(["border-icon border-icon-bottom", { active: direction.value === "Bottom" }]),
103
+ class: normalizeClass(["border-icon border-icon-bottom", {
104
+ active: direction.value === "Bottom",
105
+ configured: isConfigured("Bottom")
106
+ }]),
85
107
  onClick: _cache[4] || (_cache[4] = ($event) => selectDirection("Bottom"))
86
108
  }, null, 2)])
87
109
  ]), createElementVNode("div", _hoisted_6, [createVNode(unref(MContainer), {
@@ -12,7 +12,7 @@ var _hoisted_4 = [
12
12
  "disabled",
13
13
  "onChange"
14
14
  ];
15
- var Box_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
15
+ var Box_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
16
  __name: "Box",
17
17
  props: {
18
18
  disabled: { type: Boolean },
@@ -0,0 +1,31 @@
1
+ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
+ import { createElementBlock, createElementVNode, openBlock } from "vue";
3
+ //#region packages/editor/src/fields/StyleSetter/icons/align-items/Center.vue
4
+ var _sfc_main = {};
5
+ var _hoisted_1 = {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ width: "16",
8
+ height: "16",
9
+ viewBox: "0 0 16 16",
10
+ fill: "currentColor"
11
+ };
12
+ function _sfc_render(_ctx, _cache) {
13
+ return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M12 4C12.5523 4 13 4.44772 13 5V11C13 11.5523 12.5523 12 12 12H4C3.44772 12 3 11.5523 3 11V5C3 4.44772 3.44772 4 4 4H12ZM4.5 5C4.22386 5 4 5.22386 4 5.5V10.5C4 10.7761 4.22386 11 4.5 11H11.5C11.7761 11 12 10.7761 12 10.5V5.5C12 5.22386 11.7761 5 11.5 5H4.5Z" }, null, -1), createElementVNode("rect", {
14
+ x: "13.75",
15
+ y: "7.75",
16
+ width: "0.5",
17
+ height: "11.5",
18
+ rx: "0.25",
19
+ transform: "rotate(90 13.75 7.75)",
20
+ stroke: "black",
21
+ "stroke-opacity": "0.3",
22
+ style: {
23
+ "stroke": "black",
24
+ "stroke-opacity": "0.3"
25
+ },
26
+ "stroke-width": "0.5"
27
+ }, null, -1)])]);
28
+ }
29
+ var Center_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
30
+ //#endregion
31
+ export { Center_default as default };