mce 0.17.6 → 0.17.8
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.
|
@@ -30,7 +30,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
30
30
|
readonly lockAspectRatioStrategy?: "all" | "diagonal" | undefined;
|
|
31
31
|
readonly handleStyle?: "8-points" | "4-points" | undefined;
|
|
32
32
|
readonly handleShape?: "rect" | "circle" | undefined;
|
|
33
|
-
readonly handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
33
|
+
readonly handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[] | undefined;
|
|
34
34
|
readonly scale?: [number, number] | undefined;
|
|
35
35
|
readonly offset?: [number, number] | undefined;
|
|
36
36
|
readonly initialSize?: boolean | undefined;
|
|
@@ -69,7 +69,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
69
69
|
lockAspectRatioStrategy?: "all" | "diagonal";
|
|
70
70
|
handleStyle?: "8-points" | "4-points";
|
|
71
71
|
handleShape?: "rect" | "circle";
|
|
72
|
-
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
72
|
+
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
73
73
|
scale?: [number, number];
|
|
74
74
|
offset?: [number, number];
|
|
75
75
|
initialSize?: boolean;
|
|
@@ -85,7 +85,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
85
85
|
"onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
87
|
start: (event?: MouseEvent, index?: number) => boolean;
|
|
88
|
-
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
88
|
+
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined, ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined>;
|
|
89
89
|
transforming: import("vue").Ref<boolean, boolean>;
|
|
90
90
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
91
91
|
move: (context: Mce.TransformContext) => any;
|
|
@@ -95,8 +95,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
95
95
|
}, string, {
|
|
96
96
|
offset: [number, number];
|
|
97
97
|
scale: [number, number];
|
|
98
|
-
ui: boolean;
|
|
99
98
|
threshold: number;
|
|
99
|
+
ui: boolean;
|
|
100
100
|
movable: boolean;
|
|
101
101
|
rotatable: boolean;
|
|
102
102
|
resizable: boolean;
|
|
@@ -104,7 +104,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
104
104
|
resizeStrategy: "free" | "lockAspectRatio";
|
|
105
105
|
lockAspectRatioStrategy: "all" | "diagonal";
|
|
106
106
|
handleShape: "rect" | "circle";
|
|
107
|
-
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
107
|
+
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
108
108
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
|
|
109
109
|
beforeCreate?: (() => void) | (() => void)[];
|
|
110
110
|
created?: (() => void) | (() => void)[];
|
|
@@ -128,8 +128,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
128
128
|
} & Readonly<{
|
|
129
129
|
offset: [number, number];
|
|
130
130
|
scale: [number, number];
|
|
131
|
-
ui: boolean;
|
|
132
131
|
threshold: number;
|
|
132
|
+
ui: boolean;
|
|
133
133
|
movable: boolean;
|
|
134
134
|
rotatable: boolean;
|
|
135
135
|
resizable: boolean;
|
|
@@ -137,7 +137,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
137
137
|
resizeStrategy: "free" | "lockAspectRatio";
|
|
138
138
|
lockAspectRatioStrategy: "all" | "diagonal";
|
|
139
139
|
handleShape: "rect" | "circle";
|
|
140
|
-
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
140
|
+
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
141
141
|
}> & Omit<Readonly<{
|
|
142
142
|
ui?: boolean;
|
|
143
143
|
tag?: string | any;
|
|
@@ -152,7 +152,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
152
152
|
lockAspectRatioStrategy?: "all" | "diagonal";
|
|
153
153
|
handleStyle?: "8-points" | "4-points";
|
|
154
154
|
handleShape?: "rect" | "circle";
|
|
155
|
-
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
155
|
+
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
156
156
|
scale?: [number, number];
|
|
157
157
|
offset?: [number, number];
|
|
158
158
|
initialSize?: boolean;
|
|
@@ -166,9 +166,9 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
166
166
|
onStart?: ((context: Mce.TransformContext) => any) | undefined;
|
|
167
167
|
onEnd?: ((context: Mce.TransformContext) => any) | undefined;
|
|
168
168
|
"onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
|
|
169
|
-
}>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "
|
|
169
|
+
}>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "tag" | "resizeStrategy" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
|
|
170
170
|
start: (event?: MouseEvent, index?: number) => boolean;
|
|
171
|
-
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
171
|
+
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined, ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined>;
|
|
172
172
|
transforming: import("vue").Ref<boolean, boolean>;
|
|
173
173
|
}> & {} & import("vue").ComponentCustomProperties & {} & {
|
|
174
174
|
$slots: {
|
|
@@ -215,7 +215,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
215
215
|
readonly lockAspectRatioStrategy?: "all" | "diagonal" | undefined;
|
|
216
216
|
readonly handleStyle?: "8-points" | "4-points" | undefined;
|
|
217
217
|
readonly handleShape?: "rect" | "circle" | undefined;
|
|
218
|
-
readonly handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
218
|
+
readonly handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[] | undefined;
|
|
219
219
|
readonly scale?: [number, number] | undefined;
|
|
220
220
|
readonly offset?: [number, number] | undefined;
|
|
221
221
|
readonly initialSize?: boolean | undefined;
|
|
@@ -254,7 +254,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
254
254
|
lockAspectRatioStrategy?: "all" | "diagonal";
|
|
255
255
|
handleStyle?: "8-points" | "4-points";
|
|
256
256
|
handleShape?: "rect" | "circle";
|
|
257
|
-
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
257
|
+
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
258
258
|
scale?: [number, number];
|
|
259
259
|
offset?: [number, number];
|
|
260
260
|
initialSize?: boolean;
|
|
@@ -270,7 +270,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
270
270
|
"onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
|
|
271
271
|
}>, {
|
|
272
272
|
start: (event?: MouseEvent, index?: number) => boolean;
|
|
273
|
-
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
273
|
+
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined, ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined>;
|
|
274
274
|
transforming: import("vue").Ref<boolean, boolean>;
|
|
275
275
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
276
276
|
move: (context: Mce.TransformContext) => any;
|
|
@@ -280,8 +280,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
280
280
|
}, string, {
|
|
281
281
|
offset: [number, number];
|
|
282
282
|
scale: [number, number];
|
|
283
|
-
ui: boolean;
|
|
284
283
|
threshold: number;
|
|
284
|
+
ui: boolean;
|
|
285
285
|
movable: boolean;
|
|
286
286
|
rotatable: boolean;
|
|
287
287
|
resizable: boolean;
|
|
@@ -289,7 +289,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
289
289
|
resizeStrategy: "free" | "lockAspectRatio";
|
|
290
290
|
lockAspectRatioStrategy: "all" | "diagonal";
|
|
291
291
|
handleShape: "rect" | "circle";
|
|
292
|
-
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
292
|
+
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
293
293
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
|
|
294
294
|
beforeCreate?: (() => void) | (() => void)[];
|
|
295
295
|
created?: (() => void) | (() => void)[];
|
|
@@ -313,8 +313,8 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
313
313
|
} & Readonly<{
|
|
314
314
|
offset: [number, number];
|
|
315
315
|
scale: [number, number];
|
|
316
|
-
ui: boolean;
|
|
317
316
|
threshold: number;
|
|
317
|
+
ui: boolean;
|
|
318
318
|
movable: boolean;
|
|
319
319
|
rotatable: boolean;
|
|
320
320
|
resizable: boolean;
|
|
@@ -322,7 +322,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
322
322
|
resizeStrategy: "free" | "lockAspectRatio";
|
|
323
323
|
lockAspectRatioStrategy: "all" | "diagonal";
|
|
324
324
|
handleShape: "rect" | "circle";
|
|
325
|
-
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
325
|
+
handles: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
326
326
|
}> & Omit<Readonly<{
|
|
327
327
|
ui?: boolean;
|
|
328
328
|
tag?: string | any;
|
|
@@ -337,7 +337,7 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
337
337
|
lockAspectRatioStrategy?: "all" | "diagonal";
|
|
338
338
|
handleStyle?: "8-points" | "4-points";
|
|
339
339
|
handleShape?: "rect" | "circle";
|
|
340
|
-
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
340
|
+
handles?: ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
|
|
341
341
|
scale?: [number, number];
|
|
342
342
|
offset?: [number, number];
|
|
343
343
|
initialSize?: boolean;
|
|
@@ -351,9 +351,9 @@ declare const __VLS_base: import("vue").DefineComponent<{}, {
|
|
|
351
351
|
onStart?: ((context: Mce.TransformContext) => any) | undefined;
|
|
352
352
|
onEnd?: ((context: Mce.TransformContext) => any) | undefined;
|
|
353
353
|
"onUpdate:modelValue"?: ((value: Partial<Mce.TransformValue> | undefined) => any) | undefined;
|
|
354
|
-
}>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "
|
|
354
|
+
}>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "threshold" | "ui" | "movable" | "rotatable" | "resizable" | "tag" | "resizeStrategy" | "lockAspectRatioStrategy" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
|
|
355
355
|
start: (event?: MouseEvent, index?: number) => boolean;
|
|
356
|
-
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-
|
|
356
|
+
activeHandle: import("vue").Ref<("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined, ("move" | "resize-b" | "resize-r" | "resize-l" | "resize-t" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl") | undefined>;
|
|
357
357
|
transforming: import("vue").Ref<boolean, boolean>;
|
|
358
358
|
}> & {} & import("vue").ComponentCustomProperties & {} & {
|
|
359
359
|
$slots: {
|
|
@@ -71,8 +71,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
71
71
|
}>, {
|
|
72
72
|
offset: [number, number];
|
|
73
73
|
scale: [number, number];
|
|
74
|
-
ui: boolean;
|
|
75
74
|
threshold: number;
|
|
75
|
+
ui: boolean;
|
|
76
76
|
movable: boolean;
|
|
77
77
|
rotatable: boolean;
|
|
78
78
|
resizable: boolean;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { IN_BROWSER, Element2D, Node as Node$1, Camera2D, Timeline, DrawboardEffect, Engine, Aabb2D, assets, Vector2 as Vector2$1, clamp, TimelineNode, Video2D, Transform2D, Obb2D, render, Lottie2D, customNodes, Animation, IN_MAC_OS, DEG_TO_RAD } from "modern-canvas";
|
|
2
|
-
import { reactive,
|
|
2
|
+
import { reactive, warn, shallowRef, computed, watch, markRaw, isReactive, ref, onBeforeMount, onScopeDispose, onMounted, defineComponent, createVNode, useAttrs, openBlock, createBlock, resolveDynamicComponent, unref, normalizeClass, mergeProps, createElementVNode, inject, toValue, getCurrentInstance, provide, useId, onBeforeUnmount, readonly, toRef, onDeactivated, onActivated, useModel, useTemplateRef, withDirectives, createElementBlock, normalizeStyle as normalizeStyle$1, withModifiers, toDisplayString, vModelText, createCommentVNode, vShow, mergeModels, nextTick, Fragment, renderList, renderSlot, resolveComponent, withCtx, Teleport, createTextVNode, createSlots, normalizeProps, guardReactiveProps, h, isRef, effectScope, useSlots } from "vue";
|
|
3
3
|
import { useFileDialog, useResizeObserver as useResizeObserver$1, useEventListener, isClient, onClickOutside, useDebounceFn, useImage, useLocalStorage } from "@vueuse/core";
|
|
4
|
-
import { getObjectValueByPath, setObjectValueByPath,
|
|
5
|
-
import { saveAs } from "file-saver";
|
|
4
|
+
import { normalizeTextContent, getObjectValueByPath, setObjectValueByPath, Observable, idGenerator, property, isCRLF, textContentToString, normalizeCRLF, isEqualObject } from "modern-idoc";
|
|
6
5
|
import { measureText, Text } from "modern-text";
|
|
7
6
|
import { Fonts } from "modern-font";
|
|
8
7
|
import { throttle, merge, cloneDeep, isEqual } from "lodash-es";
|
|
@@ -48,80 +47,6 @@ const _0_command = defineMixin((editor) => {
|
|
|
48
47
|
exec
|
|
49
48
|
});
|
|
50
49
|
});
|
|
51
|
-
const _0_config = defineMixin((editor) => {
|
|
52
|
-
const {
|
|
53
|
-
config
|
|
54
|
-
} = editor;
|
|
55
|
-
const configDeclarations = /* @__PURE__ */ new Map();
|
|
56
|
-
function getConfig(path, defaultValue) {
|
|
57
|
-
let value = getObjectValueByPath(config.value, path);
|
|
58
|
-
const declaration = configDeclarations.get(path);
|
|
59
|
-
if (declaration?.getter) {
|
|
60
|
-
value = declaration.getter(value);
|
|
61
|
-
}
|
|
62
|
-
return value ?? defaultValue;
|
|
63
|
-
}
|
|
64
|
-
function setConfig(path, value) {
|
|
65
|
-
const declaration = configDeclarations.get(path);
|
|
66
|
-
if (declaration?.setter) {
|
|
67
|
-
value = declaration.setter(value);
|
|
68
|
-
}
|
|
69
|
-
setObjectValueByPath(config.value, path, value);
|
|
70
|
-
}
|
|
71
|
-
function getConfigRef(path) {
|
|
72
|
-
return computed({
|
|
73
|
-
get: () => getConfig(path),
|
|
74
|
-
set: (value) => setConfig(path, value)
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
function registerConfig(path, declaration = {}) {
|
|
78
|
-
configDeclarations.set(path, declaration);
|
|
79
|
-
const ref2 = getConfigRef(path);
|
|
80
|
-
if (ref2.value === void 0) {
|
|
81
|
-
if (typeof declaration.default === "function") {
|
|
82
|
-
ref2.value = declaration.default();
|
|
83
|
-
} else {
|
|
84
|
-
ref2.value = declaration.default;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return ref2;
|
|
88
|
-
}
|
|
89
|
-
function importConfig() {
|
|
90
|
-
return new Promise((resolve) => {
|
|
91
|
-
const { onChange, open } = useFileDialog({
|
|
92
|
-
accept: ".json",
|
|
93
|
-
reset: true,
|
|
94
|
-
multiple: false
|
|
95
|
-
});
|
|
96
|
-
onChange(async (files) => {
|
|
97
|
-
const file = files?.[0];
|
|
98
|
-
if (file) {
|
|
99
|
-
config.value = JSON.parse(await file.text());
|
|
100
|
-
resolve(config.value);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
open();
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function exportConfig() {
|
|
107
|
-
return new Blob([JSON.stringify(config.value)], { type: "application/json" });
|
|
108
|
-
}
|
|
109
|
-
function saveAsConfig(filename = "settings.json") {
|
|
110
|
-
saveAs(
|
|
111
|
-
exportConfig(),
|
|
112
|
-
filename
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
Object.assign(editor, {
|
|
116
|
-
getConfig,
|
|
117
|
-
setConfig,
|
|
118
|
-
getConfigRef,
|
|
119
|
-
registerConfig,
|
|
120
|
-
importConfig,
|
|
121
|
-
exportConfig,
|
|
122
|
-
saveAsConfig
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
50
|
function boundingBoxToStyle(box) {
|
|
126
51
|
const style = {
|
|
127
52
|
left: `${box.left}px`,
|
|
@@ -417,6 +342,91 @@ function propsFactory(props, source) {
|
|
|
417
342
|
}, {});
|
|
418
343
|
};
|
|
419
344
|
}
|
|
345
|
+
function saveAs(blobOrString, filename) {
|
|
346
|
+
const blob = typeof blobOrString === "string" ? new Blob([blobOrString], { type: "application/octet-stream" }) : blobOrString;
|
|
347
|
+
const url = URL.createObjectURL(blob);
|
|
348
|
+
const a = document.createElement("a");
|
|
349
|
+
a.href = url;
|
|
350
|
+
a.download = filename;
|
|
351
|
+
document.body.appendChild(a);
|
|
352
|
+
a.click();
|
|
353
|
+
document.body.removeChild(a);
|
|
354
|
+
URL.revokeObjectURL(url);
|
|
355
|
+
}
|
|
356
|
+
const _0_config = defineMixin((editor) => {
|
|
357
|
+
const {
|
|
358
|
+
config
|
|
359
|
+
} = editor;
|
|
360
|
+
const configDeclarations = /* @__PURE__ */ new Map();
|
|
361
|
+
function getConfig(path, defaultValue) {
|
|
362
|
+
let value = getObjectValueByPath(config.value, path);
|
|
363
|
+
const declaration = configDeclarations.get(path);
|
|
364
|
+
if (declaration?.getter) {
|
|
365
|
+
value = declaration.getter(value);
|
|
366
|
+
}
|
|
367
|
+
return value ?? defaultValue;
|
|
368
|
+
}
|
|
369
|
+
function setConfig(path, value) {
|
|
370
|
+
const declaration = configDeclarations.get(path);
|
|
371
|
+
if (declaration?.setter) {
|
|
372
|
+
value = declaration.setter(value);
|
|
373
|
+
}
|
|
374
|
+
setObjectValueByPath(config.value, path, value);
|
|
375
|
+
}
|
|
376
|
+
function getConfigRef(path) {
|
|
377
|
+
return computed({
|
|
378
|
+
get: () => getConfig(path),
|
|
379
|
+
set: (value) => setConfig(path, value)
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
function registerConfig(path, declaration = {}) {
|
|
383
|
+
configDeclarations.set(path, declaration);
|
|
384
|
+
const ref2 = getConfigRef(path);
|
|
385
|
+
if (ref2.value === void 0) {
|
|
386
|
+
if (typeof declaration.default === "function") {
|
|
387
|
+
ref2.value = declaration.default();
|
|
388
|
+
} else {
|
|
389
|
+
ref2.value = declaration.default;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return ref2;
|
|
393
|
+
}
|
|
394
|
+
function importConfig() {
|
|
395
|
+
return new Promise((resolve) => {
|
|
396
|
+
const { onChange, open } = useFileDialog({
|
|
397
|
+
accept: ".json",
|
|
398
|
+
reset: true,
|
|
399
|
+
multiple: false
|
|
400
|
+
});
|
|
401
|
+
onChange(async (files) => {
|
|
402
|
+
const file = files?.[0];
|
|
403
|
+
if (file) {
|
|
404
|
+
config.value = JSON.parse(await file.text());
|
|
405
|
+
resolve(config.value);
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
open();
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
function exportConfig() {
|
|
412
|
+
return new Blob([JSON.stringify(config.value)], { type: "application/json" });
|
|
413
|
+
}
|
|
414
|
+
function saveAsConfig(filename = "settings.json") {
|
|
415
|
+
saveAs(
|
|
416
|
+
exportConfig(),
|
|
417
|
+
filename
|
|
418
|
+
);
|
|
419
|
+
}
|
|
420
|
+
Object.assign(editor, {
|
|
421
|
+
getConfig,
|
|
422
|
+
setConfig,
|
|
423
|
+
getConfigRef,
|
|
424
|
+
registerConfig,
|
|
425
|
+
importConfig,
|
|
426
|
+
exportConfig,
|
|
427
|
+
saveAsConfig
|
|
428
|
+
});
|
|
429
|
+
});
|
|
420
430
|
const _0_config_base = defineMixin((editor, options) => {
|
|
421
431
|
const {
|
|
422
432
|
registerConfig,
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function saveAs(blobOrString: Blob | string, filename: string): void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mce",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.17.
|
|
4
|
+
"version": "0.17.8",
|
|
5
5
|
"description": "A headless infinite canvas editor framework built on WebGL rendering, supports exporting to image, video, and PPT. Only the ESM.",
|
|
6
6
|
"author": "wxm",
|
|
7
7
|
"license": "MIT",
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
"@vueuse/components": "^14.2.1",
|
|
60
60
|
"@vueuse/core": "^14.2.1",
|
|
61
61
|
"diff": "^8.0.3",
|
|
62
|
-
"file-saver": "^2.0.5",
|
|
63
62
|
"lodash-es": "^4.17.23",
|
|
64
63
|
"modern-canvas": "^0.15.9",
|
|
65
64
|
"modern-font": "^0.5.0",
|
|
@@ -86,7 +85,6 @@
|
|
|
86
85
|
}
|
|
87
86
|
},
|
|
88
87
|
"devDependencies": {
|
|
89
|
-
"@types/file-saver": "^2.0.7",
|
|
90
88
|
"@types/lodash-es": "^4.17.12",
|
|
91
89
|
"@vitejs/plugin-vue": "^6.0.4",
|
|
92
90
|
"jiti": "^2.6.1",
|