@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
|
@@ -3,9 +3,10 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
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; }
|
|
4
4
|
export var ADD_FILTER = 'ADD_FILTER';
|
|
5
5
|
var addFilter = function addFilter(state, payload) {
|
|
6
|
+
var _payload$filter;
|
|
6
7
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
7
8
|
isDesignState: !payload.dismissHistory,
|
|
8
|
-
filter: payload.filter
|
|
9
|
+
filter: (_payload$filter = payload.filter) !== null && _payload$filter !== void 0 ? _payload$filter : null
|
|
9
10
|
});
|
|
10
11
|
};
|
|
11
12
|
export default addFilter;
|
|
@@ -3,8 +3,9 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
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; }
|
|
4
4
|
export var ENABLE_TEXT_CONTENT_EDIT = 'ENABLE_TEXT_CONTENT_EDIT';
|
|
5
5
|
var enableTextContentEdit = function enableTextContentEdit(state, payload) {
|
|
6
|
+
var _payload$textIdOfEdit;
|
|
6
7
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
7
|
-
textIdOfEditableContent: payload.textIdOfEditableContent
|
|
8
|
+
textIdOfEditableContent: (_payload$textIdOfEdit = payload.textIdOfEditableContent) !== null && _payload$textIdOfEdit !== void 0 ? _payload$textIdOfEdit : undefined
|
|
8
9
|
});
|
|
9
10
|
};
|
|
10
11
|
export default enableTextContentEdit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-canvas-size.d.ts","sourceRoot":"","sources":["../../src/actions/set-canvas-size.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,QAAA,MAAM,aAAa,GACjB,OAAO,QAAQ,EACf,SAAS,oBAAoB,KAC5B,
|
|
1
|
+
{"version":3,"file":"set-canvas-size.d.ts","sourceRoot":"","sources":["../../src/actions/set-canvas-size.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,QAAA,MAAM,aAAa,GACjB,OAAO,QAAQ,EACf,SAAS,oBAAoB,KAC5B,QA+CF,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/lib/actions/set-crop.js
CHANGED
|
@@ -6,10 +6,15 @@ export var SET_CROP = 'SET_CROP';
|
|
|
6
6
|
var setCrop = function setCrop(state, payload) {
|
|
7
7
|
var _state$adjustments$cr, _payload$ratioTitleKe;
|
|
8
8
|
var oldCrop = (_state$adjustments$cr = state.adjustments.crop) !== null && _state$adjustments$cr !== void 0 ? _state$adjustments$cr : {};
|
|
9
|
+
var newRatio = function () {
|
|
10
|
+
if (typeof payload.ratio === 'string') return payload.ratio;
|
|
11
|
+
if (payload.ratio !== undefined) return toPrecisedFloat(payload.ratio);
|
|
12
|
+
return oldCrop.ratio;
|
|
13
|
+
}();
|
|
9
14
|
var newCrop = {
|
|
10
15
|
x: payload.x !== undefined ? toPrecisedFloat(payload.x) : oldCrop.x,
|
|
11
16
|
y: payload.y !== undefined ? toPrecisedFloat(payload.y) : oldCrop.y,
|
|
12
|
-
ratio:
|
|
17
|
+
ratio: newRatio,
|
|
13
18
|
width: payload.width !== undefined ? toPrecisedFloat(payload.width) : oldCrop.width,
|
|
14
19
|
height: payload.height !== undefined ? toPrecisedFloat(payload.height) : oldCrop.height,
|
|
15
20
|
ratioTitleKey: (_payload$ratioTitleKe = payload.ratioTitleKey) !== null && _payload$ratioTitleKe !== void 0 ? _payload$ratioTitleKe : oldCrop.ratioTitleKey,
|
|
@@ -3,10 +3,11 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
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; }
|
|
4
4
|
export var SET_SHOWN_IMAGE_DIMENSIONS = 'SET_SHOWN_IMAGE_DIMENSIONS';
|
|
5
5
|
var setShownImageDimensions = function setShownImageDimensions(state, payload) {
|
|
6
|
+
var _payload$designLayer, _payload$previewGroup;
|
|
6
7
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
7
8
|
shownImageDimensions: _objectSpread(_objectSpread({}, state.shownImageDimensions), payload.shownImageDimensions),
|
|
8
|
-
designLayer: payload.designLayer
|
|
9
|
-
previewGroup: payload.previewGroup
|
|
9
|
+
designLayer: (_payload$designLayer = payload.designLayer) !== null && _payload$designLayer !== void 0 ? _payload$designLayer : state.designLayer,
|
|
10
|
+
previewGroup: (_payload$previewGroup = payload.previewGroup) !== null && _payload$previewGroup !== void 0 ? _payload$previewGroup : state.previewGroup
|
|
10
11
|
});
|
|
11
12
|
};
|
|
12
13
|
export default setShownImageDimensions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/app/index.tsx"],"names":[],"mappings":";AA0aA,wBAAyB"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
5
|
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; }
|
|
5
6
|
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; }
|
|
6
|
-
import
|
|
7
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
|
+
import { SFlexBox } from '@solostylist/ui-kit';
|
|
7
9
|
import { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
8
10
|
import { CircularProgress } from '@mui/material';
|
|
9
11
|
import { HIDE_LOADER, RESET, SET_FEEDBACK, SET_ORIGINAL_IMAGE, SET_SHOWN_TABS_MENU, SHOW_LOADER, UPDATE_STATE } from "../../actions";
|
|
10
12
|
import FeedbackPopup from "../feedback-popup";
|
|
11
13
|
import MainCanvas from "../main-canvas";
|
|
12
14
|
import Tabs from "../tabs";
|
|
13
|
-
import
|
|
15
|
+
import STabsDrawer from "../tabs-drawer";
|
|
14
16
|
import ToolsBar from "../tools-bar";
|
|
15
17
|
import Topbar from "../topbar";
|
|
16
18
|
import { usePhoneScreen, useResizeObserver, useStore, useTransformedImgData } from "../../hooks";
|
|
@@ -22,16 +24,14 @@ import isSameImage from "../../utils/is-same-image";
|
|
|
22
24
|
import loadImage from "../../utils/load-image";
|
|
23
25
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
26
|
var App = function App() {
|
|
25
|
-
var
|
|
27
|
+
var _ref3, _ref4, _ref5;
|
|
26
28
|
var _useStore = useStore(),
|
|
27
29
|
config = _useStore.config,
|
|
28
30
|
isLoadingGlobally = _useStore.isLoadingGlobally,
|
|
29
31
|
haveNotSavedChanges = _useStore.haveNotSavedChanges,
|
|
30
32
|
dispatch = _useStore.dispatch,
|
|
31
33
|
originalImage = _useStore.originalImage,
|
|
32
|
-
t = _useStore.t
|
|
33
|
-
_useStore$feedback = _useStore.feedback,
|
|
34
|
-
feedback = _useStore$feedback === void 0 ? {} : _useStore$feedback;
|
|
34
|
+
t = _useStore.t;
|
|
35
35
|
var loadableDesignState = config.loadableDesignState,
|
|
36
36
|
source = config.source,
|
|
37
37
|
avoidChangesNotSavedAlertOnLeave = config.avoidChangesNotSavedAlertOnLeave,
|
|
@@ -41,7 +41,13 @@ var App = function App() {
|
|
|
41
41
|
getCurrentImgDataFnRef = config.getCurrentImgDataFnRef,
|
|
42
42
|
updateStateFnRef = config.updateStateFnRef,
|
|
43
43
|
noCrossOrigin = config.noCrossOrigin,
|
|
44
|
-
resetOnImageSourceChange = config.resetOnImageSourceChange
|
|
44
|
+
resetOnImageSourceChange = config.resetOnImageSourceChange,
|
|
45
|
+
containerHeight = config.containerHeight,
|
|
46
|
+
editorHeight = config.editorHeight,
|
|
47
|
+
toolbarHeight = config.toolbarHeight,
|
|
48
|
+
rootSx = config.rootSx,
|
|
49
|
+
rootClassName = config.rootClassName,
|
|
50
|
+
renderEmptyState = config.renderEmptyState;
|
|
45
51
|
var showTabsDrawer = window.matchMedia('(max-width: 760px)').matches;
|
|
46
52
|
var _useResizeObserver = useResizeObserver(),
|
|
47
53
|
_useResizeObserver2 = _slicedToArray(_useResizeObserver, 2),
|
|
@@ -56,6 +62,7 @@ var App = function App() {
|
|
|
56
62
|
setRootSize = _useState2[1];
|
|
57
63
|
var isPhoneScreen = usePhoneScreen();
|
|
58
64
|
var pluginRootRef = useRef(null);
|
|
65
|
+
var uploadInputRef = useRef(null);
|
|
59
66
|
var imageBeingLoadedSrc = useRef(null);
|
|
60
67
|
var haveNotSavedChangesRef = useRef(haveNotSavedChanges);
|
|
61
68
|
var transformImgFn = useTransformedImgData();
|
|
@@ -80,7 +87,11 @@ var App = function App() {
|
|
|
80
87
|
}, []);
|
|
81
88
|
var loadAndSetOriginalImage = function loadAndSetOriginalImage(imgToLoad) {
|
|
82
89
|
return new Promise(function (resolve) {
|
|
83
|
-
var imgSrc = imgToLoad instanceof HTMLImageElement ? imgToLoad.src : imgToLoad;
|
|
90
|
+
var imgSrc = imgToLoad instanceof HTMLImageElement ? imgToLoad === null || imgToLoad === void 0 ? void 0 : imgToLoad.src : imgToLoad;
|
|
91
|
+
if (!imgSrc) {
|
|
92
|
+
resolve();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
84
95
|
if (imageBeingLoadedSrc.current === imgSrc || !imgSrc && originalImage || isSameImage(imgSrc, originalImage)) {
|
|
85
96
|
if (!imageBeingLoadedSrc.current) {
|
|
86
97
|
resolve();
|
|
@@ -96,8 +107,8 @@ var App = function App() {
|
|
|
96
107
|
if (typeof imgToLoad === 'string') {
|
|
97
108
|
loadImage(imgToLoad, defaultSavedImageName, noCrossOrigin).then(setNewOriginalImage)["catch"](setError)["finally"](triggerResolve);
|
|
98
109
|
} else if (imgToLoad instanceof HTMLImageElement) {
|
|
99
|
-
if (!imgToLoad.
|
|
100
|
-
imgToLoad.
|
|
110
|
+
if (!imgToLoad.title && defaultSavedImageName) {
|
|
111
|
+
imgToLoad.title = defaultSavedImageName;
|
|
101
112
|
}
|
|
102
113
|
if (!imgToLoad.complete) {
|
|
103
114
|
imgToLoad.addEventListener('load', function () {
|
|
@@ -121,18 +132,50 @@ var App = function App() {
|
|
|
121
132
|
e.returnValue = '';
|
|
122
133
|
}
|
|
123
134
|
};
|
|
124
|
-
var handleLoading = function
|
|
125
|
-
var
|
|
126
|
-
|
|
135
|
+
var handleLoading = function () {
|
|
136
|
+
var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
|
|
137
|
+
var loadingPromisesFn,
|
|
138
|
+
_args = arguments;
|
|
139
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
140
|
+
while (1) switch (_context.prev = _context.next) {
|
|
141
|
+
case 0:
|
|
142
|
+
loadingPromisesFn = _args.length > 0 && _args[0] !== undefined ? _args[0] : function () {
|
|
143
|
+
return [];
|
|
144
|
+
};
|
|
145
|
+
dispatch({
|
|
146
|
+
type: SHOW_LOADER
|
|
147
|
+
});
|
|
148
|
+
_context.prev = 1;
|
|
149
|
+
_context.next = 2;
|
|
150
|
+
return Promise.all(loadingPromisesFn());
|
|
151
|
+
case 2:
|
|
152
|
+
_context.prev = 2;
|
|
153
|
+
dispatch({
|
|
154
|
+
type: HIDE_LOADER
|
|
155
|
+
});
|
|
156
|
+
return _context.finish(2);
|
|
157
|
+
case 3:
|
|
158
|
+
case "end":
|
|
159
|
+
return _context.stop();
|
|
160
|
+
}
|
|
161
|
+
}, _callee, null, [[1,, 2, 3]]);
|
|
162
|
+
}));
|
|
163
|
+
return function handleLoading() {
|
|
164
|
+
return _ref.apply(this, arguments);
|
|
127
165
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
166
|
+
}();
|
|
167
|
+
var handleUploadFiles = function handleUploadFiles(files) {
|
|
168
|
+
var file = Array.isArray(files) ? files[0] : files === null || files === void 0 ? void 0 : files[0];
|
|
169
|
+
if (!file) return;
|
|
170
|
+
var objectUrl = URL.createObjectURL(file);
|
|
171
|
+
void handleLoading(function () {
|
|
172
|
+
return [loadAndSetOriginalImage(objectUrl)["finally"](function () {
|
|
173
|
+
URL.revokeObjectURL(objectUrl);
|
|
174
|
+
})];
|
|
135
175
|
});
|
|
176
|
+
if (uploadInputRef.current) {
|
|
177
|
+
uploadInputRef.current.value = '';
|
|
178
|
+
}
|
|
136
179
|
};
|
|
137
180
|
var updateDesignStateWithLoadableOne = function updateDesignStateWithLoadableOne() {
|
|
138
181
|
if (loadableDesignState && Object.keys(loadableDesignState).length > 0) {
|
|
@@ -151,6 +194,14 @@ var App = function App() {
|
|
|
151
194
|
return [loadAndSetOriginalImage(source)];
|
|
152
195
|
});
|
|
153
196
|
}
|
|
197
|
+
if (!source) {
|
|
198
|
+
dispatch({
|
|
199
|
+
type: SET_ORIGINAL_IMAGE,
|
|
200
|
+
payload: {
|
|
201
|
+
originalImage: undefined
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
154
205
|
if (resetOnImageSourceChange) {
|
|
155
206
|
dispatch({
|
|
156
207
|
type: RESET,
|
|
@@ -172,9 +223,9 @@ var App = function App() {
|
|
|
172
223
|
}, [loadableDesignState]);
|
|
173
224
|
useEffect(function () {
|
|
174
225
|
if (observePluginContainerSize && pluginRootRef.current) {
|
|
175
|
-
observeResize(pluginRootRef.current.parentNode, function (
|
|
176
|
-
var width =
|
|
177
|
-
height =
|
|
226
|
+
observeResize(pluginRootRef.current.parentNode, function (_ref2) {
|
|
227
|
+
var width = _ref2.width,
|
|
228
|
+
height = _ref2.height;
|
|
178
229
|
return setRootSize({
|
|
179
230
|
width: width,
|
|
180
231
|
height: height
|
|
@@ -189,7 +240,8 @@ var App = function App() {
|
|
|
189
240
|
}, [observePluginContainerSize, observeResize, unobserveElement]);
|
|
190
241
|
useEffect(function () {
|
|
191
242
|
var initialRequestsPromisesFn = function initialRequestsPromisesFn() {
|
|
192
|
-
|
|
243
|
+
var _loadableDesignState$;
|
|
244
|
+
return [loadAndSetOriginalImage((_loadableDesignState$ = loadableDesignState === null || loadableDesignState === void 0 ? void 0 : loadableDesignState.imgSrc) !== null && _loadableDesignState$ !== void 0 ? _loadableDesignState$ : source)];
|
|
193
245
|
};
|
|
194
246
|
void handleLoading(initialRequestsPromisesFn);
|
|
195
247
|
if (window && !avoidChangesNotSavedAlertOnLeave) {
|
|
@@ -229,48 +281,66 @@ var App = function App() {
|
|
|
229
281
|
};
|
|
230
282
|
var renderContent = function renderContent() {
|
|
231
283
|
return _jsxs(_Fragment, {
|
|
232
|
-
children: [!showCanvasOnly && _jsxs(_Fragment, {
|
|
233
|
-
children: [showTabsDrawer && _jsx(
|
|
284
|
+
children: [originalImage && !showCanvasOnly && _jsxs(_Fragment, {
|
|
285
|
+
children: [showTabsDrawer && _jsx(STabsDrawer, {
|
|
234
286
|
toggleMainMenu: toggleMainMenu
|
|
235
287
|
}), _jsx(Topbar, {
|
|
236
288
|
toggleMainMenu: toggleMainMenu
|
|
237
289
|
})]
|
|
238
|
-
}),
|
|
290
|
+
}), _jsxs(SFlexBox, {
|
|
239
291
|
sx: {
|
|
240
292
|
width: '100%',
|
|
241
|
-
flexGrow: 1
|
|
293
|
+
flexGrow: 1,
|
|
294
|
+
minHeight: 0
|
|
242
295
|
},
|
|
243
296
|
children: [!showCanvasOnly && !showTabsDrawer && _jsx(Tabs, {
|
|
244
297
|
toggleMainMenu: toggleMainMenu
|
|
245
298
|
}), _jsxs(SFlexBox, {
|
|
246
299
|
sx: {
|
|
247
|
-
height: '
|
|
248
|
-
width: 'calc(100% - 120px)',
|
|
300
|
+
height: '100%',
|
|
249
301
|
flexGrow: 1,
|
|
250
302
|
flexDirection: 'column',
|
|
251
|
-
minWidth: 0
|
|
303
|
+
minWidth: 0,
|
|
304
|
+
minHeight: 0,
|
|
305
|
+
overflow: 'hidden'
|
|
252
306
|
},
|
|
253
|
-
children: [_jsx(
|
|
307
|
+
children: [_jsx(SFlexBox, {
|
|
308
|
+
sx: {
|
|
309
|
+
flexGrow: 1,
|
|
310
|
+
minHeight: 0,
|
|
311
|
+
minWidth: 0,
|
|
312
|
+
overflow: 'hidden',
|
|
313
|
+
paddingBottom: 'var(--s-image-editor-toolbar-height, 120px)'
|
|
314
|
+
},
|
|
315
|
+
children: originalImage ? _jsx(MainCanvas, {}) : renderEmptyState ? _jsx(_Fragment, {
|
|
316
|
+
children: renderEmptyState({
|
|
317
|
+
onUpload: handleUploadFiles
|
|
318
|
+
})
|
|
319
|
+
}) : _jsx(_Fragment, {})
|
|
320
|
+
}), originalImage && !showCanvasOnly && _jsx(ToolsBar, {})]
|
|
254
321
|
})]
|
|
255
322
|
})]
|
|
256
323
|
});
|
|
257
324
|
};
|
|
258
325
|
return _jsxs(SFlexBox, {
|
|
259
|
-
className: ROOT_CONTAINER_CLASS_NAME,
|
|
260
326
|
"data-phone": isPhoneScreen,
|
|
261
327
|
ref: pluginRootRef,
|
|
262
|
-
|
|
263
|
-
|
|
328
|
+
className: rootClassName ? "".concat(ROOT_CONTAINER_CLASS_NAME, " ").concat(rootClassName) : ROOT_CONTAINER_CLASS_NAME,
|
|
329
|
+
sx: _objectSpread({
|
|
330
|
+
backgroundColor: 'var(--s-palette-background-default, var(--working-background))',
|
|
331
|
+
backgroundImage: 'radial-gradient(circle at 1px 1px, var(--s-palette-divider) 1px, transparent 0)',
|
|
332
|
+
backgroundSize: '12px 12px',
|
|
264
333
|
flexDirection: 'column',
|
|
265
334
|
alignItems: 'center',
|
|
266
|
-
height: (
|
|
267
|
-
maxHeight: '
|
|
268
|
-
width: (
|
|
335
|
+
height: (_ref3 = editorHeight !== null && editorHeight !== void 0 ? editorHeight : containerHeight) !== null && _ref3 !== void 0 ? _ref3 : '70vh',
|
|
336
|
+
maxHeight: (_ref4 = editorHeight !== null && editorHeight !== void 0 ? editorHeight : containerHeight) !== null && _ref4 !== void 0 ? _ref4 : '70vh',
|
|
337
|
+
width: (_ref5 = observePluginContainerSize ? rootSize.width : undefined) !== null && _ref5 !== void 0 ? _ref5 : '100%',
|
|
269
338
|
maxWidth: '100%',
|
|
270
|
-
overflow:
|
|
339
|
+
overflow: 'hidden',
|
|
271
340
|
position: 'relative',
|
|
272
|
-
minHeight:
|
|
273
|
-
|
|
341
|
+
minHeight: 0,
|
|
342
|
+
'--s-image-editor-toolbar-height': toolbarHeight !== null && toolbarHeight !== void 0 ? toolbarHeight : '0px'
|
|
343
|
+
}, rootSx !== null && rootSx !== void 0 ? rootSx : {}),
|
|
274
344
|
children: [isLoadingGlobally && _jsx(CircularProgress, {
|
|
275
345
|
sx: {
|
|
276
346
|
position: 'absolute',
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/** External Dependencies */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { ImageEditorConfig } from 'types/config';
|
|
4
|
-
interface AssemblyPointProps extends
|
|
5
|
-
source: string | HTMLImageElement;
|
|
4
|
+
interface AssemblyPointProps extends ImageEditorConfig {
|
|
6
5
|
}
|
|
7
6
|
declare const _default: React.MemoExoticComponent<(props: AssemblyPointProps) => import("react/jsx-runtime").JSX.Element>;
|
|
8
7
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/assembly-point/index.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,KAA0B,MAAM,OAAO,CAAC;AAS/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,UAAU,kBAAmB,SAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/assembly-point/index.tsx"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,KAA0B,MAAM,OAAO,CAAC;AAS/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,UAAU,kBAAmB,SAAQ,iBAAiB;CAAG;0DAE3B,kBAAkB;AAkBhD,wBAAmC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, memo } from 'react';
|
|
2
|
-
import { SThemeProvider } from '@solostylist/ui-kit
|
|
2
|
+
import { SThemeProvider } from '@solostylist/ui-kit';
|
|
3
3
|
import App from "../app";
|
|
4
4
|
import { AppProvider } from "../../context";
|
|
5
5
|
import defaultConfig from "../../context/default-config";
|
|
@@ -7,10 +7,6 @@ import deepMerge from "../../utils/deep-merge";
|
|
|
7
7
|
import assignFinetuneNamesToKonva from "../../utils/assign-finetune-names-to-konva";
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
var AssemblyPoint = function AssemblyPoint(props) {
|
|
10
|
-
var source = props.source;
|
|
11
|
-
if (!source || typeof source !== 'string' && !(source instanceof HTMLImageElement)) {
|
|
12
|
-
throw new Error('`source` property is required either a string of image url or a HTMLImageElement for the image that will be edited.');
|
|
13
|
-
}
|
|
14
10
|
useEffect(function () {
|
|
15
11
|
assignFinetuneNamesToKonva();
|
|
16
12
|
}, []);
|
|
@@ -11,7 +11,7 @@ import Menu from '@mui/material/Menu';
|
|
|
11
11
|
import Typography from '@mui/material/Typography';
|
|
12
12
|
import { useStore } from "../../../hooks";
|
|
13
13
|
import { useCallback, useMemo, useState } from 'react';
|
|
14
|
-
import { SFlexBox } from '@solostylist/ui-kit
|
|
14
|
+
import { SFlexBox } from '@solostylist/ui-kit';
|
|
15
15
|
import ColorInput from "../color-input";
|
|
16
16
|
import SIconButtonWrapper from "../icon-wrapper";
|
|
17
17
|
import { POPPABLE_OPTIONS } from "./annotation-options.constants";
|
|
@@ -70,8 +70,8 @@ var AnnotationOptions = function AnnotationOptions(_ref) {
|
|
|
70
70
|
}, [moreOptionsPopupComponentsObj, morePoppableOptionsAppended]);
|
|
71
71
|
var toggleOptionPopup = useCallback(function (e, targetOptionName) {
|
|
72
72
|
var targetAnchorEl = e === null || e === void 0 ? void 0 : e.currentTarget;
|
|
73
|
-
setAnchorEl(targetAnchorEl
|
|
74
|
-
setCurrentOption(targetOptionName
|
|
73
|
+
setAnchorEl(targetAnchorEl !== null && targetAnchorEl !== void 0 ? targetAnchorEl : null);
|
|
74
|
+
setCurrentOption(targetOptionName !== null && targetOptionName !== void 0 ? targetOptionName : null);
|
|
75
75
|
}, []);
|
|
76
76
|
var changeAnnotationFill = useCallback(function (newFill) {
|
|
77
77
|
updateAnnotation({
|
|
@@ -31,7 +31,7 @@ var ShadowFields = function ShadowFields(_ref) {
|
|
|
31
31
|
onChange: function onChange(val) {
|
|
32
32
|
return changeSliderValue('shadowOffsetX', val, -100, 100);
|
|
33
33
|
},
|
|
34
|
-
value: shadowOffsetX
|
|
34
|
+
value: shadowOffsetX !== null && shadowOffsetX !== void 0 ? shadowOffsetX : 0
|
|
35
35
|
}), _jsx(Slider, {
|
|
36
36
|
label: t('vertical'),
|
|
37
37
|
annotation: "px",
|
|
@@ -40,7 +40,7 @@ var ShadowFields = function ShadowFields(_ref) {
|
|
|
40
40
|
onChange: function onChange(val) {
|
|
41
41
|
return changeSliderValue('shadowOffsetY', val, -100, 100);
|
|
42
42
|
},
|
|
43
|
-
value: shadowOffsetY
|
|
43
|
+
value: shadowOffsetY !== null && shadowOffsetY !== void 0 ? shadowOffsetY : 0
|
|
44
44
|
}), _jsx(Slider, {
|
|
45
45
|
label: t('blur'),
|
|
46
46
|
annotation: "%",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import Box from '@mui/material/Box';
|
|
3
|
-
import { SButton, SDialog, STextField } from '@solostylist/ui-kit
|
|
3
|
+
import { SButton, SDialog, STextField } from '@solostylist/ui-kit';
|
|
4
4
|
import { useCallback, useState } from 'react';
|
|
5
5
|
import { HexColorPicker } from 'react-colorful';
|
|
6
6
|
import { useStore } from "../../../hooks";
|
|
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
3
3
|
var _excluded = ["children", "active", "border", "onClick", "title", "className"];
|
|
4
4
|
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; }
|
|
5
5
|
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; }
|
|
6
|
-
import { SIconButton } from '@solostylist/ui-kit
|
|
6
|
+
import { SIconButton } from '@solostylist/ui-kit';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
var SIconButtonWrapper = function SIconButtonWrapper(_ref) {
|
|
9
9
|
var children = _ref.children,
|
|
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
3
3
|
var _excluded = ["src", "alt", "onClick", "selected", "size", "sx"];
|
|
4
4
|
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; }
|
|
5
5
|
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; }
|
|
6
|
-
import { SFlexBox } from '@solostylist/ui-kit
|
|
6
|
+
import { SFlexBox } from '@solostylist/ui-kit';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
var ImagePreviewTile = function ImagePreviewTile(_ref) {
|
|
9
9
|
var src = _ref.src,
|
|
@@ -5,7 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
5
5
|
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; }
|
|
6
6
|
import MuiSlider from '@mui/material/Slider';
|
|
7
7
|
import { Box, Typography } from '@mui/material';
|
|
8
|
-
import { SFlexBox } from '@solostylist/ui-kit
|
|
8
|
+
import { SFlexBox } from '@solostylist/ui-kit';
|
|
9
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
var Slider = function Slider(_ref) {
|
|
11
11
|
var annotation = _ref.annotation,
|
|
@@ -31,13 +31,13 @@ var Slider = function Slider(_ref) {
|
|
|
31
31
|
return _onChange ? _onChange(val) : undefined;
|
|
32
32
|
},
|
|
33
33
|
sx: {
|
|
34
|
-
width: width
|
|
35
|
-
maxWidth: width
|
|
34
|
+
width: width !== null && width !== void 0 ? width : '200px',
|
|
35
|
+
maxWidth: width !== null && width !== void 0 ? width : '200px'
|
|
36
36
|
},
|
|
37
37
|
value: value
|
|
38
38
|
}, props)), _jsx(Typography, {
|
|
39
39
|
variant: "body2",
|
|
40
|
-
children: "".concat(value).concat(annotation
|
|
40
|
+
children: "".concat(value).concat(annotation !== null && annotation !== void 0 ? annotation : '')
|
|
41
41
|
})]
|
|
42
42
|
})]
|
|
43
43
|
});
|
|
@@ -11,7 +11,7 @@ var defaultAnchorOrigin = {
|
|
|
11
11
|
};
|
|
12
12
|
var ERROR_TO_SEVERITY = _defineProperty(_defineProperty({}, FEEDBACK_STATUSES.ERROR, 'error'), FEEDBACK_STATUSES.WARNING, 'warning');
|
|
13
13
|
var FeedbackPopup = function FeedbackPopup(_ref) {
|
|
14
|
-
var _feedback$duration;
|
|
14
|
+
var _feedback$duration, _feedback$status;
|
|
15
15
|
var _ref$anchorOrigin = _ref.anchorOrigin,
|
|
16
16
|
anchorOrigin = _ref$anchorOrigin === void 0 ? defaultAnchorOrigin : _ref$anchorOrigin;
|
|
17
17
|
var _useStore = useStore(),
|
|
@@ -36,7 +36,7 @@ var FeedbackPopup = function FeedbackPopup(_ref) {
|
|
|
36
36
|
onClose: onClose,
|
|
37
37
|
children: _jsx(Alert, {
|
|
38
38
|
onClose: onClose,
|
|
39
|
-
severity: ERROR_TO_SEVERITY[feedback.status
|
|
39
|
+
severity: ERROR_TO_SEVERITY[(_feedback$status = feedback.status) !== null && _feedback$status !== void 0 ? _feedback$status : FEEDBACK_STATUSES.ERROR],
|
|
40
40
|
children: feedback.message
|
|
41
41
|
})
|
|
42
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layers/design-layer/index.tsx"],"names":[],"mappings":"AAqBA,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/layers/design-layer/index.tsx"],"names":[],"mappings":"AAqBA,QAAA,MAAM,WAAW,sDA+RhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -94,16 +94,16 @@ var DesignLayer = function DesignLayer() {
|
|
|
94
94
|
};
|
|
95
95
|
}, [canvasScale, xPointToCenterImgInCanvas, yPointToCenterImgInCanvas, xPointNoResizeNoCrop, yPointNoResizeNoCrop, scaledSpacedOriginalImg]);
|
|
96
96
|
var clipFunc = function clipFunc(ctx) {
|
|
97
|
-
var _designLayerRef$curre;
|
|
97
|
+
var _designLayerRef$curre, _crop$width2, _crop$height2, _crop$x, _crop$y;
|
|
98
98
|
var isCroppingAndNotSaving = isCurrentlyCropping && !((_designLayerRef$curre = designLayerRef.current) !== null && _designLayerRef$curre !== void 0 && (_designLayerRef$curre = _designLayerRef$curre.attrs) !== null && _designLayerRef$curre !== void 0 && _designLayerRef$curre.isSaving);
|
|
99
99
|
var clipBox = isCroppingAndNotSaving || crop.noEffect ? _objectSpread(_objectSpread({}, imageDimensions), {}, {
|
|
100
100
|
x: 0,
|
|
101
101
|
y: 0
|
|
102
102
|
}) : {
|
|
103
|
-
width: crop.width
|
|
104
|
-
height: crop.height
|
|
105
|
-
x: crop.x
|
|
106
|
-
y: crop.y
|
|
103
|
+
width: (_crop$width2 = crop.width) !== null && _crop$width2 !== void 0 ? _crop$width2 : imageDimensions.width,
|
|
104
|
+
height: (_crop$height2 = crop.height) !== null && _crop$height2 !== void 0 ? _crop$height2 : imageDimensions.height,
|
|
105
|
+
x: (_crop$x = crop.x) !== null && _crop$x !== void 0 ? _crop$x : 0,
|
|
106
|
+
y: (_crop$y = crop.y) !== null && _crop$y !== void 0 ? _crop$y : 0
|
|
107
107
|
};
|
|
108
108
|
cropImage(ctx, _objectSpread({
|
|
109
109
|
ratio: crop.ratio
|
|
@@ -136,7 +136,7 @@ var DesignLayer = function DesignLayer() {
|
|
|
136
136
|
};
|
|
137
137
|
}, [originalImage]);
|
|
138
138
|
useEffect(function () {
|
|
139
|
-
if (imageDimensions) {
|
|
139
|
+
if (imageDimensions && previewGroupRef.current) {
|
|
140
140
|
dispatch({
|
|
141
141
|
type: SET_SHOWN_IMAGE_DIMENSIONS,
|
|
142
142
|
payload: {
|
|
@@ -146,8 +146,8 @@ var DesignLayer = function DesignLayer() {
|
|
|
146
146
|
}
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
|
-
}, [imageDimensions]);
|
|
150
|
-
if (
|
|
149
|
+
}, [imageDimensions, dispatch]);
|
|
150
|
+
if (typeof xPointToCenterImgInCanvas !== 'number' || isNaN(xPointToCenterImgInCanvas) || typeof yPointToCenterImgInCanvas !== 'number' || isNaN(yPointToCenterImgInCanvas) || !imageDimensions) {
|
|
151
151
|
return null;
|
|
152
152
|
}
|
|
153
153
|
var cropCenterRotatedPoint = getCenterRotatedPoint(crop.x, crop.y, rotation);
|
|
@@ -157,6 +157,9 @@ var DesignLayer = function DesignLayer() {
|
|
|
157
157
|
var yPoint = isCurrentlyCropping ? yPointNoResizeNoCrop : yPointAfterCrop;
|
|
158
158
|
var finalScaleX = (isCurrentlyCropping ? 1 : resizedX) * scaleAfterRotation;
|
|
159
159
|
var finalScaleY = (isCurrentlyCropping ? 1 : resizedY) * scaleAfterRotation;
|
|
160
|
+
if (!originalImage || !originalImage.width || !originalImage.height) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
160
163
|
return _jsxs(Layer, {
|
|
161
164
|
id: DESIGN_LAYER_ID,
|
|
162
165
|
ref: designLayerRef,
|
|
@@ -15,6 +15,7 @@ var noEffectTextDimensions = {
|
|
|
15
15
|
height: 100
|
|
16
16
|
};
|
|
17
17
|
var CropTransformer = function CropTransformer() {
|
|
18
|
+
var _crop$ratio;
|
|
18
19
|
var _useStore = useStore(),
|
|
19
20
|
dispatch = _useStore.dispatch,
|
|
20
21
|
theme = _useStore.theme,
|
|
@@ -43,7 +44,7 @@ var CropTransformer = function CropTransformer() {
|
|
|
43
44
|
});
|
|
44
45
|
}, [crop.lockCropAreaAt, cropConfig]);
|
|
45
46
|
var lockCropAreaAt = cropSettings.lockCropAreaAt;
|
|
46
|
-
var cropRatio = crop.ratio
|
|
47
|
+
var cropRatio = (_crop$ratio = crop.ratio) !== null && _crop$ratio !== void 0 ? _crop$ratio : cropSettings.ratio;
|
|
47
48
|
var isCustom = cropRatio === CUSTOM_CROP;
|
|
48
49
|
var isEllipse = cropRatio === ELLIPSE_CROP;
|
|
49
50
|
var getProperCropRatio = function getProperCropRatio() {
|
|
@@ -186,7 +187,7 @@ var CropTransformer = function CropTransformer() {
|
|
|
186
187
|
};
|
|
187
188
|
return _jsxs(_Fragment, {
|
|
188
189
|
children: [_jsx(Image, {
|
|
189
|
-
image: originalImage,
|
|
190
|
+
image: originalImage !== null && originalImage !== void 0 ? originalImage : undefined,
|
|
190
191
|
x: isFlippedX ? shownImageDimensions.width : 0,
|
|
191
192
|
y: isFlippedY ? shownImageDimensions.height : 0,
|
|
192
193
|
width: shownImageDimensions.width,
|
|
@@ -5,13 +5,14 @@ import CropTransformer from "./crop-transformer";
|
|
|
5
5
|
import NodesTransformer from "./nodes-transformer";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
7
|
var TransformersLayer = function TransformersLayer() {
|
|
8
|
+
var _shownImageDimensions, _shownImageDimensions2;
|
|
8
9
|
var _useStore = useStore(),
|
|
9
10
|
toolId = _useStore.toolId,
|
|
10
11
|
shownImageDimensions = _useStore.shownImageDimensions;
|
|
11
12
|
return _jsxs(Layer, {
|
|
12
13
|
id: TRANSFORMERS_LAYER_ID,
|
|
13
|
-
x: shownImageDimensions.abstractX
|
|
14
|
-
y: shownImageDimensions.abstractY
|
|
14
|
+
x: (_shownImageDimensions = shownImageDimensions.abstractX) !== null && _shownImageDimensions !== void 0 ? _shownImageDimensions : 0,
|
|
15
|
+
y: (_shownImageDimensions2 = shownImageDimensions.abstractY) !== null && _shownImageDimensions2 !== void 0 ? _shownImageDimensions2 : 0,
|
|
15
16
|
children: [_jsx(NodesTransformer, {}), toolId === TOOLS_IDS.CROP && _jsx(CropTransformer, {})]
|
|
16
17
|
});
|
|
17
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-node.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/canvas-node.tsx"],"names":[],"mappings":"AAuBA,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;2EAEiC,eAAe;
|
|
1
|
+
{"version":3,"file":"canvas-node.d.ts","sourceRoot":"","sources":["../../../src/components/main-canvas/canvas-node.tsx"],"names":[],"mappings":"AAuBA,UAAU,eAAe;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;2EAEiC,eAAe;AA8NjD,wBAAgC"}
|