react-design-editor 0.0.31 → 0.0.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.
Files changed (101) hide show
  1. package/README.md +1 -1
  2. package/dist/react-design-editor.js +37380 -16467
  3. package/dist/react-design-editor.min.js +1 -1
  4. package/dist/react-design-editor.min.js.LICENSE.txt +13 -2
  5. package/lib/Canvas.d.ts +18 -29
  6. package/lib/Canvas.js +172 -208
  7. package/lib/CanvasObject.d.ts +10 -10
  8. package/lib/CanvasObject.js +96 -89
  9. package/lib/constants/code.d.ts +19 -0
  10. package/lib/constants/code.js +22 -0
  11. package/lib/constants/defaults.d.ts +38 -0
  12. package/lib/constants/defaults.js +69 -0
  13. package/lib/constants/index.d.ts +3 -0
  14. package/lib/constants/index.js +26 -0
  15. package/lib/handlers/AlignmentHandler.d.ts +18 -18
  16. package/lib/handlers/AlignmentHandler.js +58 -58
  17. package/lib/handlers/AnimationHandler.d.ts +50 -48
  18. package/lib/handlers/AnimationHandler.js +323 -298
  19. package/lib/handlers/ChartHandler.d.ts +8 -8
  20. package/lib/handlers/ChartHandler.js +8 -8
  21. package/lib/handlers/ContextmenuHandler.d.ts +28 -23
  22. package/lib/handlers/ContextmenuHandler.js +65 -56
  23. package/lib/handlers/CropHandler.d.ts +43 -37
  24. package/lib/handlers/CropHandler.js +261 -243
  25. package/lib/handlers/CustomHandler.d.ts +7 -0
  26. package/lib/handlers/CustomHandler.js +10 -0
  27. package/lib/handlers/DrawingHandler.d.ts +28 -28
  28. package/lib/handlers/DrawingHandler.js +318 -318
  29. package/lib/handlers/ElementHandler.d.ts +80 -80
  30. package/lib/handlers/ElementHandler.js +154 -154
  31. package/lib/handlers/EventHandler.d.ts +170 -182
  32. package/lib/handlers/EventHandler.js +880 -914
  33. package/lib/handlers/FiberHandler.d.ts +6 -0
  34. package/lib/handlers/FiberHandler.js +23 -0
  35. package/lib/handlers/GridHandler.d.ts +19 -18
  36. package/lib/handlers/GridHandler.js +77 -75
  37. package/lib/handlers/GuidelineHandler.d.ts +61 -39
  38. package/lib/handlers/GuidelineHandler.js +315 -263
  39. package/lib/handlers/Handler.d.ts +622 -543
  40. package/lib/handlers/Handler.js +1638 -1514
  41. package/lib/handlers/ImageHandler.d.ts +307 -307
  42. package/lib/handlers/ImageHandler.js +529 -484
  43. package/lib/handlers/InteractionHandler.d.ts +45 -45
  44. package/lib/handlers/InteractionHandler.js +164 -156
  45. package/lib/handlers/LinkHandler.d.ts +115 -116
  46. package/lib/handlers/LinkHandler.js +247 -246
  47. package/lib/handlers/NodeHandler.d.ts +50 -50
  48. package/lib/handlers/NodeHandler.js +274 -274
  49. package/lib/handlers/PortHandler.d.ts +22 -22
  50. package/lib/handlers/PortHandler.js +179 -179
  51. package/lib/handlers/ShortcutHandler.d.ts +119 -119
  52. package/lib/handlers/ShortcutHandler.js +151 -150
  53. package/lib/handlers/TooltipHandler.d.ts +33 -24
  54. package/lib/handlers/TooltipHandler.js +91 -78
  55. package/lib/handlers/TransactionHandler.d.ts +59 -54
  56. package/lib/handlers/TransactionHandler.js +137 -129
  57. package/lib/handlers/WorkareaHandler.d.ts +43 -31
  58. package/lib/handlers/WorkareaHandler.js +354 -355
  59. package/lib/handlers/ZoomHandler.d.ts +48 -48
  60. package/lib/handlers/ZoomHandler.js +143 -145
  61. package/lib/handlers/index.d.ts +23 -21
  62. package/lib/handlers/index.js +48 -44
  63. package/lib/index.d.ts +5 -5
  64. package/lib/index.js +19 -19
  65. package/lib/objects/Arrow.d.ts +2 -2
  66. package/lib/objects/Arrow.js +40 -39
  67. package/lib/objects/Chart.d.ts +10 -10
  68. package/lib/objects/Chart.js +117 -116
  69. package/lib/objects/CirclePort.d.ts +2 -2
  70. package/lib/objects/CirclePort.js +28 -28
  71. package/lib/objects/Cube.d.ts +5 -5
  72. package/lib/objects/Cube.js +71 -71
  73. package/lib/objects/CurvedLink.d.ts +2 -2
  74. package/lib/objects/CurvedLink.js +51 -49
  75. package/lib/objects/Element.d.ts +13 -13
  76. package/lib/objects/Element.js +77 -76
  77. package/lib/objects/Gif.d.ts +3 -3
  78. package/lib/objects/Gif.js +41 -38
  79. package/lib/objects/Iframe.d.ts +9 -9
  80. package/lib/objects/Iframe.js +63 -62
  81. package/lib/objects/Line.d.ts +2 -2
  82. package/lib/objects/Line.js +24 -24
  83. package/lib/objects/Link.d.ts +15 -15
  84. package/lib/objects/Link.js +106 -104
  85. package/lib/objects/Node.d.ts +59 -59
  86. package/lib/objects/Node.js +271 -268
  87. package/lib/objects/OrthogonalLink.d.ts +2 -2
  88. package/lib/objects/OrthogonalLink.js +54 -52
  89. package/lib/objects/Port.d.ts +12 -12
  90. package/lib/objects/Port.js +28 -28
  91. package/lib/objects/Svg.d.ts +8 -0
  92. package/lib/objects/Svg.js +59 -0
  93. package/lib/objects/Video.d.ts +14 -14
  94. package/lib/objects/Video.js +113 -112
  95. package/lib/objects/index.d.ts +15 -14
  96. package/lib/objects/index.js +32 -30
  97. package/lib/utils/ObjectUtil.d.ts +407 -412
  98. package/lib/utils/ObjectUtil.js +13 -13
  99. package/lib/utils/index.d.ts +1 -1
  100. package/lib/utils/index.js +13 -13
  101. package/package.json +7 -6
@@ -1,412 +1,407 @@
1
- /// <reference types="animejs" />
2
- import { fabric } from 'fabric';
3
- import { IFilter } from '../handlers/ImageHandler';
4
- export declare type AnimationType = 'fade' | 'bounce' | 'shake' | 'scaling' | 'rotation' | 'flash' | 'none';
5
- export interface AnimationProperty {
6
- delay?: number;
7
- duration?: number;
8
- autoplay?: boolean;
9
- loop?: boolean | number;
10
- type: AnimationType;
11
- offset?: number;
12
- opacity?: number;
13
- bounce?: 'vertical' | 'horizontal';
14
- shake?: 'vertical' | 'horizontal';
15
- scale?: number;
16
- angle?: number;
17
- fill?: string | fabric.Pattern;
18
- stroke?: string;
19
- }
20
- export interface LinkProperty {
21
- enabled?: boolean;
22
- type?: string;
23
- state?: string;
24
- dashboard?: any;
25
- }
26
- export interface TooltipProperty {
27
- enabled?: boolean;
28
- type?: string;
29
- template?: string;
30
- }
31
- export interface TriggerProperty {
32
- enabled?: boolean;
33
- type?: string;
34
- script?: string;
35
- effect?: string;
36
- }
37
- export interface FabricCanvasOption {
38
- wrapperEl?: HTMLElement;
39
- }
40
- export declare type FabricCanvas<T extends any = fabric.Canvas> = T & FabricCanvasOption;
41
- export declare type FabricObjectOption<T extends any = fabric.IObjectOptions> = T & {
42
- /**
43
- * Object id
44
- * @type {string}
45
- */
46
- id?: string;
47
- /**
48
- * Parent object id
49
- * @type {string}
50
- */
51
- parentId?: string;
52
- /**
53
- * Original opacity
54
- * @type {number}
55
- */
56
- originOpacity?: number;
57
- /**
58
- * Original top position
59
- * @type {number}
60
- */
61
- originTop?: number;
62
- /**
63
- * Original left position
64
- * @type {number}
65
- */
66
- originLeft?: number;
67
- /**
68
- * Original scale X
69
- * @type {number}
70
- */
71
- originScaleX?: number;
72
- /**
73
- * Original scale Y
74
- * @type {number}
75
- */
76
- originScaleY?: number;
77
- /**
78
- * Original angle
79
- * @type {number}
80
- */
81
- originAngle?: number;
82
- /**
83
- * Original fill color
84
- * @type {(string | fabric.Pattern)}
85
- */
86
- originFill?: string | fabric.Pattern;
87
- /**
88
- * Original stroke color
89
- * @type {string}
90
- */
91
- originStroke?: string;
92
- /**
93
- * Object editable
94
- * @type {boolean}
95
- */
96
- editable?: boolean;
97
- /**
98
- * Object Super type
99
- * @type {string}
100
- */
101
- superType?: string;
102
- /**
103
- * @description
104
- * @type {string}
105
- */
106
- description?: string;
107
- /**
108
- * Animation property
109
- * @type {AnimationProperty}
110
- */
111
- animation?: AnimationProperty;
112
- /**
113
- * Anime instance
114
- * @type {anime.AnimeInstance}
115
- */
116
- anime?: anime.AnimeInstance;
117
- /**
118
- * Tooltip property
119
- * @type {TooltipProperty}
120
- */
121
- tooltip?: TooltipProperty;
122
- /**
123
- * Link property
124
- * @type {LinkProperty}
125
- */
126
- link?: LinkProperty;
127
- /**
128
- * Is running animation
129
- * @type {boolean}
130
- */
131
- animating?: boolean;
132
- /**
133
- * Object class
134
- * @type {string}
135
- */
136
- class?: string;
137
- /**
138
- * Is possible delete
139
- * @type {boolean}
140
- */
141
- deletable?: boolean;
142
- /**
143
- * Is enable double click
144
- * @type {boolean}
145
- */
146
- dblclick?: boolean;
147
- /**
148
- * Is possible clone
149
- * @type {boolean}
150
- */
151
- cloneable?: boolean;
152
- /**
153
- * Is locked object
154
- * @type {boolean}
155
- */
156
- locked?: boolean;
157
- [key: string]: any;
158
- };
159
- export declare type FabricObject<T extends any = fabric.Object> = T & FabricObjectOption;
160
- export declare type FabricGroup = FabricObject<fabric.Group> & {
161
- /**
162
- * Object that config group
163
- * @type {FabricObject[]}
164
- */
165
- objects?: FabricObject[];
166
- };
167
- export declare type FabricImage = FabricObject & fabric.Image & {
168
- /**
169
- * Image URL
170
- * @type {string}
171
- */
172
- src?: string;
173
- /**
174
- * Image File or Blob
175
- * @type {File}
176
- */
177
- file?: File;
178
- /**
179
- * Image Filter
180
- * @type {IFilter[]}
181
- */
182
- filters?: IFilter[];
183
- };
184
- export interface FabricElement extends FabricObject<fabric.Rect> {
185
- /**
186
- * Wrapped Element
187
- * @type {HTMLDivElement}
188
- */
189
- container: HTMLDivElement;
190
- /**
191
- * Target Element
192
- * @type {HTMLDivElement}
193
- */
194
- element: HTMLDivElement;
195
- /**
196
- * Source of Element Object
197
- */
198
- setSource: (source: any) => void;
199
- }
200
- export declare type WorkareaLayout = 'fixed' | 'responsive' | 'fullscreen';
201
- export interface WorkareaOption {
202
- /**
203
- * Image URL
204
- * @type {string}
205
- */
206
- src?: string;
207
- /**
208
- * Image File or Blbo
209
- * @type {File}
210
- */
211
- file?: File;
212
- /**
213
- * Workarea Width
214
- * @type {number}
215
- */
216
- width?: number;
217
- /**
218
- * Workarea Height
219
- * @type {number}
220
- */
221
- height?: number;
222
- /**
223
- * Workarea Background Color
224
- * @type {string}
225
- */
226
- backgroundColor?: string;
227
- /**
228
- * Workarea Layout Type
229
- * @type {WorkareaLayout}
230
- */
231
- layout?: WorkareaLayout;
232
- }
233
- export declare type WorkareaObject = FabricImage & {
234
- /**
235
- * Workarea Layout Type
236
- * @type {WorkareaLayout}
237
- */
238
- layout?: WorkareaLayout;
239
- /**
240
- * Workarea Image Element
241
- * @type {HTMLImageElement}
242
- */
243
- _element?: HTMLImageElement;
244
- /**
245
- * Whether exist the element
246
- * @type {boolean}
247
- */
248
- isElement?: boolean;
249
- /**
250
- * Stored width in workarea
251
- * @type {number}
252
- */
253
- workareaWidth?: number;
254
- /**
255
- * Stored height in workarea
256
- * @type {number}
257
- */
258
- workareaHeight?: number;
259
- };
260
- export interface CanvasOption {
261
- /**
262
- * Unique id of Canvas
263
- * @type {string}
264
- */
265
- id?: string;
266
- /**
267
- * Indicates whether objects should remain in current stack position when selected. When false objects are brought to top and rendered as part of the selection group
268
- * @type {boolean}
269
- */
270
- preserveObjectStacking?: boolean;
271
- /**
272
- * Canvas width
273
- * @type {number}
274
- */
275
- width?: number;
276
- /**
277
- * Canvas height
278
- * @type {number}
279
- */
280
- height?: number;
281
- /**
282
- * Whether group selection should be enabled
283
- * @type {boolean}
284
- */
285
- selection?: boolean;
286
- /**
287
- * Default mouse cursor of Canvas
288
- * @type {string}
289
- */
290
- defaultCursor?: string;
291
- /**
292
- * Background color of Canvas
293
- * @type {(string | fabric.Pattern)}
294
- */
295
- backgroundColor?: string | fabric.Pattern;
296
- }
297
- export interface GridOption {
298
- /**
299
- * Whether should be enabled
300
- * @type {boolean}
301
- */
302
- enabled?: boolean;
303
- /**
304
- * Grid interval
305
- * @type {number}
306
- */
307
- grid?: number;
308
- /**
309
- * When had moved object, whether should adjust position on grid interval
310
- * @type {boolean}
311
- */
312
- snapToGrid?: boolean;
313
- /**
314
- * Grid line color
315
- *
316
- * @type {string}
317
- */
318
- lineColor?: string;
319
- /**
320
- * Grid border color
321
- *
322
- * @type {string}
323
- */
324
- borderColor?: string;
325
- }
326
- export interface GuidelineOption {
327
- /**
328
- * When have moved object, whether should show guideline
329
- * @type {boolean}
330
- */
331
- enabled?: boolean;
332
- }
333
- export interface KeyEvent {
334
- /**
335
- * Arrow key
336
- * @type {boolean}
337
- */
338
- move?: boolean;
339
- /**
340
- * Ctrl + A
341
- * @type {boolean}
342
- */
343
- all?: boolean;
344
- /**
345
- * Ctrl + C
346
- * @type {boolean}
347
- */
348
- copy?: boolean;
349
- /**
350
- * Ctrl + P
351
- * @type {boolean}
352
- */
353
- paste?: boolean;
354
- /**
355
- * Escape
356
- * @type {boolean}
357
- */
358
- esc?: boolean;
359
- /**
360
- * Delete or Backspace
361
- * @type {boolean}
362
- */
363
- del?: boolean;
364
- /**
365
- * When have copied object, whether should copy object option on clipboard
366
- * @type {boolean}
367
- */
368
- clipboard?: boolean;
369
- /**
370
- * Ctrl + Z, Ctrl + Y
371
- * @type {boolean}
372
- */
373
- transaction?: boolean;
374
- /**
375
- * Plus, Minus
376
- *
377
- * @type {boolean}
378
- */
379
- zoom?: boolean;
380
- /**
381
- * Ctrl + X
382
- *
383
- * @type {boolean}
384
- */
385
- cut?: boolean;
386
- }
387
- export declare type InteractionMode = 'selection' | 'grab' | 'polygon' | 'line' | 'arrow' | 'link' | 'crop';
388
- export interface FabricEvent<T extends any = Event> extends Omit<fabric.IEvent, 'e'> {
389
- e: T;
390
- target?: FabricObject;
391
- subTargets?: FabricObject[];
392
- button?: number;
393
- isClick?: boolean;
394
- pointer?: fabric.Point;
395
- absolutePointer?: fabric.Point;
396
- transform?: {
397
- corner: string;
398
- original: FabricObject;
399
- originX: string;
400
- originY: string;
401
- width: number;
402
- };
403
- }
404
- /**
405
- * toObject util
406
- * @param {*} obj
407
- * @param {string[]} propertiesToInclude
408
- * @param {{ [key: string]: any }} [properties]
409
- */
410
- export declare const toObject: (obj: any, propertiesToInclude: string[], properties?: {
411
- [key: string]: any;
412
- }) => any;
1
+ /// <reference types="animejs" />
2
+ import { fabric } from 'fabric';
3
+ import { IFilter } from '../handlers/ImageHandler';
4
+ export declare type AnimationType = 'fade' | 'bounce' | 'shake' | 'scaling' | 'rotation' | 'flash' | 'custom' | 'none';
5
+ export interface AnimationProperty {
6
+ delay?: number;
7
+ duration?: number;
8
+ autoplay?: boolean;
9
+ loop?: boolean | number;
10
+ type: AnimationType;
11
+ offset?: number;
12
+ opacity?: number;
13
+ bounce?: 'vertical' | 'horizontal';
14
+ shake?: 'vertical' | 'horizontal';
15
+ scale?: number;
16
+ angle?: number;
17
+ fill?: string | fabric.Pattern;
18
+ stroke?: string;
19
+ }
20
+ export interface LinkProperty {
21
+ enabled?: boolean;
22
+ type?: string;
23
+ state?: string;
24
+ [key: string]: any;
25
+ }
26
+ export interface TooltipProperty {
27
+ enabled?: boolean;
28
+ type?: string;
29
+ template?: string;
30
+ }
31
+ export interface TriggerProperty {
32
+ enabled?: boolean;
33
+ type?: string;
34
+ script?: string;
35
+ effect?: string;
36
+ }
37
+ export interface FabricCanvasOption {
38
+ wrapperEl?: HTMLElement;
39
+ }
40
+ export declare type FabricCanvas<T extends any = fabric.Canvas> = T & FabricCanvasOption;
41
+ export declare type FabricObjectOption<T extends any = fabric.IObjectOptions> = T & {
42
+ /**
43
+ * Object id
44
+ * @type {string}
45
+ */
46
+ id?: string;
47
+ /**
48
+ * Parent object id
49
+ * @type {string}
50
+ */
51
+ parentId?: string;
52
+ /**
53
+ * Original opacity
54
+ * @type {number}
55
+ */
56
+ originOpacity?: number;
57
+ /**
58
+ * Original top position
59
+ * @type {number}
60
+ */
61
+ originTop?: number;
62
+ /**
63
+ * Original left position
64
+ * @type {number}
65
+ */
66
+ originLeft?: number;
67
+ /**
68
+ * Original scale X
69
+ * @type {number}
70
+ */
71
+ originScaleX?: number;
72
+ /**
73
+ * Original scale Y
74
+ * @type {number}
75
+ */
76
+ originScaleY?: number;
77
+ /**
78
+ * Original angle
79
+ * @type {number}
80
+ */
81
+ originAngle?: number;
82
+ /**
83
+ * Original fill color
84
+ * @type {(string | fabric.Pattern)}
85
+ */
86
+ originFill?: string | fabric.Pattern;
87
+ /**
88
+ * Original stroke color
89
+ * @type {string}
90
+ */
91
+ originStroke?: string;
92
+ /**
93
+ * Original rotation
94
+ *
95
+ * @type {number}
96
+ */
97
+ originRotation?: number;
98
+ /**
99
+ * Object editable
100
+ * @type {boolean}
101
+ */
102
+ editable?: boolean;
103
+ /**
104
+ * Object Super type
105
+ * @type {string}
106
+ */
107
+ superType?: string;
108
+ /**
109
+ * @description
110
+ * @type {string}
111
+ */
112
+ description?: string;
113
+ /**
114
+ * Animation property
115
+ * @type {AnimationProperty}
116
+ */
117
+ animation?: AnimationProperty;
118
+ /**
119
+ * Anime instance
120
+ * @type {anime.AnimeInstance}
121
+ */
122
+ anime?: anime.AnimeInstance;
123
+ /**
124
+ * Tooltip property
125
+ * @type {TooltipProperty}
126
+ */
127
+ tooltip?: TooltipProperty;
128
+ /**
129
+ * Link property
130
+ * @type {LinkProperty}
131
+ */
132
+ link?: LinkProperty;
133
+ /**
134
+ * Is running animation
135
+ * @type {boolean}
136
+ */
137
+ animating?: boolean;
138
+ /**
139
+ * Object class
140
+ * @type {string}
141
+ */
142
+ class?: string;
143
+ /**
144
+ * Is possible delete
145
+ * @type {boolean}
146
+ */
147
+ deletable?: boolean;
148
+ /**
149
+ * Is enable double click
150
+ * @type {boolean}
151
+ */
152
+ dblclick?: boolean;
153
+ /**
154
+ * Is possible clone
155
+ * @type {boolean}
156
+ */
157
+ cloneable?: boolean;
158
+ /**
159
+ * Is locked object
160
+ * @type {boolean}
161
+ */
162
+ locked?: boolean;
163
+ /**
164
+ * This property replaces "angle"
165
+ *
166
+ * @type {number}
167
+ */
168
+ rotation?: number;
169
+ /**
170
+ * Whether it can be clicked
171
+ *
172
+ * @type {boolean}
173
+ */
174
+ clickable?: boolean;
175
+ [key: string]: any;
176
+ };
177
+ export declare type FabricObject<T extends any = fabric.Object> = T & FabricObjectOption;
178
+ export declare type FabricGroup = FabricObject<fabric.Group> & {
179
+ /**
180
+ * Object that config group
181
+ * @type {FabricObject[]}
182
+ */
183
+ objects?: FabricObject[];
184
+ };
185
+ export declare type FabricImage = FabricObject & fabric.Image & {
186
+ /**
187
+ * Image URL
188
+ * @type {string}
189
+ */
190
+ src?: string;
191
+ /**
192
+ * Image File or Blob
193
+ * @type {File}
194
+ */
195
+ file?: File;
196
+ /**
197
+ * Image Filter
198
+ * @type {IFilter[]}
199
+ */
200
+ filters?: IFilter[];
201
+ _element?: any;
202
+ };
203
+ export interface FabricElement extends FabricObject<fabric.Rect> {
204
+ /**
205
+ * Wrapped Element
206
+ * @type {HTMLDivElement}
207
+ */
208
+ container: HTMLDivElement;
209
+ /**
210
+ * Target Element
211
+ * @type {HTMLDivElement}
212
+ */
213
+ element: HTMLDivElement;
214
+ /**
215
+ * Source of Element Object
216
+ */
217
+ setSource: (source: any) => void;
218
+ }
219
+ export declare type WorkareaLayout = 'fixed' | 'responsive' | 'fullscreen';
220
+ export interface WorkareaOption {
221
+ /**
222
+ * Image URL
223
+ * @type {string}
224
+ */
225
+ src?: string;
226
+ /**
227
+ * Image File or Blbo
228
+ * @type {File}
229
+ */
230
+ file?: File;
231
+ /**
232
+ * Workarea Width
233
+ * @type {number}
234
+ */
235
+ width?: number;
236
+ /**
237
+ * Workarea Height
238
+ * @type {number}
239
+ */
240
+ height?: number;
241
+ /**
242
+ * Workarea Background Color
243
+ * @type {string}
244
+ */
245
+ backgroundColor?: string;
246
+ /**
247
+ * Workarea Layout Type
248
+ * @type {WorkareaLayout}
249
+ */
250
+ layout?: WorkareaLayout;
251
+ }
252
+ export declare type WorkareaObject = FabricImage & {
253
+ /**
254
+ * Workarea Layout Type
255
+ * @type {WorkareaLayout}
256
+ */
257
+ layout?: WorkareaLayout;
258
+ /**
259
+ * Workarea Image Element
260
+ * @type {HTMLImageElement}
261
+ */
262
+ _element?: HTMLImageElement;
263
+ /**
264
+ * Whether exist the element
265
+ * @type {boolean}
266
+ */
267
+ isElement?: boolean;
268
+ /**
269
+ * Stored width in workarea
270
+ * @type {number}
271
+ */
272
+ workareaWidth?: number;
273
+ /**
274
+ * Stored height in workarea
275
+ * @type {number}
276
+ */
277
+ workareaHeight?: number;
278
+ };
279
+ export interface CanvasOption extends fabric.ICanvasOptions {
280
+ /**
281
+ * Unique id of Canvas
282
+ * @type {string}
283
+ */
284
+ id?: string;
285
+ }
286
+ export interface GridOption {
287
+ /**
288
+ * Whether should be enabled
289
+ * @type {boolean}
290
+ */
291
+ enabled?: boolean;
292
+ /**
293
+ * Grid interval
294
+ * @type {number}
295
+ */
296
+ grid?: number;
297
+ /**
298
+ * When had moved object, whether should adjust position on grid interval
299
+ * @type {boolean}
300
+ */
301
+ snapToGrid?: boolean;
302
+ /**
303
+ * Grid line color
304
+ *
305
+ * @type {string}
306
+ */
307
+ lineColor?: string;
308
+ /**
309
+ * Grid border color
310
+ *
311
+ * @type {string}
312
+ */
313
+ borderColor?: string;
314
+ }
315
+ export interface GuidelineOption {
316
+ /**
317
+ * When have moved object, whether should show guideline
318
+ * @type {boolean}
319
+ */
320
+ enabled?: boolean;
321
+ }
322
+ export interface KeyEvent {
323
+ /**
324
+ * Arrow key
325
+ * @type {boolean}
326
+ */
327
+ move?: boolean;
328
+ /**
329
+ * Ctrl + A
330
+ * @type {boolean}
331
+ */
332
+ all?: boolean;
333
+ /**
334
+ * Ctrl + C
335
+ * @type {boolean}
336
+ */
337
+ copy?: boolean;
338
+ /**
339
+ * Ctrl + P
340
+ * @type {boolean}
341
+ */
342
+ paste?: boolean;
343
+ /**
344
+ * Escape
345
+ * @type {boolean}
346
+ */
347
+ esc?: boolean;
348
+ /**
349
+ * Delete or Backspace
350
+ * @type {boolean}
351
+ */
352
+ del?: boolean;
353
+ /**
354
+ * When have copied object, whether should copy object option on clipboard
355
+ * @type {boolean}
356
+ */
357
+ clipboard?: boolean;
358
+ /**
359
+ * Ctrl + Z, Ctrl + Y
360
+ * @type {boolean}
361
+ */
362
+ transaction?: boolean;
363
+ /**
364
+ * Plus, Minus
365
+ *
366
+ * @type {boolean}
367
+ */
368
+ zoom?: boolean;
369
+ /**
370
+ * Ctrl + X
371
+ *
372
+ * @type {boolean}
373
+ */
374
+ cut?: boolean;
375
+ grab?: boolean;
376
+ }
377
+ export declare type InteractionMode = 'selection' | 'grab' | 'polygon' | 'line' | 'arrow' | 'link' | 'crop';
378
+ export interface FabricEvent<T extends any = Event> extends Omit<fabric.IEvent, 'e'> {
379
+ e: T;
380
+ target?: FabricObject;
381
+ subTargets?: FabricObject[];
382
+ button?: number;
383
+ isClick?: boolean;
384
+ pointer?: fabric.Point;
385
+ absolutePointer?: fabric.Point;
386
+ transform?: {
387
+ corner: string;
388
+ original: FabricObject;
389
+ originX: string;
390
+ originY: string;
391
+ width: number;
392
+ };
393
+ }
394
+ export declare type FabricObjects = {
395
+ [key: string]: {
396
+ create: (...args: any) => FabricObject;
397
+ };
398
+ };
399
+ /**
400
+ * toObject util
401
+ * @param {*} obj
402
+ * @param {string[]} propertiesToInclude
403
+ * @param {{ [key: string]: any }} [properties]
404
+ */
405
+ export declare const toObject: (obj: any, propertiesToInclude: string[], properties?: {
406
+ [key: string]: any;
407
+ }) => any;