@yorab/react-paint 0.2.2 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +44 -0
- package/LICENSE.txt +21 -0
- package/README.md +9 -90
- package/dist/components/App.js +233 -113
- package/dist/components/Canvas.js +45 -21
- package/dist/components/settings/ColorField.js +3 -7
- package/dist/components/settings/LayoutButton.js +3 -3
- package/dist/components/settings/Layouts.js +6 -19
- package/dist/components/settings/SettingsBar.js +3 -3
- package/dist/components/toolbox/EditTextBox.js +20 -13
- package/dist/components/toolbox/MenuGroup.js +48 -5
- package/dist/components/toolbox/PictureUrlInput.js +8 -7
- package/dist/components/toolbox/Toolbar.js +56 -33
- package/dist/components/toolbox/ToolbarGroup.js +3 -3
- package/dist/constants/shapes.js +7 -3
- package/dist/hooks/useDrawableCanvas.js +23 -20
- package/dist/hooks/useResizeObserver.js +40 -0
- package/dist/hooks/useShapes.js +14 -9
- package/dist/styles.css +32 -35
- package/dist/types/utils.js +5 -0
- package/dist/utils/data.js +71 -19
- package/dist/utils/draw.js +90 -51
- package/dist/utils/file.js +26 -60
- package/dist/utils/intersect.js +22 -18
- package/dist/utils/selection.js +6 -6
- package/dist/utils/shapeData.js +49 -54
- package/dist/utils/transform.js +48 -34
- package/package.json +6 -7
- package/dist/components/App.d.ts +0 -20
- package/dist/components/Canvas.d.ts +0 -28
- package/dist/components/common/Button.d.ts +0 -14
- package/dist/components/common/Loading.d.ts +0 -6
- package/dist/components/common/Modal.d.ts +0 -8
- package/dist/components/common/Panel.d.ts +0 -10
- package/dist/components/common/Snackbar.d.ts +0 -7
- package/dist/components/settings/ColorField.d.ts +0 -12
- package/dist/components/settings/DeleteButton.d.ts +0 -9
- package/dist/components/settings/FontFamilyField.d.ts +0 -10
- package/dist/components/settings/LayoutButton.d.ts +0 -8
- package/dist/components/settings/Layouts.d.ts +0 -18
- package/dist/components/settings/LineArrowField.d.ts +0 -10
- package/dist/components/settings/LineTypeField.d.ts +0 -14
- package/dist/components/settings/PointsNumberField.d.ts +0 -11
- package/dist/components/settings/RangeField.d.ts +0 -16
- package/dist/components/settings/SelectField.d.ts +0 -16
- package/dist/components/settings/SettingsBar.d.ts +0 -16
- package/dist/components/toolbox/EditTextBox.d.ts +0 -10
- package/dist/components/toolbox/LoadFileTool.d.ts +0 -11
- package/dist/components/toolbox/MenuGroup.d.ts +0 -23
- package/dist/components/toolbox/PictureUrlInput.d.ts +0 -7
- package/dist/components/toolbox/Tool.d.ts +0 -13
- package/dist/components/toolbox/Toolbar.d.ts +0 -20
- package/dist/components/toolbox/ToolbarGroup.d.ts +0 -18
- package/dist/constants/draw.d.ts +0 -2
- package/dist/constants/draw.js +0 -10
- package/dist/constants/icons.d.ts +0 -36
- package/dist/constants/shapes.d.ts +0 -5
- package/dist/constants/snackbar.d.ts +0 -11
- package/dist/constants/style.d.ts +0 -12
- package/dist/hooks/useComponent.d.ts +0 -9
- package/dist/hooks/useDrag.d.ts +0 -15
- package/dist/hooks/useDrawableCanvas.d.ts +0 -30
- package/dist/hooks/useKeyboard.d.ts +0 -15
- package/dist/hooks/useShapes.d.ts +0 -22
- package/dist/hooks/useSnackbar.d.ts +0 -16
- package/dist/schemas/drawableShape.json +0 -1021
- package/dist/types/Mode.d.ts +0 -51
- package/dist/types/Shapes.d.ts +0 -122
- package/dist/types/keyboard.d.ts +0 -15
- package/dist/utils/data.d.ts +0 -4
- package/dist/utils/draw.d.ts +0 -18
- package/dist/utils/file.d.ts +0 -33
- package/dist/utils/intersect.d.ts +0 -8
- package/dist/utils/selection.d.ts +0 -7
- package/dist/utils/shapeData.d.ts +0 -5
- package/dist/utils/string.d.ts +0 -3
- package/dist/utils/style.d.ts +0 -2
- package/dist/utils/toolbar.d.ts +0 -12
- package/dist/utils/transform.d.ts +0 -271
|
@@ -25,8 +25,6 @@ var _Mode = require("../types/Mode");
|
|
|
25
25
|
|
|
26
26
|
var _transform = require("../utils/transform");
|
|
27
27
|
|
|
28
|
-
var _draw2 = require("../constants/draw");
|
|
29
|
-
|
|
30
28
|
var _EditTextBox = _interopRequireDefault(require("./toolbox/EditTextBox"));
|
|
31
29
|
|
|
32
30
|
var _useDrawableCanvas2 = _interopRequireDefault(require("../hooks/useDrawableCanvas"));
|
|
@@ -41,20 +39,32 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
41
39
|
|
|
42
40
|
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; }
|
|
43
41
|
|
|
44
|
-
var
|
|
42
|
+
var renderDrawCanvas = function renderDrawCanvas(drawCtx, selectionMode, canvasSize, canvasOffset, shapes, selectionPadding, selectedShape) {
|
|
43
|
+
var width = canvasSize.width,
|
|
44
|
+
height = canvasSize.height,
|
|
45
|
+
scaleRatio = canvasSize.scaleRatio;
|
|
45
46
|
drawCtx.clearRect(0, 0, width, height);
|
|
46
|
-
selectionCtx.clearRect(0, 0, width, height);
|
|
47
47
|
|
|
48
48
|
for (var i = shapes.length - 1; i >= 0; i--) {
|
|
49
49
|
if (selectionMode.mode !== _Mode.SelectionModeLib.textedition || shapes[i] !== selectedShape) {
|
|
50
|
-
(0, _draw.drawShape)(drawCtx, shapes[i], canvasOffset);
|
|
50
|
+
(0, _draw.drawShape)(drawCtx, shapes[i], scaleRatio, canvasOffset, selectionPadding);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
};
|
|
53
54
|
|
|
55
|
+
var renderSelectionCanvas = function renderSelectionCanvas(selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, selectionPadding, selectionWidth, selectionColor, selectedShape) {
|
|
56
|
+
var width = canvasSize.width,
|
|
57
|
+
height = canvasSize.height,
|
|
58
|
+
scaleRatio = canvasSize.scaleRatio;
|
|
59
|
+
selectionCtx.clearRect(0, 0, width, height);
|
|
54
60
|
selectedShape && activeTool !== _Shapes.ShapeEnum.brush && (0, _draw.drawSelection)({
|
|
55
61
|
ctx: selectionCtx,
|
|
56
62
|
shape: selectedShape,
|
|
63
|
+
scaleRatio: scaleRatio,
|
|
57
64
|
canvasOffset: canvasOffset,
|
|
65
|
+
selectionPadding: selectionPadding,
|
|
66
|
+
selectionWidth: selectionWidth,
|
|
67
|
+
selectionColor: selectionColor,
|
|
58
68
|
withAnchors: selectionMode.mode !== _Mode.SelectionModeLib.textedition
|
|
59
69
|
});
|
|
60
70
|
};
|
|
@@ -87,8 +97,7 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
87
97
|
canGrow = _ref2.canGrow,
|
|
88
98
|
_ref2$disabled = _ref2.disabled,
|
|
89
99
|
disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
|
|
90
|
-
|
|
91
|
-
height = _ref2.height,
|
|
100
|
+
canvasSize = _ref2.canvasSize,
|
|
92
101
|
shapes = _ref2.shapes,
|
|
93
102
|
addShape = _ref2.addShape,
|
|
94
103
|
updateSingleShape = _ref2.updateSingleShape,
|
|
@@ -104,7 +113,11 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
104
113
|
defaultConf = _ref2.defaultConf,
|
|
105
114
|
isInsideComponent = _ref2.isInsideComponent,
|
|
106
115
|
selectionMode = _ref2.selectionMode,
|
|
107
|
-
setSelectionMode = _ref2.setSelectionMode
|
|
116
|
+
setSelectionMode = _ref2.setSelectionMode,
|
|
117
|
+
selectionWidth = _ref2.selectionWidth,
|
|
118
|
+
selectionColor = _ref2.selectionColor,
|
|
119
|
+
selectionPadding = _ref2.selectionPadding,
|
|
120
|
+
isEditMode = _ref2.isEditMode;
|
|
108
121
|
var drawCanvasRef = (0, _react.useRef)(null);
|
|
109
122
|
var selectionCanvasRef = (0, _react.useRef)(null); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
110
123
|
|
|
@@ -115,13 +128,12 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
115
128
|
var _useDrawableCanvas = (0, _useDrawableCanvas2["default"])({
|
|
116
129
|
disabled: disabled,
|
|
117
130
|
addShape: addShape,
|
|
131
|
+
canvasSize: canvasSize,
|
|
118
132
|
drawCanvasRef: drawCanvasRef,
|
|
119
133
|
setActiveTool: setActiveTool,
|
|
120
134
|
shapes: shapes,
|
|
121
135
|
defaultConf: defaultConf,
|
|
122
136
|
selectionMode: selectionMode,
|
|
123
|
-
width: width,
|
|
124
|
-
height: height,
|
|
125
137
|
activeTool: activeTool,
|
|
126
138
|
isInsideComponent: isInsideComponent,
|
|
127
139
|
setCanvasOffset: setCanvasOffset,
|
|
@@ -133,7 +145,8 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
133
145
|
updateSingleShape: updateSingleShape,
|
|
134
146
|
canvasOffset: canvasOffset,
|
|
135
147
|
saveShapes: saveShapes,
|
|
136
|
-
setSelectionMode: setSelectionMode
|
|
148
|
+
setSelectionMode: setSelectionMode,
|
|
149
|
+
selectionPadding: selectionPadding
|
|
137
150
|
}),
|
|
138
151
|
hoverMode = _useDrawableCanvas.hoverMode;
|
|
139
152
|
|
|
@@ -156,31 +169,42 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
|
156
169
|
updateSingleShape(resizedShape);
|
|
157
170
|
}, [updateSingleShape, selectedShape]);
|
|
158
171
|
(0, _react.useEffect)(function () {
|
|
159
|
-
var _drawCanvasRef$curren2
|
|
172
|
+
var _drawCanvasRef$curren2;
|
|
160
173
|
|
|
161
174
|
var drawCtx = (_drawCanvasRef$curren2 = drawCanvasRef.current) === null || _drawCanvasRef$curren2 === void 0 ? void 0 : _drawCanvasRef$curren2.getContext('2d');
|
|
175
|
+
drawCtx && window.requestAnimationFrame(function () {
|
|
176
|
+
return renderDrawCanvas(drawCtx, selectionMode, canvasSize, canvasOffset, shapes, selectionPadding, selectedShape);
|
|
177
|
+
});
|
|
178
|
+
}, [shapes, selectionMode, selectedShape, canvasOffset, canvasSize, selectionPadding]);
|
|
179
|
+
(0, _react.useEffect)(function () {
|
|
180
|
+
var _selectionCanvasRef$c;
|
|
181
|
+
|
|
162
182
|
var selectionCtx = (_selectionCanvasRef$c = selectionCanvasRef.current) === null || _selectionCanvasRef$c === void 0 ? void 0 : _selectionCanvasRef$c.getContext('2d');
|
|
163
|
-
|
|
164
|
-
|
|
183
|
+
selectionCtx && window.requestAnimationFrame(function () {
|
|
184
|
+
return renderSelectionCanvas(selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, selectionPadding, selectionWidth, selectionColor, selectedShape);
|
|
185
|
+
});
|
|
186
|
+
}, [selectionMode, selectedShape, activeTool, canvasOffset, canvasSize, selectionPadding, selectionWidth, selectionColor]);
|
|
165
187
|
return /*#__PURE__*/_react["default"].createElement(StyledCanvasBox, null, /*#__PURE__*/_react["default"].createElement(StyledCanvasContainer, {
|
|
166
188
|
"data-grid": withGrid,
|
|
167
189
|
"data-grow": canGrow
|
|
168
190
|
}, /*#__PURE__*/_react["default"].createElement(StyledDrawCanvas, {
|
|
169
191
|
ref: drawCanvasRef,
|
|
170
192
|
"data-grow": canGrow,
|
|
171
|
-
width: width,
|
|
172
|
-
height: height
|
|
173
|
-
}), /*#__PURE__*/_react["default"].createElement(StyledSelectionCanvas, {
|
|
193
|
+
width: canvasSize.width,
|
|
194
|
+
height: canvasSize.height
|
|
195
|
+
}), isEditMode && /*#__PURE__*/_react["default"].createElement(StyledSelectionCanvas, {
|
|
174
196
|
ref: selectionCanvasRef,
|
|
175
|
-
width: width,
|
|
176
|
-
height: height,
|
|
197
|
+
width: canvasSize.width,
|
|
198
|
+
height: canvasSize.height,
|
|
177
199
|
"data-grow": canGrow,
|
|
178
200
|
cursor: activeTool !== _Shapes.ToolEnum.selection && activeTool !== _Shapes.ToolEnum.move || hoverMode.mode === _Mode.SelectionModeLib.resize ? 'crosshair' : activeTool === _Shapes.ToolEnum.move || hoverMode.mode === _Mode.SelectionModeLib.translate ? 'move' : hoverMode.mode === _Mode.SelectionModeLib.rotate ? 'grab' : 'default'
|
|
179
|
-
}), selectionMode.mode === _Mode.SelectionModeLib.textedition && (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text && /*#__PURE__*/_react["default"].createElement(_EditTextBox["default"], {
|
|
201
|
+
}), isEditMode && selectionMode.mode === _Mode.SelectionModeLib.textedition && (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text && /*#__PURE__*/_react["default"].createElement(_EditTextBox["default"], {
|
|
202
|
+
scaleRatio: canvasSize.scaleRatio,
|
|
180
203
|
disabled: disabled,
|
|
181
204
|
shape: selectedShape,
|
|
182
205
|
defaultValue: selectionMode.defaultValue,
|
|
183
|
-
updateValue: updateSelectedShapeText
|
|
206
|
+
updateValue: updateSelectedShapeText,
|
|
207
|
+
selectionPadding: selectionPadding
|
|
184
208
|
})));
|
|
185
209
|
});
|
|
186
210
|
|
|
@@ -49,10 +49,6 @@ var StyledCustomColor = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
|
49
49
|
}]
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
|
-
var StyledColorButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
|
|
53
|
-
name: "StyledColorButton",
|
|
54
|
-
"class": "sttf061"
|
|
55
|
-
});
|
|
56
52
|
|
|
57
53
|
var ColorField = function ColorField(_ref3) {
|
|
58
54
|
var selectedSettings = _ref3.selectedSettings,
|
|
@@ -98,7 +94,7 @@ var ColorField = function ColorField(_ref3) {
|
|
|
98
94
|
title: title,
|
|
99
95
|
alignment: "left"
|
|
100
96
|
}, /*#__PURE__*/_react["default"].createElement("div", null, _style.STYLE_COLORS.map(function (color, index) {
|
|
101
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
97
|
+
return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
102
98
|
title: color,
|
|
103
99
|
key: index,
|
|
104
100
|
selected: color === value,
|
|
@@ -109,14 +105,14 @@ var ColorField = function ColorField(_ref3) {
|
|
|
109
105
|
}, /*#__PURE__*/_react["default"].createElement(StyledColor, {
|
|
110
106
|
color: color === 'transparent' ? "url('data:image/svg+xml,".concat(_icons.encodedTransparentIcon, "')") : color
|
|
111
107
|
}));
|
|
112
|
-
}), /*#__PURE__*/_react["default"].createElement(
|
|
108
|
+
}), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
113
109
|
type: "color",
|
|
114
110
|
title: "Custom color",
|
|
115
111
|
selected: !_fp["default"].includes(value, _style.STYLE_COLORS),
|
|
116
112
|
value: value,
|
|
117
113
|
onChange: handleChange
|
|
118
114
|
}, /*#__PURE__*/_react["default"].createElement(StyledCustomColor, {
|
|
119
|
-
color: _fp["default"].includes(value, _style.STYLE_COLORS) ? '
|
|
115
|
+
color: _fp["default"].includes(value, _style.STYLE_COLORS) ? 'var(--font-color)' : value
|
|
120
116
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
121
117
|
dangerouslySetInnerHTML: {
|
|
122
118
|
__html: _icons.paletteIcon
|
|
@@ -21,12 +21,12 @@ var StyleToggleLayoutButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
var LayoutButton = function LayoutButton(_ref) {
|
|
24
|
-
var
|
|
24
|
+
var layersManipulation = _ref.layersManipulation,
|
|
25
25
|
disabled = _ref.disabled,
|
|
26
26
|
toggleLayoutPanel = _ref.toggleLayoutPanel;
|
|
27
27
|
return /*#__PURE__*/_react["default"].createElement(StyleToggleLayoutButton, {
|
|
28
|
-
title: "Toggle
|
|
29
|
-
"data-hidden":
|
|
28
|
+
title: "Toggle layers panel",
|
|
29
|
+
"data-hidden": !layersManipulation,
|
|
30
30
|
disabled: disabled,
|
|
31
31
|
onClick: toggleLayoutPanel,
|
|
32
32
|
icon: _icons.layersIcon
|
|
@@ -133,16 +133,18 @@ var Layout = function Layout(_ref) {
|
|
|
133
133
|
dangerouslySetInnerHTML: {
|
|
134
134
|
__html: (0, _style.getShapePicture)(shape.type)
|
|
135
135
|
}
|
|
136
|
-
}), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), /*#__PURE__*/_react["default"].createElement(StyledVisibleButton, {
|
|
136
|
+
}), /*#__PURE__*/_react["default"].createElement("span", null, shape.id), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), /*#__PURE__*/_react["default"].createElement(StyledVisibleButton, {
|
|
137
137
|
title: shape.visible ? 'Hide' : 'Show',
|
|
138
138
|
"data-visible": shape.visible !== false,
|
|
139
139
|
disabled: disabled,
|
|
140
|
+
selected: selected,
|
|
140
141
|
onClick: onToggleShapeVisibility,
|
|
141
142
|
icon: shape.visible === false ? _icons.visibilityOffIcon : _icons.visibilityIcon
|
|
142
143
|
}), /*#__PURE__*/_react["default"].createElement(StyledLockedButton, {
|
|
143
144
|
title: shape.locked ? 'Locked' : 'Unlocked',
|
|
144
145
|
"data-locked": !!shape.locked,
|
|
145
146
|
disabled: disabled,
|
|
147
|
+
selected: selected,
|
|
146
148
|
onClick: onToggleShapeLock,
|
|
147
149
|
icon: shape.locked ? _icons.lockedIcon : _icons.unlockedIcon
|
|
148
150
|
}));
|
|
@@ -160,7 +162,6 @@ var Layouts = function Layouts(_ref2) {
|
|
|
160
162
|
selectedShape = _ref2.selectedShape,
|
|
161
163
|
moveShapes = _ref2.moveShapes,
|
|
162
164
|
selectShape = _ref2.selectShape,
|
|
163
|
-
withLayouts = _ref2.withLayouts,
|
|
164
165
|
isLayoutPanelShown = _ref2.isLayoutPanelShown;
|
|
165
166
|
|
|
166
167
|
var _useState = (0, _react.useState)(undefined),
|
|
@@ -174,22 +175,8 @@ var Layouts = function Layouts(_ref2) {
|
|
|
174
175
|
});
|
|
175
176
|
};
|
|
176
177
|
|
|
177
|
-
return isLayoutPanelShown ?
|
|
178
|
-
|
|
179
|
-
key: shape.id,
|
|
180
|
-
shape: shape,
|
|
181
|
-
disabled: disabled,
|
|
182
|
-
layoutDragging: layoutDragging,
|
|
183
|
-
setLayoutDragging: setLayoutDragging,
|
|
184
|
-
selected: (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.id) === shape.id,
|
|
185
|
-
handleSelect: selectShape,
|
|
186
|
-
handleRemove: removeShape,
|
|
187
|
-
onMoveShapes: moveShapes,
|
|
188
|
-
toggleShapeVisibility: toggleShapeVisibility,
|
|
189
|
-
toggleShapeLock: toggleShapeLock
|
|
190
|
-
});
|
|
191
|
-
}, shapes)) : /*#__PURE__*/_react["default"].createElement(StyledPanelLayouts, {
|
|
192
|
-
title: "Layouts",
|
|
178
|
+
return isLayoutPanelShown ? /*#__PURE__*/_react["default"].createElement(StyledPanelLayouts, {
|
|
179
|
+
title: "Layers",
|
|
193
180
|
alignment: "right"
|
|
194
181
|
}, /*#__PURE__*/_react["default"].createElement(StyledScrollingContent, null, /*#__PURE__*/_react["default"].createElement(StyledGridButton, {
|
|
195
182
|
title: withGrid ? 'Grid on' : 'Grid off',
|
|
@@ -197,7 +184,7 @@ var Layouts = function Layouts(_ref2) {
|
|
|
197
184
|
disabled: disabled,
|
|
198
185
|
onClick: onToggleGrid,
|
|
199
186
|
icon: withGrid ? _icons.gridOnIcon : _icons.gridOffIcon
|
|
200
|
-
}, "Toggle grid"), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement(StyledLayouts, null, shapes.length === 0 ? /*#__PURE__*/_react["default"].createElement(StyledPlaceholder, null, "No
|
|
187
|
+
}, "Toggle grid"), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement(StyledLayouts, null, shapes.length === 0 ? /*#__PURE__*/_react["default"].createElement(StyledPlaceholder, null, "No layer yet") : _fp["default"].map(function (shape) {
|
|
201
188
|
return /*#__PURE__*/_react["default"].createElement(Layout, {
|
|
202
189
|
key: shape.id,
|
|
203
190
|
shape: shape,
|
|
@@ -63,7 +63,7 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
63
63
|
|
|
64
64
|
var _ref$disabled = _ref.disabled,
|
|
65
65
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
66
|
-
|
|
66
|
+
layersManipulation = _ref.layersManipulation,
|
|
67
67
|
toggleLayoutPanel = _ref.toggleLayoutPanel,
|
|
68
68
|
activeTool = _ref.activeTool,
|
|
69
69
|
selectedShape = _ref.selectedShape,
|
|
@@ -251,8 +251,8 @@ var SettingsBar = function SettingsBar(_ref) {
|
|
|
251
251
|
field: "style.globalAlpha",
|
|
252
252
|
value: (_defaultConf$style7 = defaultConf.style) === null || _defaultConf$style7 === void 0 ? void 0 : _defaultConf$style7.globalAlpha,
|
|
253
253
|
valueChanged: handleShapeStyleChange
|
|
254
|
-
})), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), /*#__PURE__*/_react["default"].createElement(_LayoutButton["default"], {
|
|
255
|
-
|
|
254
|
+
})), /*#__PURE__*/_react["default"].createElement(StyledSeparator, null), layersManipulation && /*#__PURE__*/_react["default"].createElement(_LayoutButton["default"], {
|
|
255
|
+
layersManipulation: layersManipulation,
|
|
256
256
|
disabled: disabled,
|
|
257
257
|
toggleLayoutPanel: toggleLayoutPanel
|
|
258
258
|
}));
|
|
@@ -38,24 +38,30 @@ var StyledEditBox = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
|
38
38
|
return color;
|
|
39
39
|
}],
|
|
40
40
|
"s1unz6yq-2": [function (_ref3) {
|
|
41
|
-
var
|
|
41
|
+
var padding = _ref3.padding;
|
|
42
|
+
return padding;
|
|
43
|
+
}, "px"],
|
|
44
|
+
"s1unz6yq-3": [function (_ref4) {
|
|
45
|
+
var fontsize = _ref4.fontsize;
|
|
42
46
|
return fontsize;
|
|
43
47
|
}, "px"],
|
|
44
|
-
"s1unz6yq-
|
|
45
|
-
var fontfamily =
|
|
48
|
+
"s1unz6yq-5": [function (_ref5) {
|
|
49
|
+
var fontfamily = _ref5.fontfamily;
|
|
46
50
|
return fontfamily;
|
|
47
51
|
}]
|
|
48
52
|
}
|
|
49
53
|
});
|
|
50
54
|
|
|
51
|
-
var EditTextBox = function EditTextBox(
|
|
55
|
+
var EditTextBox = function EditTextBox(_ref6) {
|
|
52
56
|
var _shape$style$strokeCo, _shape$style, _shape$style$fontFami, _shape$style2;
|
|
53
57
|
|
|
54
|
-
var
|
|
55
|
-
disabled =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
var _ref6$disabled = _ref6.disabled,
|
|
59
|
+
disabled = _ref6$disabled === void 0 ? false : _ref6$disabled,
|
|
60
|
+
scaleRatio = _ref6.scaleRatio,
|
|
61
|
+
shape = _ref6.shape,
|
|
62
|
+
defaultValue = _ref6.defaultValue,
|
|
63
|
+
updateValue = _ref6.updateValue,
|
|
64
|
+
selectionPadding = _ref6.selectionPadding;
|
|
59
65
|
var ref = (0, _react.useRef)(null);
|
|
60
66
|
|
|
61
67
|
var updateContentEditable = function updateContentEditable(e) {
|
|
@@ -68,16 +74,17 @@ var EditTextBox = function EditTextBox(_ref5) {
|
|
|
68
74
|
ref.current.focus();
|
|
69
75
|
}, [defaultValue]);
|
|
70
76
|
var position = (0, _react.useMemo)(function () {
|
|
71
|
-
var _getShapeInfos = (0, _shapeData.getShapeInfos)(shape),
|
|
77
|
+
var _getShapeInfos = (0, _shapeData.getShapeInfos)(shape, selectionPadding),
|
|
72
78
|
borders = _getShapeInfos.borders,
|
|
73
79
|
center = _getShapeInfos.center;
|
|
74
80
|
|
|
75
81
|
return (0, _intersect.getPointPositionBeforeCanvasTransformation)([borders.x, borders.y], [-shape.translation[0], -shape.translation[1]], shape.rotation, center);
|
|
76
|
-
}, [shape]);
|
|
82
|
+
}, [shape, selectionPadding]);
|
|
77
83
|
return /*#__PURE__*/_react["default"].createElement(StyledEditBox, {
|
|
78
84
|
ref: ref,
|
|
79
|
-
transform: "translate3D(".concat(position[0], "px, ").concat(position[1], "px, 0) rotate(").concat((0, _transform.radiansToDegrees)(shape.rotation), "deg)"),
|
|
80
|
-
fontsize: shape.fontSize,
|
|
85
|
+
transform: "translate3D(".concat(position[0] * scaleRatio, "px, ").concat(position[1] * scaleRatio, "px, 0) rotate(").concat((0, _transform.radiansToDegrees)(shape.rotation), "deg)"),
|
|
86
|
+
fontsize: shape.fontSize * scaleRatio,
|
|
87
|
+
padding: selectionPadding * scaleRatio,
|
|
81
88
|
color: (_shape$style$strokeCo = (_shape$style = shape.style) === null || _shape$style === void 0 ? void 0 : _shape$style.strokeColor) !== null && _shape$style$strokeCo !== void 0 ? _shape$style$strokeCo : 'inherit',
|
|
82
89
|
fontfamily: (_shape$style$fontFami = (_shape$style2 = shape.style) === null || _shape$style2 === void 0 ? void 0 : _shape$style2.fontFamily) !== null && _shape$style$fontFami !== void 0 ? _shape$style$fontFami : _style.STYLE_FONT_DEFAULT,
|
|
83
90
|
contentEditable: !disabled,
|
|
@@ -52,12 +52,24 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
52
52
|
var _ref3;
|
|
53
53
|
|
|
54
54
|
var activeTool = _ref.activeTool,
|
|
55
|
+
withActionsInMenu = _ref.withActionsInMenu,
|
|
56
|
+
_ref$hasActionToUndo = _ref.hasActionToUndo,
|
|
57
|
+
hasActionToUndo = _ref$hasActionToUndo === void 0 ? false : _ref$hasActionToUndo,
|
|
58
|
+
_ref$hasActionToRedo = _ref.hasActionToRedo,
|
|
59
|
+
hasActionToRedo = _ref$hasActionToRedo === void 0 ? false : _ref$hasActionToRedo,
|
|
60
|
+
_ref$hasActionToClear = _ref.hasActionToClear,
|
|
61
|
+
hasActionToClear = _ref$hasActionToClear === void 0 ? false : _ref$hasActionToClear,
|
|
62
|
+
undoAction = _ref.undoAction,
|
|
63
|
+
redoAction = _ref.redoAction,
|
|
64
|
+
clearCanvas = _ref.clearCanvas,
|
|
55
65
|
alignment = _ref.alignment,
|
|
56
66
|
group = _ref.group,
|
|
57
67
|
_ref$vertical = _ref.vertical,
|
|
58
68
|
vertical = _ref$vertical === void 0 ? false : _ref$vertical,
|
|
59
69
|
_ref$disabled = _ref.disabled,
|
|
60
70
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
71
|
+
withLoadAndSave = _ref.withLoadAndSave,
|
|
72
|
+
withExport = _ref.withExport,
|
|
61
73
|
addPictureFromProps = _ref.addPicture,
|
|
62
74
|
loadFileFromProps = _ref.loadFile,
|
|
63
75
|
togglePictureUrlModal = _ref.togglePictureUrlModal,
|
|
@@ -117,10 +129,15 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
117
129
|
document.addEventListener('click', closePanel);
|
|
118
130
|
}, 0);
|
|
119
131
|
return function () {
|
|
132
|
+
clearTimeout(timeoutId);
|
|
120
133
|
document.removeEventListener('click', closePanel);
|
|
121
134
|
};
|
|
122
135
|
}, [isOpen]);
|
|
123
|
-
|
|
136
|
+
|
|
137
|
+
var withPicture = _fp["default"].includes(_Shapes.ShapeEnum.picture, availableTools);
|
|
138
|
+
|
|
139
|
+
var withMenu = withActionsInMenu || withPicture || withLoadAndSave || withExport;
|
|
140
|
+
return withMenu ? /*#__PURE__*/_react["default"].createElement(StyledRelative, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
124
141
|
selected: isActive,
|
|
125
142
|
title: group.title,
|
|
126
143
|
disabled: disabled,
|
|
@@ -129,7 +146,33 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
129
146
|
}), isOpen && /*#__PURE__*/_react["default"].createElement(StyledPanel, {
|
|
130
147
|
vertical: vertical,
|
|
131
148
|
alignment: alignment
|
|
132
|
-
},
|
|
149
|
+
}, withActionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
150
|
+
withText: true,
|
|
151
|
+
type: _Shapes.ToolEnum.undo,
|
|
152
|
+
disabled: disabled || !hasActionToUndo,
|
|
153
|
+
lib: "Undo",
|
|
154
|
+
img: _icons.undoIcon,
|
|
155
|
+
isActive: activeTool === _Shapes.ToolEnum.undo,
|
|
156
|
+
setActive: undoAction
|
|
157
|
+
}), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
158
|
+
withText: true,
|
|
159
|
+
type: _Shapes.ToolEnum.redo,
|
|
160
|
+
disabled: disabled || !hasActionToRedo,
|
|
161
|
+
lib: "Redo",
|
|
162
|
+
img: _icons.redoIcon,
|
|
163
|
+
isActive: activeTool === _Shapes.ToolEnum.redo,
|
|
164
|
+
setActive: redoAction
|
|
165
|
+
}), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
166
|
+
withText: true,
|
|
167
|
+
type: _Shapes.ToolEnum.clear,
|
|
168
|
+
disabled: disabled || !hasActionToClear,
|
|
169
|
+
lib: "Clear",
|
|
170
|
+
img: _icons.clearIcon,
|
|
171
|
+
isActive: activeTool === _Shapes.ToolEnum.clear,
|
|
172
|
+
setActive: function setActive() {
|
|
173
|
+
return clearCanvas();
|
|
174
|
+
}
|
|
175
|
+
}), (withPicture || withLoadAndSave) && /*#__PURE__*/_react["default"].createElement("hr", null)), withPicture && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
|
|
133
176
|
withText: true,
|
|
134
177
|
disabled: disabled,
|
|
135
178
|
loadFile: addPicture,
|
|
@@ -143,7 +186,7 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
143
186
|
title: "Add picture from URL",
|
|
144
187
|
icon: _icons.publicIcon,
|
|
145
188
|
children: "Add picture from URL"
|
|
146
|
-
}), /*#__PURE__*/_react["default"].createElement("hr", null)), /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
|
|
189
|
+
}), withLoadAndSave && /*#__PURE__*/_react["default"].createElement("hr", null)), withLoadAndSave && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
|
|
147
190
|
withText: true,
|
|
148
191
|
disabled: disabled,
|
|
149
192
|
loadFile: loadFile,
|
|
@@ -158,7 +201,7 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
158
201
|
img: _icons.saveIcon,
|
|
159
202
|
isActive: activeTool === _Shapes.ToolEnum.saveFile,
|
|
160
203
|
setActive: saveFile
|
|
161
|
-
}), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
204
|
+
})), withExport && /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
162
205
|
withText: true,
|
|
163
206
|
disabled: disabled,
|
|
164
207
|
type: _Shapes.ToolEnum["export"],
|
|
@@ -166,7 +209,7 @@ var MenuGroup = function MenuGroup(_ref) {
|
|
|
166
209
|
img: _icons.exportFileIcon,
|
|
167
210
|
isActive: activeTool === _Shapes.ToolEnum["export"],
|
|
168
211
|
setActive: exportCanvasInFile
|
|
169
|
-
})));
|
|
212
|
+
}))) : null;
|
|
170
213
|
};
|
|
171
214
|
|
|
172
215
|
var _default = MenuGroup;
|
|
@@ -36,7 +36,7 @@ var PictureUrlModal = function PictureUrlModal(_ref) {
|
|
|
36
36
|
var pictureUrlInputRef = (0, _react.useRef)(null);
|
|
37
37
|
|
|
38
38
|
var addPictureFromUrl = /*#__PURE__*/function () {
|
|
39
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
39
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(e) {
|
|
40
40
|
var _pictureUrlInputRef$c;
|
|
41
41
|
|
|
42
42
|
var url;
|
|
@@ -44,23 +44,24 @@ var PictureUrlModal = function PictureUrlModal(_ref) {
|
|
|
44
44
|
while (1) {
|
|
45
45
|
switch (_context.prev = _context.next) {
|
|
46
46
|
case 0:
|
|
47
|
+
e.preventDefault();
|
|
47
48
|
url = (_pictureUrlInputRef$c = pictureUrlInputRef.current) === null || _pictureUrlInputRef$c === void 0 ? void 0 : _pictureUrlInputRef$c.value;
|
|
48
49
|
|
|
49
50
|
if (!url) {
|
|
50
|
-
_context.next =
|
|
51
|
+
_context.next = 6;
|
|
51
52
|
break;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
_context.next =
|
|
55
|
+
_context.next = 5;
|
|
55
56
|
return addPicture(url);
|
|
56
57
|
|
|
57
|
-
case
|
|
58
|
+
case 5:
|
|
58
59
|
togglePictureUrlModal();
|
|
59
60
|
|
|
60
|
-
case
|
|
61
|
+
case 6:
|
|
61
62
|
return _context.abrupt("return");
|
|
62
63
|
|
|
63
|
-
case
|
|
64
|
+
case 7:
|
|
64
65
|
case "end":
|
|
65
66
|
return _context.stop();
|
|
66
67
|
}
|
|
@@ -68,7 +69,7 @@ var PictureUrlModal = function PictureUrlModal(_ref) {
|
|
|
68
69
|
}, _callee);
|
|
69
70
|
}));
|
|
70
71
|
|
|
71
|
-
return function addPictureFromUrl() {
|
|
72
|
+
return function addPictureFromUrl(_x) {
|
|
72
73
|
return _ref2.apply(this, arguments);
|
|
73
74
|
};
|
|
74
75
|
}();
|
|
@@ -39,6 +39,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
39
|
|
|
40
40
|
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
41
|
|
|
42
|
+
var ACTIONS_MENU_BREAKPOINT = 400;
|
|
43
|
+
var TOOLS_MENU_BREAKPOINT = 280;
|
|
42
44
|
var StyledShrinkableTools = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
43
45
|
name: "StyledShrinkableTools",
|
|
44
46
|
"class": "so6hnjf"
|
|
@@ -47,33 +49,27 @@ var StyledToolbox = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
|
47
49
|
name: "StyledToolbox",
|
|
48
50
|
"class": "s1c1dllr"
|
|
49
51
|
});
|
|
50
|
-
var StyledShrinkableToolsInner = /*#__PURE__*/(0, _react2.styled)("div")({
|
|
51
|
-
name: "StyledShrinkableToolsInner",
|
|
52
|
-
"class": "s1g032mh"
|
|
53
|
-
});
|
|
54
52
|
var StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
|
|
55
53
|
name: "StyledToolsModal",
|
|
56
|
-
"class": "
|
|
54
|
+
"class": "s1g032mh"
|
|
57
55
|
});
|
|
58
56
|
var TOOLBAR_STRUCTURE = [{
|
|
59
57
|
title: 'brush',
|
|
60
|
-
img: _icons.gestureIcon,
|
|
61
58
|
tools: [_Shapes.ShapeEnum.brush],
|
|
62
59
|
vertical: false
|
|
63
60
|
}, {
|
|
64
61
|
title: 'lines',
|
|
65
|
-
img: _icons.arrowIcon,
|
|
66
62
|
tools: [_Shapes.ShapeEnum.line, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.polygon],
|
|
67
63
|
vertical: false
|
|
68
64
|
}, {
|
|
69
65
|
title: 'shapes',
|
|
70
|
-
img: _icons.shapesIcon,
|
|
71
66
|
tools: [_Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.ellipse],
|
|
72
67
|
vertical: false
|
|
73
68
|
}, _Shapes.ShapeEnum.text];
|
|
74
69
|
|
|
75
70
|
var Toolbar = function Toolbar(_ref) {
|
|
76
|
-
var
|
|
71
|
+
var width = _ref.width,
|
|
72
|
+
_ref$disabled = _ref.disabled,
|
|
77
73
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
78
74
|
activeTool = _ref.activeTool,
|
|
79
75
|
_ref$hasActionToUndo = _ref.hasActionToUndo,
|
|
@@ -82,6 +78,8 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
82
78
|
hasActionToRedo = _ref$hasActionToRedo === void 0 ? false : _ref$hasActionToRedo,
|
|
83
79
|
_ref$hasActionToClear = _ref.hasActionToClear,
|
|
84
80
|
hasActionToClear = _ref$hasActionToClear === void 0 ? false : _ref$hasActionToClear,
|
|
81
|
+
withLoadAndSave = _ref.withLoadAndSave,
|
|
82
|
+
withExport = _ref.withExport,
|
|
85
83
|
clearCanvas = _ref.clearCanvas,
|
|
86
84
|
setActiveToolFromProps = _ref.setActiveTool,
|
|
87
85
|
undoAction = _ref.undoAction,
|
|
@@ -102,6 +100,16 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
102
100
|
isPictureUrlModalOpen = _useState4[0],
|
|
103
101
|
setIsPictureUrlModalOpen = _useState4[1];
|
|
104
102
|
|
|
103
|
+
var _useState5 = (0, _react.useState)(width < ACTIONS_MENU_BREAKPOINT),
|
|
104
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
105
|
+
actionsInMenu = _useState6[0],
|
|
106
|
+
setActionsInMenu = _useState6[1];
|
|
107
|
+
|
|
108
|
+
var _useState7 = (0, _react.useState)(width < TOOLS_MENU_BREAKPOINT),
|
|
109
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
110
|
+
toolsInMenu = _useState8[0],
|
|
111
|
+
setToolsInMenu = _useState8[1];
|
|
112
|
+
|
|
105
113
|
var toggleTools = function toggleTools() {
|
|
106
114
|
setIsMenuOpen(function (prev) {
|
|
107
115
|
return !prev;
|
|
@@ -123,15 +131,44 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
123
131
|
setIsMenuOpen(false);
|
|
124
132
|
};
|
|
125
133
|
|
|
134
|
+
(0, _react.useEffect)(function () {
|
|
135
|
+
setActionsInMenu(width < ACTIONS_MENU_BREAKPOINT);
|
|
136
|
+
setToolsInMenu(width < TOOLS_MENU_BREAKPOINT);
|
|
137
|
+
}, [width]);
|
|
126
138
|
var currentStructure = (0, _toolbar.getCurrentStructure)(availableTools, TOOLBAR_STRUCTURE);
|
|
127
|
-
|
|
139
|
+
var isAnyToolSelected = availableTools.includes(activeTool);
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledToolbox, null, /*#__PURE__*/_react["default"].createElement(_MenuGroup["default"], {
|
|
141
|
+
withActionsInMenu: actionsInMenu,
|
|
142
|
+
disabled: disabled,
|
|
143
|
+
vertical: true,
|
|
144
|
+
alignment: "left",
|
|
145
|
+
group: {
|
|
146
|
+
title: 'Menu',
|
|
147
|
+
img: _icons.menuIcon
|
|
148
|
+
},
|
|
149
|
+
activeTool: activeTool,
|
|
150
|
+
addPicture: addPicture,
|
|
151
|
+
loadFile: loadFile,
|
|
152
|
+
saveFile: saveFile,
|
|
153
|
+
togglePictureUrlModal: openPictureUrlModal,
|
|
154
|
+
exportCanvasInFile: exportCanvasInFile,
|
|
155
|
+
availableTools: availableTools,
|
|
156
|
+
withLoadAndSave: withLoadAndSave,
|
|
157
|
+
withExport: withExport,
|
|
158
|
+
hasActionToUndo: hasActionToUndo,
|
|
159
|
+
hasActionToRedo: hasActionToRedo,
|
|
160
|
+
hasActionToClear: hasActionToClear,
|
|
161
|
+
undoAction: undoAction,
|
|
162
|
+
redoAction: redoAction,
|
|
163
|
+
clearCanvas: clearCanvas
|
|
164
|
+
}), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
128
165
|
type: _Shapes.ToolEnum.selection,
|
|
129
166
|
disabled: disabled,
|
|
130
167
|
lib: "selection",
|
|
131
168
|
img: _icons.selectIcon,
|
|
132
169
|
isActive: activeTool === _Shapes.ToolEnum.selection,
|
|
133
170
|
setActive: setActiveTool
|
|
134
|
-
}), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
171
|
+
}), !actionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|
|
135
172
|
type: _Shapes.ToolEnum.undo,
|
|
136
173
|
disabled: disabled || !hasActionToUndo,
|
|
137
174
|
lib: "Undo",
|
|
@@ -154,7 +191,13 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
154
191
|
setActive: function setActive() {
|
|
155
192
|
return clearCanvas();
|
|
156
193
|
}
|
|
157
|
-
}), /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, /*#__PURE__*/_react["default"].createElement(
|
|
194
|
+
})), /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, toolsInMenu ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
195
|
+
disabled: disabled,
|
|
196
|
+
onClick: toggleTools,
|
|
197
|
+
title: "Toggle tools",
|
|
198
|
+
icon: _icons.shapesIcon,
|
|
199
|
+
selected: isAnyToolSelected
|
|
200
|
+
}) : currentStructure.map(function (group, i) {
|
|
158
201
|
return /*#__PURE__*/_react["default"].createElement(_ToolbarGroup["default"], {
|
|
159
202
|
disabled: disabled,
|
|
160
203
|
key: i,
|
|
@@ -162,27 +205,7 @@ var Toolbar = function Toolbar(_ref) {
|
|
|
162
205
|
group: group,
|
|
163
206
|
setActiveTool: setActiveTool
|
|
164
207
|
});
|
|
165
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
|
166
|
-
disabled: disabled,
|
|
167
|
-
onClick: toggleTools,
|
|
168
|
-
title: "Toggle tools",
|
|
169
|
-
icon: _icons.dotsIcon
|
|
170
|
-
})), /*#__PURE__*/_react["default"].createElement(_MenuGroup["default"], {
|
|
171
|
-
disabled: disabled,
|
|
172
|
-
vertical: true,
|
|
173
|
-
alignment: "right",
|
|
174
|
-
group: {
|
|
175
|
-
title: 'Menu',
|
|
176
|
-
img: _icons.menuIcon
|
|
177
|
-
},
|
|
178
|
-
activeTool: activeTool,
|
|
179
|
-
addPicture: addPicture,
|
|
180
|
-
loadFile: loadFile,
|
|
181
|
-
saveFile: saveFile,
|
|
182
|
-
togglePictureUrlModal: openPictureUrlModal,
|
|
183
|
-
exportCanvasInFile: exportCanvasInFile,
|
|
184
|
-
availableTools: availableTools
|
|
185
|
-
})), isMenuOpen && /*#__PURE__*/_react["default"].createElement(StyledToolsModal, {
|
|
208
|
+
}))), isMenuOpen && /*#__PURE__*/_react["default"].createElement(StyledToolsModal, {
|
|
186
209
|
onClose: toggleTools
|
|
187
210
|
}, availableTools.map(function (toolType) {
|
|
188
211
|
return toolType === _Shapes.ShapeEnum.picture ? null : /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
|