@arbisoft/react-design-tool 1.0.36 → 1.0.42
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/README.md +2 -2
- package/dist/cjs/index.js +163 -42
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +163 -42
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -3754,50 +3754,102 @@ var CanvasImage = function CanvasImage(_ref) {
|
|
|
3754
3754
|
_onClick = _ref.onClick,
|
|
3755
3755
|
_onDragEnd = _ref.onDragEnd,
|
|
3756
3756
|
_onTransformEnd = _ref.onTransformEnd,
|
|
3757
|
-
onDragMove = _ref.onDragMove
|
|
3757
|
+
onDragMove = _ref.onDragMove,
|
|
3758
|
+
setLoading = _ref.setLoading;
|
|
3758
3759
|
var _useState = useState(false),
|
|
3759
3760
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3760
3761
|
loaded = _useState2[0],
|
|
3761
3762
|
setLoaded = _useState2[1];
|
|
3762
3763
|
var _useState3 = useState(null),
|
|
3763
3764
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
3764
|
-
|
|
3765
|
-
|
|
3765
|
+
imgEl = _useState4[0],
|
|
3766
|
+
setImgEl = _useState4[1];
|
|
3766
3767
|
useEffect(function () {
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3768
|
+
var cancelled = false;
|
|
3769
|
+
var objectUrl;
|
|
3770
|
+
function load() {
|
|
3771
|
+
return _load.apply(this, arguments);
|
|
3772
|
+
}
|
|
3773
|
+
function _load() {
|
|
3774
|
+
_load = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
3775
|
+
var res, blob, img, _t;
|
|
3776
|
+
return _regenerator().w(function (_context) {
|
|
3777
|
+
while (1) switch (_context.n) {
|
|
3778
|
+
case 0:
|
|
3779
|
+
_context.p = 0;
|
|
3780
|
+
setLoading(true);
|
|
3781
|
+
// Force a network fetch with CORS, ignoring any stale cached copy
|
|
3782
|
+
_context.n = 1;
|
|
3783
|
+
return fetch(element === null || element === void 0 ? void 0 : element.src, {
|
|
3784
|
+
mode: 'cors',
|
|
3785
|
+
cache: 'reload'
|
|
3786
|
+
});
|
|
3787
|
+
case 1:
|
|
3788
|
+
res = _context.v;
|
|
3789
|
+
if (res.ok) {
|
|
3790
|
+
_context.n = 2;
|
|
3791
|
+
break;
|
|
3792
|
+
}
|
|
3793
|
+
throw new Error("HTTP ".concat(res.status));
|
|
3794
|
+
case 2:
|
|
3795
|
+
_context.n = 3;
|
|
3796
|
+
return res.blob();
|
|
3797
|
+
case 3:
|
|
3798
|
+
blob = _context.v;
|
|
3799
|
+
objectUrl = URL.createObjectURL(blob);
|
|
3800
|
+
img = new window.Image(); // No need to set crossOrigin for blob URLs (they're same-origin to your page)
|
|
3801
|
+
img.onload = function () {
|
|
3802
|
+
if (!cancelled) {
|
|
3803
|
+
setImgEl(img);
|
|
3804
|
+
setLoaded(true);
|
|
3805
|
+
}
|
|
3806
|
+
URL.revokeObjectURL(objectUrl);
|
|
3807
|
+
};
|
|
3808
|
+
img.src = objectUrl;
|
|
3809
|
+
_context.n = 5;
|
|
3810
|
+
break;
|
|
3811
|
+
case 4:
|
|
3812
|
+
_context.p = 4;
|
|
3813
|
+
_t = _context.v;
|
|
3814
|
+
console.error('Failed to load image for canvas:', _t);
|
|
3815
|
+
case 5:
|
|
3816
|
+
_context.p = 5;
|
|
3817
|
+
setLoading(false);
|
|
3818
|
+
return _context.f(5);
|
|
3819
|
+
case 6:
|
|
3820
|
+
return _context.a(2);
|
|
3821
|
+
}
|
|
3822
|
+
}, _callee, null, [[0, 4, 5, 6]]);
|
|
3823
|
+
}));
|
|
3824
|
+
return _load.apply(this, arguments);
|
|
3825
|
+
}
|
|
3826
|
+
setLoaded(false);
|
|
3827
|
+
setImgEl(null);
|
|
3828
|
+
if (element !== null && element !== void 0 && element.src) load();
|
|
3829
|
+
return function () {
|
|
3830
|
+
cancelled = true;
|
|
3831
|
+
if (objectUrl) URL.revokeObjectURL(objectUrl);
|
|
3775
3832
|
};
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
strokeScaleEnabled: false
|
|
3797
|
-
}));
|
|
3798
|
-
} else {
|
|
3799
|
-
return null;
|
|
3800
|
-
}
|
|
3833
|
+
}, [element === null || element === void 0 ? void 0 : element.src]);
|
|
3834
|
+
if (!loaded || !imgEl) return null;
|
|
3835
|
+
return /*#__PURE__*/React.createElement(Image$1, _extends({
|
|
3836
|
+
id: id,
|
|
3837
|
+
image: imgEl
|
|
3838
|
+
}, element, {
|
|
3839
|
+
width: element === null || element === void 0 ? void 0 : element.width,
|
|
3840
|
+
height: element === null || element === void 0 ? void 0 : element.height,
|
|
3841
|
+
onClick: function onClick() {
|
|
3842
|
+
return _onClick && _onClick();
|
|
3843
|
+
},
|
|
3844
|
+
onDragEnd: function onDragEnd(e) {
|
|
3845
|
+
return _onDragEnd && _onDragEnd(e);
|
|
3846
|
+
},
|
|
3847
|
+
onDragMove: onDragMove,
|
|
3848
|
+
onTransformEnd: function onTransformEnd(e) {
|
|
3849
|
+
return _onTransformEnd && _onTransformEnd(e);
|
|
3850
|
+
},
|
|
3851
|
+
strokeScaleEnabled: false
|
|
3852
|
+
}));
|
|
3801
3853
|
};
|
|
3802
3854
|
CanvasImage.propTypes = propTypes$e;
|
|
3803
3855
|
|
|
@@ -3875,7 +3927,6 @@ var QrElement = function QrElement(_ref) {
|
|
|
3875
3927
|
};
|
|
3876
3928
|
});
|
|
3877
3929
|
} catch (err) {
|
|
3878
|
-
// eslint-disable-next-line no-console
|
|
3879
3930
|
console.error('Failed to generate QR code', err);
|
|
3880
3931
|
}
|
|
3881
3932
|
case 1:
|
|
@@ -3887,6 +3938,75 @@ var QrElement = function QrElement(_ref) {
|
|
|
3887
3938
|
return _ref2.apply(this, arguments);
|
|
3888
3939
|
};
|
|
3889
3940
|
}();
|
|
3941
|
+
useEffect(function () {
|
|
3942
|
+
var cancelled = false;
|
|
3943
|
+
var objectUrl;
|
|
3944
|
+
function loadLogo() {
|
|
3945
|
+
return _loadLogo.apply(this, arguments);
|
|
3946
|
+
}
|
|
3947
|
+
function _loadLogo() {
|
|
3948
|
+
_loadLogo = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
3949
|
+
var res, blob, img, _t;
|
|
3950
|
+
return _regenerator().w(function (_context2) {
|
|
3951
|
+
while (1) switch (_context2.n) {
|
|
3952
|
+
case 0:
|
|
3953
|
+
if (element !== null && element !== void 0 && element.qrLogo) {
|
|
3954
|
+
_context2.n = 1;
|
|
3955
|
+
break;
|
|
3956
|
+
}
|
|
3957
|
+
return _context2.a(2);
|
|
3958
|
+
case 1:
|
|
3959
|
+
_context2.p = 1;
|
|
3960
|
+
_context2.n = 2;
|
|
3961
|
+
return fetch(element.qrLogo, {
|
|
3962
|
+
mode: 'cors',
|
|
3963
|
+
cache: 'reload'
|
|
3964
|
+
});
|
|
3965
|
+
case 2:
|
|
3966
|
+
res = _context2.v;
|
|
3967
|
+
if (res.ok) {
|
|
3968
|
+
_context2.n = 3;
|
|
3969
|
+
break;
|
|
3970
|
+
}
|
|
3971
|
+
throw new Error("HTTP ".concat(res.status));
|
|
3972
|
+
case 3:
|
|
3973
|
+
_context2.n = 4;
|
|
3974
|
+
return res.blob();
|
|
3975
|
+
case 4:
|
|
3976
|
+
blob = _context2.v;
|
|
3977
|
+
objectUrl = URL.createObjectURL(blob);
|
|
3978
|
+
img = new window.Image();
|
|
3979
|
+
img.onload = function () {
|
|
3980
|
+
if (cancelled) return;
|
|
3981
|
+
var scaleX = innerRectWidth / img.width;
|
|
3982
|
+
var scaleY = innerRectHeight / img.height;
|
|
3983
|
+
var scale = Math.min(scaleX, scaleY);
|
|
3984
|
+
setLogo({
|
|
3985
|
+
img: img,
|
|
3986
|
+
scale: scale
|
|
3987
|
+
});
|
|
3988
|
+
};
|
|
3989
|
+
img.src = objectUrl;
|
|
3990
|
+
_context2.n = 6;
|
|
3991
|
+
break;
|
|
3992
|
+
case 5:
|
|
3993
|
+
_context2.p = 5;
|
|
3994
|
+
_t = _context2.v;
|
|
3995
|
+
console.error('Failed to load QR logo:', _t);
|
|
3996
|
+
case 6:
|
|
3997
|
+
return _context2.a(2);
|
|
3998
|
+
}
|
|
3999
|
+
}, _callee2, null, [[1, 5]]);
|
|
4000
|
+
}));
|
|
4001
|
+
return _loadLogo.apply(this, arguments);
|
|
4002
|
+
}
|
|
4003
|
+
setLogo(null);
|
|
4004
|
+
loadLogo();
|
|
4005
|
+
return function () {
|
|
4006
|
+
cancelled = true;
|
|
4007
|
+
if (objectUrl) URL.revokeObjectURL(objectUrl);
|
|
4008
|
+
};
|
|
4009
|
+
}, [element === null || element === void 0 ? void 0 : element.qrLogo, innerRectWidth, innerRectHeight]);
|
|
3890
4010
|
useEffect(function () {
|
|
3891
4011
|
addQR();
|
|
3892
4012
|
}, [element]);
|
|
@@ -4497,7 +4617,8 @@ var useKonvaSnapping = function useKonvaSnapping(params) {
|
|
|
4497
4617
|
|
|
4498
4618
|
var Editor = function Editor(_ref) {
|
|
4499
4619
|
var _TEXT_DICTIONARY$lang;
|
|
4500
|
-
var
|
|
4620
|
+
var setLoading = _ref.setLoading,
|
|
4621
|
+
selectedTab = _ref.selectedTab,
|
|
4501
4622
|
languageLocale = _ref.languageLocale,
|
|
4502
4623
|
_ref$title = _ref.title,
|
|
4503
4624
|
title = _ref$title === void 0 ? TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang === void 0 ? void 0 : _TEXT_DICTIONARY$lang.TITLE : _ref$title,
|
|
@@ -4802,7 +4923,8 @@ var Editor = function Editor(_ref) {
|
|
|
4802
4923
|
onDragMove: handleDragging,
|
|
4803
4924
|
onTransformEnd: function onTransformEnd(e) {
|
|
4804
4925
|
handleTransform(el.id, e.target.attrs);
|
|
4805
|
-
}
|
|
4926
|
+
},
|
|
4927
|
+
setLoading: setLoading
|
|
4806
4928
|
});
|
|
4807
4929
|
case elementTypes.qr:
|
|
4808
4930
|
return /*#__PURE__*/React.createElement(QrElement, {
|
|
@@ -6734,9 +6856,8 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6734
6856
|
defaultText: defaultText,
|
|
6735
6857
|
languageLocale: languageLocale,
|
|
6736
6858
|
onTemplateSelect: onTemplateSelect
|
|
6737
|
-
}), loadingFonts ? null : /*#__PURE__*/React.createElement(Editor
|
|
6738
|
-
|
|
6739
|
-
, {
|
|
6859
|
+
}), loadingFonts ? null : /*#__PURE__*/React.createElement(Editor, {
|
|
6860
|
+
setLoading: setLoading,
|
|
6740
6861
|
cuttingGuideStroke: (elements === null || elements === void 0 || (_elements$find5 = elements.find(function (e) {
|
|
6741
6862
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
6742
6863
|
})) === null || _elements$find5 === void 0 ? void 0 : _elements$find5.cuttingGuideStroke) || 0,
|