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