@tmagic/editor 1.8.0-beta.11 → 1.8.0-beta.13
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.
- package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +7 -4
- package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +18 -123
- package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +60 -14
- package/dist/es/components/ScrollBar.js +0 -1
- package/dist/es/components/ViewForm.js +5 -0
- package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/es/editorProps.js +6 -1
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +15 -3
- package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +2 -17
- package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +7 -0
- package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +5 -17
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +29 -3
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +50 -88
- package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +2 -5
- package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +48 -23
- package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +28 -22
- package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +28 -22
- package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +28 -22
- package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/es/fields/UISelect.js +0 -1
- package/dist/es/hooks/use-compare-form.js +119 -0
- package/dist/es/index.js +13 -8
- package/dist/es/layouts/CodeEditor.vue_vue_type_script_setup_true_lang.js +21 -6
- package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +9 -6
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/layouts/history-list/composables.js +1 -1
- package/dist/es/layouts/history-list/useHistoryRevert.js +7 -3
- package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +44 -5
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +15 -8
- package/dist/es/layouts/props-panel/use-style-panel.js +3 -2
- package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +15 -31
- package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/sidebar/code-block/useContentMenu.js +18 -3
- package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/layouts/sidebar/data-source/useContentMenu.js +18 -3
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.js +5 -0
- package/dist/es/layouts/sidebar/layer/LayerNodeContent.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/plugin.js +3 -1
- package/dist/es/services/codeBlock.js +1 -1
- package/dist/es/services/editor.js +104 -5
- package/dist/es/services/history.js +1 -1
- package/dist/es/services/props.js +3 -2
- package/dist/es/services/storage.js +2 -2
- package/dist/es/services/ui.js +3 -0
- package/dist/es/style.css +104 -55
- package/dist/es/utils/data-source/index.js +30 -11
- package/dist/es/utils/event.js +123 -0
- package/dist/es/utils/monaco-editor.js +22 -6
- package/dist/es/utils/props.js +119 -8
- package/dist/es/utils/type-match-rules.js +360 -0
- package/dist/style.css +104 -55
- package/dist/tmagic-editor.umd.cjs +16996 -15806
- package/package.json +8 -8
- package/src/Editor.vue +3 -1
- package/src/components/CodeBlockEditor.vue +3 -0
- package/src/components/CompareForm.vue +16 -196
- package/src/components/FloatingBox.vue +77 -8
- package/src/components/ScrollBar.vue +0 -67
- package/src/components/ViewForm.vue +55 -0
- package/src/editorProps.ts +13 -0
- package/src/fields/CodeSelect.vue +4 -1
- package/src/fields/CondOpSelect.vue +2 -24
- package/src/fields/DataSourceFields.vue +5 -0
- package/src/fields/DataSourceInput.vue +7 -25
- package/src/fields/DataSourceMocks.vue +3 -0
- package/src/fields/DisplayConds.vue +14 -0
- package/src/fields/EventSelect.vue +84 -129
- package/src/fields/StyleSetter/Index.vue +2 -8
- package/src/fields/StyleSetter/pro/Background.vue +94 -55
- package/src/fields/StyleSetter/pro/Border.vue +9 -11
- package/src/fields/StyleSetter/pro/Font.vue +66 -64
- package/src/fields/StyleSetter/pro/Layout.vue +140 -138
- package/src/fields/StyleSetter/pro/Position.vue +69 -67
- package/src/fields/StyleSetter/pro/Transform.vue +23 -25
- package/src/fields/UISelect.vue +0 -12
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-compare-form.ts +187 -0
- package/src/index.ts +2 -0
- package/src/layouts/CodeEditor.vue +32 -6
- package/src/layouts/Framework.vue +7 -6
- package/src/layouts/history-list/HistoryDiffDialog.vue +11 -1
- package/src/layouts/history-list/useHistoryRevert.ts +4 -0
- package/src/layouts/props-panel/FormPanel.vue +66 -5
- package/src/layouts/props-panel/PropsPanel.vue +20 -6
- package/src/layouts/props-panel/use-style-panel.ts +4 -3
- package/src/layouts/sidebar/Sidebar.vue +2 -0
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +4 -1
- package/src/layouts/sidebar/code-block/useContentMenu.ts +13 -1
- package/src/layouts/sidebar/data-source/DataSourceConfigPanel.vue +3 -0
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +2 -2
- package/src/layouts/sidebar/data-source/useContentMenu.ts +13 -1
- package/src/layouts/sidebar/layer/LayerNodeContent.vue +57 -0
- package/src/layouts/sidebar/layer/LayerPanel.vue +4 -1
- package/src/layouts/workspace/viewer/NodeListMenu.vue +4 -1
- package/src/plugin.ts +3 -1
- package/src/services/editor.ts +168 -3
- package/src/services/ui.ts +6 -0
- package/src/theme/event.scss +8 -0
- package/src/theme/floating-box.scss +9 -1
- package/src/theme/layer-node-content.scss +14 -0
- package/src/theme/scroll-bar.scss +64 -0
- package/src/theme/theme.scss +3 -0
- package/src/theme/ui-select.scss +9 -0
- package/src/type.ts +105 -2
- package/src/utils/data-source/index.ts +30 -12
- package/src/utils/event.ts +224 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/monaco-editor.ts +27 -0
- package/src/utils/props.ts +189 -2
- package/src/utils/type-match-rules.ts +678 -0
- package/types/index.d.ts +558 -213
|
@@ -4,11 +4,12 @@ import { PROPS_PANEL_WIDTH_STORAGE_KEY } from "../../utils/const.js";
|
|
|
4
4
|
import { useServices } from "../../hooks/use-services.js";
|
|
5
5
|
import Resizer_default from "../../components/Resizer.js";
|
|
6
6
|
import Icon_default from "../../components/Icon.js";
|
|
7
|
+
import { ENABLE_PROPS_FORM_VALIDATE } from "../../editorProps.js";
|
|
7
8
|
import FormPanel_default from "./FormPanel.js";
|
|
8
9
|
import { useStylePanel } from "./use-style-panel.js";
|
|
9
10
|
import { TMagicButton } from "@tmagic/design";
|
|
10
11
|
import { setValueByKeyPath } from "@tmagic/utils";
|
|
11
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
12
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
|
|
12
13
|
import { Close, Sugar } from "@element-plus/icons-vue";
|
|
13
14
|
//#region packages/editor/src/layouts/props-panel/PropsPanel.vue?vue&type=script&setup=true&lang.ts
|
|
14
15
|
var _hoisted_1 = {
|
|
@@ -32,6 +33,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
32
33
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
33
34
|
const emit = __emit;
|
|
34
35
|
const { editorService, uiService, propsService, storageService } = useServices();
|
|
36
|
+
const enablePropsFormValidate = inject(ENABLE_PROPS_FORM_VALIDATE, false);
|
|
35
37
|
const values = ref({});
|
|
36
38
|
const curFormConfig = ref([]);
|
|
37
39
|
const node = computed(() => editorService.get("node"));
|
|
@@ -54,7 +56,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
54
56
|
onBeforeUnmount(() => {
|
|
55
57
|
propsService.off("props-configs-change", init);
|
|
56
58
|
});
|
|
57
|
-
const submit = async (v, eventData) => {
|
|
59
|
+
const submit = async (v, eventData, error, source = "props") => {
|
|
58
60
|
try {
|
|
59
61
|
if (!v.id) v.id = values.value.id;
|
|
60
62
|
const newValue = {
|
|
@@ -72,7 +74,12 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
72
74
|
const historySource = eventData ? "props" : "code";
|
|
73
75
|
editorService.update(newValue, {
|
|
74
76
|
changeRecords: eventData?.changeRecords,
|
|
75
|
-
historySource
|
|
77
|
+
historySource,
|
|
78
|
+
...enablePropsFormValidate && error ? { invalidInfo: {
|
|
79
|
+
id: newValue.id,
|
|
80
|
+
source,
|
|
81
|
+
error: error?.message
|
|
82
|
+
} } : {}
|
|
76
83
|
});
|
|
77
84
|
} catch (e) {
|
|
78
85
|
emit("submit-error", e);
|
|
@@ -123,7 +130,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
123
130
|
values: values.value,
|
|
124
131
|
disabledShowSrc: __props.disabledShowSrc,
|
|
125
132
|
extendState: __props.extendState,
|
|
126
|
-
onSubmit: submit,
|
|
133
|
+
onSubmit: _cache[0] || (_cache[0] = (v, eventData, error) => submit(v, eventData, error, "props")),
|
|
127
134
|
onSubmitError: errorHandler,
|
|
128
135
|
onFormError: errorHandler,
|
|
129
136
|
onMounted: mountedHandler,
|
|
@@ -148,14 +155,14 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
148
155
|
values: values.value,
|
|
149
156
|
disabledShowSrc: __props.disabledShowSrc,
|
|
150
157
|
extendState: __props.extendState,
|
|
151
|
-
onSubmit: submit,
|
|
158
|
+
onSubmit: _cache[2] || (_cache[2] = (v, eventData, error) => submit(v, eventData, error, "style")),
|
|
152
159
|
onSubmitError: errorHandler,
|
|
153
160
|
onFormError: errorHandler
|
|
154
161
|
}, {
|
|
155
|
-
"props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[
|
|
162
|
+
"props-form-panel-header": withCtx(() => [createElementVNode("div", _hoisted_2, [_cache[4] || (_cache[4] = createElementVNode("span", null, "样式", -1)), createElementVNode("div", null, [createVNode(unref(TMagicButton), {
|
|
156
163
|
link: "",
|
|
157
164
|
size: "small",
|
|
158
|
-
onClick: _cache[
|
|
165
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(toggleStylePanel)(false))
|
|
159
166
|
}, {
|
|
160
167
|
default: withCtx(() => [createVNode(Icon_default, { icon: unref(Close) }, null, 8, ["icon"])]),
|
|
161
168
|
_: 1
|
|
@@ -170,7 +177,7 @@ var PropsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
170
177
|
key: 2,
|
|
171
178
|
class: "m-editor-props-panel-style-icon",
|
|
172
179
|
circle: "",
|
|
173
|
-
onClick: _cache[
|
|
180
|
+
onClick: _cache[3] || (_cache[3] = ($event) => unref(toggleStylePanel)(true))
|
|
174
181
|
}, {
|
|
175
182
|
default: withCtx(() => [createVNode(Icon_default, { icon: unref(Sugar) }, null, 8, ["icon"])]),
|
|
176
183
|
_: 1
|
|
@@ -23,8 +23,9 @@ var useStylePanel = ({ uiService, storageService }, propsPanelWidth) => {
|
|
|
23
23
|
columnWidth.center += propsPanelWidth.value;
|
|
24
24
|
}
|
|
25
25
|
if (columnWidth.center < 0) {
|
|
26
|
-
|
|
27
|
-
columnWidth.
|
|
26
|
+
const minCenterColumnWidth = uiService.get("minCenterColumnWidth");
|
|
27
|
+
columnWidth.right = columnWidth.right + columnWidth.center - minCenterColumnWidth;
|
|
28
|
+
columnWidth.center = minCenterColumnWidth;
|
|
28
29
|
propsPanelWidth.value = columnWidth.right / 2;
|
|
29
30
|
}
|
|
30
31
|
storageService.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY, columnWidth.right, { protocol: Protocol.NUMBER });
|
|
@@ -61,6 +61,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
61
61
|
const taskLength = computed(() => depService.get("taskLength"));
|
|
62
62
|
const tipsBarVisible = ref(true);
|
|
63
63
|
const columnLeftWidth = computed(() => uiService.get("columnWidth")[ColumnLayout.LEFT]);
|
|
64
|
+
const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
|
|
64
65
|
const { height: editorContentHeight } = useEditorContentHeight();
|
|
65
66
|
const columnLeftHeight = ref(0);
|
|
66
67
|
const unWatchEditorContentHeight = watch(editorContentHeight, (height) => {
|
|
@@ -189,23 +190,17 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
189
190
|
}, config.props || {}, toHandlers(config?.listeners || {})), createSlots({ _: 2 }, [
|
|
190
191
|
config.$key === "component-list" || config.slots?.componentList ? {
|
|
191
192
|
name: "component-list",
|
|
192
|
-
fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", {
|
|
193
|
-
key: 0,
|
|
194
|
-
componentGroupList
|
|
195
|
-
}) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
193
|
+
fn: withCtx(({ componentGroupList }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list", { componentGroupList }, void 0, void 0, 0) : config.slots?.componentList ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentList), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
196
194
|
key: "0"
|
|
197
195
|
} : void 0,
|
|
198
196
|
config.$key === "component-list" || config.slots?.componentListPanelHeader ? {
|
|
199
197
|
name: "component-list-panel-header",
|
|
200
|
-
fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", {
|
|
198
|
+
fn: withCtx(() => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-panel-header", {}, void 0, void 0, 0) : config.slots?.componentListPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
201
199
|
key: "1"
|
|
202
200
|
} : void 0,
|
|
203
201
|
config.$key === "component-list" || config.slots?.componentListItem ? {
|
|
204
202
|
name: "component-list-item",
|
|
205
|
-
fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", {
|
|
206
|
-
key: 0,
|
|
207
|
-
component
|
|
208
|
-
}) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
|
|
203
|
+
fn: withCtx(({ component }) => [config.$key === "component-list" ? renderSlot(_ctx.$slots, "component-list-item", { component }, void 0, void 0, 0) : config.slots?.componentListItem ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.componentListItem), {
|
|
209
204
|
key: 1,
|
|
210
205
|
component
|
|
211
206
|
}, null, 8, ["component"])) : createCommentVNode("v-if", true)]),
|
|
@@ -213,34 +208,30 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
213
208
|
} : void 0,
|
|
214
209
|
config.$key === "layer" || config.slots?.layerPanelHeader ? {
|
|
215
210
|
name: "layer-panel-header",
|
|
216
|
-
fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", {
|
|
211
|
+
fn: withCtx(() => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-panel-header", {}, void 0, void 0, 0) : config.slots?.layerPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
217
212
|
key: "3"
|
|
218
213
|
} : void 0,
|
|
219
214
|
config.$key === "code-block" || config.slots?.codeBlockPanelHeader ? {
|
|
220
215
|
name: "code-block-panel-header",
|
|
221
|
-
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", {
|
|
216
|
+
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-header", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelHeader ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelHeader), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
222
217
|
key: "4"
|
|
223
218
|
} : void 0,
|
|
224
219
|
config.$key === "code-block" || config.slots?.codeBlockPanelTool ? {
|
|
225
220
|
name: "code-block-panel-tool",
|
|
226
221
|
fn: withCtx(({ id, data }) => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-tool", {
|
|
227
|
-
key: 0,
|
|
228
222
|
id,
|
|
229
223
|
data
|
|
230
|
-
}) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
224
|
+
}, void 0, void 0, 0) : config.slots?.codeBlockPanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
231
225
|
key: "5"
|
|
232
226
|
} : void 0,
|
|
233
227
|
config.$key === "code-block" || config.slots?.codeBlockPanelSearch ? {
|
|
234
228
|
name: "code-block-panel-search",
|
|
235
|
-
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", {
|
|
229
|
+
fn: withCtx(() => [config.$key === "code-block" ? renderSlot(_ctx.$slots, "code-block-panel-search", {}, void 0, void 0, 0) : config.slots?.codeBlockPanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.codeBlockPanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
236
230
|
key: "6"
|
|
237
231
|
} : void 0,
|
|
238
232
|
config.$key === "layer" || config.slots?.layerNodeContent ? {
|
|
239
233
|
name: "layer-node-content",
|
|
240
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", {
|
|
241
|
-
key: 0,
|
|
242
|
-
data: nodeData
|
|
243
|
-
}) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
|
|
234
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-content", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeContent ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeContent), {
|
|
244
235
|
key: 1,
|
|
245
236
|
data: nodeData
|
|
246
237
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -248,10 +239,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
248
239
|
} : void 0,
|
|
249
240
|
config.$key === "layer" || config.slots?.layerNodeLabel ? {
|
|
250
241
|
name: "layer-node-label",
|
|
251
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", {
|
|
252
|
-
key: 0,
|
|
253
|
-
data: nodeData
|
|
254
|
-
}) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
242
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-label", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeLabel ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
255
243
|
key: 1,
|
|
256
244
|
data: nodeData
|
|
257
245
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -259,10 +247,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
259
247
|
} : void 0,
|
|
260
248
|
config.$key === "layer" || config.slots?.layerNodeTool ? {
|
|
261
249
|
name: "layer-node-tool",
|
|
262
|
-
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", {
|
|
263
|
-
key: 0,
|
|
264
|
-
data: nodeData
|
|
265
|
-
}) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
250
|
+
fn: withCtx(({ data: nodeData }) => [config.$key === "layer" ? renderSlot(_ctx.$slots, "layer-node-tool", { data: nodeData }, void 0, void 0, 0) : config.slots?.layerNodeTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.layerNodeTool), {
|
|
266
251
|
key: 1,
|
|
267
252
|
data: nodeData
|
|
268
253
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true)]),
|
|
@@ -270,15 +255,12 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
270
255
|
} : void 0,
|
|
271
256
|
config.$key === "data-source" || config.slots?.dataSourcePanelTool ? {
|
|
272
257
|
name: "data-source-panel-tool",
|
|
273
|
-
fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", {
|
|
274
|
-
key: 0,
|
|
275
|
-
data
|
|
276
|
-
}) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
258
|
+
fn: withCtx(({ data }) => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-tool", { data }, void 0, void 0, 0) : config.slots?.DataSourcePanelTool ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.DataSourcePanelTool), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
277
259
|
key: "10"
|
|
278
260
|
} : void 0,
|
|
279
261
|
config.$key === "data-source" || config.slots?.dataSourcePanelSearch ? {
|
|
280
262
|
name: "data-source-panel-search",
|
|
281
|
-
fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", {
|
|
263
|
+
fn: withCtx(() => [config.$key === "data-source" ? renderSlot(_ctx.$slots, "data-source-panel-search", {}, void 0, void 0, 0) : config.slots?.dataSourcePanelSearch ? (openBlock(), createBlock(resolveDynamicComponent(config.slots.dataSourcePanelSearch), { key: 1 })) : createCommentVNode("v-if", true)]),
|
|
282
264
|
key: "11"
|
|
283
265
|
} : void 0
|
|
284
266
|
]), 1040)) : createCommentVNode("v-if", true)], 2)), [[vShow, [
|
|
@@ -301,6 +283,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
301
283
|
"onUpdate:height": _cache[2] || (_cache[2] = ($event) => columnLeftHeight.value = $event),
|
|
302
284
|
width: columnLeftWidth.value,
|
|
303
285
|
title: config.text,
|
|
286
|
+
"framework-width": frameworkWidth.value,
|
|
304
287
|
position: {
|
|
305
288
|
left: unref(floatBoxStates)[config.$key].left,
|
|
306
289
|
top: unref(floatBoxStates)[config.$key].top
|
|
@@ -317,6 +300,7 @@ var Sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
317
300
|
"height",
|
|
318
301
|
"width",
|
|
319
302
|
"title",
|
|
303
|
+
"framework-width",
|
|
320
304
|
"position"
|
|
321
305
|
])) : createCommentVNode("v-if", true)], 64);
|
|
322
306
|
}), 256))]))], 64);
|
package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -37,10 +37,10 @@ var CodeBlockListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
|
|
|
37
37
|
const editDialogCloseHandler = () => {
|
|
38
38
|
if (codeBlockListRef.value) for (const [, status] of codeBlockListRef.value.nodeStatusMap.entries()) status.selected = false;
|
|
39
39
|
};
|
|
40
|
-
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler } = useContentMenu((id) => {
|
|
40
|
+
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler, getTarget } = useContentMenu((id) => {
|
|
41
41
|
codeBlockListRef.value?.deleteCode(id, { historySource: "tree-contextmenu" });
|
|
42
42
|
});
|
|
43
|
-
const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block"));
|
|
43
|
+
const menuData = computed(() => props.customContentMenu(contentMenuData, "code-block", getTarget));
|
|
44
44
|
return (_ctx, _cache) => {
|
|
45
45
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
46
46
|
createVNode(unref(TMagicScrollbar), { class: "m-editor-code-block-list m-editor-layer-panel" }, {
|
|
@@ -6,6 +6,14 @@ var useContentMenu = (deleteCode) => {
|
|
|
6
6
|
const eventBus = inject("eventBus");
|
|
7
7
|
const menuRef = useTemplateRef("menu");
|
|
8
8
|
let selectId = "";
|
|
9
|
+
let selectData = null;
|
|
10
|
+
const getTarget = () => {
|
|
11
|
+
if (!selectId) return null;
|
|
12
|
+
return {
|
|
13
|
+
id: selectId,
|
|
14
|
+
data: selectData ?? void 0
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
const menuData = [
|
|
10
18
|
{
|
|
11
19
|
type: "button",
|
|
@@ -43,17 +51,24 @@ var useContentMenu = (deleteCode) => {
|
|
|
43
51
|
event.preventDefault();
|
|
44
52
|
if (data.type === "code") {
|
|
45
53
|
menuRef.value?.show(event);
|
|
46
|
-
if (data.id)
|
|
47
|
-
|
|
54
|
+
if (data.id) {
|
|
55
|
+
selectId = `${data.id}`;
|
|
56
|
+
selectData = data;
|
|
57
|
+
} else {
|
|
58
|
+
selectId = "";
|
|
59
|
+
selectData = null;
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
62
|
};
|
|
50
63
|
const contentMenuHideHandler = () => {
|
|
51
64
|
selectId = "";
|
|
65
|
+
selectData = null;
|
|
52
66
|
};
|
|
53
67
|
return {
|
|
54
68
|
menuData,
|
|
55
69
|
nodeContentMenuHandler,
|
|
56
|
-
contentMenuHideHandler
|
|
70
|
+
contentMenuHideHandler,
|
|
71
|
+
getTarget
|
|
57
72
|
};
|
|
58
73
|
};
|
|
59
74
|
//#endregion
|
|
@@ -39,6 +39,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PUR
|
|
|
39
39
|
const dataSourceConfig = ref([]);
|
|
40
40
|
const { height: editorHeight } = useEditorContentHeight();
|
|
41
41
|
const { boxPosition, calcBoxPosition } = useNextFloatBoxPosition(uiService, inject("parentFloating", ref(null)));
|
|
42
|
+
const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
|
|
42
43
|
/** 供「方法定义」tab 内的字段消费,用于打开数据源详情后自动打开指定方法 */
|
|
43
44
|
provide("editingDataSourceMethodName", computed(() => props.editMethodName));
|
|
44
45
|
/** 供「数据定义」tab 内的字段消费,用于打开数据源详情后自动打开指定字段 */
|
|
@@ -77,6 +78,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PUR
|
|
|
77
78
|
});
|
|
78
79
|
return (_ctx, _cache) => {
|
|
79
80
|
return openBlock(), createBlock(FloatingBox_default, {
|
|
81
|
+
"body-style": { padding: "0 16px" },
|
|
80
82
|
visible: boxVisible.value,
|
|
81
83
|
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => boxVisible.value = $event),
|
|
82
84
|
width: width.value,
|
|
@@ -84,6 +86,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PUR
|
|
|
84
86
|
height: unref(editorHeight),
|
|
85
87
|
"onUpdate:height": _cache[2] || (_cache[2] = ($event) => isRef(editorHeight) ? editorHeight.value = $event : null),
|
|
86
88
|
title: __props.title,
|
|
89
|
+
"framework-width": frameworkWidth.value,
|
|
87
90
|
position: unref(boxPosition)
|
|
88
91
|
}, {
|
|
89
92
|
body: withCtx(() => [createVNode(unref(MFormBox), {
|
|
@@ -107,6 +110,7 @@ var DataSourceConfigPanel_vue_vue_type_script_setup_true_lang_default = /*@__PUR
|
|
|
107
110
|
"width",
|
|
108
111
|
"height",
|
|
109
112
|
"title",
|
|
113
|
+
"framework-width",
|
|
110
114
|
"position"
|
|
111
115
|
]);
|
|
112
116
|
};
|
|
@@ -85,8 +85,8 @@ var DataSourceListPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
|
|
|
85
85
|
eventBus?.on("remove-data-source", (id) => {
|
|
86
86
|
removeHandler(id);
|
|
87
87
|
});
|
|
88
|
-
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler } = useContentMenu();
|
|
89
|
-
const menuData = computed(() => props.customContentMenu(contentMenuData, "data-source"));
|
|
88
|
+
const { nodeContentMenuHandler, menuData: contentMenuData, contentMenuHideHandler, getTarget } = useContentMenu();
|
|
89
|
+
const menuData = computed(() => props.customContentMenu(contentMenuData, "data-source", getTarget));
|
|
90
90
|
return (_ctx, _cache) => {
|
|
91
91
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
92
92
|
createVNode(unref(TMagicScrollbar), { class: "data-source-list-panel m-editor-layer-panel" }, {
|
|
@@ -6,6 +6,14 @@ var useContentMenu = () => {
|
|
|
6
6
|
const eventBus = inject("eventBus");
|
|
7
7
|
const menuRef = useTemplateRef("menu");
|
|
8
8
|
let selectId = "";
|
|
9
|
+
let selectData = null;
|
|
10
|
+
const getTarget = () => {
|
|
11
|
+
if (!selectId) return null;
|
|
12
|
+
return {
|
|
13
|
+
id: selectId,
|
|
14
|
+
data: selectData ?? void 0
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
const menuData = [
|
|
10
18
|
{
|
|
11
19
|
type: "button",
|
|
@@ -42,17 +50,24 @@ var useContentMenu = () => {
|
|
|
42
50
|
event.preventDefault();
|
|
43
51
|
if (data.type === "ds") {
|
|
44
52
|
menuRef.value?.show(event);
|
|
45
|
-
if (data.id)
|
|
46
|
-
|
|
53
|
+
if (data.id) {
|
|
54
|
+
selectId = `${data.id}`;
|
|
55
|
+
selectData = data;
|
|
56
|
+
} else {
|
|
57
|
+
selectId = "";
|
|
58
|
+
selectData = null;
|
|
59
|
+
}
|
|
47
60
|
}
|
|
48
61
|
};
|
|
49
62
|
const contentMenuHideHandler = () => {
|
|
50
63
|
selectId = "";
|
|
64
|
+
selectData = null;
|
|
51
65
|
};
|
|
52
66
|
return {
|
|
53
67
|
menuData,
|
|
54
68
|
nodeContentMenuHandler,
|
|
55
|
-
contentMenuHideHandler
|
|
69
|
+
contentMenuHideHandler,
|
|
70
|
+
getTarget
|
|
56
71
|
};
|
|
57
72
|
};
|
|
58
73
|
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import LayerNodeContent_vue_vue_type_script_setup_true_lang_default from "./LayerNodeContent.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/layouts/sidebar/layer/LayerNodeContent.vue
|
|
3
|
+
var LayerNodeContent_default = LayerNodeContent_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { LayerNodeContent_default as default };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useServices } from "../../../hooks/use-services.js";
|
|
2
|
+
import Icon_default from "../../../components/Icon.js";
|
|
3
|
+
import { TMagicTooltip, stripValidateSuggestion } from "@tmagic/design";
|
|
4
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, withCtx } from "vue";
|
|
5
|
+
import { WarningFilled } from "@element-plus/icons-vue";
|
|
6
|
+
//#region packages/editor/src/layouts/sidebar/layer/LayerNodeContent.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var _hoisted_1 = { class: "m-editor-layer-node-label" };
|
|
8
|
+
var _hoisted_2 = ["innerHTML"];
|
|
9
|
+
var LayerNodeContent_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
|
+
name: "MEditorLayerNodeContent",
|
|
11
|
+
__name: "LayerNodeContent",
|
|
12
|
+
props: { data: {} },
|
|
13
|
+
setup(__props) {
|
|
14
|
+
const props = __props;
|
|
15
|
+
const { editorService } = useServices();
|
|
16
|
+
const label = computed(() => `${props.data.name} (${props.data.id})`);
|
|
17
|
+
/** 读取集中存储的校验错误状态,建立响应式依赖 */
|
|
18
|
+
const invalidInfo = computed(() => editorService.get("invalidNodeIds").get(props.data.id));
|
|
19
|
+
const hasError = computed(() => Boolean(invalidInfo.value?.props || invalidInfo.value?.style));
|
|
20
|
+
/**
|
|
21
|
+
* 去掉单条校验文案中的「修改建议」部分。
|
|
22
|
+
*
|
|
23
|
+
* 错误文案可能是多条错误以 `<br>` 拼接的 HTML,每条本身形如 `主文案\n\n建议`。
|
|
24
|
+
* 组件树 tooltip 仅展示错误描述,不展示修改建议(建议仅在错误汇总面板展示),
|
|
25
|
+
* 故先按 `<br>` 拆分,每段用 `stripValidateSuggestion` 截断建议后再拼回。
|
|
26
|
+
*/
|
|
27
|
+
const stripSuggestion = (text) => String(text ?? "").split(/<br\s*\/?>/i).map((segment) => stripValidateSuggestion(segment)).join("<br>");
|
|
28
|
+
/** 合并属性表单与样式表单的错误文案(去掉建议,本身可能仍是含 <br> 的 HTML) */
|
|
29
|
+
const errorMessage = computed(() => [stripSuggestion(invalidInfo.value?.props), stripSuggestion(invalidInfo.value?.style)].filter(Boolean).join("<br>"));
|
|
30
|
+
return (_ctx, _cache) => {
|
|
31
|
+
return openBlock(), createElementBlock("span", { class: normalizeClass(["m-editor-layer-node-content", { "is-invalid": hasError.value }]) }, [createElementVNode("span", _hoisted_1, toDisplayString(label.value), 1), hasError.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
32
|
+
key: 0,
|
|
33
|
+
placement: "top"
|
|
34
|
+
}, {
|
|
35
|
+
content: withCtx(() => [createElementVNode("span", { innerHTML: errorMessage.value }, null, 8, _hoisted_2)]),
|
|
36
|
+
default: withCtx(() => [createVNode(Icon_default, {
|
|
37
|
+
class: "m-editor-layer-node-error-icon",
|
|
38
|
+
icon: unref(WarningFilled)
|
|
39
|
+
}, null, 8, ["icon"])]),
|
|
40
|
+
_: 1
|
|
41
|
+
})) : createCommentVNode("v-if", true)], 2);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
//#endregion
|
|
46
|
+
export { LayerNodeContent_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -3,6 +3,7 @@ import { useFilter } from "../../../hooks/use-filter.js";
|
|
|
3
3
|
import SearchInput_default from "../../../components/SearchInput.js";
|
|
4
4
|
import Tree_default from "../../../components/Tree.js";
|
|
5
5
|
import LayerMenu_default from "./LayerMenu.js";
|
|
6
|
+
import LayerNodeContent_default from "./LayerNodeContent.js";
|
|
6
7
|
import LayerNodeTool_default from "./LayerNodeTool.js";
|
|
7
8
|
import { useClick } from "./use-click.js";
|
|
8
9
|
import { useDrag } from "./use-drag.js";
|
|
@@ -83,7 +84,7 @@ var LayerPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
83
84
|
}, {
|
|
84
85
|
"tree-node-content": withCtx(({ data: nodeData }) => [renderSlot(_ctx.$slots, "layer-node-content", { data: nodeData })]),
|
|
85
86
|
"tree-node-tool": withCtx(({ data: nodeData }) => [renderSlot(_ctx.$slots, "layer-node-tool", { data: nodeData }, () => [createVNode(LayerNodeTool_default, { data: nodeData }, null, 8, ["data"])])]),
|
|
86
|
-
"tree-node-label": withCtx(({ data: nodeData }) => [renderSlot(_ctx.$slots, "layer-node-label", { data: nodeData })]),
|
|
87
|
+
"tree-node-label": withCtx(({ data: nodeData }) => [renderSlot(_ctx.$slots, "layer-node-label", { data: nodeData }, () => [createVNode(LayerNodeContent_default, { data: nodeData }, null, 8, ["data"])])]),
|
|
87
88
|
_: 3
|
|
88
89
|
}, 8, [
|
|
89
90
|
"data",
|
package/dist/es/layouts/workspace/viewer/NodeListMenu.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -11,7 +11,8 @@ var NodeListMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
11
11
|
__name: "NodeListMenu",
|
|
12
12
|
setup(__props) {
|
|
13
13
|
const services = useServices();
|
|
14
|
-
const { editorService } = services;
|
|
14
|
+
const { editorService, uiService } = services;
|
|
15
|
+
const frameworkWidth = computed(() => uiService.get("frameworkRect")?.width || 0);
|
|
15
16
|
const visible = ref(false);
|
|
16
17
|
const buttonVisible = ref(false);
|
|
17
18
|
const buttonEl = useTemplateRef("button");
|
|
@@ -71,6 +72,7 @@ var NodeListMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
71
72
|
visible: visible.value,
|
|
72
73
|
"onUpdate:visible": _cache[1] || (_cache[1] = ($event) => visible.value = $event),
|
|
73
74
|
title: "当前位置下的组件",
|
|
75
|
+
"framework-width": frameworkWidth.value,
|
|
74
76
|
position: menuPosition.value
|
|
75
77
|
}, {
|
|
76
78
|
body: withCtx(() => [createVNode(Tree_default, {
|
|
@@ -80,7 +82,11 @@ var NodeListMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
80
82
|
onNodeClick: clickHandler
|
|
81
83
|
}, null, 8, ["data", "node-status-map"])]),
|
|
82
84
|
_: 1
|
|
83
|
-
}, 8, [
|
|
85
|
+
}, 8, [
|
|
86
|
+
"visible",
|
|
87
|
+
"framework-width",
|
|
88
|
+
"position"
|
|
89
|
+
])) : createCommentVNode("v-if", true)], 64);
|
|
84
90
|
};
|
|
85
91
|
}
|
|
86
92
|
});
|
package/dist/es/plugin.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { setEditorConfig } from "./utils/config.js";
|
|
2
|
+
import { editorTypeMatchRules } from "./utils/type-match-rules.js";
|
|
2
3
|
import CodeEditor_default from "./layouts/CodeEditor.js";
|
|
3
4
|
import Editor_default from "./Editor.js";
|
|
4
5
|
import CodeSelect_default from "./fields/CodeSelect.js";
|
|
@@ -20,7 +21,7 @@ import Code_default from "./fields/Code.js";
|
|
|
20
21
|
import CodeLink_default from "./fields/CodeLink.js";
|
|
21
22
|
import UISelect_default from "./fields/UISelect.js";
|
|
22
23
|
/* empty css */
|
|
23
|
-
import formPlugin from "@tmagic/form";
|
|
24
|
+
import formPlugin, { registerTypeMatchRules } from "@tmagic/form";
|
|
24
25
|
import tablePlugin from "@tmagic/table";
|
|
25
26
|
import designPlugin from "@tmagic/design";
|
|
26
27
|
//#region packages/editor/src/plugin.ts
|
|
@@ -34,6 +35,7 @@ var plugin_default = { install: (app, opt) => {
|
|
|
34
35
|
app.use(designPlugin, opt || {});
|
|
35
36
|
app.use(formPlugin, opt || {});
|
|
36
37
|
app.use(tablePlugin);
|
|
38
|
+
registerTypeMatchRules(editorTypeMatchRules);
|
|
37
39
|
app.config.globalProperties.$TMAGIC_EDITOR = option;
|
|
38
40
|
setEditorConfig(option);
|
|
39
41
|
app.component(`${Editor_default.name || "MEditor"}`, Editor_default);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CODE_DRAFT_STORAGE_KEY } from "../type.js";
|
|
2
|
-
import BaseService from "./BaseService.js";
|
|
3
2
|
import { getEditorConfig } from "../utils/config.js";
|
|
3
|
+
import BaseService from "./BaseService.js";
|
|
4
4
|
import { createStackStep, describeRevertStep, getLastPushedHistoryIds } from "../utils/history.js";
|
|
5
5
|
import history_default from "./history.js";
|
|
6
6
|
import storage_default, { Protocol } from "./storage.js";
|