@yorab/react-paint 0.6.3 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +2 -1
  2. package/dist/components/App.js +235 -387
  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 +25 -20
  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 +65 -40
  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 +5 -4
@@ -1,43 +1,35 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports["default"] = void 0;
9
-
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
6
+ exports.default = void 0;
11
7
 
12
8
  var _react = require("react");
13
9
 
14
- var useDrag = function useDrag(_ref) {
15
- var _ref$disabled = _ref.disabled,
16
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
17
- ref = _ref.ref,
18
- shape = _ref.shape,
19
- layoutDragging = _ref.layoutDragging,
20
- setLayoutDragging = _ref.setLayoutDragging,
21
- handleSelect = _ref.handleSelect,
22
- onMoveShapes = _ref.onMoveShapes;
23
-
24
- var _useState = (0, _react.useState)(false),
25
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
- isOver = _useState2[0],
27
- setIsOver = _useState2[1];
28
-
29
- (0, _react.useEffect)(function () {
10
+ const useDrag = _ref => {
11
+ let {
12
+ disabled = false,
13
+ ref,
14
+ shape,
15
+ layoutDragging,
16
+ setLayoutDragging,
17
+ handleSelect,
18
+ onMoveShapes
19
+ } = _ref;
20
+ const [isOver, setIsOver] = (0, _react.useState)(false);
21
+ (0, _react.useEffect)(() => {
30
22
  if (!layoutDragging) setIsOver(false);
31
23
  }, [layoutDragging]);
32
- (0, _react.useEffect)(function () {
33
- var layoutRef = ref.current;
24
+ (0, _react.useEffect)(() => {
25
+ const layoutRef = ref.current;
34
26
  if (!layoutRef) return;
35
27
 
36
- var handleDragEnd = function handleDragEnd() {
28
+ const handleDragEnd = () => {
37
29
  setLayoutDragging(undefined);
38
30
  };
39
31
 
40
- var handleDragOver = function handleDragOver(e) {
32
+ const handleDragOver = e => {
41
33
  if (e.preventDefault) {
42
34
  e.preventDefault();
43
35
  }
@@ -45,7 +37,7 @@ var useDrag = function useDrag(_ref) {
45
37
  return false;
46
38
  };
47
39
 
48
- var handleDragStart = function handleDragStart(e) {
40
+ const handleDragStart = e => {
49
41
  handleSelect(shape);
50
42
  if (!e.dataTransfer) return;
51
43
  e.dataTransfer.effectAllowed = 'move';
@@ -53,15 +45,15 @@ var useDrag = function useDrag(_ref) {
53
45
  setLayoutDragging(shape.id);
54
46
  };
55
47
 
56
- var handleDragEnter = function handleDragEnter() {
48
+ const handleDragEnter = () => {
57
49
  layoutDragging !== shape.id && setIsOver(true);
58
50
  };
59
51
 
60
- var handleDragLeave = function handleDragLeave() {
52
+ const handleDragLeave = () => {
61
53
  setIsOver(false);
62
54
  };
63
55
 
64
- var handleDrop = function handleDrop(e) {
56
+ const handleDrop = e => {
65
57
  e.stopPropagation(); // stops the browser from redirecting.
66
58
 
67
59
  if (e.dataTransfer) {
@@ -80,7 +72,7 @@ var useDrag = function useDrag(_ref) {
80
72
  layoutRef.addEventListener('drop', handleDrop);
81
73
  }
82
74
 
83
- return function () {
75
+ return () => {
84
76
  if (!disabled) {
85
77
  layoutRef.removeEventListener('dragstart', handleDragStart);
86
78
  layoutRef.removeEventListener('dragend', handleDragEnd);
@@ -92,9 +84,9 @@ var useDrag = function useDrag(_ref) {
92
84
  };
93
85
  }, [disabled, ref, shape, setLayoutDragging, handleSelect, onMoveShapes, layoutDragging]);
94
86
  return {
95
- isOver: isOver
87
+ isOver
96
88
  };
97
89
  };
98
90
 
99
91
  var _default = useDrag;
100
- exports["default"] = _default;
92
+ exports.default = _default;
@@ -5,9 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
9
-
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+ exports.default = void 0;
11
9
 
12
10
  var _react = require("react");
13
11
 
@@ -29,100 +27,91 @@ var _tools = require("../types/tools");
29
27
 
30
28
  var _tools2 = require("../constants/tools");
31
29
 
32
- var _useDoubleClick2 = _interopRequireDefault(require("./useDoubleClick"));
30
+ var _useDoubleClick = _interopRequireDefault(require("./useDoubleClick"));
33
31
 
34
- var handleMove = function handleMove(e, canvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding) {
32
+ const handleMove = (e, canvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding) => {
35
33
  if (activeTool.type === _tools.ActionsEnum.move && canvasOffsetStartPosition !== undefined) {
36
- var _cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
37
-
38
- setCanvasOffset([_cursorPosition[0] - canvasOffsetStartPosition[0], _cursorPosition[1] - canvasOffsetStartPosition[1]]);
34
+ const cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
35
+ setCanvasOffset([cursorPosition[0] - canvasOffsetStartPosition[0], cursorPosition[1] - canvasOffsetStartPosition[1]]);
39
36
  }
40
37
 
41
38
  if (selectedShape == undefined) return;
42
39
  if (selectedShape.locked) return;
43
- var cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
40
+ const cursorPosition = (0, _intersect.getCursorPosition)(e, canvasRef.current, width, height, scaleRatio);
44
41
 
45
- if (selectionMode.mode === _Mode.SelectionModeLib["default"] || selectionMode.mode === _Mode.SelectionModeLib.textedition) {
46
- var positionIntersection = (0, _intersect.checkPositionIntersection)(selectedShape, cursorPosition, canvasOffset, selectionPadding, scaleRatio, true) || {
47
- mode: _Mode.SelectionModeLib["default"]
42
+ if (selectionMode.mode === _Mode.SelectionModeLib.default || selectionMode.mode === _Mode.SelectionModeLib.textedition) {
43
+ const positionIntersection = (0, _intersect.checkPositionIntersection)(selectedShape, cursorPosition, canvasOffset, selectionPadding, scaleRatio, true) || {
44
+ mode: _Mode.SelectionModeLib.default
48
45
  };
49
46
  setHoverMode(positionIntersection);
50
47
  } else {
51
48
  var _canvasRef$current;
52
49
 
53
- var ctx = (_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.getContext('2d');
50
+ const ctx = (_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.getContext('2d');
54
51
  if (!ctx) return;
55
-
56
- var _newShape = (0, _transform.transformShape)(ctx, selectedShape, cursorPosition, canvasOffset, selectionMode, selectionPadding);
57
-
58
- updateSingleShape(_newShape);
59
- setSelectedShape(_newShape);
52
+ const newShape = (0, _transform.transformShape)(ctx, selectedShape, cursorPosition, canvasOffset, selectionMode, selectionPadding);
53
+ updateSingleShape(newShape);
54
+ setSelectedShape(newShape);
60
55
  }
61
56
  };
62
57
 
63
- var useDrawableCanvas = function useDrawableCanvas(_ref) {
64
- var _ref$disabled = _ref.disabled,
65
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
66
- addShape = _ref.addShape,
67
- canvasSize = _ref.canvasSize,
68
- drawCanvasRef = _ref.drawCanvasRef,
69
- setActiveTool = _ref.setActiveTool,
70
- shapes = _ref.shapes,
71
- selectionMode = _ref.selectionMode,
72
- activeTool = _ref.activeTool,
73
- isInsideComponent = _ref.isInsideComponent,
74
- setCanvasOffset = _ref.setCanvasOffset,
75
- selectedShape = _ref.selectedShape,
76
- selectionCanvasRef = _ref.selectionCanvasRef,
77
- canvasOffsetStartPosition = _ref.canvasOffsetStartPosition,
78
- setSelectedShape = _ref.setSelectedShape,
79
- setCanvasOffsetStartPosition = _ref.setCanvasOffsetStartPosition,
80
- updateSingleShape = _ref.updateSingleShape,
81
- canvasOffset = _ref.canvasOffset,
82
- saveShapes = _ref.saveShapes,
83
- setSelectionMode = _ref.setSelectionMode,
84
- selectionPadding = _ref.selectionPadding;
85
- var width = canvasSize.width,
86
- height = canvasSize.height,
87
- scaleRatio = canvasSize.scaleRatio;
88
-
89
- var _useState = (0, _react.useState)({
90
- mode: _Mode.SelectionModeLib["default"]
91
- }),
92
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
93
- hoverMode = _useState2[0],
94
- setHoverMode = _useState2[1];
95
-
96
- var _useDoubleClick = (0, _useDoubleClick2["default"])(),
97
- registerDoubleClickEvent = _useDoubleClick.registerDoubleClickEvent,
98
- unRegisterDoubleClickEvent = _useDoubleClick.unRegisterDoubleClickEvent;
99
-
100
- (0, _react.useEffect)(function () {
101
- var handleMouseMove = function handleMouseMove(e) {
102
- return window.requestAnimationFrame(function () {
103
- return handleMove(e, selectionCanvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding);
104
- });
105
- };
58
+ const useDrawableCanvas = _ref => {
59
+ let {
60
+ disabled = false,
61
+ addShape,
62
+ canvasSize,
63
+ drawCanvasRef,
64
+ setActiveTool,
65
+ shapes,
66
+ selectionMode,
67
+ activeTool,
68
+ isInsideComponent,
69
+ setCanvasOffset,
70
+ selectedShape,
71
+ selectionCanvasRef,
72
+ canvasOffsetStartPosition,
73
+ setSelectedShape,
74
+ setCanvasOffsetStartPosition,
75
+ updateSingleShape,
76
+ canvasOffset,
77
+ saveShapes,
78
+ setSelectionMode,
79
+ selectionPadding
80
+ } = _ref;
81
+ const {
82
+ width,
83
+ height,
84
+ scaleRatio
85
+ } = canvasSize;
86
+ const [hoverMode, setHoverMode] = (0, _react.useState)({
87
+ mode: _Mode.SelectionModeLib.default
88
+ });
89
+ const {
90
+ registerDoubleClickEvent,
91
+ unRegisterDoubleClickEvent
92
+ } = (0, _useDoubleClick.default)();
93
+ (0, _react.useEffect)(() => {
94
+ const handleMouseMove = e => window.requestAnimationFrame(() => handleMove(e, selectionCanvasRef, activeTool, canvasOffset, selectedShape, selectionMode, canvasOffsetStartPosition, width, height, scaleRatio, setHoverMode, updateSingleShape, setCanvasOffset, setSelectedShape, selectionPadding));
106
95
 
107
96
  if (isInsideComponent) {
108
97
  document.addEventListener('mousemove', handleMouseMove);
109
98
  document.addEventListener('touchmove', handleMouseMove);
110
99
  }
111
100
 
112
- return function () {
101
+ return () => {
113
102
  if (isInsideComponent) {
114
103
  document.removeEventListener('mousemove', handleMouseMove);
115
104
  document.removeEventListener('touchmove', handleMouseMove);
116
105
  }
117
106
  };
118
107
  }, [isInsideComponent, selectionCanvasRef, selectedShape, selectionMode, setHoverMode, canvasOffset, canvasOffsetStartPosition, width, height, scaleRatio, updateSingleShape, activeTool, setCanvasOffset, setSelectedShape, selectionPadding]);
119
- (0, _react.useEffect)(function () {
120
- var handleMouseUp = function handleMouseUp() {
108
+ (0, _react.useEffect)(() => {
109
+ const handleMouseUp = () => {
121
110
  if (selectionMode.mode === _Mode.SelectionModeLib.textedition) return;
122
111
 
123
- if (selectionMode.mode !== _Mode.SelectionModeLib["default"]) {
112
+ if (selectionMode.mode !== _Mode.SelectionModeLib.default) {
124
113
  setSelectionMode({
125
- mode: _Mode.SelectionModeLib["default"]
114
+ mode: _Mode.SelectionModeLib.default
126
115
  });
127
116
  saveShapes();
128
117
  }
@@ -133,67 +122,64 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
133
122
  document.addEventListener('touchend', handleMouseUp);
134
123
  }
135
124
 
136
- return function () {
125
+ return () => {
137
126
  if (isInsideComponent) {
138
127
  document.removeEventListener('mouseup', handleMouseUp);
139
128
  document.removeEventListener('touchend', handleMouseUp);
140
129
  }
141
130
  };
142
131
  }, [isInsideComponent, selectionMode, saveShapes, setSelectionMode]);
143
- (0, _react.useEffect)(function () {
144
- var ref = selectionCanvasRef.current;
132
+ (0, _react.useEffect)(() => {
133
+ const ref = selectionCanvasRef.current;
145
134
  if (!ref) return;
146
135
  if (disabled) return;
147
136
 
148
- var handleMouseDown = function handleMouseDown(e) {
137
+ const handleMouseDown = e => {
149
138
  e.preventDefault();
150
- var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
139
+ const cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
151
140
 
152
141
  if (activeTool.type === _tools.ActionsEnum.selection) {
153
- var _selectShape = (0, _selection.selectShape)(shapes, cursorPosition, scaleRatio, canvasOffset, selectedShape, selectionPadding),
154
- shape = _selectShape.shape,
155
- mode = _selectShape.mode;
156
-
142
+ const {
143
+ shape,
144
+ mode
145
+ } = (0, _selection.selectShape)(shapes, cursorPosition, scaleRatio, canvasOffset, selectedShape, selectionPadding);
157
146
  setSelectedShape(shape);
158
147
  setSelectionMode(mode);
159
148
  } else if (activeTool.type === _tools.ActionsEnum.move) {
160
149
  setCanvasOffsetStartPosition(cursorPosition);
161
150
  }
162
151
 
163
- if (_fp["default"].includes(activeTool.type, _Shapes.ShapeEnum)) {
152
+ if (_fp.default.includes(activeTool.type, _Shapes.ShapeEnum)) {
164
153
  var _drawCanvasRef$curren;
165
154
 
166
- var drawCtx = (_drawCanvasRef$curren = drawCanvasRef.current) === null || _drawCanvasRef$curren === void 0 ? void 0 : _drawCanvasRef$curren.getContext('2d');
155
+ const drawCtx = (_drawCanvasRef$curren = drawCanvasRef.current) === null || _drawCanvasRef$curren === void 0 ? void 0 : _drawCanvasRef$curren.getContext('2d');
167
156
  if (!drawCtx) return;
168
157
 
169
158
  if (activeTool.type === _Shapes.ShapeEnum.brush) {
170
159
  if (!!selectedShape) {
171
- var _newShape2 = (0, _transform.createNewPointGroupToShape)(selectedShape, cursorPosition);
172
-
173
- updateSingleShape(_newShape2);
174
- setSelectedShape(_newShape2);
160
+ const newShape = (0, _transform.createNewPointGroupToShape)(selectedShape, cursorPosition);
161
+ updateSingleShape(newShape);
162
+ setSelectedShape(newShape);
175
163
  } else {
176
- var _newShape3 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
177
-
178
- if (!_newShape3) return;
179
- addShape(_newShape3);
180
- setSelectedShape(_newShape3);
164
+ const newShape = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
165
+ if (!newShape) return;
166
+ addShape(newShape);
167
+ setSelectedShape(newShape);
181
168
  }
182
169
 
183
170
  setSelectionMode({
184
171
  mode: _Mode.SelectionModeLib.brush
185
172
  });
186
173
  } else {
187
- var _newShape4 = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
188
-
189
- if (!_newShape4) return;
190
- addShape(_newShape4);
174
+ const newShape = (0, _data.createShape)(drawCtx, activeTool, cursorPosition);
175
+ if (!newShape) return;
176
+ addShape(newShape);
191
177
  setActiveTool(_tools2.SELECTION_TOOL);
192
- setSelectedShape(_newShape4);
178
+ setSelectedShape(newShape);
193
179
  setSelectionMode({
194
180
  mode: _Mode.SelectionModeLib.resize,
195
181
  cursorStartPosition: cursorPosition,
196
- originalShape: _newShape4,
182
+ originalShape: newShape,
197
183
  anchor: activeTool.type === _Shapes.ShapeEnum.line || activeTool.type === _Shapes.ShapeEnum.polygon || activeTool.type === _Shapes.ShapeEnum.curve ? 0 : [1, 1]
198
184
  });
199
185
  }
@@ -206,19 +192,19 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
206
192
  ref.addEventListener('touchstart', handleMouseDown, {
207
193
  passive: false
208
194
  });
209
- return function () {
195
+ return () => {
210
196
  ref.removeEventListener('mousedown', handleMouseDown);
211
197
  ref.removeEventListener('touchstart', handleMouseDown);
212
198
  };
213
199
  }, [disabled, selectionCanvasRef, drawCanvasRef, selectedShape, activeTool, canvasOffset, setCanvasOffsetStartPosition, shapes, width, height, scaleRatio, updateSingleShape, addShape, setActiveTool, setSelectedShape, setSelectionMode, selectionPadding]);
214
- (0, _react.useEffect)(function () {
215
- var ref = selectionCanvasRef.current;
200
+ (0, _react.useEffect)(() => {
201
+ const ref = selectionCanvasRef.current;
216
202
  if (!ref) return;
217
203
 
218
- var handleDoubleClick = function handleDoubleClick(e) {
204
+ const handleDoubleClick = e => {
219
205
  if (activeTool.type === _tools.ActionsEnum.selection) {
220
206
  if ((selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text) {
221
- var cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
207
+ const cursorPosition = (0, _intersect.getCursorPosition)(e, selectionCanvasRef.current, width, height, scaleRatio);
222
208
 
223
209
  if ((0, _intersect.checkPositionIntersection)(selectedShape, cursorPosition, canvasOffset, selectionPadding)) {
224
210
  setSelectionMode({
@@ -232,15 +218,15 @@ var useDrawableCanvas = function useDrawableCanvas(_ref) {
232
218
 
233
219
  if (isInsideComponent) {
234
220
  registerDoubleClickEvent(ref, handleDoubleClick);
235
- return function () {
221
+ return () => {
236
222
  unRegisterDoubleClickEvent(ref);
237
223
  };
238
224
  }
239
225
  }, [registerDoubleClickEvent, unRegisterDoubleClickEvent, isInsideComponent, selectionCanvasRef, activeTool, selectedShape, width, height, scaleRatio, canvasOffset, setSelectionMode, selectionPadding]);
240
226
  return {
241
- hoverMode: hoverMode
227
+ hoverMode
242
228
  };
243
229
  };
244
230
 
245
231
  var _default = useDrawableCanvas;
246
- exports["default"] = _default;
232
+ exports.default = _default;
@@ -5,11 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+ exports.default = void 0;
13
9
 
14
10
  var _react = require("react");
15
11
 
@@ -19,42 +15,36 @@ var _data = require("../utils/data");
19
15
 
20
16
  var _keyboard = require("../types/keyboard");
21
17
 
22
- 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; }
23
-
24
- 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; }
25
-
26
- var useKeyboard = function useKeyboard(_ref) {
27
- var isInsideComponent = _ref.isInsideComponent,
28
- selectedShape = _ref.selectedShape,
29
- isEditingText = _ref.isEditingText,
30
- setSelectedShape = _ref.setSelectedShape,
31
- removeShape = _ref.removeShape,
32
- pasteShape = _ref.pasteShape,
33
- updateShape = _ref.updateShape,
34
- backwardShape = _ref.backwardShape,
35
- forwardShape = _ref.forwardShape;
36
-
37
- var _useState = (0, _react.useState)(undefined),
38
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
39
- copiedShape = _useState2[0],
40
- setCopiedShape = _useState2[1];
41
-
42
- (0, _react.useEffect)(function () {
43
- var handleCopy = function handleCopy(e) {
18
+ const useKeyboard = _ref => {
19
+ let {
20
+ isInsideComponent,
21
+ selectedShape,
22
+ isEditingText,
23
+ setSelectedShape,
24
+ removeShape,
25
+ pasteShape,
26
+ updateShape,
27
+ backwardShape,
28
+ forwardShape
29
+ } = _ref;
30
+ const [copiedShape, setCopiedShape] = (0, _react.useState)(undefined);
31
+ (0, _react.useEffect)(() => {
32
+ const handleCopy = e => {
44
33
  if (!selectedShape) return;
45
34
  if (isEditingText) return;
46
35
  e.preventDefault();
47
- setCopiedShape(_objectSpread({}, selectedShape));
36
+ setCopiedShape({ ...selectedShape
37
+ });
48
38
  };
49
39
 
50
- var handlePaste = function handlePaste(e) {
40
+ const handlePaste = e => {
51
41
  if (!copiedShape) return;
52
42
  if (isEditingText) return;
53
43
  e.preventDefault();
54
44
  pasteShape((0, _data.copyShape)(copiedShape));
55
45
  };
56
46
 
57
- var handleKeyDown = function handleKeyDown(e) {
47
+ const handleKeyDown = e => {
58
48
  if (e.metaKey || e.ctrlKey) {
59
49
  if (e.key === _keyboard.KeyboardCode.Z) {
60
50
  e.preventDefault();
@@ -80,19 +70,19 @@ var useKeyboard = function useKeyboard(_ref) {
80
70
 
81
71
  switch (e.key) {
82
72
  case _keyboard.KeyboardCode.ArrowLeft:
83
- updateShape(_fp["default"].set('translation', [selectedShape.translation[0] - 1, selectedShape.translation[1]], selectedShape));
73
+ updateShape(_fp.default.set('translation', [selectedShape.translation[0] - 1, selectedShape.translation[1]], selectedShape));
84
74
  break;
85
75
 
86
76
  case _keyboard.KeyboardCode.ArrowRight:
87
- updateShape(_fp["default"].set('translation', [selectedShape.translation[0] + 1, selectedShape.translation[1]], selectedShape));
77
+ updateShape(_fp.default.set('translation', [selectedShape.translation[0] + 1, selectedShape.translation[1]], selectedShape));
88
78
  break;
89
79
 
90
80
  case _keyboard.KeyboardCode.ArrowDown:
91
- updateShape(_fp["default"].set('translation', [selectedShape.translation[0], selectedShape.translation[1] + 1], selectedShape));
81
+ updateShape(_fp.default.set('translation', [selectedShape.translation[0], selectedShape.translation[1] + 1], selectedShape));
92
82
  break;
93
83
 
94
84
  case _keyboard.KeyboardCode.ArrowUp:
95
- updateShape(_fp["default"].set('translation', [selectedShape.translation[0], selectedShape.translation[1] - 1], selectedShape));
85
+ updateShape(_fp.default.set('translation', [selectedShape.translation[0], selectedShape.translation[1] - 1], selectedShape));
96
86
  break;
97
87
 
98
88
  case _keyboard.KeyboardCode.Delete:
@@ -108,7 +98,7 @@ var useKeyboard = function useKeyboard(_ref) {
108
98
  document.addEventListener(_keyboard.KeyboardCommand.Paste, handlePaste);
109
99
  }
110
100
 
111
- return function () {
101
+ return () => {
112
102
  if (isInsideComponent) {
113
103
  document.removeEventListener('keydown', handleKeyDown);
114
104
  document.removeEventListener(_keyboard.KeyboardCommand.Copy, handleCopy);
@@ -120,4 +110,4 @@ var useKeyboard = function useKeyboard(_ref) {
120
110
  };
121
111
 
122
112
  var _default = useKeyboard;
123
- exports["default"] = _default;
113
+ exports.default = _default;
@@ -5,36 +5,38 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
10
  var _fp = _interopRequireDefault(require("lodash/fp"));
11
11
 
12
12
  var _react = require("react");
13
13
 
14
- var useResizeObserver = function useResizeObserver(_ref) {
15
- var onResized = _ref.onResized,
16
- element = _ref.element;
17
- (0, _react.useEffect)(function () {
18
- var current = element.current;
14
+ const useResizeObserver = _ref => {
15
+ let {
16
+ onResized,
17
+ element
18
+ } = _ref;
19
+ (0, _react.useEffect)(() => {
20
+ const current = element.current;
19
21
  if (!current) return;
20
- var resizeObserver = new ResizeObserver(function (entries) {
21
- var _ref2 = _fp["default"].get('0.borderBoxSize', entries) ? _fp["default"].flow(_fp["default"].get('0.borderBoxSize'), _fp["default"].castArray, _fp["default"].first, function (el) {
22
+ const resizeObserver = new ResizeObserver(entries => {
23
+ const {
24
+ width,
25
+ height
26
+ } = _fp.default.get('0.borderBoxSize', entries) ? _fp.default.flow(_fp.default.get('0.borderBoxSize'), _fp.default.castArray, _fp.default.first, el => {
22
27
  return {
23
- width: _fp["default"].get('inlineSize', el),
24
- height: _fp["default"].get('blockSize', el)
28
+ width: _fp.default.get('inlineSize', el),
29
+ height: _fp.default.get('blockSize', el)
25
30
  };
26
- })(entries) : _fp["default"].get('0.contentRect', entries),
27
- width = _ref2.width,
28
- height = _ref2.height;
29
-
31
+ })(entries) : _fp.default.get('0.contentRect', entries);
30
32
  onResized(width, height);
31
33
  });
32
34
  resizeObserver.observe(current);
33
- return function () {
35
+ return () => {
34
36
  resizeObserver.unobserve(current);
35
37
  };
36
38
  }, [element, onResized]);
37
39
  };
38
40
 
39
41
  var _default = useResizeObserver;
40
- exports["default"] = _default;
42
+ exports.default = _default;