@yorab/react-paint 0.4.0 → 0.5.0
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 +1 -0
- package/dist/components/App.js +61 -72
- package/dist/components/Canvas.js +31 -18
- package/dist/components/common/Button.js +4 -4
- package/dist/components/common/Loading.js +3 -3
- package/dist/components/common/Modal.js +3 -3
- package/dist/components/common/Panel.js +2 -2
- package/dist/components/common/Snackbar.js +2 -2
- package/dist/components/settings/ColorField.js +11 -15
- package/dist/components/settings/FontFamilyField.js +7 -5
- package/dist/components/settings/LayoutButton.js +1 -1
- package/dist/components/settings/Layouts.js +9 -9
- package/dist/components/settings/LineArrowField.js +8 -6
- package/dist/components/settings/LineTypeField.js +7 -5
- package/dist/components/settings/PointsNumberField.js +19 -29
- package/dist/components/settings/RangeField.js +2 -1
- package/dist/components/settings/SelectField.js +2 -1
- package/dist/components/settings/SettingsBar.js +107 -80
- package/dist/components/toolbox/EditTextBox.js +6 -6
- package/dist/components/toolbox/LoadFileTool.js +5 -3
- package/dist/components/toolbox/MenuGroup.js +55 -29
- package/dist/components/toolbox/PictureUrlInput.js +1 -1
- package/dist/components/toolbox/Tool.js +4 -4
- package/dist/components/toolbox/Toolbar.js +82 -59
- package/dist/components/toolbox/ToolbarGroup.js +21 -25
- package/dist/constants/style.js +3 -1
- package/dist/constants/tools.js +420 -0
- package/dist/hooks/useComponent.js +6 -2
- package/dist/hooks/useDrawableCanvas.js +28 -19
- package/dist/styles.css +51 -54
- package/dist/types/Shapes.js +2 -16
- package/dist/types/tools.js +22 -0
- package/dist/utils/data.js +81 -25
- package/dist/utils/style.js +4 -2
- package/dist/utils/toolbar.js +66 -11
- package/dist/utils/transform.js +3 -3
- package/package.json +1 -1
- package/Changelog.md +0 -62
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UPLOAD_PICTURE_TOOL = exports.UNDO_TOOL = exports.SETTINGS_DEFAULT_TEXT = exports.SETTINGS_DEFAULT_SQUARE = exports.SETTINGS_DEFAULT_RECT = exports.SETTINGS_DEFAULT_POLYGON = exports.SETTINGS_DEFAULT_PICTURE = exports.SETTINGS_DEFAULT_LINE = exports.SETTINGS_DEFAULT_ELLIPSE = exports.SETTINGS_DEFAULT_CURVE = exports.SETTINGS_DEFAULT_CIRCLE = exports.SETTINGS_DEFAULT_BRUSH = exports.SELECTION_TOOL = exports.SAVE_TOOL = exports.REDO_TOOL = exports.MOVE_TOOL = exports.LOAD_TOOL = exports.EXPORT_TOOL = exports.DEFAULT_SHAPE_TOOLS = exports.DEFAULT_SHAPE_TEXT = exports.DEFAULT_SHAPE_SQUARE = exports.DEFAULT_SHAPE_RECT = exports.DEFAULT_SHAPE_POLYGON = exports.DEFAULT_SHAPE_PICTURE = exports.DEFAULT_SHAPE_LINE = exports.DEFAULT_SHAPE_ELLIPSE = exports.DEFAULT_SHAPE_CURVE = exports.DEFAULT_SHAPE_CIRCLE = exports.DEFAULT_SHAPE_BRUSH = exports.CLEAR_TOOL = exports.ADD_URL_PICTURE_TOOL = void 0;
|
|
7
|
+
|
|
8
|
+
var _Shapes = require("../types/Shapes");
|
|
9
|
+
|
|
10
|
+
var _tools = require("../types/tools");
|
|
11
|
+
|
|
12
|
+
var _icons = require("./icons");
|
|
13
|
+
|
|
14
|
+
var _style = require("./style");
|
|
15
|
+
|
|
16
|
+
var PREFIX_ID = 'react-paint-';
|
|
17
|
+
var SETTINGS_DEFAULT_RECT = {
|
|
18
|
+
strokeColor: {
|
|
19
|
+
values: _style.STYLE_COLORS,
|
|
20
|
+
"default": 'black'
|
|
21
|
+
},
|
|
22
|
+
fillColor: {
|
|
23
|
+
values: _style.STYLE_COLORS,
|
|
24
|
+
"default": 'transparent'
|
|
25
|
+
},
|
|
26
|
+
opacity: {
|
|
27
|
+
min: 0,
|
|
28
|
+
max: 100,
|
|
29
|
+
step: 1,
|
|
30
|
+
"default": 100
|
|
31
|
+
},
|
|
32
|
+
lineWidth: {
|
|
33
|
+
min: 1,
|
|
34
|
+
max: 20,
|
|
35
|
+
step: 1,
|
|
36
|
+
"default": 1
|
|
37
|
+
},
|
|
38
|
+
lineDash: {
|
|
39
|
+
values: _style.STYLE_LINE_DASH,
|
|
40
|
+
"default": 0
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.SETTINGS_DEFAULT_RECT = SETTINGS_DEFAULT_RECT;
|
|
44
|
+
var SETTINGS_DEFAULT_SQUARE = {
|
|
45
|
+
strokeColor: {
|
|
46
|
+
values: _style.STYLE_COLORS,
|
|
47
|
+
"default": 'black'
|
|
48
|
+
},
|
|
49
|
+
fillColor: {
|
|
50
|
+
values: _style.STYLE_COLORS,
|
|
51
|
+
"default": 'transparent'
|
|
52
|
+
},
|
|
53
|
+
opacity: {
|
|
54
|
+
min: 0,
|
|
55
|
+
max: 100,
|
|
56
|
+
step: 1,
|
|
57
|
+
"default": 100
|
|
58
|
+
},
|
|
59
|
+
lineWidth: {
|
|
60
|
+
min: 1,
|
|
61
|
+
max: 20,
|
|
62
|
+
step: 1,
|
|
63
|
+
"default": 1
|
|
64
|
+
},
|
|
65
|
+
lineDash: {
|
|
66
|
+
values: _style.STYLE_LINE_DASH,
|
|
67
|
+
"default": 0
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.SETTINGS_DEFAULT_SQUARE = SETTINGS_DEFAULT_SQUARE;
|
|
71
|
+
var SETTINGS_DEFAULT_CIRCLE = {
|
|
72
|
+
strokeColor: {
|
|
73
|
+
values: _style.STYLE_COLORS,
|
|
74
|
+
"default": 'black'
|
|
75
|
+
},
|
|
76
|
+
fillColor: {
|
|
77
|
+
values: _style.STYLE_COLORS,
|
|
78
|
+
"default": 'transparent'
|
|
79
|
+
},
|
|
80
|
+
opacity: {
|
|
81
|
+
min: 0,
|
|
82
|
+
max: 100,
|
|
83
|
+
step: 1,
|
|
84
|
+
"default": 100
|
|
85
|
+
},
|
|
86
|
+
lineWidth: {
|
|
87
|
+
min: 1,
|
|
88
|
+
max: 20,
|
|
89
|
+
step: 1,
|
|
90
|
+
"default": 1
|
|
91
|
+
},
|
|
92
|
+
lineDash: {
|
|
93
|
+
values: _style.STYLE_LINE_DASH,
|
|
94
|
+
"default": 0
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
exports.SETTINGS_DEFAULT_CIRCLE = SETTINGS_DEFAULT_CIRCLE;
|
|
98
|
+
var SETTINGS_DEFAULT_ELLIPSE = {
|
|
99
|
+
strokeColor: {
|
|
100
|
+
values: _style.STYLE_COLORS,
|
|
101
|
+
"default": 'black'
|
|
102
|
+
},
|
|
103
|
+
fillColor: {
|
|
104
|
+
values: _style.STYLE_COLORS,
|
|
105
|
+
"default": 'transparent'
|
|
106
|
+
},
|
|
107
|
+
opacity: {
|
|
108
|
+
min: 0,
|
|
109
|
+
max: 100,
|
|
110
|
+
step: 1,
|
|
111
|
+
"default": 100
|
|
112
|
+
},
|
|
113
|
+
lineWidth: {
|
|
114
|
+
min: 1,
|
|
115
|
+
max: 20,
|
|
116
|
+
step: 1,
|
|
117
|
+
"default": 1
|
|
118
|
+
},
|
|
119
|
+
lineDash: {
|
|
120
|
+
values: _style.STYLE_LINE_DASH,
|
|
121
|
+
"default": 0
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
exports.SETTINGS_DEFAULT_ELLIPSE = SETTINGS_DEFAULT_ELLIPSE;
|
|
125
|
+
var SETTINGS_DEFAULT_PICTURE = {
|
|
126
|
+
opacity: {
|
|
127
|
+
min: 0,
|
|
128
|
+
max: 100,
|
|
129
|
+
step: 1,
|
|
130
|
+
"default": 100
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
exports.SETTINGS_DEFAULT_PICTURE = SETTINGS_DEFAULT_PICTURE;
|
|
134
|
+
var SETTINGS_DEFAULT_TEXT = {
|
|
135
|
+
strokeColor: {
|
|
136
|
+
values: _style.STYLE_COLORS,
|
|
137
|
+
"default": 'black'
|
|
138
|
+
},
|
|
139
|
+
opacity: {
|
|
140
|
+
min: 0,
|
|
141
|
+
max: 100,
|
|
142
|
+
step: 1,
|
|
143
|
+
"default": 100
|
|
144
|
+
},
|
|
145
|
+
fontFamily: {
|
|
146
|
+
values: _style.STYLE_FONTS,
|
|
147
|
+
"default": _style.STYLE_FONT_DEFAULT
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
exports.SETTINGS_DEFAULT_TEXT = SETTINGS_DEFAULT_TEXT;
|
|
151
|
+
var SETTINGS_DEFAULT_BRUSH = {
|
|
152
|
+
strokeColor: {
|
|
153
|
+
values: _style.STYLE_COLORS,
|
|
154
|
+
"default": 'black'
|
|
155
|
+
},
|
|
156
|
+
opacity: {
|
|
157
|
+
min: 0,
|
|
158
|
+
max: 100,
|
|
159
|
+
step: 1,
|
|
160
|
+
"default": 100
|
|
161
|
+
},
|
|
162
|
+
lineWidth: {
|
|
163
|
+
min: 6,
|
|
164
|
+
max: 20,
|
|
165
|
+
step: 2,
|
|
166
|
+
"default": 10
|
|
167
|
+
},
|
|
168
|
+
lineDash: {
|
|
169
|
+
values: _style.STYLE_LINE_DASH,
|
|
170
|
+
"default": 0
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
exports.SETTINGS_DEFAULT_BRUSH = SETTINGS_DEFAULT_BRUSH;
|
|
174
|
+
var SETTINGS_DEFAULT_LINE = {
|
|
175
|
+
strokeColor: {
|
|
176
|
+
values: _style.STYLE_COLORS,
|
|
177
|
+
"default": 'black'
|
|
178
|
+
},
|
|
179
|
+
opacity: {
|
|
180
|
+
min: 0,
|
|
181
|
+
max: 100,
|
|
182
|
+
step: 1,
|
|
183
|
+
"default": 100
|
|
184
|
+
},
|
|
185
|
+
lineWidth: {
|
|
186
|
+
min: 1,
|
|
187
|
+
max: 20,
|
|
188
|
+
step: 1,
|
|
189
|
+
"default": 1
|
|
190
|
+
},
|
|
191
|
+
lineDash: {
|
|
192
|
+
values: _style.STYLE_LINE_DASH,
|
|
193
|
+
"default": 0
|
|
194
|
+
},
|
|
195
|
+
lineArrow: {
|
|
196
|
+
values: _style.STYLE_LINE_WITH_ARROW,
|
|
197
|
+
"default": 0
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
exports.SETTINGS_DEFAULT_LINE = SETTINGS_DEFAULT_LINE;
|
|
201
|
+
var SETTINGS_DEFAULT_POLYGON = {
|
|
202
|
+
strokeColor: {
|
|
203
|
+
values: _style.STYLE_COLORS,
|
|
204
|
+
"default": 'black'
|
|
205
|
+
},
|
|
206
|
+
fillColor: {
|
|
207
|
+
values: _style.STYLE_COLORS,
|
|
208
|
+
"default": 'black'
|
|
209
|
+
},
|
|
210
|
+
opacity: {
|
|
211
|
+
min: 0,
|
|
212
|
+
max: 100,
|
|
213
|
+
step: 1,
|
|
214
|
+
"default": 100
|
|
215
|
+
},
|
|
216
|
+
lineWidth: {
|
|
217
|
+
min: 1,
|
|
218
|
+
max: 20,
|
|
219
|
+
step: 1,
|
|
220
|
+
"default": 1
|
|
221
|
+
},
|
|
222
|
+
lineDash: {
|
|
223
|
+
values: _style.STYLE_LINE_DASH,
|
|
224
|
+
"default": 0
|
|
225
|
+
},
|
|
226
|
+
pointsCount: {
|
|
227
|
+
min: 3,
|
|
228
|
+
max: 10,
|
|
229
|
+
step: 1,
|
|
230
|
+
"default": 3
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
exports.SETTINGS_DEFAULT_POLYGON = SETTINGS_DEFAULT_POLYGON;
|
|
234
|
+
var SETTINGS_DEFAULT_CURVE = {
|
|
235
|
+
strokeColor: {
|
|
236
|
+
values: _style.STYLE_COLORS,
|
|
237
|
+
"default": 'black'
|
|
238
|
+
},
|
|
239
|
+
fillColor: {
|
|
240
|
+
values: _style.STYLE_COLORS,
|
|
241
|
+
"default": 'black'
|
|
242
|
+
},
|
|
243
|
+
opacity: {
|
|
244
|
+
min: 0,
|
|
245
|
+
max: 100,
|
|
246
|
+
step: 1,
|
|
247
|
+
"default": 100
|
|
248
|
+
},
|
|
249
|
+
lineWidth: {
|
|
250
|
+
min: 1,
|
|
251
|
+
max: 20,
|
|
252
|
+
step: 1,
|
|
253
|
+
"default": 1
|
|
254
|
+
},
|
|
255
|
+
lineDash: {
|
|
256
|
+
values: _style.STYLE_LINE_DASH,
|
|
257
|
+
"default": 0
|
|
258
|
+
},
|
|
259
|
+
pointsCount: {
|
|
260
|
+
min: 3,
|
|
261
|
+
max: 10,
|
|
262
|
+
step: 1,
|
|
263
|
+
"default": 3
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
exports.SETTINGS_DEFAULT_CURVE = SETTINGS_DEFAULT_CURVE;
|
|
267
|
+
var DEFAULT_SHAPE_PICTURE = {
|
|
268
|
+
type: _Shapes.ShapeEnum.picture,
|
|
269
|
+
id: "".concat(PREFIX_ID, "picture"),
|
|
270
|
+
icon: _icons.pictureIcon,
|
|
271
|
+
lib: 'Image',
|
|
272
|
+
settings: SETTINGS_DEFAULT_PICTURE
|
|
273
|
+
};
|
|
274
|
+
exports.DEFAULT_SHAPE_PICTURE = DEFAULT_SHAPE_PICTURE;
|
|
275
|
+
var DEFAULT_SHAPE_BRUSH = {
|
|
276
|
+
type: _Shapes.ShapeEnum.brush,
|
|
277
|
+
id: "".concat(PREFIX_ID, "brush"),
|
|
278
|
+
icon: _icons.brushIcon,
|
|
279
|
+
lib: 'Brosse',
|
|
280
|
+
settings: SETTINGS_DEFAULT_BRUSH
|
|
281
|
+
};
|
|
282
|
+
exports.DEFAULT_SHAPE_BRUSH = DEFAULT_SHAPE_BRUSH;
|
|
283
|
+
var DEFAULT_SHAPE_LINE = {
|
|
284
|
+
type: _Shapes.ShapeEnum.line,
|
|
285
|
+
id: "".concat(PREFIX_ID, "line"),
|
|
286
|
+
icon: _icons.arrowIcon,
|
|
287
|
+
lib: 'Ligne',
|
|
288
|
+
settings: SETTINGS_DEFAULT_LINE
|
|
289
|
+
};
|
|
290
|
+
exports.DEFAULT_SHAPE_LINE = DEFAULT_SHAPE_LINE;
|
|
291
|
+
var DEFAULT_SHAPE_POLYGON = {
|
|
292
|
+
type: _Shapes.ShapeEnum.polygon,
|
|
293
|
+
id: "".concat(PREFIX_ID, "polygon"),
|
|
294
|
+
icon: _icons.polygonIcon,
|
|
295
|
+
lib: 'Polygone',
|
|
296
|
+
settings: SETTINGS_DEFAULT_POLYGON
|
|
297
|
+
};
|
|
298
|
+
exports.DEFAULT_SHAPE_POLYGON = DEFAULT_SHAPE_POLYGON;
|
|
299
|
+
var DEFAULT_SHAPE_CURVE = {
|
|
300
|
+
type: _Shapes.ShapeEnum.curve,
|
|
301
|
+
id: "".concat(PREFIX_ID, "curve"),
|
|
302
|
+
icon: _icons.curveIcon,
|
|
303
|
+
lib: 'Courbe',
|
|
304
|
+
settings: SETTINGS_DEFAULT_CURVE
|
|
305
|
+
};
|
|
306
|
+
exports.DEFAULT_SHAPE_CURVE = DEFAULT_SHAPE_CURVE;
|
|
307
|
+
var DEFAULT_SHAPE_RECT = {
|
|
308
|
+
type: _Shapes.ShapeEnum.rect,
|
|
309
|
+
id: "".concat(PREFIX_ID, "rect"),
|
|
310
|
+
icon: _icons.squareIcon,
|
|
311
|
+
// temporary
|
|
312
|
+
lib: 'Rectangle',
|
|
313
|
+
settings: SETTINGS_DEFAULT_RECT
|
|
314
|
+
};
|
|
315
|
+
exports.DEFAULT_SHAPE_RECT = DEFAULT_SHAPE_RECT;
|
|
316
|
+
var DEFAULT_SHAPE_SQUARE = {
|
|
317
|
+
type: _Shapes.ShapeEnum.square,
|
|
318
|
+
id: "".concat(PREFIX_ID, "square"),
|
|
319
|
+
icon: _icons.squareIcon,
|
|
320
|
+
lib: 'Carré',
|
|
321
|
+
settings: SETTINGS_DEFAULT_SQUARE
|
|
322
|
+
};
|
|
323
|
+
exports.DEFAULT_SHAPE_SQUARE = DEFAULT_SHAPE_SQUARE;
|
|
324
|
+
var DEFAULT_SHAPE_CIRCLE = {
|
|
325
|
+
type: _Shapes.ShapeEnum.circle,
|
|
326
|
+
id: "".concat(PREFIX_ID, "circle"),
|
|
327
|
+
icon: _icons.circleIcon,
|
|
328
|
+
lib: 'Cercle',
|
|
329
|
+
settings: SETTINGS_DEFAULT_CIRCLE
|
|
330
|
+
};
|
|
331
|
+
exports.DEFAULT_SHAPE_CIRCLE = DEFAULT_SHAPE_CIRCLE;
|
|
332
|
+
var DEFAULT_SHAPE_ELLIPSE = {
|
|
333
|
+
type: _Shapes.ShapeEnum.ellipse,
|
|
334
|
+
id: "".concat(PREFIX_ID, "ellipse"),
|
|
335
|
+
icon: _icons.circleIcon,
|
|
336
|
+
// temporary
|
|
337
|
+
lib: 'Ellipse',
|
|
338
|
+
settings: SETTINGS_DEFAULT_ELLIPSE
|
|
339
|
+
};
|
|
340
|
+
exports.DEFAULT_SHAPE_ELLIPSE = DEFAULT_SHAPE_ELLIPSE;
|
|
341
|
+
var DEFAULT_SHAPE_TEXT = {
|
|
342
|
+
type: _Shapes.ShapeEnum.text,
|
|
343
|
+
id: "".concat(PREFIX_ID, "text"),
|
|
344
|
+
icon: _icons.textIcon,
|
|
345
|
+
lib: 'Texte',
|
|
346
|
+
settings: SETTINGS_DEFAULT_TEXT
|
|
347
|
+
};
|
|
348
|
+
exports.DEFAULT_SHAPE_TEXT = DEFAULT_SHAPE_TEXT;
|
|
349
|
+
var DEFAULT_SHAPE_TOOLS = [DEFAULT_SHAPE_BRUSH, DEFAULT_SHAPE_LINE, DEFAULT_SHAPE_POLYGON, DEFAULT_SHAPE_CURVE, DEFAULT_SHAPE_RECT, DEFAULT_SHAPE_SQUARE, DEFAULT_SHAPE_CIRCLE, DEFAULT_SHAPE_ELLIPSE, DEFAULT_SHAPE_PICTURE, DEFAULT_SHAPE_TEXT];
|
|
350
|
+
exports.DEFAULT_SHAPE_TOOLS = DEFAULT_SHAPE_TOOLS;
|
|
351
|
+
var SELECTION_TOOL = {
|
|
352
|
+
id: "".concat(PREFIX_ID, "selection"),
|
|
353
|
+
type: _tools.ActionsEnum.selection,
|
|
354
|
+
icon: _icons.selectIcon,
|
|
355
|
+
lib: 'Sélection'
|
|
356
|
+
};
|
|
357
|
+
exports.SELECTION_TOOL = SELECTION_TOOL;
|
|
358
|
+
var UNDO_TOOL = {
|
|
359
|
+
id: "".concat(PREFIX_ID, "undo"),
|
|
360
|
+
type: _tools.ActionsEnum.undo,
|
|
361
|
+
icon: _icons.undoIcon,
|
|
362
|
+
lib: 'Undo'
|
|
363
|
+
};
|
|
364
|
+
exports.UNDO_TOOL = UNDO_TOOL;
|
|
365
|
+
var REDO_TOOL = {
|
|
366
|
+
id: "".concat(PREFIX_ID, "redo"),
|
|
367
|
+
type: _tools.ActionsEnum.redo,
|
|
368
|
+
icon: _icons.redoIcon,
|
|
369
|
+
lib: 'Redo'
|
|
370
|
+
};
|
|
371
|
+
exports.REDO_TOOL = REDO_TOOL;
|
|
372
|
+
var CLEAR_TOOL = {
|
|
373
|
+
id: "".concat(PREFIX_ID, "clear"),
|
|
374
|
+
type: _tools.ActionsEnum.clear,
|
|
375
|
+
icon: _icons.clearIcon,
|
|
376
|
+
lib: 'Clear'
|
|
377
|
+
};
|
|
378
|
+
exports.CLEAR_TOOL = CLEAR_TOOL;
|
|
379
|
+
var EXPORT_TOOL = {
|
|
380
|
+
id: "".concat(PREFIX_ID, "export"),
|
|
381
|
+
type: _tools.ActionsEnum["export"],
|
|
382
|
+
icon: _icons.exportFileIcon,
|
|
383
|
+
lib: 'Export PNG'
|
|
384
|
+
};
|
|
385
|
+
exports.EXPORT_TOOL = EXPORT_TOOL;
|
|
386
|
+
var LOAD_TOOL = {
|
|
387
|
+
id: "".concat(PREFIX_ID, "load"),
|
|
388
|
+
type: _tools.ActionsEnum.loadFile,
|
|
389
|
+
icon: _icons.openFileIcon,
|
|
390
|
+
lib: 'Load project'
|
|
391
|
+
};
|
|
392
|
+
exports.LOAD_TOOL = LOAD_TOOL;
|
|
393
|
+
var SAVE_TOOL = {
|
|
394
|
+
id: "".concat(PREFIX_ID, "save"),
|
|
395
|
+
type: _tools.ActionsEnum.saveFile,
|
|
396
|
+
icon: _icons.saveIcon,
|
|
397
|
+
lib: 'Save project'
|
|
398
|
+
};
|
|
399
|
+
exports.SAVE_TOOL = SAVE_TOOL;
|
|
400
|
+
var MOVE_TOOL = {
|
|
401
|
+
id: "".concat(PREFIX_ID, "move"),
|
|
402
|
+
type: _tools.ActionsEnum.move,
|
|
403
|
+
icon: _icons.selectIcon,
|
|
404
|
+
lib: 'Move'
|
|
405
|
+
};
|
|
406
|
+
exports.MOVE_TOOL = MOVE_TOOL;
|
|
407
|
+
var UPLOAD_PICTURE_TOOL = {
|
|
408
|
+
id: "".concat(PREFIX_ID, "upload-picture"),
|
|
409
|
+
type: _tools.ActionsEnum.uploadPicture,
|
|
410
|
+
icon: _icons.pictureIcon,
|
|
411
|
+
lib: 'Upload picture'
|
|
412
|
+
};
|
|
413
|
+
exports.UPLOAD_PICTURE_TOOL = UPLOAD_PICTURE_TOOL;
|
|
414
|
+
var ADD_URL_PICTURE_TOOL = {
|
|
415
|
+
id: "".concat(PREFIX_ID, "upload-picture"),
|
|
416
|
+
type: _tools.ActionsEnum.addUrlPicture,
|
|
417
|
+
icon: _icons.pictureIcon,
|
|
418
|
+
lib: 'Add picture from URL'
|
|
419
|
+
};
|
|
420
|
+
exports.ADD_URL_PICTURE_TOOL = ADD_URL_PICTURE_TOOL;
|
|
@@ -28,8 +28,12 @@ var useComponent = function useComponent(_ref) {
|
|
|
28
28
|
if (disabled) {
|
|
29
29
|
setIsInsideComponent(false);
|
|
30
30
|
} else {
|
|
31
|
-
document.addEventListener('mousedown', onDetectClick
|
|
32
|
-
|
|
31
|
+
document.addEventListener('mousedown', onDetectClick, {
|
|
32
|
+
passive: true
|
|
33
|
+
});
|
|
34
|
+
document.addEventListener('touchstart', onDetectClick, {
|
|
35
|
+
passive: true
|
|
36
|
+
});
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
return function () {
|
|
@@ -25,8 +25,12 @@ var _transform = require("../utils/transform");
|
|
|
25
25
|
|
|
26
26
|
var _data = require("../utils/data");
|
|
27
27
|
|
|
28
|
+
var _tools = require("../types/tools");
|
|
29
|
+
|
|
30
|
+
var _tools2 = require("../constants/tools");
|
|
31
|
+
|
|
28
32
|
var handleMove = function handleMove(e, canvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding) {
|
|
29
|
-
if (activeTool ===
|
|
33
|
+
if (activeTool.type === _tools.ActionsEnum.move && canvasOffsetStartPosition !== undefined) {
|
|
30
34
|
var _cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
|
|
31
35
|
|
|
32
36
|
setCanvasOffset([_cursorPosition[0] - canvasOffsetStartPosition[0], _cursorPosition[1] - canvasOffsetStartPosition[1]]);
|
|
@@ -62,7 +66,6 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
|
|
|
62
66
|
drawCanvasRef = _ref.drawCanvasRef,
|
|
63
67
|
setActiveTool = _ref.setActiveTool,
|
|
64
68
|
shapes = _ref.shapes,
|
|
65
|
-
defaultConf = _ref.defaultConf,
|
|
66
69
|
selectionMode = _ref.selectionMode,
|
|
67
70
|
activeTool = _ref.activeTool,
|
|
68
71
|
isInsideComponent = _ref.isInsideComponent,
|
|
@@ -111,17 +114,17 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
|
|
|
111
114
|
var handleMouseUp = function handleMouseUp(e) {
|
|
112
115
|
if (selectionMode.mode === _Mode.SelectionModeLib.textedition) return;
|
|
113
116
|
|
|
114
|
-
if (activeTool === _Shapes.ShapeEnum.text) {
|
|
117
|
+
if (activeTool.type === _Shapes.ShapeEnum.text) {
|
|
115
118
|
var _drawCanvasRef$curren;
|
|
116
119
|
|
|
117
120
|
var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
|
|
118
121
|
var drawCtx = (_drawCanvasRef$curren = drawCanvasRef.current) === null || _drawCanvasRef$curren === void 0 ? void 0 : _drawCanvasRef$curren.getContext('2d');
|
|
119
122
|
if (!drawCtx) return;
|
|
120
123
|
|
|
121
|
-
var _newShape2 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition
|
|
124
|
+
var _newShape2 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
|
|
122
125
|
|
|
123
126
|
addShape(_newShape2);
|
|
124
|
-
setActiveTool(
|
|
127
|
+
setActiveTool(_tools2.SELECTION_TOOL);
|
|
125
128
|
setSelectedShape(_newShape2);
|
|
126
129
|
setSelectionMode({
|
|
127
130
|
mode: _Mode.SelectionModeLib.textedition,
|
|
@@ -149,7 +152,7 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
|
|
|
149
152
|
document.removeEventListener('touchend', handleMouseUp);
|
|
150
153
|
}
|
|
151
154
|
};
|
|
152
|
-
}, [isInsideComponent, selectionCanvasRef, drawCanvasRef, selectionMode, saveShapes, activeTool, addShape,
|
|
155
|
+
}, [isInsideComponent, selectionCanvasRef, drawCanvasRef, selectionMode, saveShapes, activeTool, addShape, width, height, scaleRatio, setActiveTool, setSelectedShape, setSelectionMode]);
|
|
153
156
|
(0, _react.useEffect)(function () {
|
|
154
157
|
var ref = selectionCanvasRef.current;
|
|
155
158
|
if (!ref) return;
|
|
@@ -159,32 +162,33 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
|
|
|
159
162
|
e.preventDefault();
|
|
160
163
|
var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
|
|
161
164
|
|
|
162
|
-
if (activeTool ===
|
|
165
|
+
if (activeTool.type === _tools.ActionsEnum.selection) {
|
|
163
166
|
var _selectShape = (0, _selection.selectShape)(shapes, cursorPosition, scaleRatio, canvasOffset, selectedShape, selectionPadding),
|
|
164
167
|
shape = _selectShape.shape,
|
|
165
168
|
mode = _selectShape.mode;
|
|
166
169
|
|
|
167
170
|
setSelectedShape(shape);
|
|
168
171
|
setSelectionMode(mode);
|
|
169
|
-
} else if (activeTool ===
|
|
172
|
+
} else if (activeTool.type === _tools.ActionsEnum.move) {
|
|
170
173
|
setCanvasOffsetStartPosition(cursorPosition);
|
|
171
174
|
}
|
|
172
175
|
|
|
173
|
-
if (_fp["default"].includes(activeTool, _Shapes.ShapeEnum)) {
|
|
176
|
+
if (_fp["default"].includes(activeTool.type, _Shapes.ShapeEnum)) {
|
|
174
177
|
var _drawCanvasRef$curren2;
|
|
175
178
|
|
|
176
179
|
var drawCtx = (_drawCanvasRef$curren2 = drawCanvasRef.current) === null || _drawCanvasRef$curren2 === void 0 ? void 0 : _drawCanvasRef$curren2.getContext('2d');
|
|
177
180
|
if (!drawCtx) return;
|
|
178
181
|
|
|
179
|
-
if (activeTool === _Shapes.ShapeEnum.brush) {
|
|
182
|
+
if (activeTool.type === _Shapes.ShapeEnum.brush) {
|
|
180
183
|
if (!!selectedShape) {
|
|
181
184
|
var _newShape3 = (0, _transform.createNewPointGroupToShape)(selectedShape, cursorPosition);
|
|
182
185
|
|
|
183
186
|
updateSingleShape(_newShape3);
|
|
184
187
|
setSelectedShape(_newShape3);
|
|
185
188
|
} else {
|
|
186
|
-
var _newShape4 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition
|
|
189
|
+
var _newShape4 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
|
|
187
190
|
|
|
191
|
+
if (!_newShape4) return;
|
|
188
192
|
addShape(_newShape4);
|
|
189
193
|
setSelectedShape(_newShape4);
|
|
190
194
|
}
|
|
@@ -192,35 +196,40 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
|
|
|
192
196
|
setSelectionMode({
|
|
193
197
|
mode: _Mode.SelectionModeLib.brush
|
|
194
198
|
});
|
|
195
|
-
} else if (activeTool !== _Shapes.ShapeEnum.text) {
|
|
196
|
-
var _newShape5 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition
|
|
199
|
+
} else if (activeTool.type !== _Shapes.ShapeEnum.text) {
|
|
200
|
+
var _newShape5 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
|
|
197
201
|
|
|
202
|
+
if (!_newShape5) return;
|
|
198
203
|
addShape(_newShape5);
|
|
199
|
-
setActiveTool(
|
|
204
|
+
setActiveTool(_tools2.SELECTION_TOOL);
|
|
200
205
|
setSelectedShape(_newShape5);
|
|
201
206
|
setSelectionMode({
|
|
202
207
|
mode: _Mode.SelectionModeLib.resize,
|
|
203
208
|
cursorStartPosition: cursorPosition,
|
|
204
209
|
originalShape: _newShape5,
|
|
205
|
-
anchor: activeTool === _Shapes.ShapeEnum.line || activeTool === _Shapes.ShapeEnum.polygon || activeTool === _Shapes.ShapeEnum.curve ? 0 : [1, 1]
|
|
210
|
+
anchor: activeTool.type === _Shapes.ShapeEnum.line || activeTool.type === _Shapes.ShapeEnum.polygon || activeTool.type === _Shapes.ShapeEnum.curve ? 0 : [1, 1]
|
|
206
211
|
});
|
|
207
212
|
}
|
|
208
213
|
}
|
|
209
214
|
};
|
|
210
215
|
|
|
211
|
-
ref.addEventListener('mousedown', handleMouseDown
|
|
212
|
-
|
|
216
|
+
ref.addEventListener('mousedown', handleMouseDown, {
|
|
217
|
+
passive: false
|
|
218
|
+
});
|
|
219
|
+
ref.addEventListener('touchstart', handleMouseDown, {
|
|
220
|
+
passive: false
|
|
221
|
+
});
|
|
213
222
|
return function () {
|
|
214
223
|
ref.removeEventListener('mousedown', handleMouseDown);
|
|
215
224
|
ref.removeEventListener('touchstart', handleMouseDown);
|
|
216
225
|
};
|
|
217
|
-
}, [disabled, selectionCanvasRef, drawCanvasRef, selectedShape, activeTool, canvasOffset, setCanvasOffsetStartPosition, shapes,
|
|
226
|
+
}, [disabled, selectionCanvasRef, drawCanvasRef, selectedShape, activeTool, canvasOffset, setCanvasOffsetStartPosition, shapes, width, height, scaleRatio, updateSingleShape, addShape, setActiveTool, setSelectedShape, setSelectionMode, selectionPadding]);
|
|
218
227
|
(0, _react.useEffect)(function () {
|
|
219
228
|
var ref = selectionCanvasRef.current;
|
|
220
229
|
if (!ref) return;
|
|
221
230
|
|
|
222
231
|
var handleDoubleClick = function handleDoubleClick(e) {
|
|
223
|
-
if (activeTool ===
|
|
232
|
+
if (activeTool.type === _tools.ActionsEnum.selection) {
|
|
224
233
|
if ((selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text) {
|
|
225
234
|
var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
|
|
226
235
|
|