@yorab/react-paint 0.4.2 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/Changelog.md +25 -0
  2. package/README.md +0 -6
  3. package/dist/components/App.js +52 -43
  4. package/dist/components/Canvas.js +6 -6
  5. package/dist/components/settings/ColorField.js +5 -5
  6. package/dist/components/settings/FontFamilyField.js +6 -4
  7. package/dist/components/settings/Layouts.js +17 -8
  8. package/dist/components/settings/LineArrowField.js +6 -4
  9. package/dist/components/settings/LineTypeField.js +6 -4
  10. package/dist/components/settings/PointsNumberField.js +20 -30
  11. package/dist/components/settings/RangeField.js +1 -0
  12. package/dist/components/settings/SelectField.js +1 -0
  13. package/dist/components/settings/SettingsBar.js +141 -88
  14. package/dist/components/settings/ToggleField.js +56 -0
  15. package/dist/components/toolbox/EditTextBox.js +17 -10
  16. package/dist/components/toolbox/LoadFileTool.js +5 -3
  17. package/dist/components/toolbox/MenuGroup.js +37 -44
  18. package/dist/components/toolbox/Tool.js +4 -4
  19. package/dist/components/toolbox/Toolbar.js +81 -69
  20. package/dist/components/toolbox/ToolbarGroup.js +29 -31
  21. package/dist/constants/icons.js +6 -2
  22. package/dist/constants/style.js +3 -1
  23. package/dist/constants/tools.js +428 -0
  24. package/dist/hooks/useDoubleClick.js +46 -0
  25. package/dist/hooks/useDrawableCanvas.js +42 -53
  26. package/dist/styles.css +10 -10
  27. package/dist/types/Shapes.js +2 -16
  28. package/dist/types/tools.js +22 -0
  29. package/dist/utils/data.js +106 -28
  30. package/dist/utils/draw.js +3 -3
  31. package/dist/utils/file.js +15 -14
  32. package/dist/utils/selection.js +1 -1
  33. package/dist/utils/style.js +4 -2
  34. package/dist/utils/toolbar.js +66 -11
  35. package/dist/utils/transform.js +24 -11
  36. package/package.json +1 -1
@@ -19,8 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _react2 = require("@linaria/react");
21
21
 
22
- var _Shapes = require("../../types/Shapes");
23
-
24
22
  var _transform = require("../../utils/transform");
25
23
 
26
24
  var _ColorField = _interopRequireDefault(require("./ColorField"));
@@ -39,7 +37,9 @@ var _LineTypeField = _interopRequireDefault(require("./LineTypeField"));
39
37
 
40
38
  var _LineArrowField = _interopRequireDefault(require("./LineArrowField"));
41
39
 
42
- var _style = require("../../constants/style");
40
+ var _ToggleField = _interopRequireDefault(require("./ToggleField"));
41
+
42
+ var _icons = require("../../constants/icons");
43
43
 
44
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); }
45
45
 
@@ -59,20 +59,19 @@ var StyledSeparator = /*#__PURE__*/(0, _react2.styled)("div")({
59
59
  });
60
60
 
61
61
  var SettingsBar = function SettingsBar(_ref) {
62
- var _selectedShape$style, _selectedShape$style2, _selectedShape$style3, _selectedShape$style4, _selectedShape$style5, _selectedShape$style6, _selectedShape$style$, _selectedShape$style7, _defaultConf$style, _defaultConf$style2, _defaultConf$style3, _defaultConf$style4, _defaultConf$style5, _defaultConf$style6, _defaultConf$style7;
62
+ var _selectedShape$style, _selectedShape$style2, _selectedShape$style3, _selectedShape$style4, _selectedShape$style5, _selectedShape$style6, _selectedShape$style7, _selectedShape$style8, _selectedShape$style9, _selectedShape$style$, _selectedShape$style10;
63
63
 
64
64
  var _ref$disabled = _ref.disabled,
65
65
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
66
+ availableTools = _ref.availableTools,
67
+ updateToolSettings = _ref.updateToolSettings,
66
68
  layersManipulation = _ref.layersManipulation,
67
69
  toggleLayoutPanel = _ref.toggleLayoutPanel,
68
70
  activeTool = _ref.activeTool,
69
71
  selectedShape = _ref.selectedShape,
70
72
  canvas = _ref.canvas,
71
73
  updateShape = _ref.updateShape,
72
- removeShape = _ref.removeShape,
73
- defaultConf = _ref.defaultConf,
74
- setDefaultConf = _ref.setDefaultConf;
75
- var shapes = [_Shapes.ShapeEnum.brush, _Shapes.ShapeEnum.ellipse, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.line, _Shapes.ShapeEnum.polygon, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.text];
74
+ removeShape = _ref.removeShape;
76
75
 
77
76
  var _useState = (0, _react.useState)(undefined),
78
77
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -81,24 +80,23 @@ var SettingsBar = function SettingsBar(_ref) {
81
80
 
82
81
  var handleShapeStyleChange = function handleShapeStyleChange(field, value) {
83
82
  if (selectedShape) {
84
- updateShape(_fp["default"].set(field, value, selectedShape), true);
83
+ updateShape(_fp["default"].set(['style', field], value, selectedShape), true);
84
+ updateToolSettings(selectedShape.toolId, field, value);
85
85
  } else {
86
- setDefaultConf(function (prevDefaultConf) {
87
- return _fp["default"].set(field, value, prevDefaultConf);
88
- });
86
+ updateToolSettings(activeTool.id, field, value);
89
87
  }
90
88
  };
91
89
 
92
90
  var handleShapeFontFamilyChange = function handleShapeFontFamilyChange(field, value) {
93
91
  if (selectedShape) {
94
- var _newShape$style;
92
+ var _newShape$style$fontB, _newShape$style, _newShape$style$fontI, _newShape$style2, _newShape$style3;
95
93
 
96
94
  var ctx = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d');
97
95
  if (!ctx) return;
98
96
 
99
- var newShape = _fp["default"].set(field, value, selectedShape);
97
+ var newShape = _fp["default"].set(['style', field], value, selectedShape);
100
98
 
101
- 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);
102
100
 
103
101
  var resizedShape = _objectSpread(_objectSpread({}, newShape), {}, {
104
102
  fontSize: fontSize,
@@ -106,150 +104,205 @@ var SettingsBar = function SettingsBar(_ref) {
106
104
  });
107
105
 
108
106
  updateShape(resizedShape, true);
107
+ updateToolSettings(selectedShape.toolId, field, value);
109
108
  } else {
110
- setDefaultConf(function (prevDefaultConf) {
111
- return _fp["default"].set(field, value, prevDefaultConf);
112
- });
109
+ updateToolSettings(activeTool.id, field, value);
113
110
  }
114
111
  };
115
112
 
116
113
  var handlePolygonLinesCount = function handlePolygonLinesCount(field, value) {
117
114
  if (selectedShape) {
118
115
  updateShape((0, _transform.updatePolygonLinesCount)(selectedShape, value), true);
116
+ updateToolSettings(selectedShape.toolId, field, value);
119
117
  } else {
120
- setDefaultConf(function (prevDefaultConf) {
121
- return _fp["default"].set(field, value, prevDefaultConf);
122
- });
118
+ updateToolSettings(activeTool.id, field, value);
123
119
  }
124
120
  };
125
121
 
126
- return /*#__PURE__*/_react["default"].createElement(StyledSettingsBar, null, selectedShape ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, shapes.includes(selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (selectedShape.type === _Shapes.ShapeEnum.polygon || selectedShape.type === _Shapes.ShapeEnum.curve) && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
122
+ var selectedShapeTool = selectedShape ? _fp["default"].find({
123
+ id: selectedShape.toolId
124
+ }, availableTools) || _fp["default"].find({
125
+ type: selectedShape.type
126
+ }, availableTools) : undefined;
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"], {
127
128
  selectedSettings: selectedSettings,
128
129
  setSelectedSettings: setSelectedSettings,
130
+ title: "Couleur du trait",
129
131
  disabled: disabled,
130
- defaultValue: selectedShape.points.length,
131
- valueChanged: handlePolygonLinesCount,
132
- values: selectedShape.type === _Shapes.ShapeEnum.curve ? _style.CURVE_POINTS_VALUES : _style.POLYGON_POINTS_VALUES
133
- }), selectedShape.type === _Shapes.ShapeEnum.text ? /*#__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"], {
134
137
  selectedSettings: selectedSettings,
135
138
  setSelectedSettings: setSelectedSettings,
139
+ title: "Couleur de fond",
136
140
  disabled: disabled,
137
- defaultValue: (_selectedShape$style = selectedShape.style) === null || _selectedShape$style === void 0 ? void 0 : _selectedShape$style.fontFamily,
138
- valueChanged: handleShapeFontFamilyChange
139
- }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
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
145
+ }), 'lineWidth' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
140
146
  selectedSettings: selectedSettings,
141
147
  setSelectedSettings: setSelectedSettings,
142
148
  title: "Epaisseur du trait",
143
149
  disabled: disabled,
144
- field: "style.lineWidth",
145
- value: (_selectedShape$style2 = selectedShape.style) === null || _selectedShape$style2 === void 0 ? void 0 : _selectedShape$style2.lineWidth,
150
+ field: "lineWidth",
151
+ value: (_selectedShape$style3 = selectedShape.style) === null || _selectedShape$style3 === void 0 ? void 0 : _selectedShape$style3.lineWidth,
146
152
  valueChanged: handleShapeStyleChange,
147
- unity: "px"
148
- }), /*#__PURE__*/_react["default"].createElement(_LineTypeField["default"], {
153
+ unity: "px",
154
+ min: selectedShapeTool.settings.lineWidth.min,
155
+ max: selectedShapeTool.settings.lineWidth.max,
156
+ step: selectedShapeTool.settings.lineWidth.step
157
+ }), 'lineDash' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_LineTypeField["default"], {
149
158
  selectedSettings: selectedSettings,
150
159
  setSelectedSettings: setSelectedSettings,
151
160
  disabled: disabled,
152
- defaultValue: (_selectedShape$style3 = selectedShape.style) === null || _selectedShape$style3 === void 0 ? void 0 : _selectedShape$style3.lineDash,
153
- valueChanged: handleShapeStyleChange
154
- })), selectedShape.type === _Shapes.ShapeEnum.line && /*#__PURE__*/_react["default"].createElement(_LineArrowField["default"], {
161
+ defaultValue: (_selectedShape$style4 = selectedShape.style) === null || _selectedShape$style4 === void 0 ? void 0 : _selectedShape$style4.lineDash,
162
+ valueChanged: handleShapeStyleChange,
163
+ values: selectedShapeTool.settings.lineDash.values
164
+ }), 'lineArrow' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_LineArrowField["default"], {
155
165
  selectedSettings: selectedSettings,
156
166
  setSelectedSettings: setSelectedSettings,
157
167
  disabled: disabled,
158
- defaultValue: (_selectedShape$style4 = selectedShape.style) === null || _selectedShape$style4 === void 0 ? void 0 : _selectedShape$style4.lineArrow,
159
- valueChanged: handleShapeStyleChange
160
- }), /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
168
+ defaultValue: (_selectedShape$style5 = selectedShape.style) === null || _selectedShape$style5 === void 0 ? void 0 : _selectedShape$style5.lineArrow,
169
+ valueChanged: handleShapeStyleChange,
170
+ values: selectedShapeTool.settings.lineArrow.values
171
+ }), 'pointsCount' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
161
172
  selectedSettings: selectedSettings,
162
173
  setSelectedSettings: setSelectedSettings,
163
- title: "Couleur du trait",
164
174
  disabled: disabled,
165
- field: "style.strokeColor",
166
- value: (_selectedShape$style5 = selectedShape.style) === null || _selectedShape$style5 === void 0 ? void 0 : _selectedShape$style5.strokeColor,
167
- valueChanged: handleShapeStyleChange
168
- }), selectedShape.type !== _Shapes.ShapeEnum.text && selectedShape.type !== _Shapes.ShapeEnum.brush && selectedShape.type !== _Shapes.ShapeEnum.line && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
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"], {
169
181
  selectedSettings: selectedSettings,
170
182
  setSelectedSettings: setSelectedSettings,
171
- title: "Couleur de fond",
172
183
  disabled: disabled,
173
- field: "style.fillColor",
174
- value: (_selectedShape$style6 = selectedShape.style) === null || _selectedShape$style6 === void 0 ? void 0 : _selectedShape$style6.fillColor,
175
- valueChanged: handleShapeStyleChange
176
- })), /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
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
203
+ }), 'opacity' in selectedShapeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
177
204
  selectedSettings: selectedSettings,
178
205
  setSelectedSettings: setSelectedSettings,
179
206
  title: "Opacit\xE9",
180
- min: 0,
181
- max: 100,
182
- step: 1,
207
+ min: selectedShapeTool.settings.opacity.min,
208
+ max: selectedShapeTool.settings.opacity.max,
209
+ step: selectedShapeTool.settings.opacity.step,
183
210
  unity: "%",
184
211
  disabled: disabled,
185
- field: "style.globalAlpha",
186
- value: (_selectedShape$style$ = (_selectedShape$style7 = selectedShape.style) === null || _selectedShape$style7 === void 0 ? void 0 : _selectedShape$style7.globalAlpha) !== null && _selectedShape$style$ !== void 0 ? _selectedShape$style$ : 100,
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,
187
214
  valueChanged: handleShapeStyleChange
188
- }), /*#__PURE__*/_react["default"].createElement(_DeleteButton["default"], {
215
+ })), /*#__PURE__*/_react["default"].createElement(_DeleteButton["default"], {
189
216
  disabled: disabled,
190
217
  selectedShape: selectedShape,
191
218
  removeShape: removeShape
192
- })) : _fp["default"].includes(activeTool, shapes) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (activeTool === _Shapes.ShapeEnum.polygon || activeTool === _Shapes.ShapeEnum.curve) && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
219
+ })) : 'settings' in activeTool && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, 'strokeColor' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
193
220
  selectedSettings: selectedSettings,
194
221
  setSelectedSettings: setSelectedSettings,
222
+ title: "Couleur du trait",
195
223
  disabled: disabled,
196
- defaultValue: 3,
197
- valueChanged: handlePolygonLinesCount,
198
- values: activeTool === _Shapes.ShapeEnum.curve ? _style.CURVE_POINTS_VALUES : _style.POLYGON_POINTS_VALUES
199
- }), activeTool === _Shapes.ShapeEnum.text ? /*#__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"], {
200
229
  selectedSettings: selectedSettings,
201
230
  setSelectedSettings: setSelectedSettings,
231
+ title: "Couleur de fond",
202
232
  disabled: disabled,
203
- defaultValue: (_defaultConf$style = defaultConf.style) === null || _defaultConf$style === void 0 ? void 0 : _defaultConf$style.fontFamily,
204
- valueChanged: handleShapeStyleChange
205
- }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
233
+ field: "fillColor",
234
+ value: activeTool.settings.fillColor["default"],
235
+ valueChanged: handleShapeStyleChange,
236
+ values: activeTool.settings.fillColor.values
237
+ }), 'lineWidth' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
206
238
  selectedSettings: selectedSettings,
207
239
  setSelectedSettings: setSelectedSettings,
208
240
  title: "Epaisseur du trait",
209
241
  disabled: disabled,
210
- field: "style.lineWidth",
211
- value: (_defaultConf$style2 = defaultConf.style) === null || _defaultConf$style2 === void 0 ? void 0 : _defaultConf$style2.lineWidth,
242
+ field: "lineWidth",
243
+ value: activeTool.settings.lineWidth["default"],
212
244
  valueChanged: handleShapeStyleChange,
213
- unity: "px"
214
- }), /*#__PURE__*/_react["default"].createElement(_LineTypeField["default"], {
245
+ unity: "px",
246
+ min: activeTool.settings.lineWidth.min,
247
+ max: activeTool.settings.lineWidth.max,
248
+ step: activeTool.settings.lineWidth.step
249
+ }), 'lineDash' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_LineTypeField["default"], {
215
250
  selectedSettings: selectedSettings,
216
251
  setSelectedSettings: setSelectedSettings,
217
252
  disabled: disabled,
218
- defaultValue: (_defaultConf$style3 = defaultConf.style) === null || _defaultConf$style3 === void 0 ? void 0 : _defaultConf$style3.lineDash,
219
- valueChanged: handleShapeStyleChange
220
- })), activeTool === _Shapes.ShapeEnum.line && /*#__PURE__*/_react["default"].createElement(_LineArrowField["default"], {
253
+ defaultValue: activeTool.settings.lineDash["default"],
254
+ valueChanged: handleShapeStyleChange,
255
+ values: activeTool.settings.lineDash.values
256
+ }), 'lineArrow' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_LineArrowField["default"], {
221
257
  selectedSettings: selectedSettings,
222
258
  setSelectedSettings: setSelectedSettings,
223
259
  disabled: disabled,
224
- defaultValue: (_defaultConf$style4 = defaultConf.style) === null || _defaultConf$style4 === void 0 ? void 0 : _defaultConf$style4.lineArrow,
225
- valueChanged: handleShapeStyleChange
226
- }), /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
260
+ defaultValue: activeTool.settings.lineArrow["default"],
261
+ valueChanged: handleShapeStyleChange,
262
+ values: activeTool.settings.lineArrow.values
263
+ }), 'pointsCount' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_PointsNumberField["default"], {
227
264
  selectedSettings: selectedSettings,
228
265
  setSelectedSettings: setSelectedSettings,
229
- title: "Couleur du trait",
230
266
  disabled: disabled,
231
- field: "style.strokeColor",
232
- value: (_defaultConf$style5 = defaultConf.style) === null || _defaultConf$style5 === void 0 ? void 0 : _defaultConf$style5.strokeColor,
233
- valueChanged: handleShapeStyleChange
234
- }), activeTool !== _Shapes.ShapeEnum.text && activeTool !== _Shapes.ShapeEnum.brush && activeTool !== _Shapes.ShapeEnum.line && /*#__PURE__*/_react["default"].createElement(_ColorField["default"], {
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"], {
235
273
  selectedSettings: selectedSettings,
236
274
  setSelectedSettings: setSelectedSettings,
237
- title: "Couleur de fond",
238
275
  disabled: disabled,
239
- field: "style.fillColor",
240
- value: (_defaultConf$style6 = defaultConf.style) === null || _defaultConf$style6 === void 0 ? void 0 : _defaultConf$style6.fillColor,
241
- valueChanged: handleShapeStyleChange
242
- }), /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
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"]
295
+ }), 'opacity' in activeTool.settings && /*#__PURE__*/_react["default"].createElement(_RangeField["default"], {
243
296
  selectedSettings: selectedSettings,
244
297
  setSelectedSettings: setSelectedSettings,
245
298
  title: "Opacit\xE9",
246
- min: 0,
247
- max: 100,
248
- step: 1,
299
+ min: activeTool.settings.opacity.min,
300
+ max: activeTool.settings.opacity.max,
301
+ step: activeTool.settings.opacity.step,
249
302
  unity: "%",
250
303
  disabled: disabled,
251
- field: "style.globalAlpha",
252
- value: (_defaultConf$style7 = defaultConf.style) === null || _defaultConf$style7 === void 0 ? void 0 : _defaultConf$style7.globalAlpha,
304
+ field: "globalAlpha",
305
+ value: activeTool.settings.opacity["default"],
253
306
  valueChanged: handleShapeStyleChange
254
307
  })), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), layersManipulation && /*#__PURE__*/_react["default"].createElement(_LayoutButton["default"], {
255
308
  layersManipulation: layersManipulation,
@@ -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;
@@ -48,20 +48,24 @@ var StyledEditBox = /*#__PURE__*/(0, _react2.styled)("div")({
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(_ref6) {
56
- var _shape$style$strokeCo, _shape$style, _shape$style$fontFami, _shape$style2;
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 _ref6$disabled = _ref6.disabled,
59
- disabled = _ref6$disabled === void 0 ? false : _ref6$disabled,
60
- scaleRatio = _ref6.scaleRatio,
61
- shape = _ref6.shape,
62
- defaultValue = _ref6.defaultValue,
63
- updateValue = _ref6.updateValue,
64
- selectionPadding = _ref6.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
- fontfamily: (_shape$style$fontFami = (_shape$style2 = shape.style) === null || _shape$style2 === void 0 ? void 0 : _shape$style2.fontFamily) !== null && _shape$style$fontFami !== void 0 ? _shape$style$fontFami : _style.STYLE_FONT_DEFAULT,
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
  });
@@ -18,12 +18,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
18
18
  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; }
19
19
 
20
20
  var LoadFileTool = function LoadFileTool(_ref) {
21
+ var _type$lib;
22
+
21
23
  var _ref$disabled = _ref.disabled,
22
24
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
23
25
  _ref$withText = _ref.withText,
24
26
  withText = _ref$withText === void 0 ? false : _ref$withText,
25
27
  loadFile = _ref.loadFile,
26
- lib = _ref.lib,
28
+ type = _ref.type,
27
29
  img = _ref.img,
28
30
  accept = _ref.accept;
29
31
  var inputRef = (0, _react.useRef)(null);
@@ -47,9 +49,9 @@ var LoadFileTool = function LoadFileTool(_ref) {
47
49
  onClick: handleClick,
48
50
  onChange: handleChange,
49
51
  accept: accept,
50
- title: lib,
52
+ title: (_type$lib = type.lib) !== null && _type$lib !== void 0 ? _type$lib : type.type,
51
53
  icon: img,
52
- children: withText ? lib : undefined,
54
+ children: withText ? type.lib : undefined,
53
55
  disabled: disabled
54
56
  });
55
57
  };