@solostylist/image-editor 1.0.13 → 1.0.15
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/lib/actions/add-filter.js +2 -1
- package/lib/actions/enable-text-content-edit.js +2 -1
- package/lib/actions/set-canvas-size.d.ts.map +1 -1
- package/lib/actions/set-crop.js +6 -1
- package/lib/actions/set-shown-image-dimensions.js +3 -2
- package/lib/components/app/index.d.ts.map +1 -1
- package/lib/components/app/index.js +111 -41
- package/lib/components/assembly-point/index.d.ts +1 -2
- package/lib/components/assembly-point/index.d.ts.map +1 -1
- package/lib/components/assembly-point/index.js +1 -5
- package/lib/components/common/annotation-options/index.js +3 -3
- package/lib/components/common/annotation-options/shadow-fields.js +2 -2
- package/lib/components/common/color-picker-modal/index.js +1 -1
- package/lib/components/common/icon-wrapper/index.js +1 -1
- package/lib/components/common/image-preview-tile/index.js +1 -1
- package/lib/components/common/slider/index.js +4 -4
- package/lib/components/feedback-popup/index.js +2 -2
- package/lib/components/layers/design-layer/index.d.ts.map +1 -1
- package/lib/components/layers/design-layer/index.js +11 -8
- package/lib/components/layers/transformers-layer/crop-transformer.js +3 -2
- package/lib/components/layers/transformers-layer/index.js +3 -2
- package/lib/components/main-canvas/canvas-node.d.ts.map +1 -1
- package/lib/components/main-canvas/canvas-node.js +8 -6
- package/lib/components/main-canvas/index.d.ts.map +1 -1
- package/lib/components/main-canvas/index.js +135 -33
- package/lib/components/main-canvas/touch-zooming-events.js +3 -2
- package/lib/components/node-controls/index.d.ts.map +1 -1
- package/lib/components/node-controls/index.js +4 -3
- package/lib/components/tabs/index.d.ts.map +1 -1
- package/lib/components/tabs/index.js +165 -23
- package/lib/components/tabs-drawer/index.d.ts +3 -3
- package/lib/components/tabs-drawer/index.d.ts.map +1 -1
- package/lib/components/tabs-drawer/index.js +66 -43
- package/lib/components/tools/crop/crop.d.ts.map +1 -1
- package/lib/components/tools/crop/crop.js +3 -3
- package/lib/components/tools/filters/filter-item.d.ts +4 -3
- package/lib/components/tools/filters/filter-item.d.ts.map +1 -1
- package/lib/components/tools/filters/filter-item.js +4 -1
- package/lib/components/tools/filters/filters.constants.d.ts +2 -2
- package/lib/components/tools/filters/filters.constants.d.ts.map +1 -1
- package/lib/components/tools/filters/filters.d.ts +4 -1
- package/lib/components/tools/filters/filters.d.ts.map +1 -1
- package/lib/components/tools/filters/filters.js +9 -3
- package/lib/components/tools/image/image-options.js +5 -4
- package/lib/components/tools/image/images-gallery.js +1 -1
- package/lib/components/tools/pen/pen-options.js +4 -3
- package/lib/components/tools/resize/resize.d.ts +1 -1
- package/lib/components/tools/resize/resize.d.ts.map +1 -1
- package/lib/components/tools/resize/resize.js +5 -2
- package/lib/components/tools/rotate/rotate-options.js +1 -1
- package/lib/components/tools/text/text-options/handle-text-change-area.d.ts.map +1 -1
- package/lib/components/tools/text/text-options/text-alignment-fields.js +1 -1
- package/lib/components/tools/text/text-options/text-controls.js +8 -6
- package/lib/components/tools/tools.constants.d.ts +2 -2
- package/lib/components/tools/tools.constants.d.ts.map +1 -1
- package/lib/components/tools/watermark/watermark-padding.js +2 -1
- package/lib/components/tools/watermark/watermark.js +9 -8
- package/lib/components/tools-bar/index.d.ts.map +1 -1
- package/lib/components/tools-bar/index.js +47 -22
- package/lib/components/tools-bar/tools-bar-item-button.d.ts.map +1 -1
- package/lib/components/tools-bar/tools-bar-item-button.js +8 -3
- package/lib/components/topbar/canvas-zooming.d.ts.map +1 -1
- package/lib/components/topbar/canvas-zooming.js +5 -5
- package/lib/components/topbar/confirmation-modal.js +2 -2
- package/lib/components/topbar/image-dimensions-and-display-toggle.d.ts.map +1 -1
- package/lib/components/topbar/image-dimensions-and-display-toggle.js +8 -6
- package/lib/components/topbar/index.d.ts.map +1 -1
- package/lib/components/topbar/index.js +33 -24
- package/lib/components/topbar/redo-button.js +1 -1
- package/lib/components/topbar/reset-button.js +1 -1
- package/lib/components/topbar/save-button.js +9 -6
- package/lib/components/topbar/topbar-action-buttons.d.ts +3 -0
- package/lib/components/topbar/topbar-action-buttons.d.ts.map +1 -0
- package/lib/components/topbar/topbar-action-buttons.js +27 -0
- package/lib/components/topbar/undo-button.js +1 -1
- package/lib/context/app-provider.d.ts.map +1 -1
- package/lib/context/app-provider.js +8 -6
- package/lib/context/app-reducer.js +2 -1
- package/lib/context/default-config.d.ts.map +1 -1
- package/lib/context/default-config.js +1 -1
- package/lib/context/default-translations.d.ts +1 -0
- package/lib/context/default-translations.d.ts.map +1 -1
- package/lib/context/default-translations.js +465 -113
- package/lib/context/get-initial-app-state.js +4 -4
- package/lib/custom/filters/moon.d.ts.map +1 -1
- package/lib/demo/app.d.ts.map +1 -1
- package/lib/demo/app.js +62 -18
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/index.js +2 -1
- package/lib/hooks/use-annotation/get-new-annotation-preview.js +2 -2
- package/lib/hooks/use-annotation/index.d.ts.map +1 -1
- package/lib/hooks/use-annotation/index.js +15 -2
- package/lib/hooks/use-annotation-events.d.ts.map +1 -1
- package/lib/hooks/use-app-reducer.d.ts.map +1 -1
- package/lib/hooks/use-app-reducer.js +2 -1
- package/lib/hooks/use-image-editor-actions.d.ts +16 -0
- package/lib/hooks/use-image-editor-actions.d.ts.map +1 -0
- package/lib/hooks/use-image-editor-actions.js +147 -0
- package/lib/hooks/use-resize-observer.d.ts.map +1 -1
- package/lib/hooks/use-resize-observer.js +2 -3
- package/lib/hooks/use-transformed-img-data.d.ts +1 -1
- package/lib/hooks/use-transformed-img-data.d.ts.map +1 -1
- package/lib/hooks/use-transformed-img-data.js +13 -9
- package/lib/types/actions.d.ts +0 -7
- package/lib/types/actions.d.ts.map +1 -1
- package/lib/types/config.d.ts +52 -3
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/state.d.ts +1 -1
- package/lib/types/state.d.ts.map +1 -1
- package/lib/utils/calculate-zoom-data.js +5 -4
- package/lib/utils/crop-image.d.ts +3 -1
- package/lib/utils/crop-image.d.ts.map +1 -1
- package/lib/utils/crop-image.js +10 -4
- package/lib/utils/extract-current-design-state.js +3 -2
- package/lib/utils/filter-str-to-class.js +2 -1
- package/lib/utils/finetunes-strs-to-classes.js +2 -1
- package/lib/utils/get-file-full-name.d.ts.map +1 -1
- package/lib/utils/get-file-full-name.js +3 -3
- package/lib/utils/get-pointer-offset-position-bounded-to-object.js +2 -1
- package/lib/utils/get-proper-dimensions.js +3 -2
- package/lib/utils/is-same-image.d.ts +1 -1
- package/lib/utils/is-same-image.d.ts.map +1 -1
- package/lib/utils/load-image.d.ts +1 -1
- package/lib/utils/load-image.d.ts.map +1 -1
- package/lib/utils/load-image.js +1 -3
- package/lib/utils/restrict-number.js +2 -2
- package/lib/utils/serialize-design-state.js +5 -3
- package/lib/utils/translator.d.ts +4 -1
- package/lib/utils/translator.d.ts.map +1 -1
- package/lib/utils/translator.js +11 -2
- package/package.json +14 -5
|
@@ -12,6 +12,7 @@ import { endTouchesZooming, zoomOnTouchesMove } from "./touch-zooming-events";
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
var ZOOM_DELTA_TO_SCALE_CONVERT_FACTOR = 0.006;
|
|
14
14
|
var CanvasNode = function CanvasNode(_ref) {
|
|
15
|
+
var _zoom$factor2, _zoom$x, _zoom$y, _zoom$factor3;
|
|
15
16
|
var children = _ref.children;
|
|
16
17
|
useStrictMode(true);
|
|
17
18
|
var canvasRef = useRef(null);
|
|
@@ -78,11 +79,12 @@ var CanvasNode = function CanvasNode(_ref) {
|
|
|
78
79
|
};
|
|
79
80
|
};
|
|
80
81
|
var handleZoom = function handleZoom(e) {
|
|
82
|
+
var _zoom$factor;
|
|
81
83
|
e.evt.preventDefault();
|
|
82
84
|
var stage = e.currentTarget;
|
|
83
85
|
var pointer = stage.getPointerPosition();
|
|
84
86
|
if (!pointer) return;
|
|
85
|
-
var newScale = (zoom.factor
|
|
87
|
+
var newScale = ((_zoom$factor = zoom.factor) !== null && _zoom$factor !== void 0 ? _zoom$factor : defaultZoomFactor) + e.evt.deltaY * -ZOOM_DELTA_TO_SCALE_CONVERT_FACTOR;
|
|
86
88
|
saveZoom(_objectSpread(_objectSpread({}, pointer), {}, {
|
|
87
89
|
factor: newScale
|
|
88
90
|
}));
|
|
@@ -147,7 +149,7 @@ var CanvasNode = function CanvasNode(_ref) {
|
|
|
147
149
|
}
|
|
148
150
|
};
|
|
149
151
|
}, [tabId, zoom.factor, defaultZoomFactor]);
|
|
150
|
-
var zoomedResponsiveCanvasScale = canvasScale * (isZoomEnabled
|
|
152
|
+
var zoomedResponsiveCanvasScale = canvasScale * (isZoomEnabled ? (_zoom$factor2 = zoom.factor) !== null && _zoom$factor2 !== void 0 ? _zoom$factor2 : defaultZoomFactor : defaultZoomFactor);
|
|
151
153
|
return _jsx(Stage, {
|
|
152
154
|
tabIndex: -1,
|
|
153
155
|
ref: canvasRef,
|
|
@@ -155,9 +157,9 @@ var CanvasNode = function CanvasNode(_ref) {
|
|
|
155
157
|
height: canvasHeight,
|
|
156
158
|
scaleX: zoomedResponsiveCanvasScale,
|
|
157
159
|
scaleY: zoomedResponsiveCanvasScale,
|
|
158
|
-
x: isZoomEnabled
|
|
159
|
-
y: isZoomEnabled
|
|
160
|
-
zoomFactor: isZoomEnabled
|
|
160
|
+
x: isZoomEnabled ? (_zoom$x = zoom.x) !== null && _zoom$x !== void 0 ? _zoom$x : null : null,
|
|
161
|
+
y: isZoomEnabled ? (_zoom$y = zoom.y) !== null && _zoom$y !== void 0 ? _zoom$y : null : null,
|
|
162
|
+
zoomFactor: isZoomEnabled ? (_zoom$factor3 = zoom.factor) !== null && _zoom$factor3 !== void 0 ? _zoom$factor3 : defaultZoomFactor : defaultZoomFactor,
|
|
161
163
|
onWheel: isZoomEnabled ? handleZoom : undefined,
|
|
162
164
|
onTap: clearSelections,
|
|
163
165
|
onClick: clearSelections,
|
|
@@ -171,7 +173,7 @@ var CanvasNode = function CanvasNode(_ref) {
|
|
|
171
173
|
onDragEnd: handleCanvasDragEnd,
|
|
172
174
|
style: _objectSpread(_objectSpread({}, cursorStyle), {}, {
|
|
173
175
|
outline: 'none',
|
|
174
|
-
backgroundColor: '
|
|
176
|
+
backgroundColor: 'transparent'
|
|
175
177
|
}),
|
|
176
178
|
children: children
|
|
177
179
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/index.tsx"],"names":[],"mappings":"AAaA,QAAA,MAAM,UAAU,+CAqLf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,56 +1,158 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
1
|
import { useCallback, useEffect, useRef } from 'react';
|
|
3
2
|
import { Box } from '@mui/material';
|
|
4
3
|
import { SET_CANVAS_SIZE } from "../../actions";
|
|
5
4
|
import { DesignLayer, TransformersLayer } from "../layers";
|
|
6
5
|
import NodeControls from "../node-controls";
|
|
7
6
|
import { AppProviderOverridenValue } from "../../context";
|
|
8
|
-
import {
|
|
7
|
+
import { useStore } from "../../hooks";
|
|
8
|
+
import { TOOLS_IDS } from "../../utils/constants";
|
|
9
9
|
import CanvasNode from "./canvas-node";
|
|
10
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
11
|
var MainCanvas = function MainCanvas() {
|
|
12
12
|
var _providedAppContext$o;
|
|
13
|
-
var _useResizeObserver = useResizeObserver(),
|
|
14
|
-
_useResizeObserver2 = _slicedToArray(_useResizeObserver, 1),
|
|
15
|
-
observeResize = _useResizeObserver2[0];
|
|
16
13
|
var providedAppContext = useStore();
|
|
17
14
|
var canvasContainerRef = useRef(null);
|
|
15
|
+
var contextRef = useRef(providedAppContext);
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
contextRef.current = providedAppContext;
|
|
18
|
+
});
|
|
18
19
|
var setNewCanvasSize = useCallback(function (_ref) {
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
var _ctx$config$cropTopOf;
|
|
21
|
+
var width = _ref.width,
|
|
22
|
+
height = _ref.height;
|
|
23
|
+
var ctx = contextRef.current;
|
|
24
|
+
var previousCanvasWidth = ctx.canvasWidth;
|
|
25
|
+
var previousCanvasHeight = ctx.canvasHeight;
|
|
26
|
+
var cropOffset = (_ctx$config$cropTopOf = ctx.config.cropTopOffset) !== null && _ctx$config$cropTopOf !== void 0 ? _ctx$config$cropTopOf : 56;
|
|
27
|
+
var isCropping = ctx.toolId === TOOLS_IDS.CROP;
|
|
28
|
+
var effectiveHeight = isCropping ? height - cropOffset : height;
|
|
29
|
+
var hasSizeChanged = width !== previousCanvasWidth || effectiveHeight !== previousCanvasHeight;
|
|
30
|
+
if (!hasSizeChanged) return;
|
|
31
|
+
ctx.dispatch({
|
|
22
32
|
type: SET_CANVAS_SIZE,
|
|
23
33
|
payload: {
|
|
24
|
-
canvasWidth:
|
|
25
|
-
canvasHeight:
|
|
34
|
+
canvasWidth: width,
|
|
35
|
+
canvasHeight: effectiveHeight
|
|
26
36
|
}
|
|
27
37
|
});
|
|
28
38
|
}, []);
|
|
29
39
|
useEffect(function () {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
var container = canvasContainerRef.current;
|
|
41
|
+
if (!container) return;
|
|
42
|
+
var debounceTimer;
|
|
43
|
+
var ro = new ResizeObserver(function () {
|
|
44
|
+
clearTimeout(debounceTimer);
|
|
45
|
+
debounceTimer = setTimeout(function () {
|
|
46
|
+
setNewCanvasSize({
|
|
47
|
+
width: container.offsetWidth,
|
|
48
|
+
height: container.offsetHeight
|
|
49
|
+
});
|
|
50
|
+
}, 100);
|
|
51
|
+
});
|
|
52
|
+
ro.observe(container);
|
|
53
|
+
return function () {
|
|
54
|
+
clearTimeout(debounceTimer);
|
|
55
|
+
ro.disconnect();
|
|
56
|
+
};
|
|
57
|
+
}, [setNewCanvasSize]);
|
|
58
|
+
var _providedAppContext$c = providedAppContext.config,
|
|
59
|
+
canvasAreaHeight = _providedAppContext$c.canvasAreaHeight,
|
|
60
|
+
showCanvasCenter = _providedAppContext$c.showCanvasCenter,
|
|
61
|
+
cropTopOffset = _providedAppContext$c.cropTopOffset,
|
|
62
|
+
defaultToolId = _providedAppContext$c.defaultToolId,
|
|
63
|
+
toolId = providedAppContext.toolId,
|
|
64
|
+
originalImage = providedAppContext.originalImage;
|
|
65
|
+
var lastToolIdRef = useRef(toolId !== null && toolId !== void 0 ? toolId : null);
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
if (toolId) {
|
|
68
|
+
lastToolIdRef.current = toolId;
|
|
69
|
+
}
|
|
70
|
+
}, [toolId]);
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
if (originalImage) {
|
|
73
|
+
var _ref2;
|
|
74
|
+
lastToolIdRef.current = (_ref2 = toolId !== null && toolId !== void 0 ? toolId : defaultToolId) !== null && _ref2 !== void 0 ? _ref2 : null;
|
|
75
|
+
}
|
|
76
|
+
}, [originalImage, defaultToolId, toolId]);
|
|
77
|
+
var cropOffset = cropTopOffset !== null && cropTopOffset !== void 0 ? cropTopOffset : 56;
|
|
78
|
+
return _jsx(Box, {
|
|
79
|
+
height: canvasAreaHeight !== null && canvasAreaHeight !== void 0 ? canvasAreaHeight : '100%',
|
|
80
|
+
minHeight: 0,
|
|
35
81
|
flexGrow: 1,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
82
|
+
width: 'calc(100% - var(--s-image-editor-tabs-width, 0px))',
|
|
83
|
+
sx: {
|
|
84
|
+
paddingTop: "".concat(cropOffset, "px"),
|
|
85
|
+
transition: 'all 0.2s ease'
|
|
86
|
+
},
|
|
87
|
+
children: _jsxs(Box, {
|
|
88
|
+
height: canvasAreaHeight !== null && canvasAreaHeight !== void 0 ? canvasAreaHeight : '100%',
|
|
89
|
+
minHeight: 0,
|
|
90
|
+
position: "relative",
|
|
91
|
+
flexGrow: 1,
|
|
92
|
+
ref: canvasContainerRef,
|
|
93
|
+
width: '100%',
|
|
94
|
+
children: [!providedAppContext.textIdOfEditableContent && _jsx(NodeControls, {}), providedAppContext.isShowOriginalImage && _jsx("img", {
|
|
95
|
+
alt: "",
|
|
96
|
+
style: {
|
|
97
|
+
maxWidth: '98%',
|
|
98
|
+
maxHeight: '98%',
|
|
99
|
+
position: 'absolute',
|
|
100
|
+
top: '50%',
|
|
101
|
+
left: '50%',
|
|
102
|
+
transform: 'translate(-50%, -50%)',
|
|
103
|
+
zIndex: 2
|
|
104
|
+
},
|
|
105
|
+
src: (_providedAppContext$o = providedAppContext.originalImage) === null || _providedAppContext$o === void 0 ? void 0 : _providedAppContext$o.src
|
|
106
|
+
}), showCanvasCenter && _jsxs(Box, {
|
|
107
|
+
sx: {
|
|
108
|
+
position: 'absolute',
|
|
109
|
+
top: '50%',
|
|
110
|
+
left: '50%',
|
|
111
|
+
transform: 'translate(-50%, -50%)',
|
|
112
|
+
zIndex: 3,
|
|
113
|
+
pointerEvents: 'none',
|
|
114
|
+
width: 24,
|
|
115
|
+
height: 24
|
|
116
|
+
},
|
|
117
|
+
children: [_jsx(Box, {
|
|
118
|
+
sx: {
|
|
119
|
+
position: 'absolute',
|
|
120
|
+
top: '50%',
|
|
121
|
+
left: 0,
|
|
122
|
+
right: 0,
|
|
123
|
+
height: '1px',
|
|
124
|
+
backgroundColor: 'rgba(255, 0, 0, 0.7)',
|
|
125
|
+
transform: 'translateY(-50%)'
|
|
126
|
+
}
|
|
127
|
+
}), _jsx(Box, {
|
|
128
|
+
sx: {
|
|
129
|
+
position: 'absolute',
|
|
130
|
+
left: '50%',
|
|
131
|
+
top: 0,
|
|
132
|
+
bottom: 0,
|
|
133
|
+
width: '1px',
|
|
134
|
+
backgroundColor: 'rgba(255, 0, 0, 0.7)',
|
|
135
|
+
transform: 'translateX(-50%)'
|
|
136
|
+
}
|
|
137
|
+
}), _jsx(Box, {
|
|
138
|
+
sx: {
|
|
139
|
+
position: 'absolute',
|
|
140
|
+
top: '50%',
|
|
141
|
+
left: '50%',
|
|
142
|
+
width: 6,
|
|
143
|
+
height: 6,
|
|
144
|
+
borderRadius: '50%',
|
|
145
|
+
backgroundColor: 'rgba(255, 0, 0, 0.9)',
|
|
146
|
+
transform: 'translate(-50%, -50%)'
|
|
147
|
+
}
|
|
148
|
+
})]
|
|
149
|
+
}), _jsx(CanvasNode, {
|
|
150
|
+
children: _jsxs(AppProviderOverridenValue, {
|
|
151
|
+
overridingValue: providedAppContext,
|
|
152
|
+
children: [_jsx(DesignLayer, {}), _jsx(TransformersLayer, {})]
|
|
153
|
+
})
|
|
154
|
+
})]
|
|
155
|
+
})
|
|
54
156
|
});
|
|
55
157
|
};
|
|
56
158
|
export default MainCanvas;
|
|
@@ -14,6 +14,7 @@ function getCenter(p1, p2) {
|
|
|
14
14
|
var lastCenter = null;
|
|
15
15
|
var lastDist = 0;
|
|
16
16
|
export var zoomOnTouchesMove = function zoomOnTouchesMove(e, saveZoomFn) {
|
|
17
|
+
var _stageCanvas$attrs$zo;
|
|
17
18
|
e.evt.preventDefault();
|
|
18
19
|
var touch1 = e.evt.touches[0];
|
|
19
20
|
var touch2 = e.evt.touches[1];
|
|
@@ -41,12 +42,12 @@ export var zoomOnTouchesMove = function zoomOnTouchesMove(e, saveZoomFn) {
|
|
|
41
42
|
if (!lastDist) {
|
|
42
43
|
lastDist = dist;
|
|
43
44
|
}
|
|
44
|
-
var currentZoomFactor = stageCanvas.attrs.zoomFactor
|
|
45
|
+
var currentZoomFactor = (_stageCanvas$attrs$zo = stageCanvas.attrs.zoomFactor) !== null && _stageCanvas$attrs$zo !== void 0 ? _stageCanvas$attrs$zo : DEFAULT_ZOOM_FACTOR;
|
|
45
46
|
var pointTo = {
|
|
46
47
|
x: (newCenter.x - stageCanvas.x()) / currentZoomFactor,
|
|
47
48
|
y: (newCenter.y - stageCanvas.y()) / currentZoomFactor
|
|
48
49
|
};
|
|
49
|
-
var scale = (currentZoomFactor
|
|
50
|
+
var scale = (currentZoomFactor !== null && currentZoomFactor !== void 0 ? currentZoomFactor : DEFAULT_ZOOM_FACTOR) * (dist / lastDist);
|
|
50
51
|
var dx = newCenter.x - lastCenter.x;
|
|
51
52
|
var dy = newCenter.y - lastCenter.y;
|
|
52
53
|
var newPos = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/node-controls/index.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/node-controls/index.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,YAAY,sDA4EjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import { ContentCopy, DeleteOutlined } from '@mui/icons-material';
|
|
3
|
-
import { SFlexBox, SIconButton } from '@solostylist/ui-kit
|
|
3
|
+
import { SFlexBox, SIconButton } from '@solostylist/ui-kit';
|
|
4
4
|
import { useEffect, useMemo, useState } from 'react';
|
|
5
5
|
import { DUPLICATE_ANNOTATIONS, REMOVE_ANNOTATIONS } from "../../actions";
|
|
6
6
|
import { useStore } from "../../hooks";
|
|
@@ -8,6 +8,7 @@ import { NODES_TRANSFORMER_ID, WATERMARK_ANNOTATION_ID } from "../../utils/const
|
|
|
8
8
|
import debounce from "../../utils/debounce";
|
|
9
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
var NodeControls = function NodeControls() {
|
|
11
|
+
var _position$top, _position$left;
|
|
11
12
|
var _useStore = useStore(),
|
|
12
13
|
_useStore$selectionsI = _useStore.selectionsIds,
|
|
13
14
|
selectionsIds = _useStore$selectionsI === void 0 ? [] : _useStore$selectionsI,
|
|
@@ -64,8 +65,8 @@ var NodeControls = function NodeControls() {
|
|
|
64
65
|
borderRadius: 4,
|
|
65
66
|
alignItems: 'center',
|
|
66
67
|
justifyContent: 'center',
|
|
67
|
-
top: (position.top
|
|
68
|
-
left: (position.left
|
|
68
|
+
top: ((_position$top = position.top) !== null && _position$top !== void 0 ? _position$top : 0) + 8,
|
|
69
|
+
left: ((_position$left = position.left) !== null && _position$left !== void 0 ? _position$left : 0) + 4,
|
|
69
70
|
transform: 'translateX(-50%)',
|
|
70
71
|
gap: 1,
|
|
71
72
|
p: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/index.tsx"],"names":[],"mappings":"AAmBA,UAAU,SAAS;IACjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,IAAI,GAAI,oBAAoB,SAAS,mDAiM1C,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
|
|
6
|
+
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
|
|
7
|
+
import { Box, ListItem, ListItemButton, ListItemIcon, ListItemText, Typography } from '@mui/material';
|
|
8
|
+
import { SIconButton } from '@solostylist/ui-kit';
|
|
9
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
10
|
import { SELECT_TAB } from "../../actions";
|
|
4
11
|
import { useStore } from "../../hooks";
|
|
5
12
|
import { AVAILABLE_TABS } from "./tabs.constants";
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
14
|
var Tabs = function Tabs(_ref) {
|
|
8
15
|
var toggleMainMenu = _ref.toggleMainMenu;
|
|
9
16
|
var _useStore = useStore(),
|
|
@@ -14,8 +21,12 @@ var Tabs = function Tabs(_ref) {
|
|
|
14
21
|
_useStore$config = _useStore.config,
|
|
15
22
|
defaultTabId = _useStore$config.defaultTabId,
|
|
16
23
|
tabsIds = _useStore$config.tabsIds;
|
|
17
|
-
var
|
|
18
|
-
|
|
24
|
+
var _useState = useState(false),
|
|
25
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
26
|
+
open = _useState2[0],
|
|
27
|
+
setOpen = _useState2[1];
|
|
28
|
+
var currentTabId = tabId !== null && tabId !== void 0 ? tabId : defaultTabId;
|
|
29
|
+
var selectTab = useCallback(function (newTabId) {
|
|
19
30
|
dispatch({
|
|
20
31
|
type: SELECT_TAB,
|
|
21
32
|
payload: {
|
|
@@ -26,7 +37,7 @@ var Tabs = function Tabs(_ref) {
|
|
|
26
37
|
}, [dispatch, toggleMainMenu]);
|
|
27
38
|
var chosenTabsConfig = useMemo(function () {
|
|
28
39
|
var tabs = [];
|
|
29
|
-
var tabsIdsArray = Array.isArray(tabsIds) ? tabsIds : Object.keys(tabsIds
|
|
40
|
+
var tabsIdsArray = Array.isArray(tabsIds) ? tabsIds : Object.keys(tabsIds !== null && tabsIds !== void 0 ? tabsIds : {});
|
|
30
41
|
if (tabsIdsArray.length > 0) {
|
|
31
42
|
AVAILABLE_TABS.forEach(function (tab) {
|
|
32
43
|
var index = tabsIdsArray.indexOf(tab.id);
|
|
@@ -39,29 +50,160 @@ var Tabs = function Tabs(_ref) {
|
|
|
39
50
|
}
|
|
40
51
|
return (tabs.length > 0 ? tabs : AVAILABLE_TABS).filter(function (tab) {
|
|
41
52
|
return Boolean(tab);
|
|
42
|
-
}).map(function (tab) {
|
|
43
|
-
return {
|
|
44
|
-
label: t(tab.labelKey),
|
|
45
|
-
icon: _jsx(tab.icon, {}),
|
|
46
|
-
value: tab.id,
|
|
47
|
-
iconPosition: 'top'
|
|
48
|
-
};
|
|
49
53
|
});
|
|
50
|
-
}, [tabsIds
|
|
54
|
+
}, [tabsIds]);
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
var width = open ? 240 : 64;
|
|
57
|
+
document.documentElement.style.setProperty('--s-image-editor-tabs-width', "".concat(width, "px"));
|
|
58
|
+
return function () {
|
|
59
|
+
document.documentElement.style.removeProperty('--s-image-editor-tabs-width');
|
|
60
|
+
};
|
|
61
|
+
}, [open]);
|
|
51
62
|
if (chosenTabsConfig.length <= 1) {
|
|
52
63
|
return null;
|
|
53
64
|
}
|
|
54
|
-
return
|
|
65
|
+
return _jsxs(Box, {
|
|
55
66
|
sx: {
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
width: open ? '240px' : '60px',
|
|
68
|
+
flexShrink: 0,
|
|
69
|
+
height: '100%',
|
|
70
|
+
borderRight: '1px solid var(--s-palette-divider)',
|
|
71
|
+
backgroundColor: 'var(--s-palette-background-default)',
|
|
72
|
+
transition: 'width 0.3s ease',
|
|
73
|
+
display: 'flex',
|
|
74
|
+
flexDirection: 'column',
|
|
75
|
+
overflow: 'hidden',
|
|
76
|
+
'--s-image-editor-tabs-width': open ? '240px' : '60px'
|
|
58
77
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
children: [_jsxs(Box, {
|
|
79
|
+
sx: {
|
|
80
|
+
display: 'flex',
|
|
81
|
+
alignItems: 'center',
|
|
82
|
+
justifyContent: 'space-between',
|
|
83
|
+
padding: '12px 10px',
|
|
84
|
+
borderBottom: '1px solid var(--s-palette-divider)',
|
|
85
|
+
flexShrink: 0
|
|
86
|
+
},
|
|
87
|
+
children: [open && _jsx(Typography, {
|
|
88
|
+
variant: "subtitle2",
|
|
89
|
+
noWrap: true,
|
|
90
|
+
sx: {
|
|
91
|
+
fontWeight: 600
|
|
92
|
+
},
|
|
93
|
+
children: t('tabs')
|
|
94
|
+
}), _jsx(SIconButton, {
|
|
95
|
+
onClick: function onClick() {
|
|
96
|
+
return setOpen(function (prev) {
|
|
97
|
+
return !prev;
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
sx: {
|
|
101
|
+
marginLeft: open ? 'auto' : '0',
|
|
102
|
+
width: 32,
|
|
103
|
+
height: 32
|
|
104
|
+
},
|
|
105
|
+
children: open ? _jsx(ChevronLeftIcon, {
|
|
106
|
+
fontSize: "small"
|
|
107
|
+
}) : _jsx(ChevronRightIcon, {
|
|
108
|
+
fontSize: "small"
|
|
109
|
+
})
|
|
110
|
+
})]
|
|
111
|
+
}), _jsx(Box, {
|
|
112
|
+
sx: {
|
|
113
|
+
overflowY: 'auto',
|
|
114
|
+
overflowX: 'hidden',
|
|
115
|
+
flex: 1
|
|
116
|
+
},
|
|
117
|
+
children: _jsx(Box, {
|
|
118
|
+
sx: {
|
|
119
|
+
p: '8px',
|
|
120
|
+
display: 'flex',
|
|
121
|
+
flexDirection: 'column'
|
|
122
|
+
},
|
|
123
|
+
children: chosenTabsConfig.map(function (tab) {
|
|
124
|
+
var Icon = tab.icon;
|
|
125
|
+
var isActive = currentTabId === tab.id;
|
|
126
|
+
if (!open) {
|
|
127
|
+
return _jsx(SIconButton, {
|
|
128
|
+
onClick: function onClick() {
|
|
129
|
+
return selectTab(tab.id);
|
|
130
|
+
},
|
|
131
|
+
tooltipOptions: {
|
|
132
|
+
title: t(tab.labelKey),
|
|
133
|
+
placement: 'right'
|
|
134
|
+
},
|
|
135
|
+
sx: _objectSpread(_objectSpread({
|
|
136
|
+
width: '40px',
|
|
137
|
+
height: '40px',
|
|
138
|
+
mb: '4px',
|
|
139
|
+
borderRadius: '8px',
|
|
140
|
+
color: isActive ? 'var(--s-palette-text-primary)' : 'var(--s-palette-text-secondary)'
|
|
141
|
+
}, isActive && {
|
|
142
|
+
bgcolor: 'var(--s-palette-action-selected)'
|
|
143
|
+
}), {}, {
|
|
144
|
+
'&:hover': {
|
|
145
|
+
bgcolor: isActive ? 'var(--s-palette-action-selected)' : 'var(--s-palette-action-hover)'
|
|
146
|
+
}
|
|
147
|
+
}),
|
|
148
|
+
children: _jsx(Icon, {
|
|
149
|
+
sx: {
|
|
150
|
+
fontSize: '18px',
|
|
151
|
+
color: 'inherit'
|
|
152
|
+
}
|
|
153
|
+
})
|
|
154
|
+
}, tab.id);
|
|
155
|
+
}
|
|
156
|
+
return _jsx(ListItem, {
|
|
157
|
+
disablePadding: true,
|
|
158
|
+
sx: {
|
|
159
|
+
mb: 0.5
|
|
160
|
+
},
|
|
161
|
+
children: _jsxs(ListItemButton, {
|
|
162
|
+
selected: isActive,
|
|
163
|
+
onClick: function onClick() {
|
|
164
|
+
return selectTab(tab.id);
|
|
165
|
+
},
|
|
166
|
+
sx: {
|
|
167
|
+
py: 0.75,
|
|
168
|
+
px: 1.5,
|
|
169
|
+
gap: 1.5,
|
|
170
|
+
borderRadius: 1,
|
|
171
|
+
minHeight: '40px',
|
|
172
|
+
backgroundColor: isActive ? 'var(--s-palette-action-selected) !important' : 'transparent',
|
|
173
|
+
color: isActive ? 'var(--s-palette-text-primary)' : 'var(--s-palette-text-secondary)',
|
|
174
|
+
'&:hover': {
|
|
175
|
+
bgcolor: isActive ? 'var(--s-palette-action-selected)' : 'var(--s-palette-action-hover)',
|
|
176
|
+
color: 'var(--s-palette-text-primary)'
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
children: [_jsx(ListItemIcon, {
|
|
180
|
+
sx: {
|
|
181
|
+
minWidth: 'auto',
|
|
182
|
+
color: 'inherit'
|
|
183
|
+
},
|
|
184
|
+
children: _jsx(Icon, {
|
|
185
|
+
sx: {
|
|
186
|
+
fontSize: '20px',
|
|
187
|
+
color: 'inherit'
|
|
188
|
+
}
|
|
189
|
+
})
|
|
190
|
+
}), _jsx(ListItemText, {
|
|
191
|
+
primary: _jsx(Typography, {
|
|
192
|
+
variant: "body2",
|
|
193
|
+
noWrap: true,
|
|
194
|
+
sx: {
|
|
195
|
+
color: 'inherit',
|
|
196
|
+
fontWeight: 500,
|
|
197
|
+
lineHeight: '28px'
|
|
198
|
+
},
|
|
199
|
+
children: t(tab.labelKey)
|
|
200
|
+
})
|
|
201
|
+
})]
|
|
202
|
+
})
|
|
203
|
+
}, tab.id);
|
|
204
|
+
})
|
|
205
|
+
})
|
|
206
|
+
})]
|
|
65
207
|
});
|
|
66
208
|
};
|
|
67
209
|
export default Tabs;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface STabsDrawerProps {
|
|
2
2
|
toggleMainMenu?: (open: boolean) => void;
|
|
3
3
|
}
|
|
4
|
-
declare const
|
|
5
|
-
export default
|
|
4
|
+
declare const STabsDrawer: ({ toggleMainMenu }: STabsDrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export default STabsDrawer;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tabs-drawer/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tabs-drawer/index.tsx"],"names":[],"mappings":"AAcA,UAAU,gBAAgB;IACxB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,WAAW,GAAI,oBAA+B,gBAAgB,4CAsInE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|