@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
|
@@ -2,14 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
exports
|
|
11
|
-
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
|
+
exports.default = void 0;
|
|
13
9
|
|
|
14
10
|
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
15
11
|
|
|
@@ -21,70 +17,65 @@ var _Panel = _interopRequireDefault(require("../common/Panel"));
|
|
|
21
17
|
|
|
22
18
|
var _react2 = require("@linaria/react");
|
|
23
19
|
|
|
24
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
21
|
|
|
26
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
22
|
+
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; }
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
const StyledButton = /*#__PURE__*/(0, _react2.styled)(_Button.default)({
|
|
29
25
|
name: "StyledButton",
|
|
30
|
-
|
|
26
|
+
class: "s1ktxhkr"
|
|
31
27
|
});
|
|
32
|
-
|
|
28
|
+
const StyleWrapper = /*#__PURE__*/(0, _react2.styled)('div')({
|
|
33
29
|
name: "StyleWrapper",
|
|
34
|
-
|
|
30
|
+
class: "s5sp14o"
|
|
35
31
|
});
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
customKey = _useState2[0];
|
|
54
|
-
|
|
55
|
-
var handleClick = function handleClick(value) {
|
|
33
|
+
const SelectField = _ref => {
|
|
34
|
+
let {
|
|
35
|
+
CustomOption,
|
|
36
|
+
selectedSettings,
|
|
37
|
+
setSelectedSettings,
|
|
38
|
+
title = "Choisissez l'option",
|
|
39
|
+
disabled = false,
|
|
40
|
+
field,
|
|
41
|
+
icon,
|
|
42
|
+
values,
|
|
43
|
+
defaultValue,
|
|
44
|
+
valueChanged
|
|
45
|
+
} = _ref;
|
|
46
|
+
const [customKey] = (0, _react.useState)(_fp.default.uniqueId('settings_'));
|
|
47
|
+
|
|
48
|
+
const handleClick = value => {
|
|
56
49
|
valueChanged(field, value);
|
|
57
50
|
};
|
|
58
51
|
|
|
59
|
-
|
|
60
|
-
setSelectedSettings(
|
|
52
|
+
const togglePanel = () => {
|
|
53
|
+
setSelectedSettings(prev => {
|
|
61
54
|
return prev === customKey ? undefined : customKey;
|
|
62
55
|
});
|
|
63
56
|
};
|
|
64
57
|
|
|
65
|
-
|
|
66
|
-
if (_fp
|
|
67
|
-
return /*#__PURE__*/_react
|
|
58
|
+
const isPanelVisible = selectedSettings === customKey;
|
|
59
|
+
if (_fp.default.isEmpty(values)) return null;
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
68
61
|
selected: isPanelVisible,
|
|
69
62
|
title: title,
|
|
70
63
|
icon: icon,
|
|
71
64
|
disabled: disabled,
|
|
72
65
|
onClick: togglePanel
|
|
73
|
-
}), isPanelVisible && /*#__PURE__*/_react
|
|
66
|
+
}), isPanelVisible && /*#__PURE__*/_react.default.createElement(_Panel.default, {
|
|
74
67
|
title: title,
|
|
75
68
|
alignment: "left",
|
|
76
69
|
fitContainer: true
|
|
77
|
-
}, /*#__PURE__*/_react
|
|
78
|
-
return /*#__PURE__*/_react
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement(StyleWrapper, null, values.map(value => {
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement(StyledButton, {
|
|
79
72
|
key: value,
|
|
80
73
|
title: "".concat(value),
|
|
81
|
-
onClick:
|
|
82
|
-
return handleClick(value);
|
|
83
|
-
},
|
|
74
|
+
onClick: () => handleClick(value),
|
|
84
75
|
selected: defaultValue == value
|
|
85
|
-
}, /*#__PURE__*/_react
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(CustomOption, null, value));
|
|
86
77
|
}))));
|
|
87
78
|
};
|
|
88
79
|
|
|
89
80
|
var _default = SelectField;
|
|
90
|
-
exports
|
|
81
|
+
exports.default = _default;
|
|
@@ -2,16 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
exports
|
|
11
|
-
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
|
+
exports.default = void 0;
|
|
15
9
|
|
|
16
10
|
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
17
11
|
|
|
@@ -45,41 +39,41 @@ var _Button = _interopRequireDefault(require("../common/Button"));
|
|
|
45
39
|
|
|
46
40
|
var _Modal = _interopRequireDefault(require("../common/Modal"));
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
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; }
|
|
42
|
+
var _text = require("../../utils/shapes/text");
|
|
51
43
|
|
|
52
|
-
function
|
|
44
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
45
|
|
|
54
|
-
function
|
|
46
|
+
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; }
|
|
55
47
|
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
const SETTING_WIDTH = 40;
|
|
49
|
+
const StyledSettingsBar = /*#__PURE__*/(0, _react2.styled)('div')({
|
|
58
50
|
name: "StyledSettingsBar",
|
|
59
|
-
|
|
51
|
+
class: "s16z54di"
|
|
60
52
|
});
|
|
61
|
-
|
|
53
|
+
const StyledSeparator = /*#__PURE__*/(0, _react2.styled)('div')({
|
|
62
54
|
name: "StyledSeparator",
|
|
63
|
-
|
|
55
|
+
class: "sa7lzh9"
|
|
64
56
|
});
|
|
65
|
-
|
|
57
|
+
const StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal.default)({
|
|
66
58
|
name: "StyledToolsModal",
|
|
67
|
-
|
|
59
|
+
class: "s7b85in"
|
|
68
60
|
});
|
|
69
61
|
|
|
70
|
-
|
|
62
|
+
const SettingsItems = _ref => {
|
|
71
63
|
var _selectedShape$style, _selectedShape$style2, _selectedShape$style3, _selectedShape$style4, _selectedShape$style5, _selectedShape$style6, _selectedShape$style7, _selectedShape$style8, _selectedShape$style9, _selectedShape$style$, _selectedShape$style10;
|
|
72
64
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
65
|
+
let {
|
|
66
|
+
activeTool,
|
|
67
|
+
selectedShape,
|
|
68
|
+
selectedShapeTool,
|
|
69
|
+
disabled,
|
|
70
|
+
selectedSettings,
|
|
71
|
+
setSelectedSettings,
|
|
72
|
+
handleShapeStyleChange,
|
|
73
|
+
handlePolygonLinesCount,
|
|
74
|
+
handleShapeFontFamilyChange
|
|
75
|
+
} = _ref;
|
|
76
|
+
return selectedShape ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, selectedShapeTool && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, 'strokeColor' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_ColorField.default, {
|
|
83
77
|
selectedSettings: selectedSettings,
|
|
84
78
|
setSelectedSettings: setSelectedSettings,
|
|
85
79
|
title: "Couleur du trait",
|
|
@@ -89,7 +83,7 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
89
83
|
value: (_selectedShape$style = selectedShape.style) === null || _selectedShape$style === void 0 ? void 0 : _selectedShape$style.strokeColor,
|
|
90
84
|
valueChanged: handleShapeStyleChange,
|
|
91
85
|
values: selectedShapeTool.settings.strokeColor.values
|
|
92
|
-
}), 'fillColor' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
86
|
+
}), 'fillColor' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_ColorField.default, {
|
|
93
87
|
selectedSettings: selectedSettings,
|
|
94
88
|
setSelectedSettings: setSelectedSettings,
|
|
95
89
|
title: "Couleur de fond",
|
|
@@ -98,7 +92,7 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
98
92
|
value: (_selectedShape$style2 = selectedShape.style) === null || _selectedShape$style2 === void 0 ? void 0 : _selectedShape$style2.fillColor,
|
|
99
93
|
valueChanged: handleShapeStyleChange,
|
|
100
94
|
values: selectedShapeTool.settings.fillColor.values
|
|
101
|
-
}), 'lineWidth' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
95
|
+
}), 'lineWidth' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_RangeField.default, {
|
|
102
96
|
selectedSettings: selectedSettings,
|
|
103
97
|
setSelectedSettings: setSelectedSettings,
|
|
104
98
|
title: "Epaisseur du trait",
|
|
@@ -111,21 +105,21 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
111
105
|
min: selectedShapeTool.settings.lineWidth.min,
|
|
112
106
|
max: selectedShapeTool.settings.lineWidth.max,
|
|
113
107
|
step: selectedShapeTool.settings.lineWidth.step
|
|
114
|
-
}), 'lineDash' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
108
|
+
}), 'lineDash' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_LineTypeField.default, {
|
|
115
109
|
selectedSettings: selectedSettings,
|
|
116
110
|
setSelectedSettings: setSelectedSettings,
|
|
117
111
|
disabled: disabled,
|
|
118
112
|
defaultValue: (_selectedShape$style4 = selectedShape.style) === null || _selectedShape$style4 === void 0 ? void 0 : _selectedShape$style4.lineDash,
|
|
119
113
|
valueChanged: handleShapeStyleChange,
|
|
120
114
|
values: selectedShapeTool.settings.lineDash.values
|
|
121
|
-
}), 'lineArrow' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
115
|
+
}), 'lineArrow' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_LineArrowField.default, {
|
|
122
116
|
selectedSettings: selectedSettings,
|
|
123
117
|
setSelectedSettings: setSelectedSettings,
|
|
124
118
|
disabled: disabled,
|
|
125
119
|
defaultValue: (_selectedShape$style5 = selectedShape.style) === null || _selectedShape$style5 === void 0 ? void 0 : _selectedShape$style5.lineArrow,
|
|
126
120
|
valueChanged: handleShapeStyleChange,
|
|
127
121
|
values: selectedShapeTool.settings.lineArrow.values
|
|
128
|
-
}), 'pointsCount' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
122
|
+
}), 'pointsCount' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_PointsNumberField.default, {
|
|
129
123
|
selectedSettings: selectedSettings,
|
|
130
124
|
setSelectedSettings: setSelectedSettings,
|
|
131
125
|
disabled: disabled,
|
|
@@ -134,14 +128,14 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
134
128
|
max: selectedShapeTool.settings.pointsCount.max,
|
|
135
129
|
step: selectedShapeTool.settings.pointsCount.step,
|
|
136
130
|
value: (_selectedShape$style6 = selectedShape.style) === null || _selectedShape$style6 === void 0 ? void 0 : _selectedShape$style6.pointsCount
|
|
137
|
-
}), 'fontFamily' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
131
|
+
}), 'fontFamily' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_FontFamilyField.default, {
|
|
138
132
|
selectedSettings: selectedSettings,
|
|
139
133
|
setSelectedSettings: setSelectedSettings,
|
|
140
134
|
disabled: disabled,
|
|
141
135
|
valueChanged: handleShapeFontFamilyChange,
|
|
142
136
|
values: selectedShapeTool.settings.fontFamily.values,
|
|
143
137
|
defaultValue: (_selectedShape$style7 = selectedShape.style) === null || _selectedShape$style7 === void 0 ? void 0 : _selectedShape$style7.fontFamily
|
|
144
|
-
}), 'fontBold' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
138
|
+
}), 'fontBold' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_ToggleField.default, {
|
|
145
139
|
setSelectedSettings: setSelectedSettings,
|
|
146
140
|
disabled: disabled,
|
|
147
141
|
field: "fontBold",
|
|
@@ -149,7 +143,7 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
149
143
|
valueChanged: handleShapeFontFamilyChange,
|
|
150
144
|
values: selectedShapeTool.settings.fontBold.values,
|
|
151
145
|
value: (_selectedShape$style8 = selectedShape.style) === null || _selectedShape$style8 === void 0 ? void 0 : _selectedShape$style8.fontBold
|
|
152
|
-
}), 'fontItalic' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
146
|
+
}), 'fontItalic' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_ToggleField.default, {
|
|
153
147
|
setSelectedSettings: setSelectedSettings,
|
|
154
148
|
disabled: disabled,
|
|
155
149
|
field: "fontItalic",
|
|
@@ -157,7 +151,7 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
157
151
|
valueChanged: handleShapeFontFamilyChange,
|
|
158
152
|
values: selectedShapeTool.settings.fontItalic.values,
|
|
159
153
|
value: (_selectedShape$style9 = selectedShape.style) === null || _selectedShape$style9 === void 0 ? void 0 : _selectedShape$style9.fontItalic
|
|
160
|
-
}), 'opacity' in selectedShapeTool.settings && /*#__PURE__*/_react
|
|
154
|
+
}), 'opacity' in selectedShapeTool.settings && /*#__PURE__*/_react.default.createElement(_RangeField.default, {
|
|
161
155
|
selectedSettings: selectedSettings,
|
|
162
156
|
setSelectedSettings: setSelectedSettings,
|
|
163
157
|
title: "Opacit\xE9",
|
|
@@ -170,53 +164,53 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
170
164
|
field: "globalAlpha",
|
|
171
165
|
value: (_selectedShape$style$ = (_selectedShape$style10 = selectedShape.style) === null || _selectedShape$style10 === void 0 ? void 0 : _selectedShape$style10.globalAlpha) !== null && _selectedShape$style$ !== void 0 ? _selectedShape$style$ : 100,
|
|
172
166
|
valueChanged: handleShapeStyleChange
|
|
173
|
-
}))) : 'settings' in activeTool ? /*#__PURE__*/_react
|
|
167
|
+
}))) : 'settings' in activeTool ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, 'strokeColor' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_ColorField.default, {
|
|
174
168
|
selectedSettings: selectedSettings,
|
|
175
169
|
setSelectedSettings: setSelectedSettings,
|
|
176
170
|
title: "Couleur du trait",
|
|
177
171
|
mode: "stroke",
|
|
178
172
|
disabled: disabled,
|
|
179
173
|
field: "strokeColor",
|
|
180
|
-
value: activeTool.settings.strokeColor
|
|
174
|
+
value: activeTool.settings.strokeColor.default,
|
|
181
175
|
valueChanged: handleShapeStyleChange,
|
|
182
176
|
values: activeTool.settings.strokeColor.values
|
|
183
|
-
}), 'fillColor' in activeTool.settings && /*#__PURE__*/_react
|
|
177
|
+
}), 'fillColor' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_ColorField.default, {
|
|
184
178
|
selectedSettings: selectedSettings,
|
|
185
179
|
setSelectedSettings: setSelectedSettings,
|
|
186
180
|
title: "Couleur de fond",
|
|
187
181
|
disabled: disabled,
|
|
188
182
|
field: "fillColor",
|
|
189
|
-
value: activeTool.settings.fillColor
|
|
183
|
+
value: activeTool.settings.fillColor.default,
|
|
190
184
|
valueChanged: handleShapeStyleChange,
|
|
191
185
|
values: activeTool.settings.fillColor.values
|
|
192
|
-
}), 'lineWidth' in activeTool.settings && /*#__PURE__*/_react
|
|
186
|
+
}), 'lineWidth' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_RangeField.default, {
|
|
193
187
|
selectedSettings: selectedSettings,
|
|
194
188
|
setSelectedSettings: setSelectedSettings,
|
|
195
189
|
title: "Epaisseur du trait",
|
|
196
190
|
disabled: disabled,
|
|
197
191
|
field: "lineWidth",
|
|
198
192
|
icon: _icons.lineWidthIcon,
|
|
199
|
-
value: activeTool.settings.lineWidth
|
|
193
|
+
value: activeTool.settings.lineWidth.default,
|
|
200
194
|
valueChanged: handleShapeStyleChange,
|
|
201
195
|
unity: "px",
|
|
202
196
|
min: activeTool.settings.lineWidth.min,
|
|
203
197
|
max: activeTool.settings.lineWidth.max,
|
|
204
198
|
step: activeTool.settings.lineWidth.step
|
|
205
|
-
}), 'lineDash' in activeTool.settings && /*#__PURE__*/_react
|
|
199
|
+
}), 'lineDash' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_LineTypeField.default, {
|
|
206
200
|
selectedSettings: selectedSettings,
|
|
207
201
|
setSelectedSettings: setSelectedSettings,
|
|
208
202
|
disabled: disabled,
|
|
209
|
-
defaultValue: activeTool.settings.lineDash
|
|
203
|
+
defaultValue: activeTool.settings.lineDash.default,
|
|
210
204
|
valueChanged: handleShapeStyleChange,
|
|
211
205
|
values: activeTool.settings.lineDash.values
|
|
212
|
-
}), 'lineArrow' in activeTool.settings && /*#__PURE__*/_react
|
|
206
|
+
}), 'lineArrow' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_LineArrowField.default, {
|
|
213
207
|
selectedSettings: selectedSettings,
|
|
214
208
|
setSelectedSettings: setSelectedSettings,
|
|
215
209
|
disabled: disabled,
|
|
216
|
-
defaultValue: activeTool.settings.lineArrow
|
|
210
|
+
defaultValue: activeTool.settings.lineArrow.default,
|
|
217
211
|
valueChanged: handleShapeStyleChange,
|
|
218
212
|
values: activeTool.settings.lineArrow.values
|
|
219
|
-
}), 'pointsCount' in activeTool.settings && /*#__PURE__*/_react
|
|
213
|
+
}), 'pointsCount' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_PointsNumberField.default, {
|
|
220
214
|
selectedSettings: selectedSettings,
|
|
221
215
|
setSelectedSettings: setSelectedSettings,
|
|
222
216
|
disabled: disabled,
|
|
@@ -224,31 +218,31 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
224
218
|
min: activeTool.settings.pointsCount.min,
|
|
225
219
|
max: activeTool.settings.pointsCount.max,
|
|
226
220
|
step: activeTool.settings.pointsCount.step,
|
|
227
|
-
value: activeTool.settings.pointsCount
|
|
228
|
-
}), 'fontFamily' in activeTool.settings && /*#__PURE__*/_react
|
|
221
|
+
value: activeTool.settings.pointsCount.default
|
|
222
|
+
}), 'fontFamily' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_FontFamilyField.default, {
|
|
229
223
|
selectedSettings: selectedSettings,
|
|
230
224
|
setSelectedSettings: setSelectedSettings,
|
|
231
225
|
disabled: disabled,
|
|
232
226
|
valueChanged: handleShapeFontFamilyChange,
|
|
233
227
|
values: activeTool.settings.fontFamily.values,
|
|
234
|
-
defaultValue: activeTool.settings.fontFamily
|
|
235
|
-
}), 'fontBold' in activeTool.settings && /*#__PURE__*/_react
|
|
228
|
+
defaultValue: activeTool.settings.fontFamily.default
|
|
229
|
+
}), 'fontBold' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_ToggleField.default, {
|
|
236
230
|
setSelectedSettings: setSelectedSettings,
|
|
237
231
|
disabled: disabled,
|
|
238
232
|
field: "fontBold",
|
|
239
233
|
icon: _icons.boldIcon,
|
|
240
234
|
valueChanged: handleShapeFontFamilyChange,
|
|
241
235
|
values: activeTool.settings.fontBold.values,
|
|
242
|
-
value: activeTool.settings.fontBold
|
|
243
|
-
}), 'fontItalic' in activeTool.settings && /*#__PURE__*/_react
|
|
236
|
+
value: activeTool.settings.fontBold.default
|
|
237
|
+
}), 'fontItalic' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_ToggleField.default, {
|
|
244
238
|
setSelectedSettings: setSelectedSettings,
|
|
245
239
|
disabled: disabled,
|
|
246
240
|
field: "fontItalic",
|
|
247
241
|
icon: _icons.italicIcon,
|
|
248
242
|
valueChanged: handleShapeFontFamilyChange,
|
|
249
243
|
values: activeTool.settings.fontItalic.values,
|
|
250
|
-
value: activeTool.settings.fontItalic
|
|
251
|
-
}), 'opacity' in activeTool.settings && /*#__PURE__*/_react
|
|
244
|
+
value: activeTool.settings.fontItalic.default
|
|
245
|
+
}), 'opacity' in activeTool.settings && /*#__PURE__*/_react.default.createElement(_RangeField.default, {
|
|
252
246
|
selectedSettings: selectedSettings,
|
|
253
247
|
setSelectedSettings: setSelectedSettings,
|
|
254
248
|
title: "Opacit\xE9",
|
|
@@ -258,105 +252,90 @@ var SettingsItems = function SettingsItems(_ref) {
|
|
|
258
252
|
step: activeTool.settings.opacity.step,
|
|
259
253
|
unity: "%",
|
|
260
254
|
disabled: disabled,
|
|
261
|
-
field: "
|
|
262
|
-
value: activeTool.settings.opacity
|
|
255
|
+
field: "opacity",
|
|
256
|
+
value: activeTool.settings.opacity.default,
|
|
263
257
|
valueChanged: handleShapeStyleChange
|
|
264
258
|
})) : null;
|
|
265
259
|
};
|
|
266
260
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
var _useState3 = (0, _react.useState)(false),
|
|
287
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
288
|
-
isMenuOpen = _useState4[0],
|
|
289
|
-
setIsMenuOpen = _useState4[1];
|
|
290
|
-
|
|
291
|
-
var toggleTools = function toggleTools() {
|
|
292
|
-
setIsMenuOpen(function (prev) {
|
|
293
|
-
return !prev;
|
|
294
|
-
});
|
|
261
|
+
const SettingsBar = _ref2 => {
|
|
262
|
+
let {
|
|
263
|
+
width,
|
|
264
|
+
disabled = false,
|
|
265
|
+
availableTools,
|
|
266
|
+
updateToolSettings,
|
|
267
|
+
layersManipulation,
|
|
268
|
+
toggleLayoutPanel,
|
|
269
|
+
activeTool,
|
|
270
|
+
selectedShape,
|
|
271
|
+
canvas,
|
|
272
|
+
updateShape,
|
|
273
|
+
removeShape
|
|
274
|
+
} = _ref2;
|
|
275
|
+
const [selectedSettings, setSelectedSettings] = (0, _react.useState)(undefined);
|
|
276
|
+
const [isMenuOpen, setIsMenuOpen] = (0, _react.useState)(false);
|
|
277
|
+
|
|
278
|
+
const toggleTools = () => {
|
|
279
|
+
setIsMenuOpen(prev => !prev);
|
|
295
280
|
};
|
|
296
281
|
|
|
297
|
-
|
|
282
|
+
const selectedShapeTool = selectedShape ? _fp.default.find({
|
|
298
283
|
id: selectedShape.toolId
|
|
299
|
-
}, availableTools) || _fp
|
|
284
|
+
}, availableTools) || _fp.default.find({
|
|
300
285
|
type: selectedShape.type
|
|
301
286
|
}, availableTools) : undefined;
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
var _useState5 = (0, _react.useState)(width < settingsBreakpoint),
|
|
306
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
307
|
-
settingsInMenu = _useState6[0],
|
|
308
|
-
setSettingsInMenu = _useState6[1];
|
|
287
|
+
const nbSettingsTools = (selectedShapeTool ? _fp.default.size(selectedShapeTool.settings) + 1 : 'settings' in activeTool ? _fp.default.size(activeTool.settings) : 0) + (layersManipulation ? 1 : 0);
|
|
288
|
+
const settingsBreakpoint = nbSettingsTools * SETTING_WIDTH;
|
|
289
|
+
const [settingsInMenu, setSettingsInMenu] = (0, _react.useState)(width < settingsBreakpoint);
|
|
309
290
|
|
|
310
|
-
|
|
291
|
+
const handleShapeStyleChange = (field, value) => {
|
|
311
292
|
if (selectedShape) {
|
|
312
|
-
updateShape(_fp
|
|
313
|
-
updateToolSettings(selectedShape.toolId, field, value);
|
|
293
|
+
updateShape(_fp.default.set(['style', field], value, selectedShape), true);
|
|
294
|
+
updateToolSettings(selectedShape.toolId || activeTool.id, field, value);
|
|
314
295
|
} else {
|
|
315
296
|
updateToolSettings(activeTool.id, field, value);
|
|
316
297
|
}
|
|
317
298
|
};
|
|
318
299
|
|
|
319
|
-
|
|
300
|
+
const handleShapeFontFamilyChange = (field, value) => {
|
|
320
301
|
if (selectedShape) {
|
|
321
302
|
var _newShape$style$fontB, _newShape$style, _newShape$style$fontI, _newShape$style2, _newShape$style3;
|
|
322
303
|
|
|
323
|
-
|
|
304
|
+
const ctx = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d');
|
|
324
305
|
if (!ctx) return;
|
|
325
306
|
|
|
326
|
-
|
|
307
|
+
const newShape = _fp.default.set(['style', field], value, selectedShape);
|
|
327
308
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
fontSize: fontSize,
|
|
309
|
+
const fontSize = (0, _text.calculateTextFontSize)(ctx, newShape.value, newShape.width, (_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);
|
|
310
|
+
const resizedShape = { ...newShape,
|
|
311
|
+
fontSize,
|
|
332
312
|
height: fontSize * newShape.value.length
|
|
333
|
-
}
|
|
334
|
-
|
|
313
|
+
};
|
|
335
314
|
updateShape(resizedShape, true);
|
|
336
|
-
updateToolSettings(selectedShape.toolId, field, value);
|
|
315
|
+
updateToolSettings(selectedShape.toolId || activeTool.id, field, value);
|
|
337
316
|
} else {
|
|
338
317
|
updateToolSettings(activeTool.id, field, value);
|
|
339
318
|
}
|
|
340
319
|
};
|
|
341
320
|
|
|
342
|
-
|
|
321
|
+
const handlePolygonLinesCount = (field, value) => {
|
|
343
322
|
if (selectedShape) {
|
|
344
323
|
updateShape((0, _transform.updatePolygonLinesCount)(selectedShape, value), true);
|
|
345
|
-
updateToolSettings(selectedShape.toolId, field, value);
|
|
324
|
+
updateToolSettings(selectedShape.toolId || activeTool.id, field, value);
|
|
346
325
|
} else {
|
|
347
326
|
updateToolSettings(activeTool.id, field, value);
|
|
348
327
|
}
|
|
349
328
|
};
|
|
350
329
|
|
|
351
|
-
(0, _react.useEffect)(
|
|
330
|
+
(0, _react.useEffect)(() => {
|
|
352
331
|
setSettingsInMenu(width < settingsBreakpoint);
|
|
353
332
|
}, [width, settingsBreakpoint]);
|
|
354
|
-
return /*#__PURE__*/_react
|
|
333
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledSettingsBar, null, settingsInMenu && nbSettingsTools > 2 && /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
355
334
|
disabled: disabled,
|
|
356
335
|
onClick: toggleTools,
|
|
357
336
|
title: "Toggle settings",
|
|
358
337
|
icon: _icons.settingsIcon
|
|
359
|
-
}), selectedShape ? /*#__PURE__*/_react
|
|
338
|
+
}), selectedShape ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, selectedShapeTool && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !settingsInMenu && /*#__PURE__*/_react.default.createElement(SettingsItems, {
|
|
360
339
|
activeTool: activeTool,
|
|
361
340
|
selectedShape: selectedShape,
|
|
362
341
|
selectedShapeTool: selectedShapeTool,
|
|
@@ -366,11 +345,11 @@ var SettingsBar = function SettingsBar(_ref2) {
|
|
|
366
345
|
handleShapeStyleChange: handleShapeStyleChange,
|
|
367
346
|
handlePolygonLinesCount: handlePolygonLinesCount,
|
|
368
347
|
handleShapeFontFamilyChange: handleShapeFontFamilyChange
|
|
369
|
-
}), /*#__PURE__*/_react
|
|
348
|
+
}), /*#__PURE__*/_react.default.createElement(_DeleteButton.default, {
|
|
370
349
|
disabled: disabled,
|
|
371
350
|
selectedShape: selectedShape,
|
|
372
351
|
removeShape: removeShape
|
|
373
|
-
}))) : !settingsInMenu && /*#__PURE__*/_react
|
|
352
|
+
}))) : !settingsInMenu && /*#__PURE__*/_react.default.createElement(SettingsItems, {
|
|
374
353
|
activeTool: activeTool,
|
|
375
354
|
selectedShape: selectedShape,
|
|
376
355
|
selectedShapeTool: selectedShapeTool,
|
|
@@ -380,14 +359,14 @@ var SettingsBar = function SettingsBar(_ref2) {
|
|
|
380
359
|
handleShapeStyleChange: handleShapeStyleChange,
|
|
381
360
|
handlePolygonLinesCount: handlePolygonLinesCount,
|
|
382
361
|
handleShapeFontFamilyChange: handleShapeFontFamilyChange
|
|
383
|
-
}), /*#__PURE__*/_react
|
|
362
|
+
}), /*#__PURE__*/_react.default.createElement(StyledSeparator, null), layersManipulation && /*#__PURE__*/_react.default.createElement(_LayoutButton.default, {
|
|
384
363
|
layersManipulation: layersManipulation,
|
|
385
364
|
disabled: disabled,
|
|
386
365
|
toggleLayoutPanel: toggleLayoutPanel
|
|
387
|
-
})), isMenuOpen && /*#__PURE__*/_react
|
|
366
|
+
})), isMenuOpen && /*#__PURE__*/_react.default.createElement(StyledToolsModal, {
|
|
388
367
|
onClose: toggleTools,
|
|
389
368
|
position: "bottom"
|
|
390
|
-
}, /*#__PURE__*/_react
|
|
369
|
+
}, /*#__PURE__*/_react.default.createElement(SettingsItems, {
|
|
391
370
|
activeTool: activeTool,
|
|
392
371
|
selectedShape: selectedShape,
|
|
393
372
|
selectedShapeTool: selectedShapeTool,
|
|
@@ -401,4 +380,4 @@ var SettingsBar = function SettingsBar(_ref2) {
|
|
|
401
380
|
};
|
|
402
381
|
|
|
403
382
|
var _default = SettingsBar;
|
|
404
|
-
exports
|
|
383
|
+
exports.default = _default;
|