@yorab/react-paint 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +1 -0
  2. package/dist/components/App.js +61 -72
  3. package/dist/components/Canvas.js +31 -18
  4. package/dist/components/common/Button.js +4 -4
  5. package/dist/components/common/Loading.js +3 -3
  6. package/dist/components/common/Modal.js +3 -3
  7. package/dist/components/common/Panel.js +2 -2
  8. package/dist/components/common/Snackbar.js +2 -2
  9. package/dist/components/settings/ColorField.js +11 -15
  10. package/dist/components/settings/FontFamilyField.js +7 -5
  11. package/dist/components/settings/LayoutButton.js +1 -1
  12. package/dist/components/settings/Layouts.js +9 -9
  13. package/dist/components/settings/LineArrowField.js +8 -6
  14. package/dist/components/settings/LineTypeField.js +7 -5
  15. package/dist/components/settings/PointsNumberField.js +19 -29
  16. package/dist/components/settings/RangeField.js +2 -1
  17. package/dist/components/settings/SelectField.js +2 -1
  18. package/dist/components/settings/SettingsBar.js +107 -80
  19. package/dist/components/toolbox/EditTextBox.js +6 -6
  20. package/dist/components/toolbox/LoadFileTool.js +5 -3
  21. package/dist/components/toolbox/MenuGroup.js +55 -29
  22. package/dist/components/toolbox/PictureUrlInput.js +1 -1
  23. package/dist/components/toolbox/Tool.js +4 -4
  24. package/dist/components/toolbox/Toolbar.js +82 -59
  25. package/dist/components/toolbox/ToolbarGroup.js +21 -25
  26. package/dist/constants/style.js +3 -1
  27. package/dist/constants/tools.js +420 -0
  28. package/dist/hooks/useComponent.js +6 -2
  29. package/dist/hooks/useDrawableCanvas.js +28 -19
  30. package/dist/styles.css +51 -54
  31. package/dist/types/Shapes.js +2 -16
  32. package/dist/types/tools.js +22 -0
  33. package/dist/utils/data.js +81 -25
  34. package/dist/utils/style.js +4 -2
  35. package/dist/utils/toolbar.js +66 -11
  36. package/dist/utils/transform.js +3 -3
  37. package/package.json +1 -1
  38. package/Changelog.md +0 -62
@@ -25,33 +25,41 @@ var _Panel = _interopRequireDefault(require("../common/Panel"));
25
25
 
26
26
  var _react2 = require("@linaria/react");
27
27
 
28
- var _Shapes = require("../../types/Shapes");
29
-
30
- var _style = require("../../utils/style");
31
-
32
28
  var _Tool = _interopRequireDefault(require("./Tool"));
33
29
 
34
30
  var _LoadFileTool = _interopRequireDefault(require("./LoadFileTool"));
35
31
 
36
32
  var _icons = require("../../constants/icons");
37
33
 
34
+ var _tools = require("../../constants/tools");
35
+
38
36
  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); }
39
37
 
40
38
  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; }
41
39
 
42
40
  var StyledPanel = /*#__PURE__*/(0, _react2.styled)(_Panel["default"])({
43
41
  name: "StyledPanel",
44
- "class": "s1uphjfh"
42
+ "class": "s1qu0ers"
45
43
  });
46
44
  var StyledRelative = /*#__PURE__*/(0, _react2.styled)("div")({
47
45
  name: "StyledRelative",
48
- "class": "s1e5a6k5"
46
+ "class": "s1y35t9y"
49
47
  });
50
48
 
51
49
  var MenuGroup = function MenuGroup(_ref) {
52
50
  var _ref3;
53
51
 
54
52
  var activeTool = _ref.activeTool,
53
+ withActionsInMenu = _ref.withActionsInMenu,
54
+ _ref$hasActionToUndo = _ref.hasActionToUndo,
55
+ hasActionToUndo = _ref$hasActionToUndo === void 0 ? false : _ref$hasActionToUndo,
56
+ _ref$hasActionToRedo = _ref.hasActionToRedo,
57
+ hasActionToRedo = _ref$hasActionToRedo === void 0 ? false : _ref$hasActionToRedo,
58
+ _ref$hasActionToClear = _ref.hasActionToClear,
59
+ hasActionToClear = _ref$hasActionToClear === void 0 ? false : _ref$hasActionToClear,
60
+ undoAction = _ref.undoAction,
61
+ redoAction = _ref.redoAction,
62
+ clearCanvas = _ref.clearCanvas,
55
63
  alignment = _ref.alignment,
56
64
  group = _ref.group,
57
65
  _ref$vertical = _ref.vertical,
@@ -65,7 +73,8 @@ var MenuGroup = function MenuGroup(_ref) {
65
73
  togglePictureUrlModal = _ref.togglePictureUrlModal,
66
74
  saveFile = _ref.saveFile,
67
75
  exportCanvasInFile = _ref.exportCanvasInFile,
68
- availableTools = _ref.availableTools;
76
+ withUploadPicture = _ref.withUploadPicture,
77
+ withUrlPicture = _ref.withUrlPicture;
69
78
 
70
79
  var _useState = (0, _react.useState)(false),
71
80
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -104,9 +113,9 @@ var MenuGroup = function MenuGroup(_ref) {
104
113
  setIsOpen(true);
105
114
  };
106
115
 
107
- var isActive = _fp["default"].includes(activeTool, group === null || group === void 0 ? void 0 : group.tools);
116
+ var isActive = _fp["default"].includes(activeTool.type, group === null || group === void 0 ? void 0 : group.tools);
108
117
 
109
- var groupIcon = (_ref3 = isActive ? (0, _style.getShapePicture)(activeTool) : group.img) !== null && _ref3 !== void 0 ? _ref3 : group.title;
118
+ var groupIcon = (_ref3 = isActive ? activeTool.icon : group.img) !== null && _ref3 !== void 0 ? _ref3 : group.title;
110
119
  (0, _react.useEffect)(function () {
111
120
  if (!isOpen) return;
112
121
 
@@ -123,11 +132,7 @@ var MenuGroup = function MenuGroup(_ref) {
123
132
  document.removeEventListener('click', closePanel);
124
133
  };
125
134
  }, [isOpen]);
126
-
127
- var withPicture = _fp["default"].includes(_Shapes.ShapeEnum.picture, availableTools);
128
-
129
- var withDivider = withPicture && (withLoadAndSave || withExport);
130
- var withMenu = withPicture || withLoadAndSave || withExport;
135
+ var withMenu = withActionsInMenu || withUploadPicture || withUrlPicture || withLoadAndSave || withExport;
131
136
  return withMenu ? /*#__PURE__*/_react["default"].createElement(StyledRelative, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
132
137
  selected: isActive,
133
138
  title: group.title,
@@ -137,42 +142,63 @@ var MenuGroup = function MenuGroup(_ref) {
137
142
  }), isOpen && /*#__PURE__*/_react["default"].createElement(StyledPanel, {
138
143
  vertical: vertical,
139
144
  alignment: alignment
140
- }, withPicture && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
145
+ }, withActionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
146
+ withText: true,
147
+ type: _tools.UNDO_TOOL,
148
+ disabled: disabled || !hasActionToUndo,
149
+ img: _tools.UNDO_TOOL.icon,
150
+ isActive: activeTool.id === _tools.UNDO_TOOL.id,
151
+ setActive: undoAction
152
+ }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
153
+ withText: true,
154
+ type: _tools.REDO_TOOL,
155
+ disabled: disabled || !hasActionToRedo,
156
+ img: _tools.REDO_TOOL.icon,
157
+ isActive: activeTool.id === _tools.REDO_TOOL.id,
158
+ setActive: redoAction
159
+ }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
160
+ withText: true,
161
+ type: _tools.CLEAR_TOOL,
162
+ disabled: disabled || !hasActionToClear,
163
+ img: _tools.CLEAR_TOOL.icon,
164
+ isActive: activeTool.id === _tools.CLEAR_TOOL.id,
165
+ setActive: function setActive() {
166
+ return clearCanvas();
167
+ }
168
+ }), (withUploadPicture || withUrlPicture || withLoadAndSave) && /*#__PURE__*/_react["default"].createElement("hr", null)), withUploadPicture && /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
141
169
  withText: true,
170
+ type: _tools.UPLOAD_PICTURE_TOOL,
142
171
  disabled: disabled,
143
172
  loadFile: addPicture,
144
- lib: "Upload picture",
145
- img: _icons.pictureIcon,
173
+ img: _tools.UPLOAD_PICTURE_TOOL.icon,
146
174
  accept: "image/png, image/gif, image/jpeg"
147
- }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
175
+ }), withUrlPicture && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
148
176
  disabled: disabled,
149
177
  selected: false,
150
178
  onClick: togglePictureUrlModal,
151
179
  title: "Add picture from URL",
152
180
  icon: _icons.publicIcon,
153
181
  children: "Add picture from URL"
154
- })), withDivider && /*#__PURE__*/_react["default"].createElement("hr", null), withLoadAndSave && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
182
+ }), (withUploadPicture || withUrlPicture) && withLoadAndSave && /*#__PURE__*/_react["default"].createElement("hr", null), withLoadAndSave && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
155
183
  withText: true,
184
+ type: _tools.LOAD_TOOL,
156
185
  disabled: disabled,
157
186
  loadFile: loadFile,
158
- lib: "Load project",
159
- img: _icons.openFileIcon,
187
+ img: _tools.LOAD_TOOL.icon,
160
188
  accept: "application/JSON"
161
189
  }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
162
190
  withText: true,
163
191
  disabled: disabled,
164
- type: _Shapes.ToolEnum.saveFile,
165
- lib: "Save project",
166
- img: _icons.saveIcon,
167
- isActive: activeTool === _Shapes.ToolEnum.saveFile,
192
+ type: _tools.SAVE_TOOL,
193
+ img: _tools.SAVE_TOOL.icon,
194
+ isActive: activeTool.id === _tools.SAVE_TOOL.id,
168
195
  setActive: saveFile
169
196
  })), withExport && /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
170
197
  withText: true,
171
198
  disabled: disabled,
172
- type: _Shapes.ToolEnum["export"],
173
- lib: "Export PNG",
174
- img: _icons.exportFileIcon,
175
- isActive: activeTool === _Shapes.ToolEnum["export"],
199
+ type: _tools.EXPORT_TOOL,
200
+ img: _tools.EXPORT_TOOL.icon,
201
+ isActive: activeTool.id === _tools.EXPORT_TOOL.id,
176
202
  setActive: exportCanvasInFile
177
203
  }))) : null;
178
204
  };
@@ -27,7 +27,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
27
27
 
28
28
  var StyledInputModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
29
29
  name: "StyledInputModal",
30
- "class": "s95bkm9"
30
+ "class": "s1rncfwv"
31
31
  });
32
32
 
33
33
  var PictureUrlModal = function PictureUrlModal(_ref) {
@@ -12,9 +12,9 @@ var _react = _interopRequireDefault(require("react"));
12
12
  var _Button = _interopRequireDefault(require("../common/Button"));
13
13
 
14
14
  var Tool = function Tool(_ref) {
15
+ var _type$lib;
16
+
15
17
  var type = _ref.type,
16
- _ref$lib = _ref.lib,
17
- lib = _ref$lib === void 0 ? '' : _ref$lib,
18
18
  img = _ref.img,
19
19
  isActive = _ref.isActive,
20
20
  _ref$withText = _ref.withText,
@@ -31,9 +31,9 @@ var Tool = function Tool(_ref) {
31
31
  disabled: disabled,
32
32
  selected: isActive,
33
33
  onClick: handleClick,
34
- title: lib,
34
+ title: (_type$lib = type.lib) !== null && _type$lib !== void 0 ? _type$lib : type.type,
35
35
  icon: img,
36
- children: withText ? lib : undefined
36
+ children: withText ? type.lib : undefined
37
37
  });
38
38
  };
39
39
 
@@ -29,51 +29,48 @@ var _MenuGroup = _interopRequireDefault(require("./MenuGroup"));
29
29
 
30
30
  var _Tool = _interopRequireDefault(require("./Tool"));
31
31
 
32
- var _style = require("../../utils/style");
33
-
34
32
  var _Modal = _interopRequireDefault(require("../common/Modal"));
35
33
 
36
34
  var _PictureUrlInput = _interopRequireDefault(require("./PictureUrlInput"));
37
35
 
36
+ var _fp = _interopRequireDefault(require("lodash/fp"));
37
+
38
+ var _tools = require("../../constants/tools");
39
+
38
40
  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); }
39
41
 
40
42
  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; }
41
43
 
44
+ var TOOL_WIDTH = 40;
42
45
  var StyledShrinkableTools = /*#__PURE__*/(0, _react2.styled)("div")({
43
46
  name: "StyledShrinkableTools",
44
- "class": "so6hnjf"
47
+ "class": "s1gorp95"
45
48
  });
46
49
  var StyledToolbox = /*#__PURE__*/(0, _react2.styled)("div")({
47
50
  name: "StyledToolbox",
48
- "class": "s1c1dllr"
49
- });
50
- var StyledShrinkableToolsInner = /*#__PURE__*/(0, _react2.styled)("div")({
51
- name: "StyledShrinkableToolsInner",
52
- "class": "s1g032mh"
51
+ "class": "s1ivsaf6"
53
52
  });
54
53
  var StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
55
54
  name: "StyledToolsModal",
56
- "class": "s4owjrv"
55
+ "class": "sv0y70r"
57
56
  });
58
57
  var TOOLBAR_STRUCTURE = [{
59
58
  title: 'brush',
60
- img: _icons.gestureIcon,
61
- tools: [_Shapes.ShapeEnum.brush],
59
+ toolsType: [_Shapes.ShapeEnum.brush],
62
60
  vertical: false
63
61
  }, {
64
62
  title: 'lines',
65
- img: _icons.arrowIcon,
66
- tools: [_Shapes.ShapeEnum.line, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.polygon],
63
+ toolsType: [_Shapes.ShapeEnum.line, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.polygon],
67
64
  vertical: false
68
65
  }, {
69
66
  title: 'shapes',
70
- img: _icons.shapesIcon,
71
- tools: [_Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.ellipse],
67
+ toolsType: [_Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.ellipse],
72
68
  vertical: false
73
69
  }, _Shapes.ShapeEnum.text];
74
70
 
75
71
  var Toolbar = function Toolbar(_ref) {
76
- var _ref$disabled = _ref.disabled,
72
+ var width = _ref.width,
73
+ _ref$disabled = _ref.disabled,
77
74
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
78
75
  activeTool = _ref.activeTool,
79
76
  _ref$hasActionToUndo = _ref.hasActionToUndo,
@@ -92,7 +89,12 @@ var Toolbar = function Toolbar(_ref) {
92
89
  loadFile = _ref.loadFile,
93
90
  saveFile = _ref.saveFile,
94
91
  exportCanvasInFile = _ref.exportCanvasInFile,
95
- availableTools = _ref.availableTools;
92
+ availableTools = _ref.availableTools,
93
+ withUrlPicture = _ref.withUrlPicture,
94
+ withUploadPicture = _ref.withUploadPicture;
95
+ var currentStructure = (0, _toolbar.getCurrentStructure)(availableTools, TOOLBAR_STRUCTURE);
96
+ var fullToolbarSize = (5 + currentStructure.length) * TOOL_WIDTH;
97
+ var withMenuToolbarSize = (2 + currentStructure.length) * TOOL_WIDTH;
96
98
 
97
99
  var _useState = (0, _react.useState)(false),
98
100
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -104,6 +106,16 @@ var Toolbar = function Toolbar(_ref) {
104
106
  isPictureUrlModalOpen = _useState4[0],
105
107
  setIsPictureUrlModalOpen = _useState4[1];
106
108
 
109
+ var _useState5 = (0, _react.useState)(width < fullToolbarSize),
110
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
111
+ actionsInMenu = _useState6[0],
112
+ setActionsInMenu = _useState6[1];
113
+
114
+ var _useState7 = (0, _react.useState)(width < withMenuToolbarSize),
115
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
116
+ toolsInMenu = _useState8[0],
117
+ setToolsInMenu = _useState8[1];
118
+
107
119
  var toggleTools = function toggleTools() {
108
120
  setIsMenuOpen(function (prev) {
109
121
  return !prev;
@@ -123,53 +135,58 @@ var Toolbar = function Toolbar(_ref) {
123
135
  var setActiveTool = function setActiveTool(tool) {
124
136
  setActiveToolFromProps(tool);
125
137
  setIsMenuOpen(false);
126
- };
127
-
128
- var currentStructure = (0, _toolbar.getCurrentStructure)(availableTools, TOOLBAR_STRUCTURE);
129
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledToolbox, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
130
- type: _Shapes.ToolEnum.selection,
138
+ }; //360 240
139
+
140
+
141
+ (0, _react.useEffect)(function () {
142
+ setActionsInMenu(width < fullToolbarSize);
143
+ setToolsInMenu(width < withMenuToolbarSize);
144
+ }, [width, fullToolbarSize, withMenuToolbarSize]);
145
+ var isAnyToolSelected = _fp["default"].find({
146
+ type: activeTool
147
+ }, availableTools) !== undefined;
148
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledToolbox, null, /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
149
+ type: _tools.SELECTION_TOOL,
131
150
  disabled: disabled,
132
- lib: "selection",
133
- img: _icons.selectIcon,
134
- isActive: activeTool === _Shapes.ToolEnum.selection,
151
+ img: _tools.SELECTION_TOOL.icon,
152
+ isActive: activeTool.id === _tools.SELECTION_TOOL.id,
135
153
  setActive: setActiveTool
136
- }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
137
- type: _Shapes.ToolEnum.undo,
154
+ }), toolsInMenu ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
155
+ disabled: disabled,
156
+ onClick: toggleTools,
157
+ title: "Toggle tools",
158
+ icon: _icons.shapesIcon,
159
+ selected: isAnyToolSelected
160
+ }) : currentStructure.map(function (group, i) {
161
+ return /*#__PURE__*/_react["default"].createElement(_ToolbarGroup["default"], {
162
+ disabled: disabled,
163
+ key: i,
164
+ activeTool: activeTool,
165
+ group: group,
166
+ setActiveTool: setActiveTool
167
+ });
168
+ })), !actionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
169
+ type: _tools.UNDO_TOOL,
138
170
  disabled: disabled || !hasActionToUndo,
139
- lib: "Undo",
140
- img: _icons.undoIcon,
141
- isActive: activeTool === _Shapes.ToolEnum.undo,
171
+ img: _tools.UNDO_TOOL.icon,
172
+ isActive: activeTool.id === _tools.UNDO_TOOL.id,
142
173
  setActive: undoAction
143
174
  }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
144
- type: _Shapes.ToolEnum.redo,
175
+ type: _tools.REDO_TOOL,
145
176
  disabled: disabled || !hasActionToRedo,
146
- lib: "Redo",
147
- img: _icons.redoIcon,
148
- isActive: activeTool === _Shapes.ToolEnum.redo,
177
+ img: _tools.REDO_TOOL.icon,
178
+ isActive: activeTool.id === _tools.REDO_TOOL.id,
149
179
  setActive: redoAction
150
180
  }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
151
- type: _Shapes.ToolEnum.clear,
181
+ type: _tools.CLEAR_TOOL,
152
182
  disabled: disabled || !hasActionToClear,
153
- lib: "Clear",
154
- img: _icons.clearIcon,
155
- isActive: activeTool === _Shapes.ToolEnum.clear,
183
+ img: _tools.CLEAR_TOOL.icon,
184
+ isActive: activeTool.id === _tools.CLEAR_TOOL.id,
156
185
  setActive: function setActive() {
157
186
  return clearCanvas();
158
187
  }
159
- }), /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, /*#__PURE__*/_react["default"].createElement(StyledShrinkableToolsInner, null, currentStructure.map(function (group, i) {
160
- return /*#__PURE__*/_react["default"].createElement(_ToolbarGroup["default"], {
161
- disabled: disabled,
162
- key: i,
163
- activeTool: activeTool,
164
- group: group,
165
- setActiveTool: setActiveTool
166
- });
167
- })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
168
- disabled: disabled,
169
- onClick: toggleTools,
170
- title: "Toggle tools",
171
- icon: _icons.dotsIcon
172
188
  })), /*#__PURE__*/_react["default"].createElement(_MenuGroup["default"], {
189
+ withActionsInMenu: actionsInMenu,
173
190
  disabled: disabled,
174
191
  vertical: true,
175
192
  alignment: "right",
@@ -183,20 +200,26 @@ var Toolbar = function Toolbar(_ref) {
183
200
  saveFile: saveFile,
184
201
  togglePictureUrlModal: openPictureUrlModal,
185
202
  exportCanvasInFile: exportCanvasInFile,
186
- availableTools: availableTools,
203
+ withUploadPicture: withUploadPicture,
204
+ withUrlPicture: withUrlPicture,
187
205
  withLoadAndSave: withLoadAndSave,
188
- withExport: withExport
206
+ withExport: withExport,
207
+ hasActionToUndo: hasActionToUndo,
208
+ hasActionToRedo: hasActionToRedo,
209
+ hasActionToClear: hasActionToClear,
210
+ undoAction: undoAction,
211
+ redoAction: redoAction,
212
+ clearCanvas: clearCanvas
189
213
  })), isMenuOpen && /*#__PURE__*/_react["default"].createElement(StyledToolsModal, {
190
214
  onClose: toggleTools
191
- }, availableTools.map(function (toolType) {
192
- return toolType === _Shapes.ShapeEnum.picture ? null : /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
215
+ }, availableTools.map(function (toolType, index) {
216
+ return toolType.type === _Shapes.ShapeEnum.picture ? null : /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
193
217
  disabled: disabled,
194
- key: toolType,
218
+ key: index,
195
219
  type: toolType,
196
- lib: toolType,
220
+ img: toolType.icon,
197
221
  withText: false,
198
- img: (0, _style.getShapePicture)(toolType),
199
- isActive: activeTool === toolType,
222
+ isActive: activeTool.id === toolType.id,
200
223
  setActive: setActiveTool
201
224
  });
202
225
  })), isPictureUrlModalOpen && /*#__PURE__*/_react["default"].createElement(_PictureUrlInput["default"], {
@@ -21,8 +21,6 @@ var _Panel = _interopRequireDefault(require("../common/Panel"));
21
21
 
22
22
  var _react2 = require("@linaria/react");
23
23
 
24
- var _style = require("../../utils/style");
25
-
26
24
  var _Tool = _interopRequireDefault(require("./Tool"));
27
25
 
28
26
  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); }
@@ -31,15 +29,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
29
 
32
30
  var StyledPanel = /*#__PURE__*/(0, _react2.styled)(_Panel["default"])({
33
31
  name: "StyledPanel",
34
- "class": "s1bvz4xj"
32
+ "class": "s3kynji"
35
33
  });
36
34
  var StyledRelative = /*#__PURE__*/(0, _react2.styled)("div")({
37
35
  name: "StyledRelative",
38
- "class": "siejlch"
36
+ "class": "s1614rl3"
39
37
  });
40
38
 
41
39
  var ToolbarGroup = function ToolbarGroup(_ref) {
42
- var _group$tools, _ref2;
40
+ var _group$toolsType, _ref2;
43
41
 
44
42
  var activeTool = _ref.activeTool,
45
43
  alignment = _ref.alignment,
@@ -80,36 +78,35 @@ var ToolbarGroup = function ToolbarGroup(_ref) {
80
78
  };
81
79
  }, [isOpen]);
82
80
 
83
- if (!_fp["default"].isObject(group)) {
81
+ if ('type' in group) {
84
82
  return /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
85
83
  disabled: disabled,
86
84
  type: group,
87
- lib: group,
88
- img: (0, _style.getShapePicture)(group),
89
- isActive: activeTool === group,
85
+ img: group.icon,
86
+ isActive: activeTool.id === group.id,
90
87
  setActive: setActiveTool
91
88
  });
92
89
  }
93
90
 
94
- if (_fp["default"].isEmpty(group.tools)) return null;
91
+ if (_fp["default"].isEmpty(group.toolsType)) return null;
95
92
 
96
- if (((_group$tools = group.tools) === null || _group$tools === void 0 ? void 0 : _group$tools.length) === 1) {
93
+ if (((_group$toolsType = group.toolsType) === null || _group$toolsType === void 0 ? void 0 : _group$toolsType.length) === 1) {
97
94
  return /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
98
95
  disabled: disabled,
99
- type: group.tools[0],
100
- lib: group.tools[0],
101
- img: (0, _style.getShapePicture)(group.tools[0]),
102
- isActive: activeTool === group.tools[0],
96
+ type: group.toolsType[0],
97
+ img: group.toolsType[0].icon,
98
+ isActive: activeTool.id === group.toolsType[0].id,
103
99
  setActive: setActiveTool
104
100
  });
105
101
  }
106
102
 
107
- var isActive = _fp["default"].includes(activeTool, group === null || group === void 0 ? void 0 : group.tools);
108
-
109
- var groupIcon = (_ref2 = localActiveTool ? (0, _style.getShapePicture)(localActiveTool) : group.img) !== null && _ref2 !== void 0 ? _ref2 : group.title;
103
+ var isActive = _fp["default"].find({
104
+ type: activeTool.type
105
+ }, group === null || group === void 0 ? void 0 : group.toolsType) !== undefined;
106
+ var groupIcon = (_ref2 = localActiveTool ? localActiveTool.icon : group.toolsType && group.toolsType[0] && group.toolsType[0].icon) !== null && _ref2 !== void 0 ? _ref2 : group.title;
110
107
 
111
108
  var openPanel = function openPanel() {
112
- if (localActiveTool) setActiveToolFromProps(localActiveTool);
109
+ if (localActiveTool) setActiveToolFromProps(localActiveTool);else group.toolsType && group.toolsType[0] && setActiveTool(group.toolsType[0]);
113
110
  setIsOpen(true);
114
111
  };
115
112
 
@@ -122,17 +119,16 @@ var ToolbarGroup = function ToolbarGroup(_ref) {
122
119
  }), isOpen && /*#__PURE__*/_react["default"].createElement(StyledPanel, {
123
120
  vertical: group.vertical,
124
121
  alignment: alignment
125
- }, _fp["default"].map(function (toolType) {
122
+ }, group.toolsType.map(function (toolType, i) {
126
123
  return /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
127
124
  disabled: disabled,
128
- key: toolType,
125
+ key: i,
129
126
  type: toolType,
130
- lib: toolType,
131
- img: (0, _style.getShapePicture)(toolType),
132
- isActive: activeTool === toolType,
127
+ img: toolType.icon,
128
+ isActive: activeTool.id === toolType.id,
133
129
  setActive: setActiveTool
134
130
  });
135
- }, group.tools)));
131
+ })));
136
132
  };
137
133
 
138
134
  var _default = ToolbarGroup;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.STYLE_ZINDEX_SNACKBAR = exports.STYLE_ZINDEX_PANEL = exports.STYLE_ZINDEX_LOADING = exports.STYLE_ZINDEX_APP = exports.STYLE_LINE_WITH_ARROW = exports.STYLE_LINE_DASH = exports.STYLE_FONT_DEFAULT = exports.STYLE_FONTS = exports.STYLE_COLORS = exports.POLYGON_POINTS_VALUES = exports.LINE_DASH_DATA = exports.CURVE_POINTS_VALUES = void 0;
6
+ exports.STYLE_ZINDEX_SNACKBAR = exports.STYLE_ZINDEX_PANEL = exports.STYLE_ZINDEX_LOADING = exports.STYLE_ZINDEX_APP = exports.STYLE_LINE_WITH_ARROW = exports.STYLE_LINE_DASH = exports.STYLE_FONT_SIZE_DEFAULT = exports.STYLE_FONT_DEFAULT = exports.STYLE_FONTS = exports.STYLE_COLORS = exports.POLYGON_POINTS_VALUES = exports.LINE_DASH_DATA = exports.CURVE_POINTS_VALUES = void 0;
7
7
  var POLYGON_POINTS_VALUES = [3, 4, 5, 6, 7, 8, 9, 10];
8
8
  exports.POLYGON_POINTS_VALUES = POLYGON_POINTS_VALUES;
9
9
  var CURVE_POINTS_VALUES = [3, 4, 5, 6, 7, 8, 9];
@@ -20,6 +20,8 @@ var STYLE_FONTS = ['arial', 'serif', 'monospace'];
20
20
  exports.STYLE_FONTS = STYLE_FONTS;
21
21
  var STYLE_FONT_DEFAULT = 'serif';
22
22
  exports.STYLE_FONT_DEFAULT = STYLE_FONT_DEFAULT;
23
+ var STYLE_FONT_SIZE_DEFAULT = 36;
24
+ exports.STYLE_FONT_SIZE_DEFAULT = STYLE_FONT_SIZE_DEFAULT;
23
25
  var STYLE_ZINDEX_APP = 1;
24
26
  exports.STYLE_ZINDEX_APP = STYLE_ZINDEX_APP;
25
27
  var STYLE_ZINDEX_LOADING = 2;