@tmagic/editor 1.8.0-beta.12 → 1.8.0-beta.14

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 (133) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +15 -3
  2. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +1 -1
  3. package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +13 -121
  4. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +11 -4
  5. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +7 -2
  6. package/dist/es/components/ViewForm.js +5 -0
  7. package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +58 -0
  8. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +4 -1
  9. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +4 -1
  10. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +80 -55
  11. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -1
  12. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  13. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +10 -7
  14. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +4 -1
  15. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +4 -1
  16. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +4 -1
  17. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +4 -1
  18. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +4 -1
  19. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  20. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +8 -2
  21. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +99 -64
  22. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +4 -1
  23. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  24. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +5 -4
  25. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +4 -1
  26. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +1 -1
  27. package/dist/es/fields/StyleSetter/icons/align-items/Center.js +31 -0
  28. package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +31 -0
  29. package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +31 -0
  30. package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +50 -0
  31. package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +50 -0
  32. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +6 -6
  33. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +5 -2
  34. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +28 -5
  35. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +31 -5
  36. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +10 -2
  37. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +10 -2
  38. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +10 -2
  39. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +10 -2
  40. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +16 -2
  41. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +18 -2
  42. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +18 -2
  43. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +36 -2
  44. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +32 -2
  45. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +7 -6
  46. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +6 -3
  47. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +47 -25
  48. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +4 -1
  49. package/dist/es/hooks/use-compare-form.js +119 -0
  50. package/dist/es/icons/DatasourceIcon.js +17 -0
  51. package/dist/es/index.js +6 -4
  52. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +14 -10
  53. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +10 -1
  54. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +3 -3
  55. package/dist/es/plugin.js +2 -1
  56. package/dist/es/services/codeBlock.js +1 -1
  57. package/dist/es/services/editor.js +54 -13
  58. package/dist/es/services/history.js +1 -1
  59. package/dist/es/services/props.js +1 -1
  60. package/dist/es/services/storage.js +1 -1
  61. package/dist/es/services/ui.js +5 -3
  62. package/dist/es/style.css +303 -40
  63. package/dist/es/utils/config.js +4 -1
  64. package/dist/es/utils/const.js +2 -2
  65. package/dist/es/utils/props.js +69 -30
  66. package/dist/style.css +303 -40
  67. package/dist/themes/magic-admin.css +3000 -0
  68. package/dist/tmagic-editor.umd.cjs +1748 -1079
  69. package/package.json +7 -7
  70. package/src/Editor.vue +22 -1
  71. package/src/components/CompareForm.vue +15 -202
  72. package/src/components/ContentMenu.vue +10 -2
  73. package/src/components/FloatingBox.vue +8 -2
  74. package/src/components/ViewForm.vue +55 -0
  75. package/src/editorProps.ts +4 -0
  76. package/src/fields/CodeSelect.vue +54 -43
  77. package/src/fields/CodeSelectCol.vue +1 -0
  78. package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
  79. package/src/fields/DisplayConds.vue +4 -1
  80. package/src/fields/EventSelect.vue +56 -32
  81. package/src/fields/StyleSetter/Index.vue +1 -4
  82. package/src/fields/StyleSetter/components/Border.vue +1 -1
  83. package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
  84. package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
  85. package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
  86. package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
  87. package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
  88. package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
  89. package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
  90. package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
  91. package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
  92. package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
  93. package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
  94. package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
  95. package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
  96. package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
  97. package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
  98. package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
  99. package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
  100. package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
  101. package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
  102. package/src/fields/StyleSetter/pro/Background.vue +7 -2
  103. package/src/fields/StyleSetter/pro/Font.vue +3 -3
  104. package/src/fields/StyleSetter/pro/Layout.vue +98 -28
  105. package/src/hooks/index.ts +1 -0
  106. package/src/hooks/use-compare-form.ts +187 -0
  107. package/src/icons/DatasourceIcon.vue +7 -0
  108. package/src/index.ts +4 -0
  109. package/src/layouts/Framework.vue +7 -1
  110. package/src/layouts/props-panel/PropsPanel.vue +19 -1
  111. package/src/layouts/sidebar/Sidebar.vue +3 -3
  112. package/src/plugin.ts +3 -2
  113. package/src/services/editor.ts +54 -11
  114. package/src/services/ui.ts +20 -5
  115. package/src/theme/code-block.scss +37 -0
  116. package/src/theme/common/var.scss +1 -1
  117. package/src/theme/component-list-panel.scss +2 -2
  118. package/src/theme/data-source-field.scss +4 -0
  119. package/src/theme/display-conds.scss +11 -0
  120. package/src/theme/event.scss +58 -4
  121. package/src/theme/framework.scss +4 -1
  122. package/src/theme/history-list-panel.scss +9 -9
  123. package/src/theme/nav-menu.scss +5 -1
  124. package/src/theme/props-panel.scss +2 -1
  125. package/src/theme/style-setter/border.scss +14 -5
  126. package/src/theme/theme.scss +1 -0
  127. package/src/theme/themes/magic-admin/index.scss +214 -0
  128. package/src/theme/ui-select.scss +1 -1
  129. package/src/type.ts +79 -6
  130. package/src/utils/config.ts +9 -1
  131. package/src/utils/const.ts +3 -2
  132. package/src/utils/props.ts +51 -9
  133. package/types/index.d.ts +314 -203
@@ -145,6 +145,7 @@ var advancedTabConfig = {
145
145
  name: NODE_DISABLE_CODE_BLOCK_KEY,
146
146
  text: "禁用代码块",
147
147
  type: "switch",
148
+ labelPosition: "left",
148
149
  defaultValue: false,
149
150
  extra: "开启后,配置的代码块将不会被执行"
150
151
  },
@@ -152,15 +153,16 @@ var advancedTabConfig = {
152
153
  name: NODE_DISABLE_DATA_SOURCE_KEY,
153
154
  text: "禁用数据源",
154
155
  type: "switch",
156
+ labelPosition: "left",
155
157
  defaultValue: false,
156
158
  extra: "开启后,组件内配置的数据源相关配置将不会被编译,显隐条件将失效"
157
159
  },
158
160
  {
159
161
  name: "created",
160
- text: "created",
162
+ text: "Created",
161
163
  labelPosition: "top",
162
164
  type: "code-select",
163
- extra: "组件初始化时执行",
165
+ titleExtra: "组件初始化时执行",
164
166
  rules: [{
165
167
  typeMatch: true,
166
168
  trigger: "change"
@@ -171,10 +173,10 @@ var advancedTabConfig = {
171
173
  },
172
174
  {
173
175
  name: "mounted",
174
- text: "mounted",
176
+ text: "Mounted",
175
177
  labelPosition: "top",
176
178
  type: "code-select",
177
- extra: "组件挂载到dom时执行",
179
+ titleExtra: "组件挂载到dom时执行",
178
180
  rules: [{
179
181
  typeMatch: true,
180
182
  trigger: "change"
@@ -185,8 +187,8 @@ var advancedTabConfig = {
185
187
  },
186
188
  {
187
189
  name: "display",
188
- text: "display",
189
- extra: "控制组件是否渲染,关系的代码块返回值为false时不渲染",
190
+ text: "Display",
191
+ titleExtra: "控制组件是否渲染,关系的代码块返回值为false时不渲染",
190
192
  labelPosition: "top",
191
193
  type: "code-select",
192
194
  rules: [{
@@ -202,26 +204,36 @@ var advancedTabConfig = {
202
204
  var displayTabConfig = {
203
205
  title: "显示条件",
204
206
  display: (_state, { model }) => model.type !== "page",
205
- items: [{
206
- name: NODE_CONDS_RESULT_KEY,
207
- type: "select",
208
- text: "条件成立时",
209
- defaultValue: false,
210
- options: [{
211
- text: "显示",
212
- value: false
213
- }, {
214
- text: "隐藏",
215
- value: true
216
- }],
217
- extra: (_state, { model }) => `条件成立时${model[NODE_CONDS_RESULT_KEY] ? "隐藏" : "显示"},不成立时${model[NODE_CONDS_RESULT_KEY] ? "显示" : "隐藏"};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`
218
- }, {
219
- type: "display-conds",
220
- name: NODE_CONDS_KEY,
221
- titlePrefix: "条件组",
222
- defaultValue: [],
223
- rules: [{ typeMatch: true }]
224
- }]
207
+ items: [
208
+ {
209
+ name: NODE_CONDS_RESULT_KEY,
210
+ type: "select",
211
+ text: "条件成立时",
212
+ defaultValue: false,
213
+ options: [{
214
+ text: "显示",
215
+ value: false
216
+ }, {
217
+ text: "隐藏",
218
+ value: true
219
+ }],
220
+ extra: (_state, { model }) => `条件成立时${model[NODE_CONDS_RESULT_KEY] ? "隐藏" : "显示"},不成立时${model[NODE_CONDS_RESULT_KEY] ? "显示" : "隐藏"};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`
221
+ },
222
+ {
223
+ text: "条件组配置",
224
+ static: true,
225
+ className: "display-conds-title"
226
+ },
227
+ {
228
+ type: "display-conds",
229
+ name: NODE_CONDS_KEY,
230
+ titlePrefix: "条件组",
231
+ fixed: "right",
232
+ operateColWidth: 112,
233
+ defaultValue: [],
234
+ rules: [{ typeMatch: true }]
235
+ }
236
+ ]
225
237
  };
226
238
  /**
227
239
  * 统一为组件属性表单加上事件、高级、样式配置
@@ -239,10 +251,11 @@ var fillConfig = (config = [], { labelWidth = "80px", disabledDataSource = false
239
251
  name: "id",
240
252
  text: "ID",
241
253
  type: "text",
242
- disabled: true,
254
+ static: true,
243
255
  append: {
244
- type: "button",
245
- text: "复制",
256
+ type: "icon",
257
+ text: "https://vip.image.video.qpic.cn/vupload/20260615/36cf7e1781493669935.svg",
258
+ extra: "复制",
246
259
  handler: (vm, { model }) => {
247
260
  navigator.clipboard.writeText(`${model.id}`).then(() => {
248
261
  tMagicMessage.success("已复制");
@@ -261,6 +274,7 @@ var fillConfig = (config = [], { labelWidth = "80px", disabledDataSource = false
261
274
  const tabConfig = {
262
275
  type: "tab",
263
276
  labelWidth,
277
+ className: "magic-right-panel-tabs-top",
264
278
  items: [
265
279
  {
266
280
  title: "属性",
@@ -276,6 +290,31 @@ var fillConfig = (config = [], { labelWidth = "80px", disabledDataSource = false
276
290
  return [tabConfig];
277
291
  };
278
292
  /**
293
+ * 将属性表单配置中「样式」tab-pane 的 `display` 强制置为 `true`。
294
+ *
295
+ * `propsService.getPropsConfig` 返回的样式 tab 默认带有
296
+ * `display: ({ services }) => !(services?.uiService?.get('showStylePanel') ?? true)`,
297
+ * 在对比 / 只读展示场景(CompareForm / ViewForm)下并不需要跟随 uiService 状态隐藏,
298
+ * 这里统一放开,保证样式 tab 始终可见。
299
+ *
300
+ * @param formConfig 组件属性表单配置
301
+ * @returns 处理后的表单配置(不修改入参,返回浅拷贝)
302
+ */
303
+ var removeStyleDisplayConfig = (formConfig) => formConfig.map((item) => {
304
+ if (!("type" in item)) return item;
305
+ if (item?.type !== "tab" || !Array.isArray(item.items)) return item;
306
+ return {
307
+ ...item,
308
+ items: item.items.map((tabPane) => {
309
+ if (tabPane?.title !== "样式" || !Array.isArray(tabPane.items)) return tabPane;
310
+ return {
311
+ ...tabPane,
312
+ display: true
313
+ };
314
+ })
315
+ };
316
+ });
317
+ /**
279
318
  * 对一份「组件属性表单配置 + 值」做一次独立的校验,**不复用也不污染页面上正在展示的表单**。
280
319
  *
281
320
  * 内部基于 `@tmagic/form` 的 `validateForm` 另建一个独立的 MForm 实例完成校验,并统一处理
@@ -319,4 +358,4 @@ var validatePropsForm = ({ config, values, appContext = null, services, stage, e
319
358
  })
320
359
  });
321
360
  //#endregion
322
- export { advancedTabConfig, arrayOptions, booleanOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, getCondOpOptionsByFieldType, numberOptions, styleTabConfig, validatePropsForm };
361
+ export { advancedTabConfig, arrayOptions, booleanOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, getCondOpOptionsByFieldType, numberOptions, removeStyleDisplayConfig, styleTabConfig, validatePropsForm };