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