@yorab/react-paint 0.4.2 → 0.6.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/Changelog.md +25 -0
- package/README.md +0 -6
- package/dist/components/App.js +52 -43
- package/dist/components/Canvas.js +6 -6
- package/dist/components/settings/ColorField.js +5 -5
- package/dist/components/settings/FontFamilyField.js +6 -4
- package/dist/components/settings/Layouts.js +17 -8
- package/dist/components/settings/LineArrowField.js +6 -4
- package/dist/components/settings/LineTypeField.js +6 -4
- package/dist/components/settings/PointsNumberField.js +20 -30
- package/dist/components/settings/RangeField.js +1 -0
- package/dist/components/settings/SelectField.js +1 -0
- package/dist/components/settings/SettingsBar.js +141 -88
- package/dist/components/settings/ToggleField.js +56 -0
- package/dist/components/toolbox/EditTextBox.js +17 -10
- package/dist/components/toolbox/LoadFileTool.js +5 -3
- package/dist/components/toolbox/MenuGroup.js +37 -44
- package/dist/components/toolbox/Tool.js +4 -4
- package/dist/components/toolbox/Toolbar.js +81 -69
- package/dist/components/toolbox/ToolbarGroup.js +29 -31
- package/dist/constants/icons.js +6 -2
- package/dist/constants/style.js +3 -1
- package/dist/constants/tools.js +428 -0
- package/dist/hooks/useDoubleClick.js +46 -0
- package/dist/hooks/useDrawableCanvas.js +42 -53
- package/dist/styles.css +10 -10
- package/dist/types/Shapes.js +2 -16
- package/dist/types/tools.js +22 -0
- package/dist/utils/data.js +106 -28
- package/dist/utils/draw.js +3 -3
- package/dist/utils/file.js +15 -14
- package/dist/utils/selection.js +1 -1
- package/dist/utils/style.js +4 -2
- package/dist/utils/toolbar.js +66 -11
- package/dist/utils/transform.js +24 -11
- package/package.json +1 -1
package/Changelog.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
# V0.6.1
|
|
2
|
+
|
|
3
|
+
- Fix shapes prop not refreshing component (introduced by 0.6.0)
|
|
4
|
+
|
|
5
|
+
# V0.6.0
|
|
6
|
+
|
|
7
|
+
- Fix text opacity range dancing in edit mode
|
|
8
|
+
- Fix opacity not visually shown in edit mode
|
|
9
|
+
- add delete button in layouts panel and update style
|
|
10
|
+
- update shape selection priority : use layers order, unless an anchor is
|
|
11
|
+
- stored data format updated
|
|
12
|
+
|
|
13
|
+
# V0.5.1
|
|
14
|
+
|
|
15
|
+
- add possibility to update default settings for a tool
|
|
16
|
+
- fix png export not working with url pic
|
|
17
|
+
- fix pictures missing id
|
|
18
|
+
- fix text tool
|
|
19
|
+
- double click for editing text is now working on mobile
|
|
20
|
+
- add bold and italic for text
|
|
21
|
+
|
|
22
|
+
# V0.5.0
|
|
23
|
+
|
|
24
|
+
- Add tool presets feature
|
|
25
|
+
|
|
1
26
|
# V.0.4.2
|
|
2
27
|
|
|
3
28
|
- fix toolgroup not displayed
|
package/README.md
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
# known issues :
|
|
2
2
|
|
|
3
|
-
## To resolve before beta release
|
|
4
|
-
|
|
5
|
-
- Text tool broken since 0.2.2
|
|
6
|
-
- double click not working with touch (fix: fake it counting delay between touch)
|
|
7
|
-
|
|
8
3
|
## mobile/touch
|
|
9
4
|
|
|
10
5
|
- dnd layout on mobile not working (fix : use dnd lib, or add touch listener to fake dnd, or provide alt UI)
|
|
@@ -14,5 +9,4 @@
|
|
|
14
9
|
- TextEdit cursor overflow MINOR (quick fix : edit on modale ?)
|
|
15
10
|
- TextEdit copy/paste containing html breaks display
|
|
16
11
|
- circle resizing only goes one direction
|
|
17
|
-
- New text component opacity range is dancing
|
|
18
12
|
- adding padding to selection result in wrong intersection calculs
|
package/dist/components/App.js
CHANGED
|
@@ -19,10 +19,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
19
19
|
|
|
20
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
21
|
|
|
22
|
-
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
23
|
-
|
|
24
|
-
var _Shapes = require("../types/Shapes");
|
|
25
|
-
|
|
26
22
|
var _Canvas = _interopRequireDefault(require("./Canvas"));
|
|
27
23
|
|
|
28
24
|
var _Layouts = _interopRequireDefault(require("./settings/Layouts"));
|
|
@@ -59,6 +55,12 @@ var _useResizeObserver = _interopRequireDefault(require("../hooks/useResizeObser
|
|
|
59
55
|
|
|
60
56
|
var _shapes = require("../constants/shapes");
|
|
61
57
|
|
|
58
|
+
var _toolbar = require("../utils/toolbar");
|
|
59
|
+
|
|
60
|
+
var _tools = require("../constants/tools");
|
|
61
|
+
|
|
62
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
63
|
+
|
|
62
64
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
63
65
|
|
|
64
66
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -131,7 +133,6 @@ var StyledRow = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
|
131
133
|
}]
|
|
132
134
|
}
|
|
133
135
|
});
|
|
134
|
-
var DEFAULT_TOOLS = [_Shapes.ShapeEnum.brush, _Shapes.ShapeEnum.line, _Shapes.ShapeEnum.polygon, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.ellipse, _Shapes.ShapeEnum.text, _Shapes.ShapeEnum.picture];
|
|
135
136
|
var DEFAULT_OPTIONS = {
|
|
136
137
|
layersManipulation: true,
|
|
137
138
|
gridVisible: false,
|
|
@@ -139,7 +140,9 @@ var DEFAULT_OPTIONS = {
|
|
|
139
140
|
canShrink: true,
|
|
140
141
|
withExport: true,
|
|
141
142
|
withLoadAndSave: true,
|
|
142
|
-
|
|
143
|
+
withUploadPicture: true,
|
|
144
|
+
withUrlPicture: false,
|
|
145
|
+
availableTools: _tools.DEFAULT_SHAPE_TOOLS,
|
|
143
146
|
uiStyle: {
|
|
144
147
|
toolbarBackgroundColor: 'white',
|
|
145
148
|
dividerColor: '#36418129',
|
|
@@ -183,6 +186,8 @@ var App = function App(_ref5) {
|
|
|
183
186
|
canShrink = _DEFAULT_OPTIONS$opti.canShrink,
|
|
184
187
|
withExport = _DEFAULT_OPTIONS$opti.withExport,
|
|
185
188
|
withLoadAndSave = _DEFAULT_OPTIONS$opti.withLoadAndSave,
|
|
189
|
+
withUploadPicture = _DEFAULT_OPTIONS$opti.withUploadPicture,
|
|
190
|
+
withUrlPicture = _DEFAULT_OPTIONS$opti.withUrlPicture,
|
|
186
191
|
availableToolsFromProps = _DEFAULT_OPTIONS$opti.availableTools;
|
|
187
192
|
|
|
188
193
|
var _DEFAULT_OPTIONS$uiSt = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS.uiStyle), (_options$uiStyle = options === null || options === void 0 ? void 0 : options.uiStyle) !== null && _options$uiStyle !== void 0 ? _options$uiStyle : {}),
|
|
@@ -216,7 +221,14 @@ var App = function App(_ref5) {
|
|
|
216
221
|
canvasSize = _useState2[0],
|
|
217
222
|
setCanvasSize = _useState2[1];
|
|
218
223
|
|
|
219
|
-
var
|
|
224
|
+
var _useState3 = (0, _react.useState)((0, _toolbar.sanitizeTools)(availableToolsFromProps, withUploadPicture || withUrlPicture)),
|
|
225
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
226
|
+
availableTools = _useState4[0],
|
|
227
|
+
setAvailableTools = _useState4[1];
|
|
228
|
+
|
|
229
|
+
(0, _react.useEffect)(function () {
|
|
230
|
+
setAvailableTools((0, _toolbar.sanitizeTools)(availableToolsFromProps, withUploadPicture || withUrlPicture));
|
|
231
|
+
}, [availableToolsFromProps, withUploadPicture, withUrlPicture]);
|
|
220
232
|
|
|
221
233
|
var _useComponent = (0, _useComponent2["default"])({
|
|
222
234
|
disabled: disabled,
|
|
@@ -224,22 +236,6 @@ var App = function App(_ref5) {
|
|
|
224
236
|
}),
|
|
225
237
|
isInsideComponent = _useComponent.isInsideComponent;
|
|
226
238
|
|
|
227
|
-
var _useState3 = (0, _react.useState)({
|
|
228
|
-
style: {
|
|
229
|
-
fillColor: 'transparent',
|
|
230
|
-
strokeColor: 'black',
|
|
231
|
-
globalAlpha: 100,
|
|
232
|
-
lineWidth: 1,
|
|
233
|
-
lineDash: 0,
|
|
234
|
-
lineArrow: 0,
|
|
235
|
-
pointsCount: 3,
|
|
236
|
-
fontFamily: _style.STYLE_FONT_DEFAULT
|
|
237
|
-
}
|
|
238
|
-
}),
|
|
239
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
240
|
-
defaultConf = _useState4[0],
|
|
241
|
-
setDefaultConf = _useState4[1];
|
|
242
|
-
|
|
243
239
|
var _useState5 = (0, _react.useState)(false),
|
|
244
240
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
245
241
|
isLoading = _useState6[0],
|
|
@@ -260,7 +256,7 @@ var App = function App(_ref5) {
|
|
|
260
256
|
canvasOffsetStartPosition = _useState12[0],
|
|
261
257
|
setCanvasOffsetStartPosition = _useState12[1];
|
|
262
258
|
|
|
263
|
-
var _useState13 = (0, _react.useState)(
|
|
259
|
+
var _useState13 = (0, _react.useState)(_tools.SELECTION_TOOL),
|
|
264
260
|
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
265
261
|
activeTool = _useState14[0],
|
|
266
262
|
setActiveTool = _useState14[1];
|
|
@@ -304,23 +300,33 @@ var App = function App(_ref5) {
|
|
|
304
300
|
setSelectedShape(undefined);
|
|
305
301
|
setActiveTool(tool);
|
|
306
302
|
}, [setSelectedShape]);
|
|
303
|
+
var updateToolSettings = (0, _react.useCallback)(function (toolId, field, value) {
|
|
304
|
+
setAvailableTools(function (availableTools) {
|
|
305
|
+
return availableTools.map(function (tool) {
|
|
306
|
+
return tool.id === toolId ? _fp["default"].set(['settings', field, 'default'], value, tool) : tool;
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
setActiveTool(function (activeTool) {
|
|
310
|
+
return activeTool.id === toolId ? _fp["default"].set(['settings', field, 'default'], value, activeTool) : activeTool;
|
|
311
|
+
});
|
|
312
|
+
}, []);
|
|
307
313
|
var undoAction = (0, _react.useCallback)(function () {
|
|
308
|
-
selectTool(
|
|
314
|
+
selectTool(_tools.SELECTION_TOOL);
|
|
309
315
|
backwardShape();
|
|
310
316
|
}, [selectTool, backwardShape]);
|
|
311
317
|
var redoAction = (0, _react.useCallback)(function () {
|
|
312
|
-
selectTool(
|
|
318
|
+
selectTool(_tools.SELECTION_TOOL);
|
|
313
319
|
forwardShape();
|
|
314
320
|
}, [selectTool, forwardShape]);
|
|
315
321
|
var clearCanvas = (0, _react.useCallback)(function () {
|
|
316
322
|
var shapesToInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
317
323
|
var clearHistory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
318
324
|
clearShapes(shapesToInit, clearHistory);
|
|
319
|
-
selectTool(
|
|
325
|
+
selectTool(_tools.SELECTION_TOOL);
|
|
320
326
|
setCanvasOffset([0, 0]);
|
|
321
327
|
}, [selectTool, clearShapes]);
|
|
322
328
|
var selectShape = (0, _react.useCallback)(function (shape) {
|
|
323
|
-
setActiveTool(
|
|
329
|
+
setActiveTool(_tools.SELECTION_TOOL);
|
|
324
330
|
setSelectedShape(shape);
|
|
325
331
|
}, [setSelectedShape]);
|
|
326
332
|
var pasteShape = (0, _react.useCallback)(function (shape) {
|
|
@@ -356,7 +362,7 @@ var App = function App(_ref5) {
|
|
|
356
362
|
setIsLoading(true);
|
|
357
363
|
|
|
358
364
|
try {
|
|
359
|
-
var content = (0, _file.encodeShapesInString)(shapesRef.current);
|
|
365
|
+
var content = (0, _file.encodeShapesInString)(shapesRef.current, canvasWidth, canvasHeight);
|
|
360
366
|
|
|
361
367
|
if (!content) {
|
|
362
368
|
throw new Error("L'encodage a échoué");
|
|
@@ -376,8 +382,8 @@ var App = function App(_ref5) {
|
|
|
376
382
|
} finally {
|
|
377
383
|
setIsLoading(false);
|
|
378
384
|
}
|
|
379
|
-
}, [shapesRef, addSnackbar]);
|
|
380
|
-
var
|
|
385
|
+
}, [shapesRef, addSnackbar, canvasWidth, canvasHeight]);
|
|
386
|
+
var loadImportedData = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
381
387
|
var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(json) {
|
|
382
388
|
var shapes;
|
|
383
389
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
@@ -385,7 +391,7 @@ var App = function App(_ref5) {
|
|
|
385
391
|
switch (_context.prev = _context.next) {
|
|
386
392
|
case 0:
|
|
387
393
|
_context.next = 2;
|
|
388
|
-
return (0, _file.
|
|
394
|
+
return (0, _file.decodeImportedData)(json);
|
|
389
395
|
|
|
390
396
|
case 2:
|
|
391
397
|
shapes = _context.sent;
|
|
@@ -418,7 +424,7 @@ var App = function App(_ref5) {
|
|
|
418
424
|
case 4:
|
|
419
425
|
json = _context2.sent;
|
|
420
426
|
_context2.next = 7;
|
|
421
|
-
return
|
|
427
|
+
return loadImportedData(json);
|
|
422
428
|
|
|
423
429
|
case 7:
|
|
424
430
|
addSnackbar({
|
|
@@ -457,7 +463,7 @@ var App = function App(_ref5) {
|
|
|
457
463
|
return function (_x2) {
|
|
458
464
|
return _ref7.apply(this, arguments);
|
|
459
465
|
};
|
|
460
|
-
}(), [
|
|
466
|
+
}(), [loadImportedData, addSnackbar]);
|
|
461
467
|
var addPicture = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
462
468
|
var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(fileOrUrl) {
|
|
463
469
|
var pictureShape;
|
|
@@ -506,7 +512,7 @@ var App = function App(_ref5) {
|
|
|
506
512
|
return _ref8.apply(this, arguments);
|
|
507
513
|
};
|
|
508
514
|
}(), [addPictureShape, selectShape, addSnackbar, canvasWidth, canvasHeight]);
|
|
509
|
-
var onResized = (0, _react.useCallback)(function (measuredWidth
|
|
515
|
+
var onResized = (0, _react.useCallback)(function (measuredWidth) {
|
|
510
516
|
var scaleRatio = measuredWidth / canvasWidth;
|
|
511
517
|
setCanvasSize({
|
|
512
518
|
width: measuredWidth,
|
|
@@ -534,9 +540,11 @@ var App = function App(_ref5) {
|
|
|
534
540
|
}, [isInsideComponent, setSelectedShape]);
|
|
535
541
|
(0, _react.useEffect)(function () {
|
|
536
542
|
if (shapesFromProps !== undefined) {
|
|
537
|
-
void
|
|
543
|
+
void loadImportedData({
|
|
544
|
+
shapes: shapesFromProps
|
|
545
|
+
});
|
|
538
546
|
}
|
|
539
|
-
}, [
|
|
547
|
+
}, [loadImportedData, shapesFromProps]);
|
|
540
548
|
(0, _react.useEffect)(function () {
|
|
541
549
|
if (!apiRef) return;
|
|
542
550
|
apiRef.current = {
|
|
@@ -544,7 +552,7 @@ var App = function App(_ref5) {
|
|
|
544
552
|
return canvasRef.current ? (0, _file.getCanvasImage)(shapesRef.current, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding) : undefined;
|
|
545
553
|
},
|
|
546
554
|
getCurrentData: function getCurrentData() {
|
|
547
|
-
return (0, _data.
|
|
555
|
+
return (0, _data.buildDataToExport)(shapesRef.current, canvasWidth, canvasHeight);
|
|
548
556
|
}
|
|
549
557
|
};
|
|
550
558
|
}, [apiRef, shapesRef, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding]);
|
|
@@ -584,7 +592,9 @@ var App = function App(_ref5) {
|
|
|
584
592
|
redoAction: redoAction,
|
|
585
593
|
availableTools: availableTools,
|
|
586
594
|
withExport: withExport,
|
|
587
|
-
withLoadAndSave: withLoadAndSave
|
|
595
|
+
withLoadAndSave: withLoadAndSave,
|
|
596
|
+
withUploadPicture: withUploadPicture,
|
|
597
|
+
withUrlPicture: withUrlPicture
|
|
588
598
|
}), /*#__PURE__*/_react["default"].createElement(StyledRow, {
|
|
589
599
|
"data-grow": canGrow,
|
|
590
600
|
width: canvasSize.width,
|
|
@@ -605,7 +615,6 @@ var App = function App(_ref5) {
|
|
|
605
615
|
setSelectedShape: setSelectedShape,
|
|
606
616
|
canvasOffset: canvasOffset,
|
|
607
617
|
setCanvasOffset: setCanvasOffset,
|
|
608
|
-
defaultConf: defaultConf,
|
|
609
618
|
saveShapes: saveShapes,
|
|
610
619
|
ref: canvasRef,
|
|
611
620
|
canvasSize: canvasSize,
|
|
@@ -630,18 +639,18 @@ var App = function App(_ref5) {
|
|
|
630
639
|
})), isEditMode && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SettingsBar["default"], {
|
|
631
640
|
disabled: disabled,
|
|
632
641
|
activeTool: activeTool,
|
|
642
|
+
availableTools: availableTools,
|
|
633
643
|
selectedShape: selectedShape,
|
|
634
644
|
removeShape: removeShape,
|
|
635
645
|
updateShape: updateShape,
|
|
636
|
-
defaultConf: defaultConf,
|
|
637
|
-
setDefaultConf: setDefaultConf,
|
|
638
646
|
canvas: canvasRef.current,
|
|
639
647
|
layersManipulation: layersManipulation,
|
|
640
648
|
toggleLayoutPanel: function toggleLayoutPanel() {
|
|
641
649
|
setIsLayoutPanelShown(function (prev) {
|
|
642
650
|
return !prev;
|
|
643
651
|
});
|
|
644
|
-
}
|
|
652
|
+
},
|
|
653
|
+
updateToolSettings: updateToolSettings
|
|
645
654
|
}), /*#__PURE__*/_react["default"].createElement(_Loading["default"], {
|
|
646
655
|
isLoading: isLoading
|
|
647
656
|
}), /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
|
|
@@ -31,6 +31,8 @@ var _useDrawableCanvas2 = _interopRequireDefault(require("../hooks/useDrawableCa
|
|
|
31
31
|
|
|
32
32
|
var _icons = require("../constants/icons");
|
|
33
33
|
|
|
34
|
+
var _tools = require("../types/tools");
|
|
35
|
+
|
|
34
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
37
|
|
|
36
38
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -57,7 +59,7 @@ var renderSelectionCanvas = function renderSelectionCanvas(selectionCtx, selecti
|
|
|
57
59
|
height = canvasSize.height,
|
|
58
60
|
scaleRatio = canvasSize.scaleRatio;
|
|
59
61
|
selectionCtx.clearRect(0, 0, width, height);
|
|
60
|
-
selectedShape && activeTool !== _Shapes.ShapeEnum.brush && (0, _draw.drawSelection)({
|
|
62
|
+
selectedShape && activeTool.type !== _Shapes.ShapeEnum.brush && (0, _draw.drawSelection)({
|
|
61
63
|
ctx: selectionCtx,
|
|
62
64
|
shape: selectedShape,
|
|
63
65
|
scaleRatio: scaleRatio,
|
|
@@ -110,7 +112,6 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
110
112
|
setCanvasOffsetStartPosition = _ref2.setCanvasOffsetStartPosition,
|
|
111
113
|
canvasOffset = _ref2.canvasOffset,
|
|
112
114
|
setCanvasOffset = _ref2.setCanvasOffset,
|
|
113
|
-
defaultConf = _ref2.defaultConf,
|
|
114
115
|
isInsideComponent = _ref2.isInsideComponent,
|
|
115
116
|
selectionMode = _ref2.selectionMode,
|
|
116
117
|
setSelectionMode = _ref2.setSelectionMode,
|
|
@@ -132,7 +133,6 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
132
133
|
drawCanvasRef: drawCanvasRef,
|
|
133
134
|
setActiveTool: setActiveTool,
|
|
134
135
|
shapes: shapes,
|
|
135
|
-
defaultConf: defaultConf,
|
|
136
136
|
selectionMode: selectionMode,
|
|
137
137
|
activeTool: activeTool,
|
|
138
138
|
isInsideComponent: isInsideComponent,
|
|
@@ -151,7 +151,7 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
151
151
|
hoverMode = _useDrawableCanvas.hoverMode;
|
|
152
152
|
|
|
153
153
|
var updateSelectedShapeText = (0, _react.useCallback)(function (newText) {
|
|
154
|
-
var _drawCanvasRef$curren, _newShape$style;
|
|
154
|
+
var _drawCanvasRef$curren, _newShape$style$fontB, _newShape$style, _newShape$style$fontI, _newShape$style2, _newShape$style3;
|
|
155
155
|
|
|
156
156
|
if ((selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) !== _Shapes.ShapeEnum.text) return;
|
|
157
157
|
var ctx = (_drawCanvasRef$curren = drawCanvasRef.current) === null || _drawCanvasRef$curren === void 0 ? void 0 : _drawCanvasRef$curren.getContext('2d');
|
|
@@ -159,7 +159,7 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
159
159
|
|
|
160
160
|
var newShape = _fp["default"].set('value', newText, selectedShape);
|
|
161
161
|
|
|
162
|
-
var newWidth = (0, _transform.calculateTextWidth)(ctx, newShape.value, newShape.fontSize, (_newShape$style = newShape.style) === null || _newShape$style === void 0 ? void 0 : _newShape$style.fontFamily);
|
|
162
|
+
var newWidth = (0, _transform.calculateTextWidth)(ctx, newShape.value, newShape.fontSize, (_newShape$style$fontB = (_newShape$style = newShape.style) === null || _newShape$style === void 0 ? void 0 : _newShape$style.fontBold) !== null && _newShape$style$fontB !== void 0 ? _newShape$style$fontB : false, (_newShape$style$fontI = (_newShape$style2 = newShape.style) === null || _newShape$style2 === void 0 ? void 0 : _newShape$style2.fontItalic) !== null && _newShape$style$fontI !== void 0 ? _newShape$style$fontI : false, (_newShape$style3 = newShape.style) === null || _newShape$style3 === void 0 ? void 0 : _newShape$style3.fontFamily);
|
|
163
163
|
|
|
164
164
|
var resizedShape = _objectSpread(_objectSpread({}, newShape), {}, {
|
|
165
165
|
width: newWidth,
|
|
@@ -197,7 +197,7 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
197
197
|
width: canvasSize.width,
|
|
198
198
|
height: canvasSize.height,
|
|
199
199
|
"data-grow": canGrow,
|
|
200
|
-
cursor: activeTool !==
|
|
200
|
+
cursor: activeTool.type !== _tools.ActionsEnum.selection && activeTool.type !== _tools.ActionsEnum.move || hoverMode.mode === _Mode.SelectionModeLib.resize ? 'crosshair' : activeTool.type === _tools.ActionsEnum.move || hoverMode.mode === _Mode.SelectionModeLib.translate ? 'move' : hoverMode.mode === _Mode.SelectionModeLib.rotate ? 'grab' : 'default'
|
|
201
201
|
}), isEditMode && selectionMode.mode === _Mode.SelectionModeLib.textedition && (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text && /*#__PURE__*/_react["default"].createElement(_EditTextBox["default"], {
|
|
202
202
|
scaleRatio: canvasSize.scaleRatio,
|
|
203
203
|
disabled: disabled,
|
|
@@ -21,8 +21,6 @@ var _Button = _interopRequireDefault(require("../common/Button"));
|
|
|
21
21
|
|
|
22
22
|
var _Panel = _interopRequireDefault(require("../common/Panel"));
|
|
23
23
|
|
|
24
|
-
var _style = require("../../constants/style");
|
|
25
|
-
|
|
26
24
|
var _icons = require("../../constants/icons");
|
|
27
25
|
|
|
28
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -57,6 +55,7 @@ var ColorField = function ColorField(_ref3) {
|
|
|
57
55
|
title = _ref3$title === void 0 ? 'Choisissez une couleur' : _ref3$title,
|
|
58
56
|
_ref3$disabled = _ref3.disabled,
|
|
59
57
|
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
58
|
+
values = _ref3.values,
|
|
60
59
|
field = _ref3.field,
|
|
61
60
|
_ref3$value = _ref3.value,
|
|
62
61
|
value = _ref3$value === void 0 ? '' : _ref3$value,
|
|
@@ -83,6 +82,7 @@ var ColorField = function ColorField(_ref3) {
|
|
|
83
82
|
};
|
|
84
83
|
|
|
85
84
|
var isPanelVisible = selectedSettings === customKey;
|
|
85
|
+
if (_fp["default"].isEmpty(values)) return null;
|
|
86
86
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
87
87
|
selected: isPanelVisible,
|
|
88
88
|
title: title,
|
|
@@ -93,7 +93,7 @@ var ColorField = function ColorField(_ref3) {
|
|
|
93
93
|
})), isPanelVisible && /*#__PURE__*/_react["default"].createElement(_Panel["default"], {
|
|
94
94
|
title: title,
|
|
95
95
|
alignment: "left"
|
|
96
|
-
}, /*#__PURE__*/_react["default"].createElement("div", null,
|
|
96
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, values.map(function (color, index) {
|
|
97
97
|
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
98
98
|
title: color,
|
|
99
99
|
key: index,
|
|
@@ -108,11 +108,11 @@ var ColorField = function ColorField(_ref3) {
|
|
|
108
108
|
}), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
109
109
|
type: "color",
|
|
110
110
|
title: "Custom color",
|
|
111
|
-
selected: !_fp["default"].includes(value,
|
|
111
|
+
selected: !_fp["default"].includes(value, values),
|
|
112
112
|
value: value,
|
|
113
113
|
onChange: handleChange
|
|
114
114
|
}, /*#__PURE__*/_react["default"].createElement(StyledCustomColor, {
|
|
115
|
-
color: _fp["default"].includes(value,
|
|
115
|
+
color: _fp["default"].includes(value, values) ? 'var(--font-color)' : value
|
|
116
116
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
117
117
|
dangerouslySetInnerHTML: {
|
|
118
118
|
__html: _icons.paletteIcon
|
|
@@ -11,10 +11,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
13
|
|
|
14
|
-
var _style = require("../../constants/style");
|
|
15
|
-
|
|
16
14
|
var _react2 = require("@linaria/react");
|
|
17
15
|
|
|
16
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
17
|
+
|
|
18
18
|
var StyledOption = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
19
|
name: "StyledOption",
|
|
20
20
|
"class": "smpmxx5",
|
|
@@ -38,16 +38,18 @@ var FontFamilyField = function FontFamilyField(_ref3) {
|
|
|
38
38
|
setSelectedSettings = _ref3.setSelectedSettings,
|
|
39
39
|
_ref3$disabled = _ref3.disabled,
|
|
40
40
|
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
41
|
+
values = _ref3.values,
|
|
41
42
|
defaultValue = _ref3.defaultValue,
|
|
42
43
|
valueChanged = _ref3.valueChanged;
|
|
44
|
+
if (_fp["default"].isEmpty(values)) return null;
|
|
43
45
|
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
44
46
|
selectedSettings: selectedSettings,
|
|
45
47
|
setSelectedSettings: setSelectedSettings,
|
|
46
48
|
CustomOption: FontFamilyOption,
|
|
47
49
|
title: "Font",
|
|
48
50
|
disabled: disabled,
|
|
49
|
-
field: "
|
|
50
|
-
values:
|
|
51
|
+
field: "fontFamily",
|
|
52
|
+
values: values,
|
|
51
53
|
defaultValue: defaultValue,
|
|
52
54
|
valueChanged: valueChanged
|
|
53
55
|
});
|
|
@@ -35,37 +35,41 @@ var StyledLayouts = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
|
35
35
|
name: "StyledLayouts",
|
|
36
36
|
"class": "su3a8bs"
|
|
37
37
|
});
|
|
38
|
+
var StyledRemoveButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
39
|
+
name: "StyledRemoveButton",
|
|
40
|
+
"class": "szboplp"
|
|
41
|
+
});
|
|
38
42
|
var StyledLayout = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
39
43
|
name: "StyledLayout",
|
|
40
|
-
"class": "
|
|
44
|
+
"class": "sff5xt"
|
|
41
45
|
});
|
|
42
46
|
var StyledVisibleButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
43
47
|
name: "StyledVisibleButton",
|
|
44
|
-
"class": "
|
|
48
|
+
"class": "sj3bift"
|
|
45
49
|
});
|
|
46
50
|
var StyledLockedButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
47
51
|
name: "StyledLockedButton",
|
|
48
|
-
"class": "
|
|
52
|
+
"class": "s10ip0a4"
|
|
49
53
|
});
|
|
50
54
|
var StyledGridButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
51
55
|
name: "StyledGridButton",
|
|
52
|
-
"class": "
|
|
56
|
+
"class": "s1j9uq9o"
|
|
53
57
|
});
|
|
54
58
|
var StyledSeparator = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
55
59
|
name: "StyledSeparator",
|
|
56
|
-
"class": "
|
|
60
|
+
"class": "s156ddbb"
|
|
57
61
|
});
|
|
58
62
|
var StyledPanelLayouts = /*#__PURE__*/(0, _react2.styled)(_Panel["default"])({
|
|
59
63
|
name: "StyledPanelLayouts",
|
|
60
|
-
"class": "
|
|
64
|
+
"class": "s11gt4hl"
|
|
61
65
|
});
|
|
62
66
|
var StyledScrollingContent = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
63
67
|
name: "StyledScrollingContent",
|
|
64
|
-
"class": "
|
|
68
|
+
"class": "s13cxqhq"
|
|
65
69
|
});
|
|
66
70
|
var StyledPlaceholder = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
67
71
|
name: "StyledPlaceholder",
|
|
68
|
-
"class": "
|
|
72
|
+
"class": "s1idv8qv"
|
|
69
73
|
});
|
|
70
74
|
|
|
71
75
|
var Layout = function Layout(_ref) {
|
|
@@ -147,6 +151,11 @@ var Layout = function Layout(_ref) {
|
|
|
147
151
|
selected: selected,
|
|
148
152
|
onClick: onToggleShapeLock,
|
|
149
153
|
icon: shape.locked ? _icons.lockedIcon : _icons.unlockedIcon
|
|
154
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledRemoveButton, {
|
|
155
|
+
title: "Remove",
|
|
156
|
+
disabled: disabled,
|
|
157
|
+
onClick: onRemove,
|
|
158
|
+
icon: _icons.trashIcon
|
|
150
159
|
}));
|
|
151
160
|
};
|
|
152
161
|
|
|
@@ -11,10 +11,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
13
|
|
|
14
|
-
var _style = require("../../constants/style");
|
|
15
|
-
|
|
16
14
|
var _react2 = require("@linaria/react");
|
|
17
15
|
|
|
16
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
17
|
+
|
|
18
18
|
var StyledLeftTriangle = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
19
|
name: "StyledLeftTriangle",
|
|
20
20
|
"class": "s1xxj4yl"
|
|
@@ -40,16 +40,18 @@ var LineArrowField = function LineArrowField(_ref2) {
|
|
|
40
40
|
setSelectedSettings = _ref2.setSelectedSettings,
|
|
41
41
|
_ref2$disabled = _ref2.disabled,
|
|
42
42
|
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
43
|
+
values = _ref2.values,
|
|
43
44
|
defaultValue = _ref2.defaultValue,
|
|
44
45
|
valueChanged = _ref2.valueChanged;
|
|
46
|
+
if (_fp["default"].isEmpty(values)) return null;
|
|
45
47
|
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
46
48
|
selectedSettings: selectedSettings,
|
|
47
49
|
setSelectedSettings: setSelectedSettings,
|
|
48
50
|
CustomOption: LineArrowOption,
|
|
49
51
|
title: "Fl\xE8ches",
|
|
50
52
|
disabled: disabled,
|
|
51
|
-
field: "
|
|
52
|
-
values:
|
|
53
|
+
field: "lineArrow",
|
|
54
|
+
values: values,
|
|
53
55
|
defaultValue: defaultValue,
|
|
54
56
|
valueChanged: valueChanged
|
|
55
57
|
});
|
|
@@ -11,10 +11,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _SelectField = _interopRequireDefault(require("./SelectField"));
|
|
13
13
|
|
|
14
|
-
var _style = require("../../constants/style");
|
|
15
|
-
|
|
16
14
|
var _react2 = require("@linaria/react");
|
|
17
15
|
|
|
16
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
17
|
+
|
|
18
18
|
var StyledLine = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
19
|
name: "StyledLine",
|
|
20
20
|
"class": "s1qssg4n"
|
|
@@ -38,16 +38,18 @@ var LineTypeField = function LineTypeField(_ref2) {
|
|
|
38
38
|
setSelectedSettings = _ref2.setSelectedSettings,
|
|
39
39
|
_ref2$disabled = _ref2.disabled,
|
|
40
40
|
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
41
|
+
values = _ref2.values,
|
|
41
42
|
defaultValue = _ref2.defaultValue,
|
|
42
43
|
valueChanged = _ref2.valueChanged;
|
|
44
|
+
if (_fp["default"].isEmpty(values)) return null;
|
|
43
45
|
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
44
46
|
selectedSettings: selectedSettings,
|
|
45
47
|
setSelectedSettings: setSelectedSettings,
|
|
46
48
|
CustomOption: LineTypeOption,
|
|
47
49
|
title: "Type de traits",
|
|
48
50
|
disabled: disabled,
|
|
49
|
-
field: "
|
|
50
|
-
values:
|
|
51
|
+
field: "lineDash",
|
|
52
|
+
values: values,
|
|
51
53
|
defaultValue: defaultValue,
|
|
52
54
|
valueChanged: valueChanged
|
|
53
55
|
});
|
|
@@ -9,40 +9,30 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
var PointsNumberField = function PointsNumberField(_ref2) {
|
|
29
|
-
var selectedSettings = _ref2.selectedSettings,
|
|
30
|
-
setSelectedSettings = _ref2.setSelectedSettings,
|
|
31
|
-
_ref2$disabled = _ref2.disabled,
|
|
32
|
-
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
33
|
-
defaultValue = _ref2.defaultValue,
|
|
34
|
-
_ref2$values = _ref2.values,
|
|
35
|
-
values = _ref2$values === void 0 ? _style.POLYGON_POINTS_VALUES : _ref2$values,
|
|
36
|
-
valueChanged = _ref2.valueChanged;
|
|
37
|
-
return /*#__PURE__*/_react["default"].createElement(_SelectField["default"], {
|
|
12
|
+
var _RangeField = _interopRequireDefault(require("./RangeField"));
|
|
13
|
+
|
|
14
|
+
var PointsNumberField = function PointsNumberField(_ref) {
|
|
15
|
+
var selectedSettings = _ref.selectedSettings,
|
|
16
|
+
setSelectedSettings = _ref.setSelectedSettings,
|
|
17
|
+
_ref$disabled = _ref.disabled,
|
|
18
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
19
|
+
min = _ref.min,
|
|
20
|
+
max = _ref.max,
|
|
21
|
+
step = _ref.step,
|
|
22
|
+
value = _ref.value,
|
|
23
|
+
valueChanged = _ref.valueChanged;
|
|
24
|
+
if (min === max) return null;
|
|
25
|
+
return /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
|
|
38
26
|
selectedSettings: selectedSettings,
|
|
39
27
|
setSelectedSettings: setSelectedSettings,
|
|
40
|
-
CustomOption: PointsNumberOption,
|
|
41
28
|
title: "Nombre de points",
|
|
42
29
|
disabled: disabled,
|
|
43
|
-
field: "
|
|
44
|
-
|
|
45
|
-
|
|
30
|
+
field: "pointsCount",
|
|
31
|
+
min: min,
|
|
32
|
+
max: max,
|
|
33
|
+
step: step,
|
|
34
|
+
unity: "",
|
|
35
|
+
value: value,
|
|
46
36
|
valueChanged: valueChanged
|
|
47
37
|
});
|
|
48
38
|
};
|
|
@@ -68,6 +68,7 @@ var RangeField = function RangeField(_ref) {
|
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
var isPanelVisible = selectedSettings === customKey;
|
|
71
|
+
if (min === max) return null;
|
|
71
72
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
72
73
|
selected: isPanelVisible,
|
|
73
74
|
title: title,
|
|
@@ -58,6 +58,7 @@ var SelectField = function SelectField(_ref) {
|
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
var isPanelVisible = selectedSettings === customKey;
|
|
61
|
+
if (_fp["default"].isEmpty(values)) return null;
|
|
61
62
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
62
63
|
selected: isPanelVisible,
|
|
63
64
|
title: title,
|