@yorab/react-paint 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +96 -0
- package/README.md +0 -7
- package/dist/components/App.js +69 -49
- package/dist/components/Canvas.js +7 -7
- package/dist/components/common/Button.js +4 -4
- package/dist/components/common/Loading.js +3 -3
- package/dist/components/common/Modal.js +3 -3
- package/dist/components/common/Panel.js +2 -2
- package/dist/components/common/Snackbar.js +2 -2
- package/dist/components/settings/ColorField.js +4 -4
- package/dist/components/settings/FontFamilyField.js +3 -3
- package/dist/components/settings/LayoutButton.js +1 -1
- package/dist/components/settings/Layouts.js +18 -9
- package/dist/components/settings/LineArrowField.js +4 -4
- package/dist/components/settings/LineTypeField.js +3 -3
- package/dist/components/settings/PointsNumberField.js +1 -1
- package/dist/components/settings/RangeField.js +1 -1
- package/dist/components/settings/SelectField.js +1 -1
- package/dist/components/settings/SettingsBar.js +105 -79
- package/dist/components/settings/ToggleField.js +56 -0
- package/dist/components/toolbox/EditTextBox.js +23 -16
- package/dist/components/toolbox/MenuGroup.js +10 -8
- package/dist/components/toolbox/PictureUrlInput.js +1 -1
- package/dist/components/toolbox/Toolbar.js +12 -4
- package/dist/components/toolbox/ToolbarGroup.js +13 -11
- package/dist/constants/icons.js +6 -2
- package/dist/constants/tools.js +8 -0
- package/dist/hooks/useDoubleClick.js +46 -0
- package/dist/hooks/useDrawableCanvas.js +29 -45
- package/dist/styles.css +52 -51
- package/dist/utils/data.js +27 -5
- package/dist/utils/draw.js +3 -3
- package/dist/utils/file.js +15 -14
- package/dist/utils/selection.js +1 -1
- package/dist/utils/transform.js +23 -10
- package/package.json +1 -1
|
@@ -17,11 +17,11 @@ var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
|
17
17
|
|
|
18
18
|
var StyledLine = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
19
19
|
name: "StyledLine",
|
|
20
|
-
"class": "
|
|
20
|
+
"class": "s1qssg4n"
|
|
21
21
|
});
|
|
22
22
|
var StyledOption = /*#__PURE__*/(0, _react2.styled)("span")({
|
|
23
23
|
name: "StyledOption",
|
|
24
|
-
"class": "
|
|
24
|
+
"class": "se26iq6"
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
var LineTypeOption = function LineTypeOption(_ref) {
|
|
@@ -48,7 +48,7 @@ var LineTypeField = function LineTypeField(_ref2) {
|
|
|
48
48
|
CustomOption: LineTypeOption,
|
|
49
49
|
title: "Type de traits",
|
|
50
50
|
disabled: disabled,
|
|
51
|
-
field: "
|
|
51
|
+
field: "lineDash",
|
|
52
52
|
values: values,
|
|
53
53
|
defaultValue: defaultValue,
|
|
54
54
|
valueChanged: valueChanged
|
|
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
var StyledLabel = /*#__PURE__*/(0, _react2.styled)("label")({
|
|
29
29
|
name: "StyledLabel",
|
|
30
|
-
"class": "
|
|
30
|
+
"class": "s9mugpt"
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
var RangeField = function RangeField(_ref) {
|
|
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
var StyledButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
29
29
|
name: "StyledButton",
|
|
30
|
-
"class": "
|
|
30
|
+
"class": "s1ktxhkr"
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
var SelectField = function SelectField(_ref) {
|
|
@@ -37,6 +37,10 @@ var _LineTypeField = _interopRequireDefault(require("./LineTypeField"));
|
|
|
37
37
|
|
|
38
38
|
var _LineArrowField = _interopRequireDefault(require("./LineArrowField"));
|
|
39
39
|
|
|
40
|
+
var _ToggleField = _interopRequireDefault(require("./ToggleField"));
|
|
41
|
+
|
|
42
|
+
var _icons = require("../../constants/icons");
|
|
43
|
+
|
|
40
44
|
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); }
|
|
41
45
|
|
|
42
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; }
|
|
@@ -47,19 +51,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
47
51
|
|
|
48
52
|
var StyledSettingsBar = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
49
53
|
name: "StyledSettingsBar",
|
|
50
|
-
"class": "
|
|
54
|
+
"class": "s16z54di"
|
|
51
55
|
});
|
|
52
56
|
var StyledSeparator = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
53
57
|
name: "StyledSeparator",
|
|
54
|
-
"class": "
|
|
58
|
+
"class": "sa7lzh9"
|
|
55
59
|
});
|
|
56
60
|
|
|
57
61
|
var SettingsBar = function SettingsBar(_ref) {
|
|
58
|
-
var _selectedShape$style, _selectedShape$style2, _selectedShape$style3, _selectedShape$style4, _selectedShape$style5, _selectedShape$style6, _selectedShape$style7, _selectedShape$style$, _selectedShape$
|
|
62
|
+
var _selectedShape$style, _selectedShape$style2, _selectedShape$style3, _selectedShape$style4, _selectedShape$style5, _selectedShape$style6, _selectedShape$style7, _selectedShape$style8, _selectedShape$style9, _selectedShape$style$, _selectedShape$style10;
|
|
59
63
|
|
|
60
64
|
var _ref$disabled = _ref.disabled,
|
|
61
65
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
62
66
|
availableTools = _ref.availableTools,
|
|
67
|
+
updateToolSettings = _ref.updateToolSettings,
|
|
63
68
|
layersManipulation = _ref.layersManipulation,
|
|
64
69
|
toggleLayoutPanel = _ref.toggleLayoutPanel,
|
|
65
70
|
activeTool = _ref.activeTool,
|
|
@@ -68,17 +73,6 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
68
73
|
updateShape = _ref.updateShape,
|
|
69
74
|
removeShape = _ref.removeShape;
|
|
70
75
|
|
|
71
|
-
// const shapes = [
|
|
72
|
-
// ShapeEnum.brush,
|
|
73
|
-
// ShapeEnum.ellipse,
|
|
74
|
-
// ShapeEnum.circle,
|
|
75
|
-
// ShapeEnum.rect,
|
|
76
|
-
// ShapeEnum.square,
|
|
77
|
-
// ShapeEnum.line,
|
|
78
|
-
// ShapeEnum.polygon,
|
|
79
|
-
// ShapeEnum.curve,
|
|
80
|
-
// ShapeEnum.text
|
|
81
|
-
// ]
|
|
82
76
|
var _useState = (0, _react.useState)(undefined),
|
|
83
77
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
84
78
|
selectedSettings = _useState2[0],
|
|
@@ -86,23 +80,23 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
86
80
|
|
|
87
81
|
var handleShapeStyleChange = function handleShapeStyleChange(field, value) {
|
|
88
82
|
if (selectedShape) {
|
|
89
|
-
updateShape(_fp["default"].set(field, value, selectedShape), true);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
updateShape(_fp["default"].set(['style', field], value, selectedShape), true);
|
|
84
|
+
updateToolSettings(selectedShape.toolId, field, value);
|
|
85
|
+
} else {
|
|
86
|
+
updateToolSettings(activeTool.id, field, value);
|
|
87
|
+
}
|
|
94
88
|
};
|
|
95
89
|
|
|
96
90
|
var handleShapeFontFamilyChange = function handleShapeFontFamilyChange(field, value) {
|
|
97
91
|
if (selectedShape) {
|
|
98
|
-
var _newShape$style;
|
|
92
|
+
var _newShape$style$fontB, _newShape$style, _newShape$style$fontI, _newShape$style2, _newShape$style3;
|
|
99
93
|
|
|
100
94
|
var ctx = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d');
|
|
101
95
|
if (!ctx) return;
|
|
102
96
|
|
|
103
|
-
var newShape = _fp["default"].set(field, value, selectedShape);
|
|
97
|
+
var newShape = _fp["default"].set(['style', field], value, selectedShape);
|
|
104
98
|
|
|
105
|
-
var fontSize = (0, _transform.calculateTextFontSize)(ctx, newShape.value, newShape.width, (_newShape$style = newShape.style) === null || _newShape$style === void 0 ? void 0 : _newShape$style.fontFamily);
|
|
99
|
+
var 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);
|
|
106
100
|
|
|
107
101
|
var resizedShape = _objectSpread(_objectSpread({}, newShape), {}, {
|
|
108
102
|
fontSize: fontSize,
|
|
@@ -110,19 +104,19 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
110
104
|
});
|
|
111
105
|
|
|
112
106
|
updateShape(resizedShape, true);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
107
|
+
updateToolSettings(selectedShape.toolId, field, value);
|
|
108
|
+
} else {
|
|
109
|
+
updateToolSettings(activeTool.id, field, value);
|
|
110
|
+
}
|
|
117
111
|
};
|
|
118
112
|
|
|
119
113
|
var handlePolygonLinesCount = function handlePolygonLinesCount(field, value) {
|
|
120
114
|
if (selectedShape) {
|
|
121
115
|
updateShape((0, _transform.updatePolygonLinesCount)(selectedShape, value), true);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
116
|
+
updateToolSettings(selectedShape.toolId, field, value);
|
|
117
|
+
} else {
|
|
118
|
+
updateToolSettings(activeTool.id, field, value);
|
|
119
|
+
}
|
|
126
120
|
};
|
|
127
121
|
|
|
128
122
|
var selectedShapeTool = selectedShape ? _fp["default"].find({
|
|
@@ -130,28 +124,30 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
130
124
|
}, availableTools) || _fp["default"].find({
|
|
131
125
|
type: selectedShape.type
|
|
132
126
|
}, availableTools) : undefined;
|
|
133
|
-
return /*#__PURE__*/_react["default"].createElement(StyledSettingsBar, null, selectedShape ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, selectedShapeTool && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, '
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement(StyledSettingsBar, null, 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"], {
|
|
134
128
|
selectedSettings: selectedSettings,
|
|
135
129
|
setSelectedSettings: setSelectedSettings,
|
|
130
|
+
title: "Couleur du trait",
|
|
136
131
|
disabled: disabled,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}), 'fontFamily' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_FontFamilyField["default"], {
|
|
132
|
+
field: "strokeColor",
|
|
133
|
+
value: (_selectedShape$style = selectedShape.style) === null || _selectedShape$style === void 0 ? void 0 : _selectedShape$style.strokeColor,
|
|
134
|
+
valueChanged: handleShapeStyleChange,
|
|
135
|
+
values: selectedShapeTool.settings.strokeColor.values
|
|
136
|
+
}), 'fillColor' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
|
|
143
137
|
selectedSettings: selectedSettings,
|
|
144
138
|
setSelectedSettings: setSelectedSettings,
|
|
139
|
+
title: "Couleur de fond",
|
|
145
140
|
disabled: disabled,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
141
|
+
field: "fillColor",
|
|
142
|
+
value: (_selectedShape$style2 = selectedShape.style) === null || _selectedShape$style2 === void 0 ? void 0 : _selectedShape$style2.fillColor,
|
|
143
|
+
valueChanged: handleShapeStyleChange,
|
|
144
|
+
values: selectedShapeTool.settings.fillColor.values
|
|
149
145
|
}), 'lineWidth' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
|
|
150
146
|
selectedSettings: selectedSettings,
|
|
151
147
|
setSelectedSettings: setSelectedSettings,
|
|
152
148
|
title: "Epaisseur du trait",
|
|
153
149
|
disabled: disabled,
|
|
154
|
-
field: "
|
|
150
|
+
field: "lineWidth",
|
|
155
151
|
value: (_selectedShape$style3 = selectedShape.style) === null || _selectedShape$style3 === void 0 ? void 0 : _selectedShape$style3.lineWidth,
|
|
156
152
|
valueChanged: handleShapeStyleChange,
|
|
157
153
|
unity: "px",
|
|
@@ -172,24 +168,38 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
172
168
|
defaultValue: (_selectedShape$style5 = selectedShape.style) === null || _selectedShape$style5 === void 0 ? void 0 : _selectedShape$style5.lineArrow,
|
|
173
169
|
valueChanged: handleShapeStyleChange,
|
|
174
170
|
values: selectedShapeTool.settings.lineArrow.values
|
|
175
|
-
}), '
|
|
171
|
+
}), 'pointsCount' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
|
|
176
172
|
selectedSettings: selectedSettings,
|
|
177
173
|
setSelectedSettings: setSelectedSettings,
|
|
178
|
-
title: "Couleur du trait",
|
|
179
174
|
disabled: disabled,
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
175
|
+
valueChanged: handlePolygonLinesCount,
|
|
176
|
+
min: selectedShapeTool.settings.pointsCount.min,
|
|
177
|
+
max: selectedShapeTool.settings.pointsCount.max,
|
|
178
|
+
step: selectedShapeTool.settings.pointsCount.step,
|
|
179
|
+
value: (_selectedShape$style6 = selectedShape.style) === null || _selectedShape$style6 === void 0 ? void 0 : _selectedShape$style6.pointsCount
|
|
180
|
+
}), 'fontFamily' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_FontFamilyField["default"], {
|
|
185
181
|
selectedSettings: selectedSettings,
|
|
186
182
|
setSelectedSettings: setSelectedSettings,
|
|
187
|
-
title: "Couleur de fond",
|
|
188
183
|
disabled: disabled,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
184
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
185
|
+
values: selectedShapeTool.settings.fontFamily.values,
|
|
186
|
+
defaultValue: (_selectedShape$style7 = selectedShape.style) === null || _selectedShape$style7 === void 0 ? void 0 : _selectedShape$style7.fontFamily
|
|
187
|
+
}), 'fontBold' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_ToggleField["default"], {
|
|
188
|
+
setSelectedSettings: setSelectedSettings,
|
|
189
|
+
disabled: disabled,
|
|
190
|
+
field: "fontBold",
|
|
191
|
+
icon: _icons.boldIcon,
|
|
192
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
193
|
+
values: selectedShapeTool.settings.fontBold.values,
|
|
194
|
+
value: (_selectedShape$style8 = selectedShape.style) === null || _selectedShape$style8 === void 0 ? void 0 : _selectedShape$style8.fontBold
|
|
195
|
+
}), 'fontItalic' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_ToggleField["default"], {
|
|
196
|
+
setSelectedSettings: setSelectedSettings,
|
|
197
|
+
disabled: disabled,
|
|
198
|
+
field: "fontItalic",
|
|
199
|
+
icon: _icons.italicIcon,
|
|
200
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
201
|
+
values: selectedShapeTool.settings.fontItalic.values,
|
|
202
|
+
value: (_selectedShape$style9 = selectedShape.style) === null || _selectedShape$style9 === void 0 ? void 0 : _selectedShape$style9.fontItalic
|
|
193
203
|
}), 'opacity' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
|
|
194
204
|
selectedSettings: selectedSettings,
|
|
195
205
|
setSelectedSettings: setSelectedSettings,
|
|
@@ -199,35 +209,37 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
199
209
|
step: selectedShapeTool.settings.opacity.step,
|
|
200
210
|
unity: "%",
|
|
201
211
|
disabled: disabled,
|
|
202
|
-
field: "
|
|
203
|
-
value: (_selectedShape$style$ = (_selectedShape$
|
|
212
|
+
field: "globalAlpha",
|
|
213
|
+
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,
|
|
204
214
|
valueChanged: handleShapeStyleChange
|
|
205
215
|
})), /*#__PURE__*/_react["default"].createElement(_DeleteButton["default"], {
|
|
206
216
|
disabled: disabled,
|
|
207
217
|
selectedShape: selectedShape,
|
|
208
218
|
removeShape: removeShape
|
|
209
|
-
})) : 'settings' in activeTool && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, '
|
|
219
|
+
})) : 'settings' in activeTool && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, 'strokeColor' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
|
|
210
220
|
selectedSettings: selectedSettings,
|
|
211
221
|
setSelectedSettings: setSelectedSettings,
|
|
222
|
+
title: "Couleur du trait",
|
|
212
223
|
disabled: disabled,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}), 'fontFamily' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_FontFamilyField["default"], {
|
|
224
|
+
field: "strokeColor",
|
|
225
|
+
value: activeTool.settings.strokeColor["default"],
|
|
226
|
+
valueChanged: handleShapeStyleChange,
|
|
227
|
+
values: activeTool.settings.strokeColor.values
|
|
228
|
+
}), 'fillColor' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
|
|
219
229
|
selectedSettings: selectedSettings,
|
|
220
230
|
setSelectedSettings: setSelectedSettings,
|
|
231
|
+
title: "Couleur de fond",
|
|
221
232
|
disabled: disabled,
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
233
|
+
field: "fillColor",
|
|
234
|
+
value: activeTool.settings.fillColor["default"],
|
|
235
|
+
valueChanged: handleShapeStyleChange,
|
|
236
|
+
values: activeTool.settings.fillColor.values
|
|
225
237
|
}), 'lineWidth' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
|
|
226
238
|
selectedSettings: selectedSettings,
|
|
227
239
|
setSelectedSettings: setSelectedSettings,
|
|
228
240
|
title: "Epaisseur du trait",
|
|
229
241
|
disabled: disabled,
|
|
230
|
-
field: "
|
|
242
|
+
field: "lineWidth",
|
|
231
243
|
value: activeTool.settings.lineWidth["default"],
|
|
232
244
|
valueChanged: handleShapeStyleChange,
|
|
233
245
|
unity: "px",
|
|
@@ -248,24 +260,38 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
248
260
|
defaultValue: activeTool.settings.lineArrow["default"],
|
|
249
261
|
valueChanged: handleShapeStyleChange,
|
|
250
262
|
values: activeTool.settings.lineArrow.values
|
|
251
|
-
}), '
|
|
263
|
+
}), 'pointsCount' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
|
|
252
264
|
selectedSettings: selectedSettings,
|
|
253
265
|
setSelectedSettings: setSelectedSettings,
|
|
254
|
-
title: "Couleur du trait",
|
|
255
266
|
disabled: disabled,
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
267
|
+
valueChanged: handlePolygonLinesCount,
|
|
268
|
+
min: activeTool.settings.pointsCount.min,
|
|
269
|
+
max: activeTool.settings.pointsCount.max,
|
|
270
|
+
step: activeTool.settings.pointsCount.step,
|
|
271
|
+
value: activeTool.settings.pointsCount["default"]
|
|
272
|
+
}), 'fontFamily' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_FontFamilyField["default"], {
|
|
261
273
|
selectedSettings: selectedSettings,
|
|
262
274
|
setSelectedSettings: setSelectedSettings,
|
|
263
|
-
title: "Couleur de fond",
|
|
264
275
|
disabled: disabled,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
276
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
277
|
+
values: activeTool.settings.fontFamily.values,
|
|
278
|
+
defaultValue: activeTool.settings.fontFamily["default"]
|
|
279
|
+
}), 'fontBold' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_ToggleField["default"], {
|
|
280
|
+
setSelectedSettings: setSelectedSettings,
|
|
281
|
+
disabled: disabled,
|
|
282
|
+
field: "fontBold",
|
|
283
|
+
icon: _icons.boldIcon,
|
|
284
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
285
|
+
values: activeTool.settings.fontBold.values,
|
|
286
|
+
value: activeTool.settings.fontBold["default"]
|
|
287
|
+
}), 'fontItalic' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_ToggleField["default"], {
|
|
288
|
+
setSelectedSettings: setSelectedSettings,
|
|
289
|
+
disabled: disabled,
|
|
290
|
+
field: "fontItalic",
|
|
291
|
+
icon: _icons.italicIcon,
|
|
292
|
+
valueChanged: handleShapeFontFamilyChange,
|
|
293
|
+
values: activeTool.settings.fontItalic.values,
|
|
294
|
+
value: activeTool.settings.fontItalic["default"]
|
|
269
295
|
}), 'opacity' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
|
|
270
296
|
selectedSettings: selectedSettings,
|
|
271
297
|
setSelectedSettings: setSelectedSettings,
|
|
@@ -275,7 +301,7 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
275
301
|
step: activeTool.settings.opacity.step,
|
|
276
302
|
unity: "%",
|
|
277
303
|
disabled: disabled,
|
|
278
|
-
field: "
|
|
304
|
+
field: "globalAlpha",
|
|
279
305
|
value: activeTool.settings.opacity["default"],
|
|
280
306
|
valueChanged: handleShapeStyleChange
|
|
281
307
|
})), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), layersManipulation && /*#__PURE__*/_react["default"].createElement(_LayoutButton["default"], {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _fp = _interopRequireDefault(require("lodash/fp"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _Button = _interopRequireDefault(require("../common/Button"));
|
|
19
|
+
|
|
20
|
+
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); }
|
|
21
|
+
|
|
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; }
|
|
23
|
+
|
|
24
|
+
var ToggleField = function ToggleField(_ref) {
|
|
25
|
+
var setSelectedSettings = _ref.setSelectedSettings,
|
|
26
|
+
_ref$disabled = _ref.disabled,
|
|
27
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
28
|
+
field = _ref.field,
|
|
29
|
+
icon = _ref.icon,
|
|
30
|
+
values = _ref.values,
|
|
31
|
+
_ref$value = _ref.value,
|
|
32
|
+
value = _ref$value === void 0 ? false : _ref$value,
|
|
33
|
+
valueChanged = _ref.valueChanged;
|
|
34
|
+
|
|
35
|
+
var _useState = (0, _react.useState)(_fp["default"].uniqueId('settings_')),
|
|
36
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
37
|
+
customKey = _useState2[0];
|
|
38
|
+
|
|
39
|
+
var handleClick = function handleClick() {
|
|
40
|
+
setSelectedSettings(function (prev) {
|
|
41
|
+
return prev === customKey ? undefined : customKey;
|
|
42
|
+
});
|
|
43
|
+
valueChanged(field, !value);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
if (values.length !== 2) return null;
|
|
47
|
+
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
48
|
+
onClick: handleClick,
|
|
49
|
+
selected: value,
|
|
50
|
+
disabled: disabled,
|
|
51
|
+
icon: icon
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var _default = ToggleField;
|
|
56
|
+
exports["default"] = _default;
|
|
@@ -27,41 +27,45 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
var StyledEditBox = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
29
29
|
name: "StyledEditBox",
|
|
30
|
-
"class": "
|
|
30
|
+
"class": "s1unz6yq",
|
|
31
31
|
vars: {
|
|
32
|
-
"
|
|
32
|
+
"s1unz6yq-0": [function (_ref) {
|
|
33
33
|
var transform = _ref.transform;
|
|
34
34
|
return transform;
|
|
35
35
|
}],
|
|
36
|
-
"
|
|
36
|
+
"s1unz6yq-1": [function (_ref2) {
|
|
37
37
|
var color = _ref2.color;
|
|
38
38
|
return color;
|
|
39
39
|
}],
|
|
40
|
-
"
|
|
40
|
+
"s1unz6yq-2": [function (_ref3) {
|
|
41
41
|
var padding = _ref3.padding;
|
|
42
42
|
return padding;
|
|
43
43
|
}, "px"],
|
|
44
|
-
"
|
|
44
|
+
"s1unz6yq-3": [function (_ref4) {
|
|
45
45
|
var fontsize = _ref4.fontsize;
|
|
46
46
|
return fontsize;
|
|
47
47
|
}, "px"],
|
|
48
|
-
"
|
|
48
|
+
"s1unz6yq-5": [function (_ref5) {
|
|
49
49
|
var fontfamily = _ref5.fontfamily;
|
|
50
50
|
return fontfamily;
|
|
51
|
+
}],
|
|
52
|
+
"s1unz6yq-6": [function (_ref6) {
|
|
53
|
+
var opacity = _ref6.opacity;
|
|
54
|
+
return opacity;
|
|
51
55
|
}]
|
|
52
56
|
}
|
|
53
57
|
});
|
|
54
58
|
|
|
55
|
-
var EditTextBox = function EditTextBox(
|
|
56
|
-
var _shape$style$strokeCo, _shape$style, _shape$style$fontFami, _shape$
|
|
59
|
+
var EditTextBox = function EditTextBox(_ref7) {
|
|
60
|
+
var _shape$style$strokeCo, _shape$style, _shape$style$globalAl, _shape$style2, _shape$style$fontFami, _shape$style3, _shape$style$fontBold, _shape$style4, _shape$style$fontItal, _shape$style5;
|
|
57
61
|
|
|
58
|
-
var
|
|
59
|
-
disabled =
|
|
60
|
-
scaleRatio =
|
|
61
|
-
shape =
|
|
62
|
-
defaultValue =
|
|
63
|
-
updateValue =
|
|
64
|
-
selectionPadding =
|
|
62
|
+
var _ref7$disabled = _ref7.disabled,
|
|
63
|
+
disabled = _ref7$disabled === void 0 ? false : _ref7$disabled,
|
|
64
|
+
scaleRatio = _ref7.scaleRatio,
|
|
65
|
+
shape = _ref7.shape,
|
|
66
|
+
defaultValue = _ref7.defaultValue,
|
|
67
|
+
updateValue = _ref7.updateValue,
|
|
68
|
+
selectionPadding = _ref7.selectionPadding;
|
|
65
69
|
var ref = (0, _react.useRef)(null);
|
|
66
70
|
|
|
67
71
|
var updateContentEditable = function updateContentEditable(e) {
|
|
@@ -86,7 +90,10 @@ var EditTextBox = function EditTextBox(_ref6) {
|
|
|
86
90
|
fontsize: shape.fontSize * scaleRatio,
|
|
87
91
|
padding: selectionPadding * scaleRatio,
|
|
88
92
|
color: (_shape$style$strokeCo = (_shape$style = shape.style) === null || _shape$style === void 0 ? void 0 : _shape$style.strokeColor) !== null && _shape$style$strokeCo !== void 0 ? _shape$style$strokeCo : 'inherit',
|
|
89
|
-
|
|
93
|
+
opacity: ((_shape$style$globalAl = (_shape$style2 = shape.style) === null || _shape$style2 === void 0 ? void 0 : _shape$style2.globalAlpha) !== null && _shape$style$globalAl !== void 0 ? _shape$style$globalAl : 100) / 100,
|
|
94
|
+
fontfamily: (_shape$style$fontFami = (_shape$style3 = shape.style) === null || _shape$style3 === void 0 ? void 0 : _shape$style3.fontFamily) !== null && _shape$style$fontFami !== void 0 ? _shape$style$fontFami : _style.STYLE_FONT_DEFAULT,
|
|
95
|
+
"data-fontbold": (_shape$style$fontBold = (_shape$style4 = shape.style) === null || _shape$style4 === void 0 ? void 0 : _shape$style4.fontBold) !== null && _shape$style$fontBold !== void 0 ? _shape$style$fontBold : false,
|
|
96
|
+
"data-fontitalic": (_shape$style$fontItal = (_shape$style5 = shape.style) === null || _shape$style5 === void 0 ? void 0 : _shape$style5.fontItalic) !== null && _shape$style$fontItal !== void 0 ? _shape$style$fontItal : false,
|
|
90
97
|
contentEditable: !disabled,
|
|
91
98
|
onInput: updateContentEditable
|
|
92
99
|
});
|
|
@@ -39,11 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
39
|
|
|
40
40
|
var StyledPanel = /*#__PURE__*/(0, _react2.styled)(_Panel["default"])({
|
|
41
41
|
name: "StyledPanel",
|
|
42
|
-
"class": "
|
|
42
|
+
"class": "s1uphjfh"
|
|
43
43
|
});
|
|
44
44
|
var StyledRelative = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
45
45
|
name: "StyledRelative",
|
|
46
|
-
"class": "
|
|
46
|
+
"class": "s1e5a6k5"
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
var MenuGroup = function MenuGroup(_ref) {
|
|
@@ -81,6 +81,10 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
81
81
|
isOpen = _useState2[0],
|
|
82
82
|
setIsOpen = _useState2[1];
|
|
83
83
|
|
|
84
|
+
var _useTransition = (0, _react.useTransition)(),
|
|
85
|
+
_useTransition2 = (0, _slicedToArray2["default"])(_useTransition, 2),
|
|
86
|
+
startTransition = _useTransition2[1];
|
|
87
|
+
|
|
84
88
|
var loadFile = function loadFile(file) {
|
|
85
89
|
setIsOpen(false);
|
|
86
90
|
loadFileFromProps(file);
|
|
@@ -110,7 +114,9 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
110
114
|
}();
|
|
111
115
|
|
|
112
116
|
var openPanel = function openPanel() {
|
|
113
|
-
|
|
117
|
+
startTransition(function () {
|
|
118
|
+
setIsOpen(true);
|
|
119
|
+
});
|
|
114
120
|
};
|
|
115
121
|
|
|
116
122
|
var isActive = _fp["default"].includes(activeTool.type, group === null || group === void 0 ? void 0 : group.tools);
|
|
@@ -123,12 +129,8 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
123
129
|
setIsOpen(false);
|
|
124
130
|
};
|
|
125
131
|
|
|
126
|
-
|
|
127
|
-
//TODO find a better fix than settimeout for react18
|
|
128
|
-
document.addEventListener('click', closePanel);
|
|
129
|
-
}, 0);
|
|
132
|
+
document.addEventListener('click', closePanel);
|
|
130
133
|
return function () {
|
|
131
|
-
clearTimeout(timeoutId);
|
|
132
134
|
document.removeEventListener('click', closePanel);
|
|
133
135
|
};
|
|
134
136
|
}, [isOpen]);
|
|
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
28
|
var StyledInputModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
|
|
29
29
|
name: "StyledInputModal",
|
|
30
|
-
"class": "
|
|
30
|
+
"class": "s95bkm9"
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
var PictureUrlModal = function PictureUrlModal(_ref) {
|
|
@@ -44,15 +44,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
44
44
|
var TOOL_WIDTH = 40;
|
|
45
45
|
var StyledShrinkableTools = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
46
46
|
name: "StyledShrinkableTools",
|
|
47
|
-
"class": "
|
|
47
|
+
"class": "so6hnjf"
|
|
48
48
|
});
|
|
49
49
|
var StyledToolbox = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
50
50
|
name: "StyledToolbox",
|
|
51
|
-
"class": "
|
|
51
|
+
"class": "s1c1dllr"
|
|
52
52
|
});
|
|
53
53
|
var StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
|
|
54
54
|
name: "StyledToolsModal",
|
|
55
|
-
"class": "
|
|
55
|
+
"class": "s1g032mh"
|
|
56
56
|
});
|
|
57
57
|
var TOOLBAR_STRUCTURE = [{
|
|
58
58
|
title: 'brush',
|
|
@@ -135,6 +135,14 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
135
135
|
var setActiveTool = function setActiveTool(tool) {
|
|
136
136
|
setActiveToolFromProps(tool);
|
|
137
137
|
setIsMenuOpen(false);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var setActiveToolFromId = function setActiveToolFromId(toolId) {
|
|
141
|
+
var _availableTools$find;
|
|
142
|
+
|
|
143
|
+
setActiveTool((_availableTools$find = availableTools.find(function (tool) {
|
|
144
|
+
return tool.id === toolId;
|
|
145
|
+
})) !== null && _availableTools$find !== void 0 ? _availableTools$find : activeTool);
|
|
138
146
|
}; //360 240
|
|
139
147
|
|
|
140
148
|
|
|
@@ -163,7 +171,7 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
163
171
|
key: i,
|
|
164
172
|
activeTool: activeTool,
|
|
165
173
|
group: group,
|
|
166
|
-
|
|
174
|
+
setActiveToolFromId: setActiveToolFromId
|
|
167
175
|
});
|
|
168
176
|
})), !actionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
169
177
|
type: _tools.UNDO_TOOL,
|