@tmagic/editor 1.8.0-beta.22 → 1.8.0-beta.24

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 (47) hide show
  1. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +2 -1
  2. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +2 -1
  3. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -4
  4. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +3 -1
  5. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +5 -4
  6. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +12 -7
  7. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +2 -1
  8. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +6 -4
  9. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +4 -1
  10. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +8 -5
  11. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +4 -2
  12. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +2 -2
  13. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +4 -2
  14. package/dist/es/hooks/use-compare-form.js +1 -2
  15. package/dist/es/index.js +2 -2
  16. package/dist/es/initService.js +2 -1
  17. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +2 -1
  18. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +2 -1
  19. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +2 -1
  20. package/dist/es/plugin.js +9 -1
  21. package/dist/es/services/codeBlock.js +4 -2
  22. package/dist/es/services/editor.js +43 -37
  23. package/dist/es/services/props.js +1 -1
  24. package/dist/es/utils/dep/collect-worker-client.js +67 -27
  25. package/dist/es/utils/dep/worker.js +1 -1
  26. package/dist/es/utils/event.js +1 -1
  27. package/dist/es/utils/props.js +1 -29
  28. package/dist/es/utils/type-match-rules.js +7 -27
  29. package/dist/tmagic-editor.umd.cjs +663 -629
  30. package/package.json +13 -13
  31. package/src/fields/CodeSelectCol.vue +4 -2
  32. package/src/fields/DataSourceFieldSelect/Index.vue +5 -3
  33. package/src/fields/DataSourceFields.vue +6 -0
  34. package/src/fields/DataSourceMethodSelect.vue +4 -1
  35. package/src/fields/DataSourceMethods.vue +11 -2
  36. package/src/fields/DataSourceMocks.vue +10 -1
  37. package/src/fields/EventSelect.vue +3 -3
  38. package/src/fields/KeyValue.vue +4 -3
  39. package/src/hooks/use-compare-form.ts +1 -4
  40. package/src/plugin.ts +9 -1
  41. package/src/services/editor.ts +53 -85
  42. package/src/type.ts +23 -0
  43. package/src/utils/dep/collect-worker-client.ts +97 -31
  44. package/src/utils/event.ts +2 -2
  45. package/src/utils/props.ts +0 -32
  46. package/src/utils/type-match-rules.ts +4 -30
  47. package/types/index.d.ts +121 -210
@@ -119,7 +119,8 @@ var CodeBlockEditor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
119
119
  const closedHandler = () => {
120
120
  changedValue.value = void 0;
121
121
  };
122
- const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
122
+ const parentFloating = inject("parentFloating", ref(null));
123
+ const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, parentFloating);
123
124
  const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
124
125
  watch(boxVisible, (visible) => {
125
126
  nextTick(() => {
@@ -7,7 +7,8 @@ var Resizer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
7
7
  emits: ["change"],
8
8
  setup(__props, { emit: __emit }) {
9
9
  const emit = __emit;
10
- const { isDragging } = useGetSo(useTemplateRef("target"), emit);
10
+ const targetEl = useTemplateRef("target");
11
+ const { isDragging } = useGetSo(targetEl, emit);
11
12
  return (_ctx, _cache) => {
12
13
  return openBlock(), createElementBlock("span", {
13
14
  ref: "target",
@@ -2,7 +2,7 @@ import { SideItemKey } from "../type.js";
2
2
  import { useServices } from "../hooks/use-services.js";
3
3
  import Icon_default from "../components/Icon.js";
4
4
  import CodeParams_default from "../components/CodeParams.js";
5
- import { MContainer, MSelect, createValues, filterFunction } from "@tmagic/form";
5
+ import { FORM_SILENT_MODE_KEY, MContainer, MSelect, createValues, filterFunction } from "@tmagic/form";
6
6
  import { TMagicButton } from "@tmagic/design";
7
7
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, unref, watch, withCtx } from "vue";
8
8
  import { isEmpty, map } from "lodash-es";
@@ -34,6 +34,7 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
34
34
  emits: ["change"],
35
35
  setup(__props, { emit: __emit }) {
36
36
  const mForm = inject("mForm");
37
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
37
38
  const { codeBlockService, uiService } = useServices();
38
39
  const eventBus = inject("eventBus");
39
40
  const emit = __emit;
@@ -130,7 +131,7 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
130
131
  "last-values",
131
132
  "size",
132
133
  "prop"
133
- ])) : (openBlock(), createBlock(unref(MSelect), {
134
+ ])) : !unref(silentMode) ? (openBlock(), createBlock(unref(MSelect), {
134
135
  key: 1,
135
136
  class: "select",
136
137
  config: selectConfig,
@@ -144,9 +145,9 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
144
145
  "model",
145
146
  "size",
146
147
  "prop"
147
- ])),
148
+ ])) : createCommentVNode("v-if", true),
148
149
  createCommentVNode(" 查看/编辑按钮:对比模式为只读,不展示 "),
149
- !isCompareMode.value && __props.model[__props.name] && hasCodeBlockSidePanel.value ? (openBlock(), createBlock(unref(TMagicButton), {
150
+ !isCompareMode.value && !unref(silentMode) && __props.model[__props.name] && hasCodeBlockSidePanel.value ? (openBlock(), createBlock(unref(TMagicButton), {
150
151
  key: 2,
151
152
  class: "m-fields-select-action-button",
152
153
  size: __props.size,
@@ -30,7 +30,9 @@ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
30
30
  const optionComponent = getDesignConfig("components")?.option;
31
31
  const options = computed(() => {
32
32
  const [id, ...fieldNames] = [...props.config.parentFields || [], ...props.model.field];
33
- return getCondOpOptionsByFieldType(getFieldType(dataSourceService.getDataSourceById(id), fieldNames));
33
+ const ds = dataSourceService.getDataSourceById(id);
34
+ const type = getFieldType(ds, fieldNames);
35
+ return getCondOpOptionsByFieldType(type);
34
36
  });
35
37
  const fieldChangeHandler = (v) => {
36
38
  emit("change", v);
@@ -2,7 +2,7 @@ import { useServices } from "../../hooks/use-services.js";
2
2
  import Icon_default from "../../components/Icon.js";
3
3
  import DatasourceIcon_default from "../../icons/DatasourceIcon.js";
4
4
  import FieldSelect_default from "./FieldSelect.js";
5
- import { getFormField } from "@tmagic/form";
5
+ import { FORM_SILENT_MODE_KEY, getFormField } from "@tmagic/form";
6
6
  import { TMagicButton, TMagicTooltip, tMagicMessage } from "@tmagic/design";
7
7
  import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, removeDataSourceFieldPrefix } from "@tmagic/utils";
8
8
  import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, normalizeClass, openBlock, ref, resolveComponent, resolveDynamicComponent, unref, watch, withCtx } from "vue";
@@ -40,6 +40,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
40
40
  }, { immediate: true });
41
41
  const { dataSourceService, propsService } = useServices();
42
42
  const mForm = inject("mForm");
43
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
43
44
  const dataSources = computed(() => dataSourceService.get("dataSources") || []);
44
45
  const disabledDataSource = computed(() => propsService.getDisabledDataSource());
45
46
  const type = computed(() => {
@@ -103,7 +104,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
103
104
  showDataSourceFieldSelect.value = !showDataSourceFieldSelect.value;
104
105
  };
105
106
  return (_ctx, _cache) => {
106
- return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value ? (openBlock(), createBlock(FieldSelect_default, {
107
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value && !unref(silentMode) ? (openBlock(), createBlock(FieldSelect_default, {
107
108
  key: 0,
108
109
  "model-value": __props.model[__props.name],
109
110
  disabled: __props.disabled,
@@ -121,7 +122,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
121
122
  "checkStrictly",
122
123
  "dataSourceFieldType",
123
124
  "dataSourceId"
124
- ])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
125
+ ])) : !unref(silentMode) ? (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
125
126
  key: 1,
126
127
  config: __props.config.fieldConfig,
127
128
  model: __props.model,
@@ -143,7 +144,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
143
144
  "init-values",
144
145
  "values",
145
146
  "prop"
146
- ])), __props.config.fieldConfig && !disabledDataSource.value && !unref(mForm)?.isCompare ? (openBlock(), createBlock(unref(TMagicTooltip), {
147
+ ])) : createCommentVNode("v-if", true), !unref(silentMode) && __props.config.fieldConfig && !disabledDataSource.value && !unref(mForm)?.isCompare ? (openBlock(), createBlock(unref(TMagicTooltip), {
147
148
  key: 2,
148
149
  disabled: showDataSourceFieldSelect.value,
149
150
  content: "选择数据源"
@@ -3,11 +3,11 @@ import { useEditorContentHeight } from "../hooks/use-editor-content-height.js";
3
3
  import { useNextFloatBoxPosition } from "../hooks/use-next-float-box-position.js";
4
4
  import { error } from "../utils/logger.js";
5
5
  import FloatingBox_default from "../components/FloatingBox.js";
6
- import { MFormBox } from "@tmagic/form";
6
+ import { FORM_SILENT_MODE_KEY, MFormBox } from "@tmagic/form";
7
7
  import { MagicTable } from "@tmagic/table";
8
8
  import { TMagicButton, tMagicMessage, tMagicMessageBox } from "@tmagic/design";
9
9
  import { getDefaultValueFromFields } from "@tmagic/utils";
10
- import { computed, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, onMounted, openBlock, provide, ref, unref, useModel, withCtx } from "vue";
10
+ import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, onMounted, openBlock, provide, ref, unref, useModel, withCtx } from "vue";
11
11
  //#region packages/editor/src/fields/DataSourceFields.vue?vue&type=script&setup=true&lang.ts
12
12
  var _hoisted_1 = { class: "m-editor-data-source-fields" };
13
13
  var _hoisted_2 = {
@@ -58,6 +58,7 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
58
58
  const emit = __emit;
59
59
  const { uiService } = useServices();
60
60
  const mForm = inject("mForm");
61
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
61
62
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
62
63
  const isCompare = computed(() => Boolean(mForm?.isCompare));
63
64
  const fieldValues = ref({});
@@ -315,7 +316,8 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
315
316
  const addDialogVisible = useModel(__props, "visible");
316
317
  const addFromJsonDialogVisible = useModel(__props, "visible1");
317
318
  const { height: editorHeight } = useEditorContentHeight();
318
- const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
319
+ const parentFloating = inject("parentFloating", ref(null));
320
+ const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, parentFloating);
319
321
  const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
320
322
  /**
321
323
  * 由 DataSourceConfigPanel 注入:打开数据源详情后需要直接打开的字段路径(字段名数组)。
@@ -324,6 +326,7 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
324
326
  const editingFieldPath = inject("editingDataSourceFieldPath", computed(() => []));
325
327
  provide("editingDataSourceFieldPath", computed(() => editingFieldPath.value.slice(1)));
326
328
  onMounted(() => {
329
+ if (silentMode) return;
327
330
  const path = editingFieldPath.value;
328
331
  if (!path.length) return;
329
332
  const fields = props.model[props.name] || [];
@@ -356,7 +359,8 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
356
359
  default: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode("添加", -1)])]),
357
360
  _: 1
358
361
  }, 8, ["disabled"])])) : createCommentVNode("v-if", true),
359
- createVNode(FloatingBox_default, {
362
+ !unref(silentMode) ? (openBlock(), createBlock(FloatingBox_default, {
363
+ key: 1,
360
364
  "body-style": { padding: "0 16px" },
361
365
  visible: addDialogVisible.value,
362
366
  "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => addDialogVisible.value = $event),
@@ -390,8 +394,9 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
390
394
  "title",
391
395
  "framework-width",
392
396
  "position"
393
- ]),
394
- createVNode(FloatingBox_default, {
397
+ ])) : createCommentVNode("v-if", true),
398
+ !unref(silentMode) ? (openBlock(), createBlock(FloatingBox_default, {
399
+ key: 2,
395
400
  "body-style": { padding: "0 16px" },
396
401
  visible: addFromJsonDialogVisible.value,
397
402
  "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => addFromJsonDialogVisible.value = $event),
@@ -416,7 +421,7 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
416
421
  "height",
417
422
  "framework-width",
418
423
  "position"
419
- ])
424
+ ])) : createCommentVNode("v-if", true)
420
425
  ]);
421
426
  };
422
427
  }
@@ -128,7 +128,8 @@ var DataSourceInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
128
128
  */
129
129
  const fieldQuerySearch = (queryString, leftAngleIndex, dotIndex, cb) => {
130
130
  let result = [];
131
- const keys = getKeysArray(queryString.substring(leftAngleIndex + 1, dotIndex));
131
+ const dsKey = queryString.substring(leftAngleIndex + 1, dotIndex);
132
+ const keys = getKeysArray(dsKey);
132
133
  const dsId = keys.shift();
133
134
  const ds = dataSources.value.find((ds) => ds.id === dsId);
134
135
  if (!ds) {
@@ -3,7 +3,7 @@ import { useServices } from "../hooks/use-services.js";
3
3
  import { getFieldType } from "../utils/data-source/index.js";
4
4
  import Icon_default from "../components/Icon.js";
5
5
  import CodeParams_default from "../components/CodeParams.js";
6
- import { MCascader, createValues, filterFunction } from "@tmagic/form";
6
+ import { FORM_SILENT_MODE_KEY, MCascader, createValues, filterFunction } from "@tmagic/form";
7
7
  import { TMagicButton, TMagicTooltip } from "@tmagic/design";
8
8
  import { DATA_SOURCE_SET_DATA_METHOD_NAME } from "@tmagic/utils";
9
9
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, unref, withCtx } from "vue";
@@ -36,6 +36,7 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
36
36
  setup(__props, { emit: __emit }) {
37
37
  const { dataSourceService, uiService } = useServices();
38
38
  const mForm = inject("mForm");
39
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
39
40
  const eventBus = inject("eventBus");
40
41
  const emit = __emit;
41
42
  const props = __props;
@@ -134,7 +135,8 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
134
135
  eventBus?.emit("edit-data-source-method", id, methodName);
135
136
  };
136
137
  return (_ctx, _cache) => {
137
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(unref(MCascader), {
138
+ return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [!unref(silentMode) ? (openBlock(), createBlock(unref(MCascader), {
139
+ key: 0,
138
140
  class: "select",
139
141
  config: cascaderConfig.value,
140
142
  model: __props.model,
@@ -150,8 +152,8 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
150
152
  "size",
151
153
  "disabled",
152
154
  "prop"
153
- ]), __props.model[__props.name] && isCustomMethod.value && dataSourceSidePanel.value && !isCompare.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
154
- key: 0,
155
+ ])) : createCommentVNode("v-if", true), !unref(silentMode) && __props.model[__props.name] && isCustomMethod.value && dataSourceSidePanel.value && !isCompare.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
156
+ key: 1,
155
157
  content: notEditable.value ? "查看" : "编辑"
156
158
  }, {
157
159
  default: withCtx(() => [createVNode(unref(TMagicButton), {
@@ -1,4 +1,5 @@
1
1
  import CodeBlockEditor_default from "../components/CodeBlockEditor.js";
2
+ import { FORM_SILENT_MODE_KEY } from "@tmagic/form";
2
3
  import { MagicTable } from "@tmagic/table";
3
4
  import { TMagicButton, tMagicMessageBox } from "@tmagic/design";
4
5
  import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, nextTick, onMounted, openBlock, ref, unref, useTemplateRef, withCtx } from "vue";
@@ -35,6 +36,7 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
35
36
  const props = __props;
36
37
  const emit = __emit;
37
38
  const mForm = inject("mForm");
39
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
38
40
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
39
41
  const isCompare = computed(() => Boolean(mForm?.isCompare));
40
42
  const codeConfig = ref();
@@ -128,6 +130,7 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
128
130
  /** 由 DataSourceConfigPanel 注入:打开数据源详情后需要直接打开的方法名 */
129
131
  const editingMethodName = inject("editingDataSourceMethodName", computed(() => ""));
130
132
  onMounted(() => {
133
+ if (silentMode) return;
131
134
  const methodName = editingMethodName.value;
132
135
  if (!methodName) return;
133
136
  const methods = props.model[props.name] || [];
@@ -152,7 +155,7 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
152
155
  default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode("添加", -1)])]),
153
156
  _: 1
154
157
  }, 8, ["disabled"])])) : createCommentVNode("v-if", true),
155
- codeConfig.value ? (openBlock(), createBlock(CodeBlockEditor_default, {
158
+ codeConfig.value && !unref(silentMode) ? (openBlock(), createBlock(CodeBlockEditor_default, {
156
159
  key: 1,
157
160
  ref: "codeBlockEditor",
158
161
  disabled: __props.disabled,
@@ -3,11 +3,11 @@ import { useEditorContentHeight } from "../hooks/use-editor-content-height.js";
3
3
  import { useNextFloatBoxPosition } from "../hooks/use-next-float-box-position.js";
4
4
  import CodeEditor_default from "../layouts/CodeEditor.js";
5
5
  import FloatingBox_default from "../components/FloatingBox.js";
6
- import { MFormBox } from "@tmagic/form";
6
+ import { FORM_SILENT_MODE_KEY, MFormBox } from "@tmagic/form";
7
7
  import { MagicTable } from "@tmagic/table";
8
8
  import { TMagicButton, TMagicSwitch, tMagicMessageBox } from "@tmagic/design";
9
9
  import { getDefaultValueFromFields } from "@tmagic/utils";
10
- import { computed, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, openBlock, ref, unref, useModel, withCtx } from "vue";
10
+ import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, openBlock, ref, unref, useModel, withCtx } from "vue";
11
11
  //#region packages/editor/src/fields/DataSourceMocks.vue?vue&type=script&setup=true&lang.ts
12
12
  var _hoisted_1 = { class: "m-editor-data-source-fields" };
13
13
  var _hoisted_2 = {
@@ -49,6 +49,7 @@ var DataSourceMocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
49
49
  const emit = __emit;
50
50
  const { uiService } = useServices();
51
51
  const mForm = inject("mForm");
52
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
52
53
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
53
54
  const isCompare = computed(() => Boolean(mForm?.isCompare));
54
55
  const width = useModel(__props, "width");
@@ -215,7 +216,8 @@ var DataSourceMocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
215
216
  };
216
217
  const addDialogVisible = useModel(__props, "visible");
217
218
  const { height: editorHeight } = useEditorContentHeight();
218
- const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
219
+ const parentFloating = inject("parentFloating", ref(null));
220
+ const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, parentFloating);
219
221
  const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
220
222
  return (_ctx, _cache) => {
221
223
  return openBlock(), createElementBlock("div", _hoisted_1, [
@@ -233,7 +235,8 @@ var DataSourceMocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
233
235
  default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("添加", -1)])]),
234
236
  _: 1
235
237
  }, 8, ["disabled"])])) : createCommentVNode("v-if", true),
236
- createVNode(FloatingBox_default, {
238
+ !unref(silentMode) ? (openBlock(), createBlock(FloatingBox_default, {
239
+ key: 1,
237
240
  "body-style": { padding: "0 16px" },
238
241
  visible: addDialogVisible.value,
239
242
  "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => addDialogVisible.value = $event),
@@ -265,7 +268,7 @@ var DataSourceMocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
265
268
  "title",
266
269
  "framework-width",
267
270
  "position"
268
- ])
271
+ ])) : createCommentVNode("v-if", true)
269
272
  ]);
270
273
  };
271
274
  }
@@ -33,7 +33,8 @@ var DisplayConds_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
33
33
  const parentFields = computed(() => filterFunction(mForm, props.config.parentFields, props) || []);
34
34
  const fieldOnChange = (_formState, v, { model }) => {
35
35
  const [id, ...fieldNames] = [...parentFields.value, ...v];
36
- const type = getFieldType(dataSourceService.getDataSourceById(id), fieldNames);
36
+ const ds = dataSourceService.getDataSourceById(id);
37
+ const type = getFieldType(ds, fieldNames);
37
38
  if (type === "number") model.value = Number(model.value);
38
39
  else if (type === "boolean") model.value = Boolean(model.value);
39
40
  else if (type === "null") model.value = null;
@@ -131,7 +132,8 @@ var DisplayConds_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
131
132
  name: "value",
132
133
  type: (_mForm, { model }) => {
133
134
  const [id, ...fieldNames] = [...parentFields.value, ...model.field];
134
- const type = getFieldType(dataSourceService.getDataSourceById(id), fieldNames);
135
+ const ds = dataSourceService.getDataSourceById(id);
136
+ const type = getFieldType(ds, fieldNames);
135
137
  if (type === "number") return "number";
136
138
  if (type === "boolean") return "select";
137
139
  if (type === "null") return "display";
@@ -187,8 +187,8 @@ var EventSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
187
187
  name: "method",
188
188
  label: "动作",
189
189
  type: compActionConfig.value.type,
190
- options: (mForm, { model }) => {
191
- const node = editorService.getNodeById(model.to);
190
+ options: (mForm, { model, formValue }) => {
191
+ const node = editorService.getNodeById(model.to) || formValue;
192
192
  if (!node?.type) return [];
193
193
  return eventsService.getMethod(node.type, {
194
194
  targetId: model.to,
@@ -1,5 +1,6 @@
1
1
  import CodeEditor_default from "../layouts/CodeEditor.js";
2
2
  import CodeIcon_default from "../icons/CodeIcon.js";
3
+ import { FORM_SILENT_MODE_KEY } from "@tmagic/form";
3
4
  import { TMagicButton, TMagicInput } from "@tmagic/design";
4
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, openBlock, ref, renderList, unref, watchEffect, withCtx } from "vue";
5
6
  import { Delete, Plus } from "@element-plus/icons-vue";
@@ -32,6 +33,7 @@ var KeyValue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
32
33
  const props = __props;
33
34
  const emit = __emit;
34
35
  const mForm = inject("mForm");
36
+ const silentMode = inject(FORM_SILENT_MODE_KEY, false);
35
37
  /** 对比模式下隐藏增删/代码切换等操作按钮,仅保留只读展示。 */
36
38
  const isCompare = computed(() => Boolean(mForm?.isCompare));
37
39
  const records = ref([]);
@@ -137,7 +139,7 @@ var KeyValue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
137
139
  "disabled",
138
140
  "icon"
139
141
  ])) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true),
140
- __props.config.advanced && showCode.value ? (openBlock(), createBlock(CodeEditor_default, {
142
+ __props.config.advanced && showCode.value && !unref(silentMode) ? (openBlock(), createBlock(CodeEditor_default, {
141
143
  key: 1,
142
144
  "editor-custom-type": "m-fields-key-value",
143
145
  language: "javascript",
@@ -150,7 +152,7 @@ var KeyValue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
150
152
  parse: true,
151
153
  onSave: save
152
154
  }, null, 8, ["init-values", "options"])) : createCommentVNode("v-if", true),
153
- __props.config.advanced && !isCompare.value ? (openBlock(), createBlock(unref(TMagicButton), {
155
+ __props.config.advanced && !isCompare.value && !unref(silentMode) ? (openBlock(), createBlock(unref(TMagicButton), {
154
156
  key: 2,
155
157
  size: "default",
156
158
  disabled: __props.disabled,
@@ -1,5 +1,4 @@
1
1
  import { getCodeBlockFormConfig } from "../utils/code-block.js";
2
- import { removeStyleDisplayConfig } from "../utils/props.js";
3
2
  import { computed, inject, provide, ref, useTemplateRef, watch, watchEffect } from "vue";
4
3
  //#region packages/editor/src/hooks/use-compare-form.ts
5
4
  /**
@@ -54,7 +53,7 @@ var useCompareForm = (props) => {
54
53
  switch (props.category) {
55
54
  case "node":
56
55
  if (!props.type) return [];
57
- return removeStyleDisplayConfig(await props.services.propsService.getPropsConfig(props.type, { node: props.value }));
56
+ return props.services.propsService.getPropsConfig(props.type, { node: props.value });
58
57
  case "data-source": return props.services.dataSourceService.getFormConfig(props.type || "base").map((item) => "type" in item && item.type === "tab" ? {
59
58
  ...item,
60
59
  active: "fields"
package/dist/es/index.js CHANGED
@@ -2,8 +2,8 @@ import { CODE_DRAFT_STORAGE_KEY, CodeDeleteErrorType, ColumnLayout, DragType, Ke
2
2
  import { useCodeBlockEdit } from "./hooks/use-code-block-edit.js";
3
3
  import { getEditorConfig, isGlobalFlat, setEditorConfig } from "./utils/config.js";
4
4
  import { getCodeBlockFormConfig } from "./utils/code-block.js";
5
- import { advancedTabConfig, arrayOptions, booleanOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, getCondOpOptionsByFieldType, numberOptions, removeStyleDisplayConfig, styleTabConfig } from "./utils/props.js";
6
5
  import { useCompareForm } from "./hooks/use-compare-form.js";
6
+ import { advancedTabConfig, arrayOptions, booleanOptions, displayTabConfig, eqOptions, eventTabConfig, fillConfig, getCondOpOptionsByFieldType, numberOptions, styleTabConfig } from "./utils/props.js";
7
7
  import props_default from "./services/props.js";
8
8
  import { UndoRedo } from "./utils/undo-redo.js";
9
9
  import { createStackStep, describeRevertStep, deserializeStacks, detectStackOpType, detectTargetId, detectTargetName, getLastPushedHistoryIds, getOrCreateStack, markStackSaved, mergeSteps, serializeStacks, undoFloor } from "./utils/history.js";
@@ -92,4 +92,4 @@ export * from "@tmagic/table";
92
92
  export * from "@tmagic/stage";
93
93
  export * from "@tmagic/design";
94
94
  export * from "@tmagic/utils";
95
- export { ALL_COND_OPS, CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CodeBlockEditor_default as CodeBlockEditor, CodeBlockList_default as CodeBlockList, CodeBlockListPanel_default as CodeBlockListPanel, CodeDeleteErrorType, CodeSelect_default as CodeSelect, CodeSelectCol_default as CodeSelectCol, ColumnLayout, CompareForm_default as CompareForm, ComponentListPanel_default as ComponentListPanel, CondOpSelect_default as CondOpSelect, ContentMenu_default as ContentMenu, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, DataSourceAddButton_default as DataSourceAddButton, DataSourceConfigPanel_default as DataSourceConfigPanel, Index_default as DataSourceFieldSelect, DataSourceFields_default as DataSourceFields, DataSourceInput_default as DataSourceInput, DataSourceMethodSelect_default as DataSourceMethodSelect, DataSourceMethods_default as DataSourceMethods, DataSourceMocks_default as DataSourceMocks, DataSourceSelect_default as DataSourceSelect, DepTargetType, DisplayConds_default as DisplayConds, DragType, EVENT_NAME_VALUE_SEPARATOR, EventSelect_default as EventSelect, Fixed2Other, FloatingBox_default as FloatingBox, H_GUIDE_LINE_STORAGE_KEY, HistoryDiffDialog_default as HistoryDiffDialog, Bucket_default as HistoryListBucket, BucketTab_default as HistoryListBucketTab, Icon_default as Icon, IdleTask, KeyBindingCommand, KeyValue_default as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerNodeContent_default as LayerNodeContent, LayerOffset, LayerPanel_default as LayerPanel, Layout, SplitView_default as LayoutContainer, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, PROPS_PANEL_WIDTH_STORAGE_KEY, PageFragmentSelect_default as PageFragmentSelect, FormPanel_default as PropsFormPanel, PropsPanel_default as PropsPanel, RIGHT_COLUMN_WIDTH_STORAGE_KEY, Resizer_default as Resizer, ScrollViewer, SideItemKey, SplitView_default as SplitView, StageCore, Index_default$1 as StyleSetter, CodeEditor_default as TMagicCodeEditor, Editor_default as TMagicEditor, ToolButton_default as ToolButton, Tree_default as Tree, TreeNode_default as TreeNode, UI_SELECT_MODE_EVENT_NAME, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, ViewForm_default as ViewForm, advancedTabConfig, arrayOptions, beforePaste, booleanOptions, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, codeBlock_default as codeBlockService, collectEventNameOptionValues, collectRelatedNodes, componentList_default as componentListService, confirmHistoryAction, createStackStep, dataSource_default as dataSourceService, debug, plugin_default as default, defaultIsExpandable, dep_default as depService, describeRevertStep, describeStepForRevert, deserializeStacks, designPlugin, detectStackOpType, detectTargetId, detectTargetName, displayTabConfig, editorNodeMergeCustomizer, editor_default as editorService, editorTypeMatchRules, eqOptions, error, eventTabConfig, events_default as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getCompActionAllowedValues, getCompActionOptions, getCondOpOptionsByFieldType, getDefaultConfig, getDisplayField, getEditorConfig, getEventNameAllowedValues, getEventNameOptions, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getLastPushedHistoryIds, getNodeIndex, getOrCreateStack, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, history_default as historyService, idbDelete, idbGet, idbSet, info, isEventNameCheckStrictly, isGlobalFlat, isIncludeDataSource, isIndexedDBSupported, keybinding_default as keybindingService, monaco_editor_default as loadMonaco, log, markStackSaved, mergeSteps, moveItemsInContainer, normalizeCompActionValue, numberOptions, openIndexedDB, props_default as propsService, removeStyleDisplayConfig, resolveFieldByPath, resolveSelectedNode, serializeConfig, serializeStacks, setChildrenLayout, setEditorConfig, setLayout, stageOverlay_default as stageOverlayService, storage_default as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, ui_default as uiService, undoFloor, updateStatus, useCodeBlockEdit, useCompareForm, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useHistoryRevert, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, validateDataSourceFieldSelectValue, warn };
95
+ export { ALL_COND_OPS, CODE_DRAFT_STORAGE_KEY, COPY_CODE_STORAGE_KEY, COPY_DS_STORAGE_KEY, COPY_STORAGE_KEY, CodeBlockEditor_default as CodeBlockEditor, CodeBlockList_default as CodeBlockList, CodeBlockListPanel_default as CodeBlockListPanel, CodeDeleteErrorType, CodeSelect_default as CodeSelect, CodeSelectCol_default as CodeSelectCol, ColumnLayout, CompareForm_default as CompareForm, ComponentListPanel_default as ComponentListPanel, CondOpSelect_default as CondOpSelect, ContentMenu_default as ContentMenu, DEFAULT_LEFT_COLUMN_WIDTH, DEFAULT_RIGHT_COLUMN_WIDTH, DataSourceAddButton_default as DataSourceAddButton, DataSourceConfigPanel_default as DataSourceConfigPanel, Index_default as DataSourceFieldSelect, DataSourceFields_default as DataSourceFields, DataSourceInput_default as DataSourceInput, DataSourceMethodSelect_default as DataSourceMethodSelect, DataSourceMethods_default as DataSourceMethods, DataSourceMocks_default as DataSourceMocks, DataSourceSelect_default as DataSourceSelect, DepTargetType, DisplayConds_default as DisplayConds, DragType, EVENT_NAME_VALUE_SEPARATOR, EventSelect_default as EventSelect, Fixed2Other, FloatingBox_default as FloatingBox, H_GUIDE_LINE_STORAGE_KEY, HistoryDiffDialog_default as HistoryDiffDialog, Bucket_default as HistoryListBucket, BucketTab_default as HistoryListBucketTab, Icon_default as Icon, IdleTask, KeyBindingCommand, KeyValue_default as KeyValue, Keys, LEFT_COLUMN_WIDTH_STORAGE_KEY, LayerNodeContent_default as LayerNodeContent, LayerOffset, LayerPanel_default as LayerPanel, Layout, SplitView_default as LayoutContainer, MIN_CENTER_COLUMN_WIDTH, MIN_LEFT_COLUMN_WIDTH, MIN_RIGHT_COLUMN_WIDTH, PROPS_PANEL_WIDTH_STORAGE_KEY, PageFragmentSelect_default as PageFragmentSelect, FormPanel_default as PropsFormPanel, PropsPanel_default as PropsPanel, RIGHT_COLUMN_WIDTH_STORAGE_KEY, Resizer_default as Resizer, ScrollViewer, SideItemKey, SplitView_default as SplitView, StageCore, Index_default$1 as StyleSetter, CodeEditor_default as TMagicCodeEditor, Editor_default as TMagicEditor, ToolButton_default as ToolButton, Tree_default as Tree, TreeNode_default as TreeNode, UI_SELECT_MODE_EVENT_NAME, UndoRedo, V_GUIDE_LINE_STORAGE_KEY, ViewForm_default as ViewForm, advancedTabConfig, arrayOptions, beforePaste, booleanOptions, buildChangeRecords, calcAlignCenterStyle, calcLayerTargetIndex, calcMoveStyle, canUsePluginMethods, change2Fixed, classifyDragSources, codeBlock_default as codeBlockService, collectEventNameOptionValues, collectRelatedNodes, componentList_default as componentListService, confirmHistoryAction, createStackStep, dataSource_default as dataSourceService, debug, plugin_default as default, defaultIsExpandable, dep_default as depService, describeRevertStep, describeStepForRevert, deserializeStacks, designPlugin, detectStackOpType, detectTargetId, detectTargetName, displayTabConfig, editorNodeMergeCustomizer, editor_default as editorService, editorTypeMatchRules, eqOptions, error, eventTabConfig, events_default as eventsService, fillConfig, fixNodeLeft, fixNodePosition, formPlugin, generatePageName, generatePageNameByApp, getAddParent, getCascaderOptionsFromFields, getCodeBlockFormConfig, getCompActionAllowedValues, getCompActionOptions, getCondOpOptionsByFieldType, getDefaultConfig, getDisplayField, getEditorConfig, getEventNameAllowedValues, getEventNameOptions, getFieldType, getFormConfig, getFormValue, getGuideLineFromCache, getInitPositionStyle, getLastPushedHistoryIds, getNodeIndex, getOrCreateStack, getPageFragmentList, getPageList, getPageNameList, getPositionInContainer, getRelativeStyle, history_default as historyService, idbDelete, idbGet, idbSet, info, isEventNameCheckStrictly, isGlobalFlat, isIncludeDataSource, isIndexedDBSupported, keybinding_default as keybindingService, monaco_editor_default as loadMonaco, log, markStackSaved, mergeSteps, moveItemsInContainer, normalizeCompActionValue, numberOptions, openIndexedDB, props_default as propsService, resolveFieldByPath, resolveSelectedNode, serializeConfig, serializeStacks, setChildrenLayout, setEditorConfig, setLayout, stageOverlay_default as stageOverlayService, storage_default as storageService, styleTabConfig, tablePlugin, toggleFixedPosition, ui_default as uiService, undoFloor, updateStatus, useCodeBlockEdit, useCompareForm, useEditorContentHeight, useFilter, useFloatBox, useGetSo, useHistoryRevert, useNextFloatBoxPosition, useNodeStatus, useServices, useStage, useWindowRect, validateDataSourceFieldSelectValue, warn };
@@ -329,7 +329,8 @@ var initServiceEvents = (props, emit, { editorService, codeBlockService, dataSou
329
329
  const root = editorService.get("root");
330
330
  if (!root) return;
331
331
  const handler = async () => {
332
- const nodes = getNodes(Object.keys(root.dataSourceDeps?.[id] || {}), root.items);
332
+ const nodeIds = Object.keys(root.dataSourceDeps?.[id] || {});
333
+ const nodes = getNodes(nodeIds, root.items);
333
334
  if (!(await Promise.all([
334
335
  collectIdle(nodes, false, DepTargetType.DATA_SOURCE),
335
336
  collectIdle(nodes, false, DepTargetType.DATA_SOURCE_COND),
@@ -145,7 +145,8 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
145
145
  watch(() => props.data.status, (status) => {
146
146
  activeTabName.value = status || "0";
147
147
  });
148
- const { dragstartHandler, dragendHandler, floatBoxStates, showingBoxKeys } = useFloatBox(computed(() => sideBarItems.value.map((sideBarItem) => sideBarItem.$key)));
148
+ const slideKeys = computed(() => sideBarItems.value.map((sideBarItem) => sideBarItem.$key));
149
+ const { dragstartHandler, dragendHandler, floatBoxStates, showingBoxKeys } = useFloatBox(slideKeys);
149
150
  watch(() => showingBoxKeys.value.length, () => {
150
151
  if (!showingBoxKeys.value.some((key) => activeTabName.value === sideBarItems.value.find((v) => v.$key === key)?.text) && activeTabName.value) return;
151
152
  const nextSlideBarItem = sideBarItems.value.find((sideBarItem) => !showingBoxKeys.value.includes(sideBarItem.$key));
@@ -38,7 +38,8 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PUR
38
38
  const initValues = ref({});
39
39
  const dataSourceConfig = ref([]);
40
40
  const { height: editorHeight } = useEditorContentHeight();
41
- const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
41
+ const parentFloating = inject("parentFloating", ref(null));
42
+ const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, parentFloating);
42
43
  const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
43
44
  /** 供「方法定义」tab 内的字段消费,用于打开数据源详情后自动打开指定方法 */
44
45
  provide("editingDataSourceMethodName", computed(() => props.editMethodName));
@@ -51,7 +51,8 @@ var LayerPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
51
51
  }
52
52
  };
53
53
  const { handleDragStart, handleDragEnd, handleDragLeave, handleDragOver } = useDrag(services, { canDropIn: (sourceIds, targetId) => props.canDropIn?.(sourceIds, targetId, "layer") });
54
- const { nodeClickHandler, nodeDblclickHandler, nodeContentMenuHandler, highlightHandler: mouseenterHandler } = useClick(services, isCtrlKeyDown, nodeStatusMap, useTemplateRef("menu"));
54
+ const menuRef = useTemplateRef("menu");
55
+ const { nodeClickHandler, nodeDblclickHandler, nodeContentMenuHandler, highlightHandler: mouseenterHandler } = useClick(services, isCtrlKeyDown, nodeStatusMap, menuRef);
55
56
  const dblclickHandler = async (event, data) => {
56
57
  if (props.beforeNodeDblclick) {
57
58
  if (await props.beforeNodeDblclick(event, data) === false) return;
package/dist/es/plugin.js CHANGED
@@ -21,7 +21,7 @@ import Code_default from "./fields/Code.js";
21
21
  import CodeLink_default from "./fields/CodeLink.js";
22
22
  import UISelect_default from "./fields/UISelect.js";
23
23
  /* empty css */
24
- import formPlugin, { registerTypeMatchRules } from "@tmagic/form";
24
+ import formPlugin, { registerSilentLeafFieldTypes, registerTypeMatchRules } from "@tmagic/form";
25
25
  import tablePlugin from "@tmagic/table";
26
26
  import designPlugin from "@tmagic/design";
27
27
  //#region packages/editor/src/plugin.ts
@@ -37,6 +37,14 @@ var plugin_default = { install: (app, opt) => {
37
37
  app.use(formPlugin, opt || {});
38
38
  app.use(tablePlugin);
39
39
  registerTypeMatchRules(editorTypeMatchRules);
40
+ registerSilentLeafFieldTypes([
41
+ "vs-code",
42
+ "ui-select",
43
+ "cond-op-select",
44
+ "page-fragment-select",
45
+ "data-source-select",
46
+ "data-source-input"
47
+ ]);
40
48
  app.config.globalProperties.$TMAGIC_EDITOR = option;
41
49
  setEditorConfig(option);
42
50
  app.component(`${Editor_default.name || "MEditor"}`, Editor_default);
@@ -141,7 +141,8 @@ var CodeBlock = class extends BaseService {
141
141
  * @returns {CodeBlockDSL}
142
142
  */
143
143
  getCodeDslByIds(ids) {
144
- return pick(this.getCodeDsl(), ids);
144
+ const codeDsl = this.getCodeDsl();
145
+ return pick(codeDsl, ids);
145
146
  }
146
147
  /**
147
148
  * 获取编辑状态
@@ -371,7 +372,8 @@ var CodeBlock = class extends BaseService {
371
372
  */
372
373
  async getUniqueId() {
373
374
  const newId = `code_${Math.random().toString(10).substring(2).substring(0, 4)}`;
374
- if (!keys(await this.getCodeDsl()).includes(newId)) return newId;
375
+ const dsl = await this.getCodeDsl();
376
+ if (!keys(dsl).includes(newId)) return newId;
375
377
  return await this.getUniqueId();
376
378
  }
377
379
  /**