@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,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
  });
@@ -224,12 +200,14 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
224
200
  }));
225
201
  const actionsConfig = computed(() => defineFormItem({
226
202
  type: "panel",
203
+ labelPosition: "left",
227
204
  items: [{
228
205
  type: "group-list",
229
206
  name: "actions",
230
207
  expandAll: true,
231
208
  enableToggleMode: false,
232
209
  titlePrefix: "动作",
210
+ labelPosition: "left",
233
211
  items: [
234
212
  actionTypeConfig.value,
235
213
  targetCompConfig.value,
@@ -311,73 +289,93 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
311
289
  "last-values",
312
290
  "is-compare",
313
291
  "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,
292
+ ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
293
+ 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), {
294
+ key: 0,
295
+ class: "create-button",
296
+ text: "",
297
+ type: "primary",
298
+ icon: unref(Plus),
328
299
  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
300
+ disabled: __props.disabled,
301
+ onClick: _cache[0] || (_cache[0] = ($event) => addEvent())
336
302
  }, {
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,
303
+ default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode("添加事件", -1)])]),
304
+ _: 1
305
+ }, 8, [
306
+ "icon",
307
+ "size",
308
+ "disabled"
309
+ ])) : createCommentVNode("v-if", true)]),
310
+ (openBlock(true), createElementBlock(Fragment, null, renderList(displayList.value, (entry) => {
311
+ return openBlock(), createBlock(unref(MPanel), {
312
+ key: entry.index,
343
313
  disabled: __props.disabled,
344
314
  size: __props.size,
345
315
  prop: `${__props.prop}.${entry.index}`,
346
- onChange: eventNameChangeHandler
347
- }, null, 8, [
316
+ config: actionsConfig.value,
317
+ model: entry.cardItem,
318
+ "last-values": entry.lastCardItem,
319
+ "is-compare": isCompareMode.value,
320
+ "hide-expand": false,
321
+ "label-width": __props.config.labelWidth || "100px",
322
+ onChange: onChangeHandler
323
+ }, {
324
+ header: withCtx(() => [createElementVNode("div", _hoisted_4, [createVNode(unref(MContainer), {
325
+ class: "fullWidth",
326
+ config: eventNameConfig.value,
327
+ model: entry.cardItem,
328
+ "last-values": entry.lastCardItem,
329
+ "is-compare": isCompareMode.value,
330
+ disabled: __props.disabled,
331
+ size: __props.size,
332
+ prop: `${__props.prop}.${entry.index}`,
333
+ onChange: eventNameChangeHandler
334
+ }, null, 8, [
335
+ "config",
336
+ "model",
337
+ "last-values",
338
+ "is-compare",
339
+ "disabled",
340
+ "size",
341
+ "prop"
342
+ ]), !isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
343
+ key: 0,
344
+ class: "event-item-delete-button",
345
+ link: "",
346
+ icon: unref(Delete),
347
+ disabled: __props.disabled,
348
+ size: __props.size,
349
+ onClick: ($event) => removeEvent(Number(entry.index))
350
+ }, null, 8, [
351
+ "icon",
352
+ "disabled",
353
+ "size",
354
+ "onClick"
355
+ ])) : createCommentVNode("v-if", true)])]),
356
+ _: 2
357
+ }, 1032, [
358
+ "disabled",
359
+ "size",
360
+ "prop",
348
361
  "config",
349
362
  "model",
350
363
  "last-values",
351
364
  "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))]))]);
365
+ "label-width"
366
+ ]);
367
+ }), 128)),
368
+ !isCompareMode.value ? (openBlock(), createBlock(unref(TMagicButton), {
369
+ key: 0,
370
+ class: "create-button fullWidth",
371
+ icon: unref(Plus),
372
+ disabled: __props.disabled,
373
+ onClick: _cache[1] || (_cache[1] = ($event) => addEvent())
374
+ }, {
375
+ default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("添加事件", -1)])]),
376
+ _: 1
377
+ }, 8, ["icon", "disabled"])) : createCommentVNode("v-if", true)
378
+ ]))]);
381
379
  };
382
380
  }
383
381
  });
@@ -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 };