react-design-editor 0.0.33 → 0.0.37

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 (95) hide show
  1. package/README.md +37 -33
  2. package/dist/react-design-editor.js +20849 -11309
  3. package/dist/react-design-editor.min.js +1 -1
  4. package/dist/react-design-editor.min.js.LICENSE.txt +3 -10
  5. package/package.json +35 -31
  6. package/lib/Canvas.d.ts +0 -32
  7. package/lib/Canvas.js +0 -162
  8. package/lib/CanvasObject.d.ts +0 -10
  9. package/lib/CanvasObject.js +0 -96
  10. package/lib/constants/defaults.d.ts +0 -37
  11. package/lib/constants/defaults.js +0 -68
  12. package/lib/constants/index.d.ts +0 -2
  13. package/lib/constants/index.js +0 -24
  14. package/lib/handlers/AlignmentHandler.d.ts +0 -18
  15. package/lib/handlers/AlignmentHandler.js +0 -58
  16. package/lib/handlers/AnimationHandler.d.ts +0 -50
  17. package/lib/handlers/AnimationHandler.js +0 -320
  18. package/lib/handlers/ChartHandler.d.ts +0 -8
  19. package/lib/handlers/ChartHandler.js +0 -8
  20. package/lib/handlers/ContextmenuHandler.d.ts +0 -28
  21. package/lib/handlers/ContextmenuHandler.js +0 -65
  22. package/lib/handlers/CropHandler.d.ts +0 -43
  23. package/lib/handlers/CropHandler.js +0 -261
  24. package/lib/handlers/DrawingHandler.d.ts +0 -28
  25. package/lib/handlers/DrawingHandler.js +0 -318
  26. package/lib/handlers/ElementHandler.d.ts +0 -80
  27. package/lib/handlers/ElementHandler.js +0 -154
  28. package/lib/handlers/EventHandler.d.ts +0 -170
  29. package/lib/handlers/EventHandler.js +0 -877
  30. package/lib/handlers/GridHandler.d.ts +0 -19
  31. package/lib/handlers/GridHandler.js +0 -77
  32. package/lib/handlers/GuidelineHandler.d.ts +0 -61
  33. package/lib/handlers/GuidelineHandler.js +0 -314
  34. package/lib/handlers/Handler.d.ts +0 -603
  35. package/lib/handlers/Handler.js +0 -1612
  36. package/lib/handlers/ImageHandler.d.ts +0 -307
  37. package/lib/handlers/ImageHandler.js +0 -529
  38. package/lib/handlers/InteractionHandler.d.ts +0 -45
  39. package/lib/handlers/InteractionHandler.js +0 -159
  40. package/lib/handlers/LinkHandler.d.ts +0 -115
  41. package/lib/handlers/LinkHandler.js +0 -247
  42. package/lib/handlers/NodeHandler.d.ts +0 -50
  43. package/lib/handlers/NodeHandler.js +0 -274
  44. package/lib/handlers/PortHandler.d.ts +0 -22
  45. package/lib/handlers/PortHandler.js +0 -179
  46. package/lib/handlers/ShortcutHandler.d.ts +0 -119
  47. package/lib/handlers/ShortcutHandler.js +0 -150
  48. package/lib/handlers/TooltipHandler.d.ts +0 -33
  49. package/lib/handlers/TooltipHandler.js +0 -91
  50. package/lib/handlers/TransactionHandler.d.ts +0 -59
  51. package/lib/handlers/TransactionHandler.js +0 -139
  52. package/lib/handlers/WorkareaHandler.d.ts +0 -43
  53. package/lib/handlers/WorkareaHandler.js +0 -354
  54. package/lib/handlers/ZoomHandler.d.ts +0 -48
  55. package/lib/handlers/ZoomHandler.js +0 -143
  56. package/lib/handlers/index.d.ts +0 -21
  57. package/lib/handlers/index.js +0 -44
  58. package/lib/index.d.ts +0 -5
  59. package/lib/index.js +0 -19
  60. package/lib/objects/Arrow.d.ts +0 -2
  61. package/lib/objects/Arrow.js +0 -39
  62. package/lib/objects/Chart.d.ts +0 -10
  63. package/lib/objects/Chart.js +0 -123
  64. package/lib/objects/CirclePort.d.ts +0 -2
  65. package/lib/objects/CirclePort.js +0 -28
  66. package/lib/objects/Cube.d.ts +0 -5
  67. package/lib/objects/Cube.js +0 -71
  68. package/lib/objects/CurvedLink.d.ts +0 -2
  69. package/lib/objects/CurvedLink.js +0 -49
  70. package/lib/objects/Element.d.ts +0 -13
  71. package/lib/objects/Element.js +0 -83
  72. package/lib/objects/Gif.d.ts +0 -3
  73. package/lib/objects/Gif.js +0 -38
  74. package/lib/objects/Iframe.d.ts +0 -9
  75. package/lib/objects/Iframe.js +0 -69
  76. package/lib/objects/Line.d.ts +0 -2
  77. package/lib/objects/Line.js +0 -24
  78. package/lib/objects/Link.d.ts +0 -15
  79. package/lib/objects/Link.js +0 -104
  80. package/lib/objects/Node.d.ts +0 -59
  81. package/lib/objects/Node.js +0 -271
  82. package/lib/objects/OrthogonalLink.d.ts +0 -2
  83. package/lib/objects/OrthogonalLink.js +0 -52
  84. package/lib/objects/Port.d.ts +0 -12
  85. package/lib/objects/Port.js +0 -28
  86. package/lib/objects/Svg.d.ts +0 -8
  87. package/lib/objects/Svg.js +0 -59
  88. package/lib/objects/Video.d.ts +0 -14
  89. package/lib/objects/Video.js +0 -119
  90. package/lib/objects/index.d.ts +0 -15
  91. package/lib/objects/index.js +0 -32
  92. package/lib/utils/ObjectUtil.d.ts +0 -400
  93. package/lib/utils/ObjectUtil.js +0 -13
  94. package/lib/utils/index.d.ts +0 -1
  95. package/lib/utils/index.js +0 -13
@@ -1,274 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fabric_1 = require("fabric");
4
- class NodeHandler {
5
- constructor(handler) {
6
- /**
7
- * Get the node path by target object
8
- * @param {NodeObject} target
9
- * @param {NodeObject[]} [nodes=[]]
10
- * @param {string} [direction='init']
11
- */
12
- this.getNodePath = (target, nodes = [], direction = 'init') => {
13
- if (target) {
14
- if (direction === 'to' || direction === 'init') {
15
- if (target.toPort) {
16
- target.toPort.links.forEach(link => {
17
- if (link.fromNode) {
18
- nodes.push(link.fromNode);
19
- this.getNodePath(link.fromNode, nodes, 'to');
20
- }
21
- });
22
- }
23
- if (direction === 'init') {
24
- nodes.push(target);
25
- }
26
- }
27
- if (direction === 'from' || direction === 'init') {
28
- target.fromPort.forEach(port => {
29
- port.links.forEach(link => {
30
- if (link.toNode) {
31
- nodes.push(link.toNode);
32
- this.getNodePath(link.toNode, nodes, 'from');
33
- }
34
- });
35
- });
36
- }
37
- }
38
- };
39
- /**
40
- * Select the node path
41
- * @param {string[]} [path]
42
- */
43
- this.selectByPath = (path) => {
44
- if (!path || !path.length) {
45
- return;
46
- }
47
- const targetObjects = this.handler.objects.filter(object => path.some(id => id === object.id));
48
- const nonTargetObjects = this.handler.objects.filter(object => path.some(id => id !== object.id));
49
- nonTargetObjects.forEach((object) => {
50
- if (object.superType === 'link') {
51
- const { fromNode, toNode } = object;
52
- if (fromNode && toNode) {
53
- const fromIndex = targetObjects.findIndex(obj => obj.id === fromNode.id);
54
- const toIndex = targetObjects.findIndex(obj => obj.id === toNode.id);
55
- if (fromIndex >= 0 && targetObjects[fromIndex] && toIndex >= 0 && targetObjects[toIndex]) {
56
- object.set({
57
- opacity: 1,
58
- });
59
- object.setShadow({
60
- color: object.stroke,
61
- });
62
- this.highlightingNode(object, 300);
63
- this.handler.canvas.requestRenderAll();
64
- return;
65
- }
66
- }
67
- }
68
- object.set({
69
- opacity: 0.2,
70
- });
71
- if (object.superType === 'node') {
72
- if (object.toPort) {
73
- object.toPort.set({
74
- opacity: 0.2,
75
- });
76
- }
77
- object.fromPort.forEach((port) => {
78
- port.set({
79
- opacity: 0.2,
80
- });
81
- });
82
- }
83
- if (!object.animating) {
84
- object.setShadow({
85
- blur: 0,
86
- });
87
- }
88
- });
89
- targetObjects.forEach((object) => {
90
- object.set({
91
- opacity: 1,
92
- });
93
- object.setShadow({
94
- color: object.stroke,
95
- });
96
- this.highlightingNode(object, 300);
97
- if (object.toPort) {
98
- object.toPort.set({
99
- opacity: 1,
100
- });
101
- }
102
- if (object.fromPort) {
103
- object.fromPort.forEach((port) => {
104
- port.set({
105
- opacity: 1,
106
- });
107
- });
108
- }
109
- });
110
- this.handler.canvas.requestRenderAll();
111
- };
112
- /**
113
- * Select node by id
114
- * @param {string} id
115
- */
116
- this.selectById = (id) => {
117
- this.handler.objects.forEach((object) => {
118
- if (id === object.id) {
119
- object.setShadow({
120
- color: object.stroke,
121
- blur: 50,
122
- });
123
- return;
124
- }
125
- else if (id === object.nodeId) {
126
- return;
127
- }
128
- object.setShadow({
129
- blur: 0,
130
- });
131
- });
132
- this.handler.canvas.requestRenderAll();
133
- };
134
- /**
135
- * Deselect nodes
136
- */
137
- this.deselect = () => {
138
- this.handler.objects.forEach((object) => {
139
- object.set({
140
- opacity: 1,
141
- });
142
- if (object.superType === 'node') {
143
- const node = object;
144
- if (node.toPort) {
145
- node.toPort.set({
146
- opacity: 1,
147
- });
148
- }
149
- node.fromPort.forEach(port => {
150
- port.set({
151
- opacity: 1,
152
- });
153
- });
154
- }
155
- if (!object.animating) {
156
- const node = object;
157
- node.setShadow({
158
- blur: 0,
159
- });
160
- }
161
- });
162
- this.handler.canvas.renderAll();
163
- };
164
- /**
165
- * Highlight node path
166
- * @param {string[]} [path]
167
- */
168
- this.highlightingByPath = (path) => {
169
- if (!path || !path.length) {
170
- return;
171
- }
172
- const targetObjects = this.handler.objects.filter((obj) => path.some(id => id === obj.id));
173
- const nonTargetObjects = this.handler.objects.filter((obj) => path.some(id => id !== obj.id));
174
- const lastObject = targetObjects.filter((obj) => obj.id === path[path.length - 1])[0];
175
- targetObjects.forEach((object) => {
176
- if (lastObject) {
177
- object.setShadow({
178
- color: lastObject.stroke,
179
- });
180
- }
181
- else {
182
- object.setShadow({
183
- color: object.stroke,
184
- });
185
- }
186
- this.highlightingNode(object);
187
- this.handler.canvas.requestRenderAll();
188
- });
189
- nonTargetObjects.forEach((object) => {
190
- if (object.superType === 'link') {
191
- const { fromNode, toNode } = object;
192
- if (fromNode && toNode) {
193
- const fromIndex = targetObjects.findIndex((obj) => obj.id === fromNode.id);
194
- const toIndex = targetObjects.findIndex((obj) => obj.id === toNode.id);
195
- if (fromIndex >= 0 && targetObjects[fromIndex] && toIndex >= 0 && targetObjects[toIndex]) {
196
- if (lastObject) {
197
- object.setShadow({
198
- color: lastObject.stroke,
199
- });
200
- }
201
- else {
202
- object.setShadow({
203
- color: object.stroke,
204
- });
205
- }
206
- this.highlightingNode(object);
207
- this.highlightingLink(object, lastObject);
208
- return;
209
- }
210
- }
211
- }
212
- });
213
- this.handler.canvas.requestRenderAll();
214
- };
215
- /**
216
- * Highlight link
217
- * @param {FabricObject} object
218
- * @param {FabricObject} targetObject
219
- * @param {number} [duration=500]
220
- */
221
- this.highlightingLink = (object, targetObject, duration = 500) => {
222
- object.animation = {
223
- duration,
224
- type: 'flash',
225
- stroke: targetObject ? targetObject.stroke : object.stroke,
226
- loop: 1,
227
- delay: 0,
228
- };
229
- this.handler.animationHandler.play(object.id, false);
230
- };
231
- /**
232
- * Highlight node
233
- *
234
- * @param {*} object
235
- * @param {number} [duration=500]
236
- * @param {number} [minBlur=0]
237
- * @param {number} [maxBlur=50]
238
- */
239
- this.highlightingNode = (object, duration = 500, minBlur = 0, maxBlur = 50) => {
240
- const onComplete = () => {
241
- if (object.shadow.blur === maxBlur) {
242
- object.animating = true;
243
- object.animate('shadow.blur', minBlur, {
244
- easing: fabric_1.fabric.util.ease.easeInOutQuad,
245
- onChange: (value) => {
246
- object.shadow.blur = value;
247
- this.handler.canvas.requestRenderAll();
248
- },
249
- onComplete: () => {
250
- object.animating = false;
251
- if (object.superType === 'link') {
252
- object.set({
253
- stroke: object.originStroke,
254
- });
255
- }
256
- },
257
- });
258
- }
259
- };
260
- object.animating = true;
261
- object.animate('shadow.blur', maxBlur, {
262
- easing: fabric_1.fabric.util.ease.easeInOutQuad,
263
- duration,
264
- onChange: (value) => {
265
- object.shadow.blur = value;
266
- this.handler.canvas.requestRenderAll();
267
- },
268
- onComplete,
269
- });
270
- };
271
- this.handler = handler;
272
- }
273
- }
274
- exports.default = NodeHandler;
@@ -1,22 +0,0 @@
1
- import Handler from './Handler';
2
- import { NodeObject } from '../objects/Node';
3
- declare class PortHandler {
4
- handler?: Handler;
5
- constructor(handler: Handler);
6
- /**
7
- * Create port
8
- * @param {NodeObject} target
9
- */
10
- create: (target: NodeObject) => void;
11
- /**
12
- * Set coords port
13
- * @param {NodeObject} target
14
- */
15
- setCoords: (target: NodeObject) => void;
16
- /**
17
- * Recreate port
18
- * @param {NodeObject} target
19
- */
20
- recreate: (target: NodeObject) => void;
21
- }
22
- export default PortHandler;
@@ -1,179 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class PortHandler {
4
- constructor(handler) {
5
- /**
6
- * Create port
7
- * @param {NodeObject} target
8
- */
9
- this.create = (target) => {
10
- if (!target.createToPort) {
11
- return;
12
- }
13
- const toPort = target.createToPort(target.left + target.width / 2, target.top);
14
- if (toPort) {
15
- toPort.on('mouseover', () => {
16
- if (this.handler.interactionMode === 'link' &&
17
- this.handler.activeLine &&
18
- this.handler.activeLine.class === 'line') {
19
- if (toPort.links.some(link => link.fromNode === this.handler.activeLine.fromNode)) {
20
- toPort.set({
21
- fill: 'red',
22
- });
23
- this.handler.canvas.renderAll();
24
- return;
25
- }
26
- toPort.set({
27
- fill: 'green',
28
- });
29
- this.handler.canvas.renderAll();
30
- }
31
- });
32
- toPort.on('mouseout', () => {
33
- toPort.set({
34
- fill: toPort.originFill,
35
- });
36
- this.handler.canvas.renderAll();
37
- });
38
- this.handler.canvas.add(toPort);
39
- toPort.setCoords();
40
- this.handler.canvas.bringToFront(toPort);
41
- }
42
- const fromPort = target.createFromPort(target.left + target.width / 2, target.top + target.height);
43
- if (fromPort && fromPort.length) {
44
- fromPort.forEach(port => {
45
- if (port) {
46
- port.on('mouseover', () => {
47
- if (this.handler.interactionMode !== 'link') {
48
- if (port.enabled) {
49
- if (this.handler.activeLine) {
50
- port.set({
51
- fill: 'red',
52
- });
53
- this.handler.canvas.renderAll();
54
- return;
55
- }
56
- port.set({
57
- fill: 'green',
58
- });
59
- this.handler.canvas.renderAll();
60
- return;
61
- }
62
- port.set({
63
- fill: 'red',
64
- });
65
- this.handler.canvas.renderAll();
66
- }
67
- });
68
- port.on('mouseout', () => {
69
- if (this.handler.interactionMode !== 'link') {
70
- port.set({
71
- fill: port.enabled ? port.originFill : port.hoverFill,
72
- });
73
- }
74
- this.handler.canvas.renderAll();
75
- });
76
- this.handler.canvas.add(port);
77
- port.setCoords();
78
- this.handler.canvas.bringToFront(port);
79
- }
80
- });
81
- }
82
- };
83
- /**
84
- * Set coords port
85
- * @param {NodeObject} target
86
- */
87
- this.setCoords = (target) => {
88
- if (target.toPort) {
89
- const toCoords = {
90
- left: target.left + target.width / 2,
91
- top: target.top,
92
- };
93
- target.toPort.set({
94
- ...toCoords,
95
- });
96
- target.toPort.setCoords();
97
- if (target.toPort.links.length) {
98
- target.toPort.links.forEach(link => {
99
- const fromPort = link.fromNode.fromPort.filter(port => port.id === link.fromPort.id)[0];
100
- this.handler.linkHandler.setCoords(fromPort.left, fromPort.top, toCoords.left, toCoords.top, link);
101
- });
102
- }
103
- }
104
- if (target.fromPort) {
105
- const fromCoords = {
106
- left: target.left + target.width / 2,
107
- top: target.top + target.height,
108
- };
109
- target.fromPort.forEach(port => {
110
- const left = port.leftDiff ? fromCoords.left + port.leftDiff : fromCoords.left;
111
- const top = port.topDiff ? fromCoords.top + port.topDiff : fromCoords.top;
112
- port.set({
113
- left,
114
- top,
115
- });
116
- port.setCoords();
117
- if (port.links.length) {
118
- port.links.forEach(link => {
119
- this.handler.linkHandler.setCoords(left, top, link.toNode.toPort.left, link.toNode.toPort.top, link);
120
- });
121
- }
122
- });
123
- }
124
- };
125
- /**
126
- * Recreate port
127
- * @param {NodeObject} target
128
- */
129
- this.recreate = (target) => {
130
- const { fromPort, toPort } = target;
131
- const ports = target.ports;
132
- if (ports) {
133
- ports.forEach(port => {
134
- target.removeWithUpdate(port);
135
- this.handler.canvas.remove(port.fromPort);
136
- });
137
- }
138
- this.handler.canvas.remove(target.toPort);
139
- if (target.toPort) {
140
- target.toPort.links.forEach(link => {
141
- this.handler.linkHandler.remove(link, 'from');
142
- });
143
- }
144
- if (target.fromPort) {
145
- target.fromPort.forEach((port) => {
146
- if (port.links.length) {
147
- port.links.forEach((link) => {
148
- this.handler.linkHandler.remove(link, 'to');
149
- });
150
- }
151
- });
152
- }
153
- this.create(target);
154
- toPort.links.forEach((link) => {
155
- link.fromNode = link.fromNode.id;
156
- link.fromPort = link.fromPort.id;
157
- link.toNode = target.toPort.nodeId;
158
- link.toPort = target.toPort.id;
159
- this.handler.linkHandler.create(link);
160
- });
161
- fromPort
162
- .filter(op => target.fromPort.some(np => np.id === op.id))
163
- .forEach(port => {
164
- port.links.forEach((link) => {
165
- if (link.fromPort.id === port.id) {
166
- link.fromNode = port.nodeId;
167
- link.fromPort = port.id;
168
- link.toNode = link.toNode.id;
169
- link.toPort = link.toPort.id;
170
- this.handler.linkHandler.create(link);
171
- this.setCoords(target);
172
- }
173
- });
174
- });
175
- };
176
- this.handler = handler;
177
- }
178
- }
179
- exports.default = PortHandler;
@@ -1,119 +0,0 @@
1
- import Handler from './Handler';
2
- import { KeyEvent } from '../utils';
3
- /**
4
- * Shortcut Handler Class
5
- *
6
- * @author salgum1114
7
- * @class ShortcutHandler
8
- */
9
- declare class ShortcutHandler {
10
- handler: Handler;
11
- keyEvent: KeyEvent;
12
- constructor(handler: Handler);
13
- /**
14
- * Whether keydown Escape
15
- *
16
- * @param {KeyboardEvent} e
17
- * @returns
18
- */
19
- isEscape: (e: KeyboardEvent) => boolean;
20
- /**
21
- * Whether keydown Q
22
- *
23
- * @param {KeyboardEvent} e
24
- * @returns
25
- */
26
- isQ: (e: KeyboardEvent) => boolean;
27
- /**
28
- * Whether keydown W
29
- *
30
- * @param {KeyboardEvent} e
31
- * @returns
32
- */
33
- isW: (e: KeyboardEvent) => boolean;
34
- /**
35
- * Whether keydown Delete or Backpsace
36
- *
37
- * @param {KeyboardEvent} e
38
- * @returns
39
- */
40
- isDelete: (e: KeyboardEvent) => boolean;
41
- /**
42
- * Whether keydown Arrow
43
- *
44
- * @param {KeyboardEvent} e
45
- * @returns
46
- */
47
- isArrow: (e: KeyboardEvent) => boolean;
48
- /**
49
- * Whether keydown Ctrl + A
50
- *
51
- * @param {KeyboardEvent} e
52
- * @returns
53
- */
54
- isCtrlA: (e: KeyboardEvent) => boolean;
55
- /**
56
- * Whether keydown Ctrl + C
57
- *
58
- * @param {KeyboardEvent} e
59
- * @returns
60
- */
61
- isCtrlC: (e: KeyboardEvent) => boolean;
62
- /**
63
- * Whether keydown Ctrl + V
64
- *
65
- * @param {KeyboardEvent} e
66
- * @returns
67
- */
68
- isCtrlV: (e: KeyboardEvent) => boolean;
69
- /**
70
- * Whether keydown Ctrl + Z
71
- *
72
- * @param {KeyboardEvent} e
73
- * @returns
74
- */
75
- isCtrlZ: (e: KeyboardEvent) => boolean;
76
- /**
77
- * Whether keydown Ctrl + Y
78
- *
79
- * @param {KeyboardEvent} e
80
- * @returns
81
- */
82
- isCtrlY: (e: KeyboardEvent) => boolean;
83
- /**
84
- * Whether keydown Plus Or Equal
85
- *
86
- * @param {KeyboardEvent} e
87
- * @returns
88
- */
89
- isPlus: (e: KeyboardEvent) => boolean;
90
- /**
91
- * Whether keydown Minus
92
- *
93
- * @param {KeyboardEvent} e
94
- * @returns
95
- */
96
- isMinus: (e: KeyboardEvent) => boolean;
97
- /**
98
- * Whether keydown O
99
- *
100
- * @param {KeyboardEvent} e
101
- * @returns
102
- */
103
- isO: (e: KeyboardEvent) => boolean;
104
- /**
105
- * Whether keydown P
106
- *
107
- * @param {KeyboardEvent} e
108
- * @returns
109
- */
110
- isP: (e: KeyboardEvent) => boolean;
111
- /**
112
- * Whether keydown Ctrl + X
113
- *
114
- * @param {KeyboardEvent} e
115
- * @returns
116
- */
117
- isCtrlX: (e: KeyboardEvent) => boolean;
118
- }
119
- export default ShortcutHandler;