@yorab/react-paint 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +2 -0
  2. package/dist/components/App.js +224 -384
  3. package/dist/components/Canvas.js +104 -114
  4. package/dist/components/common/Button.js +41 -50
  5. package/dist/components/common/Loading.js +21 -33
  6. package/dist/components/common/Modal.js +18 -17
  7. package/dist/components/common/Panel.js +20 -24
  8. package/dist/components/common/Snackbar.js +27 -34
  9. package/dist/components/settings/ColorField.js +59 -68
  10. package/dist/components/settings/DeleteButton.js +10 -9
  11. package/dist/components/settings/FontFamilyField.js +24 -19
  12. package/dist/components/settings/LayoutButton.js +11 -9
  13. package/dist/components/settings/Layouts.js +93 -103
  14. package/dist/components/settings/LineArrowField.js +25 -22
  15. package/dist/components/settings/LineTypeField.js +23 -20
  16. package/dist/components/settings/PointsNumberField.js +14 -13
  17. package/dist/components/settings/RangeField.js +35 -47
  18. package/dist/components/settings/SelectField.js +34 -43
  19. package/dist/components/settings/SettingsBar.js +95 -118
  20. package/dist/components/settings/ToggleField.js +18 -25
  21. package/dist/components/toolbox/EditTextBox.js +53 -42
  22. package/dist/components/toolbox/LoadFileTool.js +19 -21
  23. package/dist/components/toolbox/MenuGroup.js +60 -96
  24. package/dist/components/toolbox/PictureUrlInput.js +33 -62
  25. package/dist/components/toolbox/Tool.js +13 -13
  26. package/dist/components/toolbox/Toolbar.js +74 -106
  27. package/dist/components/toolbox/ToolbarGroup.js +41 -57
  28. package/dist/constants/icons.js +43 -43
  29. package/dist/constants/shapes.js +6 -6
  30. package/dist/constants/snackbar.js +3 -3
  31. package/dist/constants/style.js +13 -13
  32. package/dist/constants/tools.js +80 -80
  33. package/dist/hooks/useComponent.js +12 -19
  34. package/dist/hooks/useDoubleClick.js +12 -12
  35. package/dist/hooks/useDrag.js +24 -32
  36. package/dist/hooks/useDrawableCanvas.js +86 -100
  37. package/dist/hooks/useKeyboard.js +26 -36
  38. package/dist/hooks/useResizeObserver.js +18 -16
  39. package/dist/hooks/useShapes.js +91 -143
  40. package/dist/hooks/useSnackbar.js +28 -58
  41. package/dist/styles.css +55 -55
  42. package/dist/types/Mode.js +1 -1
  43. package/dist/types/Shapes.js +1 -1
  44. package/dist/types/keyboard.js +2 -2
  45. package/dist/types/tools.js +1 -1
  46. package/dist/utils/data.js +91 -107
  47. package/dist/utils/draw.js +116 -146
  48. package/dist/utils/file.js +69 -119
  49. package/dist/utils/intersect.js +57 -97
  50. package/dist/utils/selection.js +12 -12
  51. package/dist/utils/shapeData.js +33 -51
  52. package/dist/utils/string.js +10 -16
  53. package/dist/utils/style.js +1 -1
  54. package/dist/utils/toolbar.js +26 -38
  55. package/dist/utils/transform.js +183 -239
  56. package/package.json +6 -5
  57. package/Changelog.md +0 -123
@@ -2,20 +2,10 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports["default"] = void 0;
11
-
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+ exports.default = void 0;
19
9
 
20
10
  var _react = _interopRequireWildcard(require("react"));
21
11
 
@@ -37,13 +27,13 @@ var _file = require("../utils/file");
37
27
 
38
28
  var _Mode = require("../types/Mode");
39
29
 
40
- var _useComponent2 = _interopRequireDefault(require("../hooks/useComponent"));
30
+ var _useComponent = _interopRequireDefault(require("../hooks/useComponent"));
41
31
 
42
- var _useShapes2 = _interopRequireDefault(require("../hooks/useShapes"));
32
+ var _useShapes = _interopRequireDefault(require("../hooks/useShapes"));
43
33
 
44
34
  var _Snackbar = _interopRequireDefault(require("./common/Snackbar"));
45
35
 
46
- var _useSnackbar2 = _interopRequireDefault(require("../hooks/useSnackbar"));
36
+ var _useSnackbar = _interopRequireDefault(require("../hooks/useSnackbar"));
47
37
 
48
38
  var _snackbar = require("../constants/snackbar");
49
39
 
@@ -61,79 +51,59 @@ var _tools = require("../constants/tools");
61
51
 
62
52
  var _fp = _interopRequireDefault(require("lodash/fp"));
63
53
 
64
- 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); }
54
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
65
55
 
66
- 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; }
56
+ 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; }
67
57
 
68
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
69
-
70
- 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; }
71
-
72
- var StyledApp = /*#__PURE__*/(0, _react2.styled)("div")({
58
+ const StyledApp = /*#__PURE__*/(0, _react2.styled)("div")({
73
59
  name: "StyledApp",
74
- "class": "sdhgr8u",
60
+ class: "s1v9piyg",
75
61
  vars: {
76
- "sdhgr8u-0": [function (props) {
77
- return props.toolbarBackgroundColor;
78
- }],
79
- "sdhgr8u-1": [function (props) {
80
- return props.dividerColor;
81
- }],
82
- "sdhgr8u-2": [function (props) {
83
- return props.fontRadius;
84
- }, "px"],
85
- "sdhgr8u-3": [function (props) {
86
- return props.fontDisabledColor;
87
- }],
88
- "sdhgr8u-4": [function (props) {
89
- return props.fontDisabledBackgroundColor;
90
- }],
91
- "sdhgr8u-5": [function (props) {
92
- return props.fontColor;
93
- }],
94
- "sdhgr8u-6": [function (props) {
95
- return props.fontBackgroundColor;
96
- }],
97
- "sdhgr8u-7": [function (props) {
98
- return props.fontSelectedColor;
99
- }],
100
- "sdhgr8u-8": [function (props) {
101
- return props.fontSelectedBackgroundColor;
102
- }],
103
- "sdhgr8u-9": [function (props) {
104
- return props.fontHoverColor;
105
- }],
106
- "sdhgr8u-10": [function (props) {
107
- return props.fontHoverBackgroundColor;
108
- }],
109
- "sdhgr8u-11": [function (props) {
110
- return props.canvasBackgroundColor;
111
- }],
112
- "sdhgr8u-12": [function (_ref) {
113
- var canvasWidth = _ref.canvasWidth;
62
+ "s1v9piyg-0": [props => props.toolbarBackgroundColor],
63
+ "s1v9piyg-1": [props => props.dividerColor],
64
+ "s1v9piyg-2": [props => props.fontRadius, "px"],
65
+ "s1v9piyg-3": [props => props.fontDisabledColor],
66
+ "s1v9piyg-4": [props => props.fontDisabledBackgroundColor],
67
+ "s1v9piyg-5": [props => props.fontColor],
68
+ "s1v9piyg-6": [props => props.fontBackgroundColor],
69
+ "s1v9piyg-7": [props => props.fontSelectedColor],
70
+ "s1v9piyg-8": [props => props.fontSelectedBackgroundColor],
71
+ "s1v9piyg-9": [props => props.fontHoverColor],
72
+ "s1v9piyg-10": [props => props.fontHoverBackgroundColor],
73
+ "s1v9piyg-11": [props => props.canvasBackgroundColor],
74
+ "s1v9piyg-12": [_ref => {
75
+ let {
76
+ canvasWidth
77
+ } = _ref;
114
78
  return "min(100%, ".concat(canvasWidth, "px)");
115
79
  }],
116
- "sdhgr8u-13": [function (_ref2) {
117
- var canvasWidth = _ref2.canvasWidth;
80
+ "s1v9piyg-13": [_ref2 => {
81
+ let {
82
+ canvasWidth
83
+ } = _ref2;
118
84
  return canvasWidth;
119
85
  }, "px"]
120
86
  }
121
87
  });
122
- var StyledRow = /*#__PURE__*/(0, _react2.styled)("div")({
88
+ const StyledRow = /*#__PURE__*/(0, _react2.styled)("div")({
123
89
  name: "StyledRow",
124
- "class": "sm24hcl",
90
+ class: "s6o5tmu",
125
91
  vars: {
126
- "sm24hcl-1": [function (_ref3) {
127
- var width = _ref3.width;
92
+ "s6o5tmu-1": [_ref3 => {
93
+ let {
94
+ width
95
+ } = _ref3;
128
96
  return width;
129
97
  }, "px"],
130
- "sm24hcl-2": [function (_ref4) {
131
- var aspectRatio = _ref4.aspectRatio;
98
+ "s6o5tmu-2": [_ref4 => {
99
+ let {
100
+ aspectRatio
101
+ } = _ref4;
132
102
  return aspectRatio;
133
103
  }]
134
104
  }
135
105
  });
136
- var DEFAULT_OPTIONS = {
106
+ const DEFAULT_OPTIONS = {
137
107
  layersManipulation: true,
138
108
  gridVisible: false,
139
109
  canGrow: false,
@@ -163,200 +133,133 @@ var DEFAULT_OPTIONS = {
163
133
  }
164
134
  };
165
135
 
166
- var App = function App(_ref5) {
136
+ const App = _ref5 => {
167
137
  var _options$uiStyle;
168
138
 
169
- var _ref5$width = _ref5.width,
170
- canvasWidth = _ref5$width === void 0 ? 1000 : _ref5$width,
171
- _ref5$height = _ref5.height,
172
- canvasHeight = _ref5$height === void 0 ? 600 : _ref5$height,
173
- shapesFromProps = _ref5.shapes,
174
- classNameFromProps = _ref5.className,
175
- _ref5$mode = _ref5.mode,
176
- mode = _ref5$mode === void 0 ? 'editor' : _ref5$mode,
177
- _ref5$disabled = _ref5.disabled,
178
- disabledFromProps = _ref5$disabled === void 0 ? false : _ref5$disabled,
179
- onDataChanged = _ref5.onDataChanged,
180
- apiRef = _ref5.apiRef,
181
- options = _ref5.options;
182
-
183
- var _DEFAULT_OPTIONS$opti = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options),
184
- layersManipulation = _DEFAULT_OPTIONS$opti.layersManipulation,
185
- gridVisible = _DEFAULT_OPTIONS$opti.gridVisible,
186
- canGrow = _DEFAULT_OPTIONS$opti.canGrow,
187
- canShrink = _DEFAULT_OPTIONS$opti.canShrink,
188
- withExport = _DEFAULT_OPTIONS$opti.withExport,
189
- withLoadAndSave = _DEFAULT_OPTIONS$opti.withLoadAndSave,
190
- withUploadPicture = _DEFAULT_OPTIONS$opti.withUploadPicture,
191
- withUrlPicture = _DEFAULT_OPTIONS$opti.withUrlPicture,
192
- clearCallback = _DEFAULT_OPTIONS$opti.clearCallback,
193
- availableToolsFromProps = _DEFAULT_OPTIONS$opti.availableTools;
194
-
195
- var _DEFAULT_OPTIONS$uiSt = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS.uiStyle), (_options$uiStyle = options === null || options === void 0 ? void 0 : options.uiStyle) !== null && _options$uiStyle !== void 0 ? _options$uiStyle : {}),
196
- toolbarBackgroundColor = _DEFAULT_OPTIONS$uiSt.toolbarBackgroundColor,
197
- dividerColor = _DEFAULT_OPTIONS$uiSt.dividerColor,
198
- fontRadius = _DEFAULT_OPTIONS$uiSt.fontRadius,
199
- fontDisabledColor = _DEFAULT_OPTIONS$uiSt.fontDisabledColor,
200
- fontDisabledBackgroundColor = _DEFAULT_OPTIONS$uiSt.fontDisabledBackgroundColor,
201
- fontColor = _DEFAULT_OPTIONS$uiSt.fontColor,
202
- fontBackgroundColor = _DEFAULT_OPTIONS$uiSt.fontBackgroundColor,
203
- fontSelectedColor = _DEFAULT_OPTIONS$uiSt.fontSelectedColor,
204
- fontSelectedBackgroundColor = _DEFAULT_OPTIONS$uiSt.fontSelectedBackgroundColor,
205
- fontHoverColor = _DEFAULT_OPTIONS$uiSt.fontHoverColor,
206
- fontHoverBackgroundColor = _DEFAULT_OPTIONS$uiSt.fontHoverBackgroundColor,
207
- canvasBackgroundColor = _DEFAULT_OPTIONS$uiSt.canvasBackgroundColor,
208
- canvasSelectionColor = _DEFAULT_OPTIONS$uiSt.canvasSelectionColor,
209
- canvasSelectionWidth = _DEFAULT_OPTIONS$uiSt.canvasSelectionWidth,
210
- canvasSelectionPadding = _DEFAULT_OPTIONS$uiSt.canvasSelectionPadding;
211
-
212
- var isEditMode = mode !== 'viewer';
213
- var disabled = disabledFromProps || !isEditMode;
214
- var componentRef = (0, _react.useRef)(null);
215
- var canvasRef = (0, _react.useRef)(null);
216
-
217
- var _useState = (0, _react.useState)({
139
+ let {
140
+ width: canvasWidth = 1000,
141
+ height: canvasHeight = 600,
142
+ shapes: shapesFromProps,
143
+ className: classNameFromProps,
144
+ mode = 'editor',
145
+ disabled: disabledFromProps = false,
146
+ onDataChanged,
147
+ apiRef,
148
+ options
149
+ } = _ref5;
150
+ const {
151
+ layersManipulation,
152
+ gridVisible,
153
+ canGrow,
154
+ canShrink,
155
+ withExport,
156
+ withLoadAndSave,
157
+ withUploadPicture,
158
+ withUrlPicture,
159
+ clearCallback,
160
+ availableTools: availableToolsFromProps
161
+ } = { ...DEFAULT_OPTIONS,
162
+ ...options
163
+ };
164
+ const {
165
+ toolbarBackgroundColor,
166
+ dividerColor,
167
+ fontRadius,
168
+ fontDisabledColor,
169
+ fontDisabledBackgroundColor,
170
+ fontColor,
171
+ fontBackgroundColor,
172
+ fontSelectedColor,
173
+ fontSelectedBackgroundColor,
174
+ fontHoverColor,
175
+ fontHoverBackgroundColor,
176
+ canvasBackgroundColor,
177
+ canvasSelectionColor,
178
+ canvasSelectionWidth,
179
+ canvasSelectionPadding
180
+ } = { ...DEFAULT_OPTIONS.uiStyle,
181
+ ...((_options$uiStyle = options === null || options === void 0 ? void 0 : options.uiStyle) !== null && _options$uiStyle !== void 0 ? _options$uiStyle : {})
182
+ };
183
+ const isEditMode = mode !== 'viewer';
184
+ const disabled = disabledFromProps || !isEditMode;
185
+ const componentRef = (0, _react.useRef)(null);
186
+ const canvasRef = (0, _react.useRef)(null);
187
+ const [canvasSize, setCanvasSize] = (0, _react.useState)({
218
188
  width: canvasWidth,
219
189
  height: canvasHeight,
220
190
  scaleRatio: 1
221
- }),
222
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
223
- canvasSize = _useState2[0],
224
- setCanvasSize = _useState2[1];
225
-
226
- var _useState3 = (0, _react.useState)((0, _toolbar.sanitizeTools)(availableToolsFromProps, withUploadPicture || withUrlPicture)),
227
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
228
- availableTools = _useState4[0],
229
- setAvailableTools = _useState4[1];
230
-
231
- (0, _react.useEffect)(function () {
191
+ });
192
+ const [availableTools, setAvailableTools] = (0, _react.useState)((0, _toolbar.sanitizeTools)(availableToolsFromProps, withUploadPicture || withUrlPicture));
193
+ (0, _react.useEffect)(() => {
232
194
  setAvailableTools((0, _toolbar.sanitizeTools)(availableToolsFromProps, withUploadPicture || withUrlPicture));
233
195
  }, [availableToolsFromProps, withUploadPicture, withUrlPicture]);
234
-
235
- var _useComponent = (0, _useComponent2["default"])({
236
- disabled: disabled,
237
- componentRef: componentRef
238
- }),
239
- isInsideComponent = _useComponent.isInsideComponent;
240
-
241
- var _useState5 = (0, _react.useState)(false),
242
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
243
- isLoading = _useState6[0],
244
- setIsLoading = _useState6[1];
245
-
246
- var _useState7 = (0, _react.useState)(false),
247
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
248
- isLayoutPanelShown = _useState8[0],
249
- setIsLayoutPanelShown = _useState8[1];
250
-
251
- var _useState9 = (0, _react.useState)([0, 0]),
252
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
253
- canvasOffset = _useState10[0],
254
- setCanvasOffset = _useState10[1];
255
-
256
- var _useState11 = (0, _react.useState)(undefined),
257
- _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
258
- canvasOffsetStartPosition = _useState12[0],
259
- setCanvasOffsetStartPosition = _useState12[1];
260
-
261
- var _useState13 = (0, _react.useState)(_tools.SELECTION_TOOL),
262
- _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
263
- activeTool = _useState14[0],
264
- setActiveTool = _useState14[1];
265
-
266
- var _useState15 = (0, _react.useState)({
267
- mode: _Mode.SelectionModeLib["default"]
268
- }),
269
- _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
270
- selectionMode = _useState16[0],
271
- setSelectionMode = _useState16[1];
272
-
273
- var _useState17 = (0, _react.useState)(gridVisible),
274
- _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
275
- withGrid = _useState18[0],
276
- setWithGrid = _useState18[1];
277
-
278
- var _useShapes = (0, _useShapes2["default"])(onDataChanged),
279
- shapesRef = _useShapes.shapesRef,
280
- selectedShape = _useShapes.selectedShape,
281
- addShape = _useShapes.addShape,
282
- addPictureShape = _useShapes.addPictureShape,
283
- moveShapes = _useShapes.moveShapes,
284
- setSelectedShape = _useShapes.setSelectedShape,
285
- removeShape = _useShapes.removeShape,
286
- updateShape = _useShapes.updateShape,
287
- backwardShape = _useShapes.backwardShape,
288
- forwardShape = _useShapes.forwardShape,
289
- clearShapes = _useShapes.clearShapes,
290
- saveShapes = _useShapes.saveShapes,
291
- toggleShapeVisibility = _useShapes.toggleShapeVisibility,
292
- toggleShapeLock = _useShapes.toggleShapeLock,
293
- canGoBackward = _useShapes.canGoBackward,
294
- canGoForward = _useShapes.canGoForward,
295
- canClear = _useShapes.canClear;
296
-
297
- var _useSnackbar = (0, _useSnackbar2["default"])(),
298
- snackbarList = _useSnackbar.snackbarList,
299
- addSnackbar = _useSnackbar.addSnackbar;
300
-
301
- var selectTool = (0, _react.useCallback)(function (tool) {
196
+ const {
197
+ isInsideComponent
198
+ } = (0, _useComponent.default)({
199
+ disabled,
200
+ componentRef
201
+ });
202
+ const [isLoading, setIsLoading] = (0, _react.useState)(false);
203
+ const [isLayoutPanelShown, setIsLayoutPanelShown] = (0, _react.useState)(false);
204
+ const [canvasOffset, setCanvasOffset] = (0, _react.useState)([0, 0]);
205
+ const [canvasOffsetStartPosition, setCanvasOffsetStartPosition] = (0, _react.useState)(undefined);
206
+ const [activeTool, setActiveTool] = (0, _react.useState)(_tools.SELECTION_TOOL);
207
+ const [selectionMode, setSelectionMode] = (0, _react.useState)({
208
+ mode: _Mode.SelectionModeLib.default
209
+ });
210
+ const [withGrid, setWithGrid] = (0, _react.useState)(gridVisible);
211
+ const {
212
+ shapesRef,
213
+ selectedShape,
214
+ addShape,
215
+ addPictureShape,
216
+ moveShapes,
217
+ setSelectedShape,
218
+ removeShape,
219
+ updateShape,
220
+ backwardShape,
221
+ forwardShape,
222
+ clearShapes,
223
+ saveShapes,
224
+ toggleShapeVisibility,
225
+ toggleShapeLock,
226
+ canGoBackward,
227
+ canGoForward,
228
+ canClear
229
+ } = (0, _useShapes.default)(onDataChanged);
230
+ const {
231
+ snackbarList,
232
+ addSnackbar
233
+ } = (0, _useSnackbar.default)();
234
+ const selectTool = (0, _react.useCallback)(tool => {
302
235
  setSelectedShape(undefined);
303
236
  setActiveTool(tool);
304
237
  }, [setSelectedShape]);
305
- var updateToolSettings = (0, _react.useCallback)(function (toolId, field, value) {
306
- setAvailableTools(function (availableTools) {
307
- return availableTools.map(function (tool) {
308
- return tool.id === toolId ? _fp["default"].set(['settings', field, 'default'], value, tool) : tool;
309
- });
310
- });
311
- setActiveTool(function (activeTool) {
312
- return activeTool.id === toolId ? _fp["default"].set(['settings', field, 'default'], value, activeTool) : activeTool;
313
- });
238
+ const updateToolSettings = (0, _react.useCallback)((toolId, field, value) => {
239
+ setAvailableTools(availableTools => availableTools.map(tool => tool.id === toolId ? _fp.default.set(['settings', field, 'default'], value, tool) : tool));
240
+ setActiveTool(activeTool => activeTool.id === toolId ? _fp.default.set(['settings', field, 'default'], value, activeTool) : activeTool);
314
241
  }, []);
315
- var undoAction = (0, _react.useCallback)(function () {
242
+ const undoAction = (0, _react.useCallback)(() => {
316
243
  selectTool(_tools.SELECTION_TOOL);
317
244
  backwardShape();
318
245
  }, [selectTool, backwardShape]);
319
- var redoAction = (0, _react.useCallback)(function () {
246
+ const redoAction = (0, _react.useCallback)(() => {
320
247
  selectTool(_tools.SELECTION_TOOL);
321
248
  forwardShape();
322
249
  }, [selectTool, forwardShape]);
323
- var resetCanvas = (0, _react.useCallback)(function () {
324
- var shapesToInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
325
- var clearHistory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
250
+ const resetCanvas = (0, _react.useCallback)(function () {
251
+ let shapesToInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
252
+ let clearHistory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
326
253
  clearShapes(shapesToInit, clearHistory);
327
254
  selectTool(_tools.SELECTION_TOOL);
328
255
  setCanvasOffset([0, 0]);
329
256
  }, [selectTool, clearShapes]);
330
- var loadImportedData = (0, _react.useCallback)( /*#__PURE__*/function () {
331
- var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(json) {
332
- var clearHistory,
333
- shapes,
334
- _args = arguments;
335
- return _regenerator["default"].wrap(function _callee$(_context) {
336
- while (1) {
337
- switch (_context.prev = _context.next) {
338
- case 0:
339
- clearHistory = _args.length > 1 && _args[1] !== undefined ? _args[1] : true;
340
- _context.next = 3;
341
- return (0, _file.decodeImportedData)(json);
342
-
343
- case 3:
344
- shapes = _context.sent;
345
- resetCanvas(shapes, clearHistory);
346
-
347
- case 5:
348
- case "end":
349
- return _context.stop();
350
- }
351
- }
352
- }, _callee);
353
- }));
354
-
355
- return function (_x) {
356
- return _ref6.apply(this, arguments);
357
- };
358
- }(), [resetCanvas]);
359
- var clearCanvas = (0, _react.useCallback)(function () {
257
+ const loadImportedData = (0, _react.useCallback)(async function (json) {
258
+ let clearHistory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
259
+ const shapes = await (0, _file.decodeImportedData)(json);
260
+ resetCanvas(shapes, clearHistory);
261
+ }, [resetCanvas]);
262
+ const clearCanvas = (0, _react.useCallback)(() => {
360
263
  if (typeof clearCallback !== 'string') {
361
264
  void loadImportedData({
362
265
  shapes: clearCallback()
@@ -371,19 +274,19 @@ var App = function App(_ref5) {
371
274
  }
372
275
  }
373
276
  }, [resetCanvas, loadImportedData, shapesFromProps, clearCallback]);
374
- var selectShape = (0, _react.useCallback)(function (shape) {
277
+ const selectShape = (0, _react.useCallback)(shape => {
375
278
  setActiveTool(_tools.SELECTION_TOOL);
376
279
  setSelectedShape(shape);
377
280
  }, [setSelectedShape]);
378
- var pasteShape = (0, _react.useCallback)(function (shape) {
281
+ const pasteShape = (0, _react.useCallback)(shape => {
379
282
  addShape(shape);
380
283
  selectShape(shape);
381
284
  }, [addShape, selectShape]);
382
- var exportCanvasInFile = (0, _react.useCallback)(function () {
285
+ const exportCanvasInFile = (0, _react.useCallback)(() => {
383
286
  setIsLoading(true);
384
287
 
385
288
  try {
386
- var dataURL = canvasRef.current && (0, _file.getCanvasImage)(shapesRef.current, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding);
289
+ const dataURL = canvasRef.current && (0, _file.getCanvasImage)(shapesRef.current, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding);
387
290
 
388
291
  if (!dataURL) {
389
292
  throw new Error();
@@ -404,11 +307,11 @@ var App = function App(_ref5) {
404
307
  setIsLoading(false);
405
308
  }
406
309
  }, [addSnackbar, shapesRef, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding]);
407
- var saveFile = (0, _react.useCallback)(function () {
310
+ const saveFile = (0, _react.useCallback)(() => {
408
311
  setIsLoading(true);
409
312
 
410
313
  try {
411
- var content = (0, _file.encodeShapesInString)(shapesRef.current, canvasWidth, canvasHeight);
314
+ const content = (0, _file.encodeShapesInString)(shapesRef.current, canvasWidth, canvasHeight);
412
315
 
413
316
  if (!content) {
414
317
  throw new Error("L'encodage a échoué");
@@ -429,155 +332,94 @@ var App = function App(_ref5) {
429
332
  setIsLoading(false);
430
333
  }
431
334
  }, [shapesRef, addSnackbar, canvasWidth, canvasHeight]);
432
- var loadFile = (0, _react.useCallback)( /*#__PURE__*/function () {
433
- var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(file) {
434
- var json;
435
- return _regenerator["default"].wrap(function _callee2$(_context2) {
436
- while (1) {
437
- switch (_context2.prev = _context2.next) {
438
- case 0:
439
- setIsLoading(true);
440
- _context2.prev = 1;
441
- _context2.next = 4;
442
- return (0, _file.decodeJson)(file);
443
-
444
- case 4:
445
- json = _context2.sent;
446
- _context2.next = 7;
447
- return loadImportedData(json);
448
-
449
- case 7:
450
- addSnackbar({
451
- type: _snackbar.SnackbarTypeEnum.Success,
452
- text: 'Fichier chargé !'
453
- });
454
- _context2.next = 14;
455
- break;
456
-
457
- case 10:
458
- _context2.prev = 10;
459
- _context2.t0 = _context2["catch"](1);
460
-
461
- if (_context2.t0 instanceof Error) {
462
- addSnackbar({
463
- type: _snackbar.SnackbarTypeEnum.Error,
464
- text: 'Le chargement a échoué'
465
- });
466
- }
467
-
468
- console.warn(_context2.t0);
469
-
470
- case 14:
471
- _context2.prev = 14;
472
- setIsLoading(false);
473
- return _context2.finish(14);
474
-
475
- case 17:
476
- case "end":
477
- return _context2.stop();
478
- }
479
- }
480
- }, _callee2, null, [[1, 10, 14, 17]]);
481
- }));
482
-
483
- return function (_x2) {
484
- return _ref7.apply(this, arguments);
485
- };
486
- }(), [loadImportedData, addSnackbar]);
487
- var addPicture = (0, _react.useCallback)( /*#__PURE__*/function () {
488
- var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(fileOrUrl) {
489
- var pictureShape;
490
- return _regenerator["default"].wrap(function _callee3$(_context3) {
491
- while (1) {
492
- switch (_context3.prev = _context3.next) {
493
- case 0:
494
- setIsLoading(true);
495
- _context3.prev = 1;
496
- _context3.next = 4;
497
- return addPictureShape(fileOrUrl, canvasWidth, canvasHeight);
498
-
499
- case 4:
500
- pictureShape = _context3.sent;
501
- selectShape(pictureShape);
502
- _context3.next = 12;
503
- break;
504
-
505
- case 8:
506
- _context3.prev = 8;
507
- _context3.t0 = _context3["catch"](1);
508
-
509
- if (_context3.t0 instanceof Error) {
510
- addSnackbar({
511
- type: _snackbar.SnackbarTypeEnum.Error,
512
- text: 'Le chargement a échoué'
513
- });
514
- }
515
-
516
- console.warn(_context3.t0);
517
-
518
- case 12:
519
- _context3.prev = 12;
520
- setIsLoading(false);
521
- return _context3.finish(12);
522
-
523
- case 15:
524
- case "end":
525
- return _context3.stop();
526
- }
527
- }
528
- }, _callee3, null, [[1, 8, 12, 15]]);
529
- }));
530
-
531
- return function (_x3) {
532
- return _ref8.apply(this, arguments);
533
- };
534
- }(), [addPictureShape, selectShape, addSnackbar, canvasWidth, canvasHeight]);
535
- var onResized = (0, _react.useCallback)(function (measuredWidth) {
536
- var scaleRatio = measuredWidth / canvasWidth;
335
+ const loadFile = (0, _react.useCallback)(async file => {
336
+ setIsLoading(true);
337
+
338
+ try {
339
+ const json = await (0, _file.decodeJson)(file);
340
+ await loadImportedData(json);
341
+ addSnackbar({
342
+ type: _snackbar.SnackbarTypeEnum.Success,
343
+ text: 'Fichier chargé !'
344
+ });
345
+ } catch (e) {
346
+ if (e instanceof Error) {
347
+ addSnackbar({
348
+ type: _snackbar.SnackbarTypeEnum.Error,
349
+ text: 'Le chargement a échoué'
350
+ });
351
+ }
352
+
353
+ console.warn(e);
354
+ } finally {
355
+ setIsLoading(false);
356
+ }
357
+ }, [loadImportedData, addSnackbar]);
358
+ const addPicture = (0, _react.useCallback)(async fileOrUrl => {
359
+ setIsLoading(true);
360
+
361
+ try {
362
+ const pictureShape = await addPictureShape(fileOrUrl, canvasWidth, canvasHeight);
363
+ selectShape(pictureShape);
364
+ } catch (e) {
365
+ if (e instanceof Error) {
366
+ addSnackbar({
367
+ type: _snackbar.SnackbarTypeEnum.Error,
368
+ text: 'Le chargement a échoué'
369
+ });
370
+ }
371
+
372
+ console.warn(e);
373
+ } finally {
374
+ setIsLoading(false);
375
+ }
376
+ }, [addPictureShape, selectShape, addSnackbar, canvasWidth, canvasHeight]);
377
+ const onResized = (0, _react.useCallback)(measuredWidth => {
378
+ const scaleRatio = measuredWidth / canvasWidth;
537
379
  setCanvasSize({
538
380
  width: measuredWidth,
539
381
  height: canvasHeight * scaleRatio,
540
- scaleRatio: scaleRatio
382
+ scaleRatio
541
383
  });
542
384
  }, [canvasWidth, canvasHeight]);
543
- (0, _useKeyboard["default"])({
544
- isInsideComponent: isInsideComponent,
385
+ (0, _useKeyboard.default)({
386
+ isInsideComponent,
545
387
  isEditingText: selectionMode.mode === _Mode.SelectionModeLib.textedition,
546
- selectedShape: selectedShape,
547
- setSelectedShape: setSelectedShape,
548
- removeShape: removeShape,
549
- pasteShape: pasteShape,
550
- updateShape: updateShape,
551
- backwardShape: backwardShape,
552
- forwardShape: forwardShape
388
+ selectedShape,
389
+ setSelectedShape,
390
+ removeShape,
391
+ pasteShape,
392
+ updateShape,
393
+ backwardShape,
394
+ forwardShape
553
395
  });
554
- (0, _useResizeObserver["default"])({
396
+ (0, _useResizeObserver.default)({
555
397
  element: componentRef,
556
- onResized: onResized
398
+ onResized
557
399
  });
558
- (0, _react.useEffect)(function () {
400
+ (0, _react.useEffect)(() => {
559
401
  if (!isInsideComponent) setSelectedShape(undefined);
560
402
  }, [isInsideComponent, setSelectedShape]);
561
- (0, _react.useEffect)(function () {
403
+ (0, _react.useEffect)(() => {
562
404
  if (shapesFromProps !== undefined) {
563
405
  void loadImportedData({
564
406
  shapes: shapesFromProps
565
407
  });
566
408
  }
567
409
  }, [loadImportedData, shapesFromProps]);
568
- (0, _react.useEffect)(function () {
410
+ (0, _react.useEffect)(() => {
569
411
  if (!apiRef) return;
570
412
  apiRef.current = {
571
- getCurrentImage: function getCurrentImage() {
413
+ getCurrentImage: () => {
572
414
  return canvasRef.current ? (0, _file.getCanvasImage)(shapesRef.current, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding) : undefined;
573
415
  },
574
- getCurrentData: function getCurrentData() {
416
+ getCurrentData: () => {
575
417
  return (0, _data.buildDataToExport)(shapesRef.current, canvasWidth, canvasHeight);
576
418
  }
577
419
  };
578
420
  }, [apiRef, shapesRef, canvasOffset, canvasWidth, canvasHeight, canvasSelectionPadding]);
579
- var className = "".concat(classNameFromProps !== null && classNameFromProps !== void 0 ? classNameFromProps : '', " ").concat(isLayoutPanelShown ? 'layoutPanelOpened' : '');
580
- return /*#__PURE__*/_react["default"].createElement(StyledApp, {
421
+ const className = "".concat(classNameFromProps !== null && classNameFromProps !== void 0 ? classNameFromProps : '', " ").concat(isLayoutPanelShown ? 'layoutPanelOpened' : '');
422
+ return /*#__PURE__*/_react.default.createElement(StyledApp, {
581
423
  ref: componentRef,
582
424
  className: className,
583
425
  "data-grow": canGrow,
@@ -595,7 +437,7 @@ var App = function App(_ref5) {
595
437
  fontHoverColor: fontHoverColor,
596
438
  fontHoverBackgroundColor: fontHoverBackgroundColor,
597
439
  canvasBackgroundColor: canvasBackgroundColor
598
- }, isEditMode && /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
440
+ }, isEditMode && /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
599
441
  width: canvasSize.width,
600
442
  disabled: disabled,
601
443
  activeTool: activeTool,
@@ -615,11 +457,11 @@ var App = function App(_ref5) {
615
457
  withLoadAndSave: withLoadAndSave,
616
458
  withUploadPicture: withUploadPicture,
617
459
  withUrlPicture: withUrlPicture
618
- }), /*#__PURE__*/_react["default"].createElement(StyledRow, {
460
+ }), /*#__PURE__*/_react.default.createElement(StyledRow, {
619
461
  "data-grow": canGrow,
620
462
  width: canvasSize.width,
621
463
  aspectRatio: "calc(".concat(canvasSize.width, " / ").concat(canvasSize.height, ")")
622
- }, /*#__PURE__*/_react["default"].createElement(_Canvas["default"], {
464
+ }, /*#__PURE__*/_react.default.createElement(_Canvas.default, {
623
465
  canGrow: canGrow,
624
466
  withGrid: withGrid,
625
467
  disabled: disabled,
@@ -644,7 +486,7 @@ var App = function App(_ref5) {
644
486
  selectionWidth: canvasSelectionWidth,
645
487
  selectionPadding: canvasSelectionPadding,
646
488
  isEditMode: isEditMode
647
- }), isEditMode && layersManipulation && /*#__PURE__*/_react["default"].createElement(_Layouts["default"], {
489
+ }), isEditMode && layersManipulation && /*#__PURE__*/_react.default.createElement(_Layouts.default, {
648
490
  withGrid: withGrid,
649
491
  setWithGrid: setWithGrid,
650
492
  disabled: disabled,
@@ -656,7 +498,7 @@ var App = function App(_ref5) {
656
498
  toggleShapeVisibility: toggleShapeVisibility,
657
499
  toggleShapeLock: toggleShapeLock,
658
500
  isLayoutPanelShown: isLayoutPanelShown
659
- })), isEditMode && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SettingsBar["default"], {
501
+ })), isEditMode && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_SettingsBar.default, {
660
502
  width: canvasSize.width,
661
503
  disabled: disabled,
662
504
  activeTool: activeTool,
@@ -666,18 +508,16 @@ var App = function App(_ref5) {
666
508
  updateShape: updateShape,
667
509
  canvas: canvasRef.current,
668
510
  layersManipulation: layersManipulation,
669
- toggleLayoutPanel: function toggleLayoutPanel() {
670
- setIsLayoutPanelShown(function (prev) {
671
- return !prev;
672
- });
511
+ toggleLayoutPanel: () => {
512
+ setIsLayoutPanelShown(prev => !prev);
673
513
  },
674
514
  updateToolSettings: updateToolSettings
675
- }), /*#__PURE__*/_react["default"].createElement(_Loading["default"], {
515
+ }), /*#__PURE__*/_react.default.createElement(_Loading.default, {
676
516
  isLoading: isLoading
677
- }), /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
517
+ }), /*#__PURE__*/_react.default.createElement(_Snackbar.default, {
678
518
  snackbarList: snackbarList
679
519
  })));
680
520
  };
681
521
 
682
522
  var _default = App;
683
- exports["default"] = _default;
523
+ exports.default = _default;