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