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