mce 0.15.33 → 0.15.35

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/README.md CHANGED
@@ -100,8 +100,7 @@ npm i mce
100
100
  <template>
101
101
  <div style="width: 100vw; height: 100vh">
102
102
  <EditorLayout :editor="editor">
103
- <template #selector="{ box }" />
104
- <template #transformer="{ box }" />
103
+ <template #selection />
105
104
  <template #floatbar />
106
105
  <template #drawboard />
107
106
  <EditorLayoutItem position="top" :size="56" />
@@ -1,12 +1,6 @@
1
- import type { OrientedBoundingBox } from '../types';
1
+ import type { Slots } from '../editor';
2
2
  import { Editor } from '../editor';
3
- type __VLS_Slots = {
4
- 'selector'?: (props: {
5
- box: OrientedBoundingBox;
6
- }) => void;
7
- 'transformer'?: (props: {
8
- box: Partial<OrientedBoundingBox>;
9
- }) => void;
3
+ type __VLS_Slots = Slots & {
10
4
  'floatbar'?: () => void;
11
5
  'floatbar-top'?: () => void;
12
6
  'floatbar-bottom'?: () => void;
@@ -33,8 +33,8 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
33
33
  }>> & Readonly<{
34
34
  "onUpdate:opened"?: ((value: boolean) => any) | undefined;
35
35
  }>, {
36
- active: boolean;
37
36
  root: boolean;
37
+ active: boolean;
38
38
  indent: number;
39
39
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
40
40
  declare const _default: typeof __VLS_export;
@@ -1,9 +1,4 @@
1
- import type { TransformableValue } from './shared/TransformControls.vue';
2
- import { Aabb2D } from 'modern-canvas';
3
- type __VLS_Props = {
4
- resizeStrategy?: 'lockAspectRatio' | 'lockAspectRatioDiagonal';
5
- selectedArea?: Aabb2D;
6
- };
1
+ import type { TransformValue } from './shared/TransformControls.vue';
7
2
  declare var __VLS_14: {
8
3
  box: {
9
4
  left: number;
@@ -14,7 +9,7 @@ declare var __VLS_14: {
14
9
  borderRadius: number;
15
10
  };
16
11
  }, __VLS_16: {
17
- box: {
12
+ transform: {
18
13
  left: number;
19
14
  top: number;
20
15
  width: number;
@@ -24,17 +19,16 @@ declare var __VLS_14: {
24
19
  };
25
20
  };
26
21
  type __VLS_Slots = {} & {
27
- transformable?: (props: typeof __VLS_14) => any;
22
+ transform?: (props: typeof __VLS_14) => any;
28
23
  } & {
29
24
  default?: (props: typeof __VLS_16) => any;
30
25
  };
31
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
32
- transformable: Readonly<import("vue").ShallowRef<({
26
+ declare const __VLS_base: import("vue").DefineComponent<{}, {
27
+ transformControls: Readonly<import("vue").ShallowRef<({
33
28
  $: import("vue").ComponentInternalInstance;
34
29
  $data: {};
35
30
  $props: {
36
31
  readonly tag?: string | any;
37
- readonly modelValue?: Partial<TransformableValue> | undefined;
38
32
  readonly color?: string | undefined;
39
33
  readonly movable?: boolean | undefined;
40
34
  readonly rotatable?: boolean | undefined;
@@ -45,15 +39,19 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
45
39
  readonly resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal" | undefined;
46
40
  readonly handleStrategy?: "point" | undefined;
47
41
  readonly handleShape?: "rect" | "circle" | undefined;
42
+ readonly handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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;
43
+ readonly scale?: [number, number] | undefined;
44
+ readonly offset?: [number, number] | undefined;
48
45
  readonly hideUi?: boolean | undefined;
49
- readonly handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[] | undefined;
50
46
  readonly initialSize?: boolean | undefined;
51
47
  readonly borderStyle?: "solid" | "dashed" | undefined;
52
- readonly tipFormat?: ((type: "size") => string) | undefined;
53
- readonly onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
54
- readonly onStart?: ((args_0: TransformableValue) => any) | undefined;
55
- readonly onEnd?: ((args_0: TransformableValue) => any) | undefined;
56
- readonly "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
48
+ readonly tip?: string | ((type: "size") => string) | undefined;
49
+ readonly modelValue?: Partial<TransformValue> | undefined;
50
+ readonly modelModifiers?: Partial<Record<string, true>> | undefined;
51
+ readonly onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
52
+ readonly onStart?: ((args_0: TransformValue) => any) | undefined;
53
+ readonly onEnd?: ((args_0: TransformValue) => any) | undefined;
54
+ readonly "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
57
55
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
58
56
  $attrs: {
59
57
  [x: string]: unknown;
@@ -67,11 +65,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
67
65
  $root: import("vue").ComponentPublicInstance | null;
68
66
  $parent: import("vue").ComponentPublicInstance | null;
69
67
  $host: Element | null;
70
- $emit: ((event: "move", args_0: TransformableValue, args_1: TransformableValue) => void) & ((event: "start", args_0: TransformableValue) => void) & ((event: "end", args_0: TransformableValue) => void) & ((event: "update:modelValue", args_0: TransformableValue) => void);
68
+ $emit: ((event: "move", args_0: TransformValue, args_1: TransformValue) => void) & ((event: "start", args_0: TransformValue) => void) & ((event: "end", args_0: TransformValue) => void) & ((event: "update:modelValue", value: Partial<TransformValue> | undefined) => void);
71
69
  $el: any;
72
70
  $options: import("vue").ComponentOptionsBase<Readonly<{
73
71
  tag?: string | any;
74
- modelValue?: Partial<TransformableValue>;
75
72
  color?: string;
76
73
  movable?: boolean;
77
74
  rotatable?: boolean;
@@ -82,33 +79,40 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
82
79
  resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal";
83
80
  handleStrategy?: "point";
84
81
  handleShape?: "rect" | "circle";
82
+ handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
83
+ scale?: [number, number];
84
+ offset?: [number, number];
85
85
  hideUi?: boolean;
86
- handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
87
86
  initialSize?: boolean;
88
87
  borderStyle?: "solid" | "dashed";
89
- tipFormat?: (type: "size") => string;
88
+ tip?: string | ((type: "size") => string);
89
+ } & {
90
+ modelValue?: Partial<TransformValue>;
91
+ modelModifiers?: Partial<Record<string, true>>;
90
92
  }> & Readonly<{
91
- onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
92
- onStart?: ((args_0: TransformableValue) => any) | undefined;
93
- onEnd?: ((args_0: TransformableValue) => any) | undefined;
94
- "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
93
+ onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
94
+ onStart?: ((args_0: TransformValue) => any) | undefined;
95
+ onEnd?: ((args_0: TransformValue) => any) | undefined;
96
+ "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
95
97
  }>, {
96
98
  start: (event?: MouseEvent, index?: number) => boolean;
97
- activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined, ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined>;
99
+ activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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-t" | "resize-r" | "resize-b" | "resize-l" | "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>;
98
100
  transforming: import("vue").Ref<boolean, boolean>;
99
101
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
100
- move: (args_0: TransformableValue, args_1: TransformableValue) => any;
101
- start: (args_0: TransformableValue) => any;
102
- end: (args_0: TransformableValue) => any;
103
- "update:modelValue": (args_0: TransformableValue) => any;
102
+ move: (args_0: TransformValue, args_1: TransformValue) => any;
103
+ start: (args_0: TransformValue) => any;
104
+ end: (args_0: TransformValue) => any;
105
+ "update:modelValue": (value: Partial<TransformValue> | undefined) => any;
104
106
  }, string, {
107
+ offset: [number, number];
108
+ scale: [number, number];
105
109
  movable: boolean;
106
110
  rotatable: boolean;
107
111
  resizable: boolean;
108
112
  tag: string | any;
109
113
  threshold: number;
110
114
  handleShape: "rect" | "circle";
111
- handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
115
+ handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
112
116
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
113
117
  beforeCreate?: (() => void) | (() => void)[];
114
118
  created?: (() => void) | (() => void)[];
@@ -130,16 +134,17 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
130
134
  $nextTick: typeof import("vue").nextTick;
131
135
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
132
136
  } & Readonly<{
137
+ offset: [number, number];
138
+ scale: [number, number];
133
139
  movable: boolean;
134
140
  rotatable: boolean;
135
141
  resizable: boolean;
136
142
  tag: string | any;
137
143
  threshold: number;
138
144
  handleShape: "rect" | "circle";
139
- handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
145
+ handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
140
146
  }> & Omit<Readonly<{
141
147
  tag?: string | any;
142
- modelValue?: Partial<TransformableValue>;
143
148
  color?: string;
144
149
  movable?: boolean;
145
150
  rotatable?: boolean;
@@ -150,24 +155,36 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
150
155
  resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal";
151
156
  handleStrategy?: "point";
152
157
  handleShape?: "rect" | "circle";
158
+ handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
159
+ scale?: [number, number];
160
+ offset?: [number, number];
153
161
  hideUi?: boolean;
154
- handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
155
162
  initialSize?: boolean;
156
163
  borderStyle?: "solid" | "dashed";
157
- tipFormat?: (type: "size") => string;
164
+ tip?: string | ((type: "size") => string);
165
+ } & {
166
+ modelValue?: Partial<TransformValue>;
167
+ modelModifiers?: Partial<Record<string, true>>;
158
168
  }> & Readonly<{
159
- onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
160
- onStart?: ((args_0: TransformableValue) => any) | undefined;
161
- onEnd?: ((args_0: TransformableValue) => any) | undefined;
162
- "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
163
- }>, "transforming" | "start" | "activeHandle" | ("movable" | "rotatable" | "resizable" | "tag" | "threshold" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
169
+ onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
170
+ onStart?: ((args_0: TransformValue) => any) | undefined;
171
+ onEnd?: ((args_0: TransformValue) => any) | undefined;
172
+ "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
173
+ }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "movable" | "rotatable" | "resizable" | "tag" | "threshold" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
164
174
  start: (event?: MouseEvent, index?: number) => boolean;
165
- activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined, ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined>;
175
+ activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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-t" | "resize-r" | "resize-b" | "resize-l" | "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>;
166
176
  transforming: import("vue").Ref<boolean, boolean>;
167
177
  }> & {} & import("vue").ComponentCustomProperties & {} & {
168
178
  $slots: {
169
179
  default?: (props: {
170
- value: Partial<TransformableValue> | undefined;
180
+ value: {
181
+ left: number;
182
+ top: number;
183
+ width: number;
184
+ height: number;
185
+ rotate: number;
186
+ borderRadius: number;
187
+ };
171
188
  props: {
172
189
  onPointerdown: (event?: MouseEvent, index?: number) => boolean;
173
190
  };
@@ -190,7 +207,6 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
190
207
  $data: {};
191
208
  $props: {
192
209
  readonly tag?: string | any;
193
- readonly modelValue?: Partial<TransformableValue> | undefined;
194
210
  readonly color?: string | undefined;
195
211
  readonly movable?: boolean | undefined;
196
212
  readonly rotatable?: boolean | undefined;
@@ -201,15 +217,19 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
201
217
  readonly resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal" | undefined;
202
218
  readonly handleStrategy?: "point" | undefined;
203
219
  readonly handleShape?: "rect" | "circle" | undefined;
220
+ readonly handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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;
221
+ readonly scale?: [number, number] | undefined;
222
+ readonly offset?: [number, number] | undefined;
204
223
  readonly hideUi?: boolean | undefined;
205
- readonly handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[] | undefined;
206
224
  readonly initialSize?: boolean | undefined;
207
225
  readonly borderStyle?: "solid" | "dashed" | undefined;
208
- readonly tipFormat?: ((type: "size") => string) | undefined;
209
- readonly onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
210
- readonly onStart?: ((args_0: TransformableValue) => any) | undefined;
211
- readonly onEnd?: ((args_0: TransformableValue) => any) | undefined;
212
- readonly "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
226
+ readonly tip?: string | ((type: "size") => string) | undefined;
227
+ readonly modelValue?: Partial<TransformValue> | undefined;
228
+ readonly modelModifiers?: Partial<Record<string, true>> | undefined;
229
+ readonly onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
230
+ readonly onStart?: ((args_0: TransformValue) => any) | undefined;
231
+ readonly onEnd?: ((args_0: TransformValue) => any) | undefined;
232
+ readonly "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
213
233
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
214
234
  $attrs: {
215
235
  [x: string]: unknown;
@@ -223,11 +243,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
223
243
  $root: import("vue").ComponentPublicInstance | null;
224
244
  $parent: import("vue").ComponentPublicInstance | null;
225
245
  $host: Element | null;
226
- $emit: ((event: "move", args_0: TransformableValue, args_1: TransformableValue) => void) & ((event: "start", args_0: TransformableValue) => void) & ((event: "end", args_0: TransformableValue) => void) & ((event: "update:modelValue", args_0: TransformableValue) => void);
246
+ $emit: ((event: "move", args_0: TransformValue, args_1: TransformValue) => void) & ((event: "start", args_0: TransformValue) => void) & ((event: "end", args_0: TransformValue) => void) & ((event: "update:modelValue", value: Partial<TransformValue> | undefined) => void);
227
247
  $el: any;
228
248
  $options: import("vue").ComponentOptionsBase<Readonly<{
229
249
  tag?: string | any;
230
- modelValue?: Partial<TransformableValue>;
231
250
  color?: string;
232
251
  movable?: boolean;
233
252
  rotatable?: boolean;
@@ -238,33 +257,40 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
238
257
  resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal";
239
258
  handleStrategy?: "point";
240
259
  handleShape?: "rect" | "circle";
260
+ handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
261
+ scale?: [number, number];
262
+ offset?: [number, number];
241
263
  hideUi?: boolean;
242
- handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
243
264
  initialSize?: boolean;
244
265
  borderStyle?: "solid" | "dashed";
245
- tipFormat?: (type: "size") => string;
266
+ tip?: string | ((type: "size") => string);
267
+ } & {
268
+ modelValue?: Partial<TransformValue>;
269
+ modelModifiers?: Partial<Record<string, true>>;
246
270
  }> & Readonly<{
247
- onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
248
- onStart?: ((args_0: TransformableValue) => any) | undefined;
249
- onEnd?: ((args_0: TransformableValue) => any) | undefined;
250
- "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
271
+ onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
272
+ onStart?: ((args_0: TransformValue) => any) | undefined;
273
+ onEnd?: ((args_0: TransformValue) => any) | undefined;
274
+ "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
251
275
  }>, {
252
276
  start: (event?: MouseEvent, index?: number) => boolean;
253
- activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined, ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined>;
277
+ activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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-t" | "resize-r" | "resize-b" | "resize-l" | "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>;
254
278
  transforming: import("vue").Ref<boolean, boolean>;
255
279
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
256
- move: (args_0: TransformableValue, args_1: TransformableValue) => any;
257
- start: (args_0: TransformableValue) => any;
258
- end: (args_0: TransformableValue) => any;
259
- "update:modelValue": (args_0: TransformableValue) => any;
280
+ move: (args_0: TransformValue, args_1: TransformValue) => any;
281
+ start: (args_0: TransformValue) => any;
282
+ end: (args_0: TransformValue) => any;
283
+ "update:modelValue": (value: Partial<TransformValue> | undefined) => any;
260
284
  }, string, {
285
+ offset: [number, number];
286
+ scale: [number, number];
261
287
  movable: boolean;
262
288
  rotatable: boolean;
263
289
  resizable: boolean;
264
290
  tag: string | any;
265
291
  threshold: number;
266
292
  handleShape: "rect" | "circle";
267
- handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
293
+ handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
268
294
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
269
295
  beforeCreate?: (() => void) | (() => void)[];
270
296
  created?: (() => void) | (() => void)[];
@@ -286,16 +312,17 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
286
312
  $nextTick: typeof import("vue").nextTick;
287
313
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
288
314
  } & Readonly<{
315
+ offset: [number, number];
316
+ scale: [number, number];
289
317
  movable: boolean;
290
318
  rotatable: boolean;
291
319
  resizable: boolean;
292
320
  tag: string | any;
293
321
  threshold: number;
294
322
  handleShape: "rect" | "circle";
295
- handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
323
+ handles: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
296
324
  }> & Omit<Readonly<{
297
325
  tag?: string | any;
298
- modelValue?: Partial<TransformableValue>;
299
326
  color?: string;
300
327
  movable?: boolean;
301
328
  rotatable?: boolean;
@@ -306,24 +333,36 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
306
333
  resizeStrategy?: "lockAspectRatio" | "lockAspectRatioDiagonal";
307
334
  handleStrategy?: "point";
308
335
  handleShape?: "rect" | "circle";
336
+ handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-br" | "resize-tr" | "resize-tl" | "resize-bl" | "rotate-br" | "rotate-tr" | "rotate-tl" | "rotate-bl" | "round-br" | "round-tr" | "round-tl" | "round-bl")[];
337
+ scale?: [number, number];
338
+ offset?: [number, number];
309
339
  hideUi?: boolean;
310
- handles?: ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br")[];
311
340
  initialSize?: boolean;
312
341
  borderStyle?: "solid" | "dashed";
313
- tipFormat?: (type: "size") => string;
342
+ tip?: string | ((type: "size") => string);
343
+ } & {
344
+ modelValue?: Partial<TransformValue>;
345
+ modelModifiers?: Partial<Record<string, true>>;
314
346
  }> & Readonly<{
315
- onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
316
- onStart?: ((args_0: TransformableValue) => any) | undefined;
317
- onEnd?: ((args_0: TransformableValue) => any) | undefined;
318
- "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
319
- }>, "transforming" | "start" | "activeHandle" | ("movable" | "rotatable" | "resizable" | "tag" | "threshold" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
347
+ onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
348
+ onStart?: ((args_0: TransformValue) => any) | undefined;
349
+ onEnd?: ((args_0: TransformValue) => any) | undefined;
350
+ "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
351
+ }>, "transforming" | "start" | "activeHandle" | ("offset" | "scale" | "movable" | "rotatable" | "resizable" | "tag" | "threshold" | "handleShape" | "handles")> & import("vue").ShallowUnwrapRef<{
320
352
  start: (event?: MouseEvent, index?: number) => boolean;
321
- activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined, ("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "resize-tl" | "resize-tr" | "resize-bl" | "resize-br" | "rotate-tl" | "rotate-tr" | "rotate-bl" | "rotate-br" | "round-tl" | "round-tr" | "round-bl" | "round-br") | undefined>;
353
+ activeHandle: import("vue").Ref<("move" | "resize-t" | "resize-r" | "resize-b" | "resize-l" | "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-t" | "resize-r" | "resize-b" | "resize-l" | "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>;
322
354
  transforming: import("vue").Ref<boolean, boolean>;
323
355
  }> & {} & import("vue").ComponentCustomProperties & {} & {
324
356
  $slots: {
325
357
  default?: (props: {
326
- value: Partial<TransformableValue> | undefined;
358
+ value: {
359
+ left: number;
360
+ top: number;
361
+ width: number;
362
+ height: number;
363
+ rotate: number;
364
+ borderRadius: number;
365
+ };
327
366
  props: {
328
367
  onPointerdown: (event?: MouseEvent, index?: number) => boolean;
329
368
  };
@@ -342,9 +381,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
342
381
  }) => any;
343
382
  };
344
383
  }) | null>>;
345
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
346
- selectedArea: Aabb2D;
347
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
384
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
348
385
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
349
386
  declare const _default: typeof __VLS_export;
350
387
  export default _default;
@@ -1,3 +1,11 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ import type { Element2D } from 'modern-canvas';
2
+ type __VLS_ModelProps = {
3
+ modelValue?: Element2D;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ "update:modelValue": (value: Element2D | undefined) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
8
+ "onUpdate:modelValue"?: ((value: Element2D | undefined) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
10
  declare const _default: typeof __VLS_export;
3
11
  export default _default;
@@ -1,11 +1,14 @@
1
- import type { OrientedBoundingBox } from '../../types';
2
- export interface TransformableValue extends OrientedBoundingBox {
1
+ export interface TransformValue {
2
+ left: number;
3
+ top: number;
4
+ width: number;
5
+ height: number;
6
+ rotate: number;
3
7
  borderRadius: number;
4
8
  }
5
9
  type Handle = 'move' | 'resize-t' | 'resize-r' | 'resize-b' | 'resize-l' | 'resize-tl' | 'resize-tr' | 'resize-bl' | 'resize-br' | 'rotate-tl' | 'rotate-tr' | 'rotate-bl' | 'rotate-br' | 'round-tl' | 'round-tr' | 'round-bl' | 'round-br';
6
10
  type __VLS_Props = {
7
11
  tag?: string | any;
8
- modelValue?: Partial<TransformableValue>;
9
12
  color?: string;
10
13
  movable?: boolean;
11
14
  rotatable?: boolean;
@@ -16,15 +19,29 @@ type __VLS_Props = {
16
19
  resizeStrategy?: 'lockAspectRatio' | 'lockAspectRatioDiagonal';
17
20
  handleStrategy?: 'point';
18
21
  handleShape?: 'rect' | 'circle';
19
- hideUi?: boolean;
20
22
  handles?: Handle[];
23
+ scale?: [number, number];
24
+ offset?: [number, number];
25
+ hideUi?: boolean;
21
26
  initialSize?: boolean;
22
27
  borderStyle?: 'solid' | 'dashed';
23
- tipFormat?: (type: 'size') => string;
28
+ tip?: string | ((type: 'size') => string);
24
29
  };
25
30
  declare function start(event?: MouseEvent, index?: number): boolean;
31
+ type __VLS_ModelProps = {
32
+ modelValue?: Partial<TransformValue>;
33
+ 'modelModifiers'?: Partial<Record<string, true>>;
34
+ };
35
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
26
36
  declare var __VLS_8: {
27
- value: Partial<TransformableValue> | undefined;
37
+ value: {
38
+ left: number;
39
+ top: number;
40
+ width: number;
41
+ height: number;
42
+ rotate: number;
43
+ borderRadius: number;
44
+ };
28
45
  props: {
29
46
  onPointerdown: typeof start;
30
47
  };
@@ -44,21 +61,23 @@ type __VLS_Slots = {} & {
44
61
  } & {
45
62
  svg?: (props: typeof __VLS_15) => any;
46
63
  };
47
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
64
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
48
65
  start: typeof start;
49
66
  activeHandle: import("vue").Ref<Handle | undefined, Handle | undefined>;
50
67
  transforming: import("vue").Ref<boolean, boolean>;
51
68
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
- move: (args_0: TransformableValue, args_1: TransformableValue) => any;
53
- start: (args_0: TransformableValue) => any;
54
- end: (args_0: TransformableValue) => any;
55
- "update:modelValue": (args_0: TransformableValue) => any;
56
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
57
- onMove?: ((args_0: TransformableValue, args_1: TransformableValue) => any) | undefined;
58
- onStart?: ((args_0: TransformableValue) => any) | undefined;
59
- onEnd?: ((args_0: TransformableValue) => any) | undefined;
60
- "onUpdate:modelValue"?: ((args_0: TransformableValue) => any) | undefined;
69
+ move: (args_0: TransformValue, args_1: TransformValue) => any;
70
+ start: (args_0: TransformValue) => any;
71
+ end: (args_0: TransformValue) => any;
72
+ "update:modelValue": (value: Partial<TransformValue> | undefined) => any;
73
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
74
+ onMove?: ((args_0: TransformValue, args_1: TransformValue) => any) | undefined;
75
+ onStart?: ((args_0: TransformValue) => any) | undefined;
76
+ onEnd?: ((args_0: TransformValue) => any) | undefined;
77
+ "onUpdate:modelValue"?: ((value: Partial<TransformValue> | undefined) => any) | undefined;
61
78
  }>, {
79
+ offset: [number, number];
80
+ scale: [number, number];
62
81
  movable: boolean;
63
82
  rotatable: boolean;
64
83
  resizable: boolean;
package/dist/editor.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ import type { EffectScope } from '@vue/reactivity';
1
2
  import type { RemovableRef } from '@vueuse/core';
2
3
  import type { ObservableEvents } from 'modern-idoc';
3
- import type { App, InjectionKey } from 'vue';
4
+ import type { App, ComponentPublicInstance, InjectionKey } from 'vue';
4
5
  import type { Mixin } from './mixin';
5
- import type { OverlayPluginComponent, PanelPluginComponent, Plugin, PluginComponent, PluginObject } from './plugin';
6
+ import type { Plugin, PluginComponent, PluginObject } from './plugin';
6
7
  import { Observable } from 'modern-idoc';
7
8
  export interface Options extends Mce.Options {
8
9
  debug?: boolean;
@@ -13,26 +14,30 @@ export interface Editor extends Mce.Editor {
13
14
  }
14
15
  export interface Events extends Mce.Events, ObservableEvents {
15
16
  }
17
+ export interface Slots extends Mce.Slots {
18
+ }
19
+ export type EditorComponent = PluginComponent & {
20
+ plugin: string;
21
+ indexInPlugin: number;
22
+ };
16
23
  export declare class Editor extends Observable<Events> {
17
24
  static injectionKey: InjectionKey<Editor>;
18
25
  debug: import("vue").Ref<boolean, boolean>;
19
26
  config: RemovableRef<Mce.Config>;
20
27
  onEmit?: <K extends keyof Events & string>(event: K, ...args: Events[K]) => void;
21
28
  plugins: Map<string, PluginObject>;
22
- pluginsComponents: import("vue").ComputedRef<{
23
- overlay: OverlayPluginComponent[];
24
- panel: PanelPluginComponent[];
25
- }>;
29
+ protected _pluginComponentTypes: string[];
30
+ components: import("vue").ComputedRef<EditorComponent[]>;
31
+ componentRefs: import("vue").Ref<Record<string, (HTMLElement | ComponentPublicInstance | null)[]>, Record<string, (HTMLElement | ComponentPublicInstance | null)[]>>;
26
32
  protected _setups: (() => void | Promise<void>)[];
27
33
  constructor(options?: Options);
28
34
  protected _setupObservable(): void;
29
- getPlugins: (type: PluginComponent["type"]) => PluginComponent[];
30
35
  log: (...args: any[]) => void;
31
36
  emit: <K extends keyof Events & string>(event: K, ...args: Events[K]) => this;
32
37
  protected _setupOptions(options: Options): void;
33
- protected _useMixins(mixins: Mixin[], options: Options): void;
34
- use(plugins: Plugin[], options: Options): void;
35
- protected _setuped: boolean;
38
+ mixin(mixin: Mixin | Mixin[], options?: Options): void;
39
+ use(plugin: Plugin | Plugin[], options: Options): void;
40
+ protected _effectScope?: EffectScope;
36
41
  setup: () => Promise<void>;
37
42
  install: (app: App) => void;
38
43
  }