react-design-editor 0.0.37 → 0.0.41

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 (99) hide show
  1. package/dist/react-design-editor.js +773 -726
  2. package/dist/react-design-editor.min.js +1 -1
  3. package/lib/Canvas.d.ts +18 -0
  4. package/lib/Canvas.js +172 -0
  5. package/lib/CanvasObject.d.ts +10 -0
  6. package/lib/CanvasObject.js +96 -0
  7. package/lib/constants/code.d.ts +19 -0
  8. package/lib/constants/code.js +22 -0
  9. package/lib/constants/defaults.d.ts +38 -0
  10. package/lib/constants/defaults.js +69 -0
  11. package/lib/constants/index.d.ts +3 -0
  12. package/lib/constants/index.js +26 -0
  13. package/lib/handlers/AlignmentHandler.d.ts +18 -0
  14. package/lib/handlers/AlignmentHandler.js +58 -0
  15. package/lib/handlers/AnimationHandler.d.ts +50 -0
  16. package/lib/handlers/AnimationHandler.js +323 -0
  17. package/lib/handlers/ChartHandler.d.ts +8 -0
  18. package/lib/handlers/ChartHandler.js +8 -0
  19. package/lib/handlers/ContextmenuHandler.d.ts +28 -0
  20. package/lib/handlers/ContextmenuHandler.js +65 -0
  21. package/lib/handlers/CropHandler.d.ts +43 -0
  22. package/lib/handlers/CropHandler.js +261 -0
  23. package/lib/handlers/CustomHandler.d.ts +7 -0
  24. package/lib/handlers/CustomHandler.js +10 -0
  25. package/lib/handlers/DrawingHandler.d.ts +28 -0
  26. package/lib/handlers/DrawingHandler.js +318 -0
  27. package/lib/handlers/ElementHandler.d.ts +80 -0
  28. package/lib/handlers/ElementHandler.js +154 -0
  29. package/lib/handlers/EventHandler.d.ts +170 -0
  30. package/lib/handlers/EventHandler.js +880 -0
  31. package/lib/handlers/FiberHandler.d.ts +6 -0
  32. package/lib/handlers/FiberHandler.js +23 -0
  33. package/lib/handlers/GridHandler.d.ts +19 -0
  34. package/lib/handlers/GridHandler.js +77 -0
  35. package/lib/handlers/GuidelineHandler.d.ts +61 -0
  36. package/lib/handlers/GuidelineHandler.js +315 -0
  37. package/lib/handlers/Handler.d.ts +622 -0
  38. package/lib/handlers/Handler.js +1640 -0
  39. package/lib/handlers/ImageHandler.d.ts +307 -0
  40. package/lib/handlers/ImageHandler.js +529 -0
  41. package/lib/handlers/InteractionHandler.d.ts +45 -0
  42. package/lib/handlers/InteractionHandler.js +164 -0
  43. package/lib/handlers/LinkHandler.d.ts +115 -0
  44. package/lib/handlers/LinkHandler.js +247 -0
  45. package/lib/handlers/NodeHandler.d.ts +50 -0
  46. package/lib/handlers/NodeHandler.js +274 -0
  47. package/lib/handlers/PortHandler.d.ts +22 -0
  48. package/lib/handlers/PortHandler.js +179 -0
  49. package/lib/handlers/ShortcutHandler.d.ts +119 -0
  50. package/lib/handlers/ShortcutHandler.js +151 -0
  51. package/lib/handlers/TooltipHandler.d.ts +33 -0
  52. package/lib/handlers/TooltipHandler.js +91 -0
  53. package/lib/handlers/TransactionHandler.d.ts +59 -0
  54. package/lib/handlers/TransactionHandler.js +137 -0
  55. package/lib/handlers/WorkareaHandler.d.ts +43 -0
  56. package/lib/handlers/WorkareaHandler.js +354 -0
  57. package/lib/handlers/ZoomHandler.d.ts +48 -0
  58. package/lib/handlers/ZoomHandler.js +143 -0
  59. package/lib/handlers/index.d.ts +23 -0
  60. package/lib/handlers/index.js +48 -0
  61. package/lib/index.d.ts +6 -0
  62. package/lib/index.js +20 -0
  63. package/lib/objects/Arrow.d.ts +2 -0
  64. package/lib/objects/Arrow.js +40 -0
  65. package/lib/objects/Chart.d.ts +10 -0
  66. package/lib/objects/Chart.js +124 -0
  67. package/lib/objects/CirclePort.d.ts +2 -0
  68. package/lib/objects/CirclePort.js +28 -0
  69. package/lib/objects/Cube.d.ts +5 -0
  70. package/lib/objects/Cube.js +71 -0
  71. package/lib/objects/CurvedLink.d.ts +2 -0
  72. package/lib/objects/CurvedLink.js +51 -0
  73. package/lib/objects/Element.d.ts +13 -0
  74. package/lib/objects/Element.js +84 -0
  75. package/lib/objects/Gif.d.ts +3 -0
  76. package/lib/objects/Gif.js +41 -0
  77. package/lib/objects/Iframe.d.ts +9 -0
  78. package/lib/objects/Iframe.js +70 -0
  79. package/lib/objects/Line.d.ts +2 -0
  80. package/lib/objects/Line.js +24 -0
  81. package/lib/objects/Link.d.ts +15 -0
  82. package/lib/objects/Link.js +106 -0
  83. package/lib/objects/Node.d.ts +59 -0
  84. package/lib/objects/Node.js +271 -0
  85. package/lib/objects/OrthogonalLink.d.ts +2 -0
  86. package/lib/objects/OrthogonalLink.js +54 -0
  87. package/lib/objects/Port.d.ts +12 -0
  88. package/lib/objects/Port.js +28 -0
  89. package/lib/objects/Svg.d.ts +8 -0
  90. package/lib/objects/Svg.js +77 -0
  91. package/lib/objects/Video.d.ts +14 -0
  92. package/lib/objects/Video.js +120 -0
  93. package/lib/objects/index.d.ts +15 -0
  94. package/lib/objects/index.js +32 -0
  95. package/lib/utils/ObjectUtil.d.ts +407 -0
  96. package/lib/utils/ObjectUtil.js +13 -0
  97. package/lib/utils/index.d.ts +1 -0
  98. package/lib/utils/index.js +13 -0
  99. package/package.json +1 -1
@@ -0,0 +1,80 @@
1
+ import { fabric } from 'fabric';
2
+ import Handler from './Handler';
3
+ import { VideoObject } from '../objects/Video';
4
+ import { ChartObject } from '../objects/Chart';
5
+ import { IframeObject } from '../objects/Iframe';
6
+ import { ElementObject } from '../objects/Element';
7
+ export declare type ElementType = 'container' | 'script' | 'style';
8
+ export declare type ElementObjectType = VideoObject | ChartObject | IframeObject | ElementObject;
9
+ export interface ElementCode {
10
+ html?: string;
11
+ css?: string;
12
+ js?: string;
13
+ }
14
+ declare class ElementHandler {
15
+ handler?: Handler;
16
+ constructor(handler: Handler);
17
+ /**
18
+ * Set element by id
19
+ * @param {string} id
20
+ * @param {*} source
21
+ * @returns {void}
22
+ */
23
+ setById: (id: string, source: any) => void;
24
+ /**
25
+ * Set element
26
+ * @param {ElementObjectType} obj
27
+ * @param {*} source
28
+ */
29
+ set: (obj: ElementObjectType, source: any) => void;
30
+ /**
31
+ * Find element by id with type
32
+ * @param {string} id
33
+ * @param {ElementType} [type='container']
34
+ * @returns
35
+ */
36
+ findById: (id: string, type?: ElementType) => HTMLElement;
37
+ /**
38
+ * Remove element
39
+ * @param {HTMLElement} el
40
+ * @returns
41
+ */
42
+ remove: (el: HTMLElement) => void;
43
+ /**
44
+ * Remove element by id
45
+ * @param {string} id
46
+ */
47
+ removeById: (id: string) => void;
48
+ /**
49
+ * Remove element by ids
50
+ * @param {string[]} ids
51
+ */
52
+ removeByIds: (ids: string[]) => void;
53
+ /**
54
+ * Set position
55
+ * @param {HTMLElement} el
56
+ * @param {number} left
57
+ * @param {number} top
58
+ * @returns
59
+ */
60
+ setPosition: (el: HTMLElement, obj: fabric.Object) => void;
61
+ setPositionByOrigin: (el: HTMLElement, obj: fabric.Object, left: number, top: number) => void;
62
+ /**
63
+ * Set size
64
+ * @param {HTMLElement} el
65
+ * @param {number} width
66
+ * @param {number} height
67
+ * @returns
68
+ */
69
+ setSize: (el: HTMLElement, obj: fabric.Object) => void;
70
+ /**
71
+ * Set scale or angle
72
+ * @param {HTMLElement} el
73
+ * @param {number} scaleX
74
+ * @param {number} scaleY
75
+ * @param {number} angle
76
+ * @returns
77
+ */
78
+ setScaleOrAngle: (el: HTMLElement, obj: fabric.Object) => void;
79
+ }
80
+ export default ElementHandler;
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ElementHandler {
4
+ constructor(handler) {
5
+ /**
6
+ * Set element by id
7
+ * @param {string} id
8
+ * @param {*} source
9
+ * @returns {void}
10
+ */
11
+ this.setById = (id, source) => {
12
+ const obj = this.handler.findById(id);
13
+ if (!obj) {
14
+ return;
15
+ }
16
+ this.set(obj, source);
17
+ };
18
+ /**
19
+ * Set element
20
+ * @param {ElementObjectType} obj
21
+ * @param {*} source
22
+ */
23
+ this.set = (obj, source) => {
24
+ obj.setSource(source);
25
+ };
26
+ /**
27
+ * Find element by id with type
28
+ * @param {string} id
29
+ * @param {ElementType} [type='container']
30
+ * @returns
31
+ */
32
+ this.findById = (id, type = 'container') => {
33
+ return document.getElementById(`${id}_${type}`);
34
+ };
35
+ /**
36
+ * Remove element
37
+ * @param {HTMLElement} el
38
+ * @returns
39
+ */
40
+ this.remove = (el) => {
41
+ if (!el) {
42
+ return;
43
+ }
44
+ this.handler.container.removeChild(el);
45
+ };
46
+ /**
47
+ * Remove element by id
48
+ * @param {string} id
49
+ */
50
+ this.removeById = (id) => {
51
+ const el = this.findById(id);
52
+ const scriptEl = this.findById(id, 'script');
53
+ const styleEl = this.findById(id, 'style');
54
+ if (el) {
55
+ if (el.remove) {
56
+ el.remove();
57
+ }
58
+ else {
59
+ this.remove(el);
60
+ }
61
+ }
62
+ if (scriptEl) {
63
+ if (scriptEl.remove) {
64
+ scriptEl.remove();
65
+ }
66
+ else {
67
+ document.head.removeChild(scriptEl);
68
+ }
69
+ }
70
+ if (styleEl) {
71
+ if (styleEl.remove) {
72
+ styleEl.remove();
73
+ }
74
+ else {
75
+ document.head.removeChild(styleEl);
76
+ }
77
+ }
78
+ };
79
+ /**
80
+ * Remove element by ids
81
+ * @param {string[]} ids
82
+ */
83
+ this.removeByIds = (ids) => {
84
+ ids.forEach(id => {
85
+ this.removeById(id);
86
+ });
87
+ };
88
+ /**
89
+ * Set position
90
+ * @param {HTMLElement} el
91
+ * @param {number} left
92
+ * @param {number} top
93
+ * @returns
94
+ */
95
+ this.setPosition = (el, obj) => {
96
+ if (!el) {
97
+ return;
98
+ }
99
+ obj.setCoords();
100
+ const zoom = this.handler.canvas.getZoom();
101
+ const { scaleX, scaleY, width, height } = obj;
102
+ const { left, top } = obj.getBoundingRect(false);
103
+ const padLeft = ((width * scaleX * zoom) - width) / 2;
104
+ const padTop = ((height * scaleY * zoom) - height) / 2;
105
+ el.style.left = `${left + padLeft}px`;
106
+ el.style.top = `${top + padTop}px`;
107
+ };
108
+ this.setPositionByOrigin = (el, obj, left, top) => {
109
+ if (!el) {
110
+ return;
111
+ }
112
+ obj.setCoords();
113
+ const zoom = this.handler.canvas.getZoom();
114
+ const { scaleX, scaleY, width, height } = obj;
115
+ const padLeft = ((width * scaleX * zoom) - width) / 2;
116
+ const padTop = ((height * scaleY * zoom) - height) / 2;
117
+ el.style.left = `${left + padLeft}px`;
118
+ el.style.top = `${top + padTop}px`;
119
+ };
120
+ /**
121
+ * Set size
122
+ * @param {HTMLElement} el
123
+ * @param {number} width
124
+ * @param {number} height
125
+ * @returns
126
+ */
127
+ this.setSize = (el, obj) => {
128
+ if (!el) {
129
+ return;
130
+ }
131
+ const { width, height } = obj;
132
+ el.style.width = `${width}px`;
133
+ el.style.height = `${height}px`;
134
+ };
135
+ /**
136
+ * Set scale or angle
137
+ * @param {HTMLElement} el
138
+ * @param {number} scaleX
139
+ * @param {number} scaleY
140
+ * @param {number} angle
141
+ * @returns
142
+ */
143
+ this.setScaleOrAngle = (el, obj) => {
144
+ if (!el) {
145
+ return;
146
+ }
147
+ const zoom = this.handler.canvas.getZoom();
148
+ const { scaleX, scaleY, angle } = obj;
149
+ el.style.transform = `rotate(${angle}deg) scale(${scaleX * zoom}, ${scaleY * zoom})`;
150
+ };
151
+ this.handler = handler;
152
+ }
153
+ }
154
+ exports.default = ElementHandler;
@@ -0,0 +1,170 @@
1
+ import { FabricEvent } from '../utils';
2
+ import Handler from './Handler';
3
+ /**
4
+ * Event Handler Class
5
+ * @author salgum1114
6
+ * @class EventHandler
7
+ */
8
+ declare class EventHandler {
9
+ handler: Handler;
10
+ code: string;
11
+ panning: boolean;
12
+ constructor(handler: Handler);
13
+ /**
14
+ * Attch event on document
15
+ *
16
+ */
17
+ initialize(): void;
18
+ /**
19
+ * Detach event on document
20
+ *
21
+ */
22
+ destroy: () => void;
23
+ /**
24
+ * Individual object event
25
+ *
26
+ */
27
+ object: {
28
+ /**
29
+ * Mouse down event on object
30
+ * @param {FabricEvent} opt
31
+ */
32
+ mousedown: (opt: FabricEvent) => void;
33
+ /**
34
+ * Mouse double click event on object
35
+ * @param {FabricEvent} opt
36
+ */
37
+ mousedblclick: (opt: FabricEvent) => void;
38
+ };
39
+ /**
40
+ * Modified event object
41
+ *
42
+ * @param {FabricEvent} opt
43
+ * @returns
44
+ */
45
+ modified: (opt: FabricEvent) => void;
46
+ /**
47
+ * Moving event object
48
+ *
49
+ * @param {FabricEvent} opt
50
+ * @returns
51
+ */
52
+ moving: (opt: FabricEvent) => void;
53
+ /**
54
+ * Moved event object
55
+ *
56
+ * @param {FabricEvent} opt
57
+ */
58
+ moved: (opt: FabricEvent) => void;
59
+ /**
60
+ * Scaling event object
61
+ *
62
+ * @param {FabricEvent} opt
63
+ */
64
+ scaling: (opt: FabricEvent) => void;
65
+ /**
66
+ * Scaled event object
67
+ *
68
+ * @param {FabricEvent} opt
69
+ */
70
+ scaled: (_opt: FabricEvent) => void;
71
+ /**
72
+ * Rotating event object
73
+ *
74
+ * @param {FabricEvent} opt
75
+ */
76
+ rotating: (opt: FabricEvent) => void;
77
+ /**
78
+ * Rotated event object
79
+ *
80
+ * @param {FabricEvent} opt
81
+ */
82
+ rotated: (_opt: FabricEvent) => void;
83
+ /**
84
+ * Moing object at keyboard arrow key down event
85
+ *
86
+ * @param {KeyboardEvent} e
87
+ * @returns
88
+ */
89
+ arrowmoving: (e: KeyboardEvent) => boolean;
90
+ /**
91
+ * Zoom at mouse wheel event
92
+ *
93
+ * @param {FabricEvent<WheelEvent>} opt
94
+ * @returns
95
+ */
96
+ mousewheel: (opt: FabricEvent) => void;
97
+ /**
98
+ * Mouse down event on object
99
+ *
100
+ * @param {FabricEvent<MouseEvent>} opt
101
+ * @returns
102
+ */
103
+ mousedown: (opt: FabricEvent) => void;
104
+ /**
105
+ * Mouse move event on canvas
106
+ *
107
+ * @param {FabricEvent<MouseEvent>} opt
108
+ * @returns
109
+ */
110
+ mousemove: (opt: FabricEvent) => void;
111
+ /**
112
+ * Mouse up event on canvas
113
+ *
114
+ * @param {FabricEvent<MouseEvent>} opt
115
+ * @returns
116
+ */
117
+ mouseup: (opt: FabricEvent) => void;
118
+ /**
119
+ * Mouse out event on canvas
120
+ *
121
+ * @param {FabricEvent<MouseEvent>} opt
122
+ */
123
+ mouseout: (opt: FabricEvent) => void;
124
+ /**
125
+ * Selection event event on canvas
126
+ *
127
+ * @param {FabricEvent} opt
128
+ */
129
+ selection: (opt: FabricEvent) => void;
130
+ /**
131
+ * Called resize event on canvas
132
+ *
133
+ * @param {number} nextWidth
134
+ * @param {number} nextHeight
135
+ * @returns
136
+ */
137
+ resize: (nextWidth: number, nextHeight: number) => void;
138
+ /**
139
+ * Paste event on canvas
140
+ *
141
+ * @param {ClipboardEvent} e
142
+ * @returns
143
+ */
144
+ paste: (e: ClipboardEvent) => Promise<boolean>;
145
+ /**
146
+ * Keydown event on document
147
+ *
148
+ * @param {KeyboardEvent} e
149
+ */
150
+ keydown: (e: KeyboardEvent) => void;
151
+ /**
152
+ * Key up event on canvas
153
+ *
154
+ * @param {KeyboardEvent} _e
155
+ */
156
+ keyup: (e: KeyboardEvent) => void;
157
+ /**
158
+ * Context menu event on canvas
159
+ *
160
+ * @param {MouseEvent} e
161
+ */
162
+ contextmenu: (e: MouseEvent) => void;
163
+ /**
164
+ * Mouse down event on canvas
165
+ *
166
+ * @param {MouseEvent} _e
167
+ */
168
+ onmousedown: (_e: MouseEvent) => void;
169
+ }
170
+ export default EventHandler;