@arbisoft/react-design-tool 1.0.28 → 1.0.29
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 +53 -3
- package/dist/cjs/index.js +140 -54
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +140 -54
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -567,6 +567,8 @@ var IconUnlock = "data:image/svg+xml,%3Csvg%20width%3D%2217%22%20height%3D%2216%
|
|
|
567
567
|
|
|
568
568
|
var IconCross = "data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20enable-background%3D%22new%200%200%2024%2024%22%3E%3Cpath%20d%3D%22M5.3%2018.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3%205.3%205.3c.2.2.5.3.7.3s.5-.1.7-.3c.4-.4.4-1%200-1.4L13.4%2012l5.3-5.3c.4-.4.4-1%200-1.4s-1-.4-1.4%200L12%2010.6%206.7%205.3c-.4-.4-1-.4-1.4%200s-.4%201%200%201.4l5.3%205.3-5.3%205.3c-.4.4-.4%201%200%201.4z%22%20id%3D%22_icons%22%20fill%3D%22%23ffffff%22%20class%3D%22fill-000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E";
|
|
569
569
|
|
|
570
|
+
var IconRoundedCorner = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20enable-background%3D%22new%200%200%2024%2024%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224px%22%20fill%3D%22%234D6277%22%3E%3Cg%3E%3Crect%20fill%3D%22none%22%20height%3D%2224%22%20width%3D%2224%22%2F%3E%3C%2Fg%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Cpath%20d%3D%22M19%2C19h2v2h-2V19z%20M19%2C17h2v-2h-2V17z%20M3%2C13h2v-2H3V13z%20M3%2C17h2v-2H3V17z%20M3%2C9h2V7H3V9z%20M3%2C5h2V3H3V5z%20M7%2C5h2V3H7V5z%20M15%2C21h2v-2h-2V21z%20M11%2C21h2v-2h-2V21z%20M15%2C21h2v-2h-2V21z%20M7%2C21h2v-2H7V21z%20M3%2C21h2v-2H3V21z%20M21%2C8c0-2.76-2.24-5-5-5h-5v2h5%20c1.65%2C0%2C3%2C1.35%2C3%2C3v5h2V8z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E";
|
|
571
|
+
|
|
570
572
|
var EditorBg = "/images/small-dots.png";
|
|
571
573
|
|
|
572
574
|
var topTabBarpadding = '11.51px 14.16px';
|
|
@@ -2534,7 +2536,8 @@ var OpacityPicker = function OpacityPicker(_ref) {
|
|
|
2534
2536
|
_ref$tooltip = _ref.tooltip,
|
|
2535
2537
|
tooltip = _ref$tooltip === 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.OPACITY : _ref$tooltip,
|
|
2536
2538
|
_ref$tooltipPosition = _ref.tooltipPosition,
|
|
2537
|
-
tooltipPosition = _ref$tooltipPosition === void 0 ? 'bottom' : _ref$tooltipPosition
|
|
2539
|
+
tooltipPosition = _ref$tooltipPosition === void 0 ? 'bottom' : _ref$tooltipPosition,
|
|
2540
|
+
toolBarIcon = _ref.toolBarIcon;
|
|
2538
2541
|
var pickerRef = useRef(null);
|
|
2539
2542
|
var _useState = useState(false),
|
|
2540
2543
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -2564,10 +2567,10 @@ var OpacityPicker = function OpacityPicker(_ref) {
|
|
|
2564
2567
|
tooltip: tooltip,
|
|
2565
2568
|
tooltipPosition: tooltipPosition
|
|
2566
2569
|
}, showLeftChild && (leftChild ? leftChild : /*#__PURE__*/React.createElement(StyledImage, {
|
|
2567
|
-
src: IconOpacity
|
|
2570
|
+
src: varient === 'opacity' ? IconOpacity : toolBarIcon
|
|
2568
2571
|
})), /*#__PURE__*/React.createElement(StyledText, {
|
|
2569
2572
|
fontFamily: fontFamily
|
|
2570
|
-
}, varient === 'opacity' ? "".concat(value * 100, "%") : Math.round(value)), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
|
|
2573
|
+
}, varient === 'opacity' ? "".concat(value * 100, "%") : "".concat(Math.round(value), "px")), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
|
|
2571
2574
|
style: {
|
|
2572
2575
|
position: 'absolute',
|
|
2573
2576
|
bottom: -50,
|
|
@@ -2753,7 +2756,11 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
2753
2756
|
cuttingGuideStrokeColor = _ref.cuttingGuideStrokeColor,
|
|
2754
2757
|
onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp,
|
|
2755
2758
|
canvasBackgroundImage = _ref.canvasBackgroundImage,
|
|
2756
|
-
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage
|
|
2759
|
+
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage,
|
|
2760
|
+
_ref$showBackgroundIm = _ref.showBackgroundImagePicker,
|
|
2761
|
+
showBackgroundImagePicker = _ref$showBackgroundIm === void 0 ? true : _ref$showBackgroundIm,
|
|
2762
|
+
_ref$showOpacityPicke = _ref.showOpacityPicker,
|
|
2763
|
+
showOpacityPicker = _ref$showOpacityPicke === void 0 ? true : _ref$showOpacityPicke;
|
|
2757
2764
|
var selectBackgroundColor = function selectBackgroundColor(e) {
|
|
2758
2765
|
onSetBackgroundColor(e);
|
|
2759
2766
|
};
|
|
@@ -2818,7 +2825,7 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
2818
2825
|
}), /*#__PURE__*/React.createElement(ColorBox, {
|
|
2819
2826
|
backgroundColor: canvasBackgroundColor || theme.color.white,
|
|
2820
2827
|
onChange: selectBackgroundColor
|
|
2821
|
-
})), /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
|
|
2828
|
+
})), showBackgroundImagePicker && /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
|
|
2822
2829
|
paddingRight: 17,
|
|
2823
2830
|
paddingLeft: 17,
|
|
2824
2831
|
onClick: handleBackgroundUpload,
|
|
@@ -2837,7 +2844,7 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
2837
2844
|
src: (canvasBackgroundImage === null || canvasBackgroundImage === void 0 ? void 0 : canvasBackgroundImage.src) || IconBackgroundImage,
|
|
2838
2845
|
height: 24,
|
|
2839
2846
|
width: 24
|
|
2840
|
-
})), /*#__PURE__*/React.createElement(OpacityPicker, {
|
|
2847
|
+
})), showOpacityPicker && /*#__PURE__*/React.createElement(OpacityPicker, {
|
|
2841
2848
|
tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang4 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang4 === void 0 ? void 0 : _TEXT_DICTIONARY$lang4.BACKGROUND_IMAGE_OPACITY,
|
|
2842
2849
|
gap: 10,
|
|
2843
2850
|
value: backgroundImageOpacity,
|
|
@@ -3214,7 +3221,8 @@ var propTypes$l = {
|
|
|
3214
3221
|
onChangeShapeFill: PropTypes.func,
|
|
3215
3222
|
onChangeShapeOpacity: PropTypes.func,
|
|
3216
3223
|
selectedElement: PropTypes.object,
|
|
3217
|
-
languageLocale: PropTypes.string
|
|
3224
|
+
languageLocale: PropTypes.string,
|
|
3225
|
+
onChangeCornerRadius: PropTypes.func
|
|
3218
3226
|
};
|
|
3219
3227
|
|
|
3220
3228
|
var _templateObject$g, _templateObject2$c;
|
|
@@ -3222,7 +3230,7 @@ styled.p(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n
|
|
|
3222
3230
|
var RowContainer$1 = styled.div(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-wrap: wrap;\n gap: 2px;\n"])));
|
|
3223
3231
|
|
|
3224
3232
|
var ShapeToolBar = function ShapeToolBar(_ref) {
|
|
3225
|
-
var _TEXT_DICTIONARY$lang, _TEXT_DICTIONARY$lang2;
|
|
3233
|
+
var _TEXT_DICTIONARY$lang, _TEXT_DICTIONARY$lang2, _TEXT_DICTIONARY$lang3;
|
|
3226
3234
|
var shapeStrokeColor = _ref.shapeStrokeColor,
|
|
3227
3235
|
shapeStrokeWidth = _ref.shapeStrokeWidth,
|
|
3228
3236
|
shapeFillColor = _ref.shapeFillColor,
|
|
@@ -3232,7 +3240,8 @@ var ShapeToolBar = function ShapeToolBar(_ref) {
|
|
|
3232
3240
|
onChangeShapeFill = _ref.onChangeShapeFill,
|
|
3233
3241
|
onChangeShapeOpacity = _ref.onChangeShapeOpacity,
|
|
3234
3242
|
selectedElement = _ref.selectedElement,
|
|
3235
|
-
languageLocale = _ref.languageLocale
|
|
3243
|
+
languageLocale = _ref.languageLocale,
|
|
3244
|
+
onChangeCornerRadius = _ref.onChangeCornerRadius;
|
|
3236
3245
|
return /*#__PURE__*/React.createElement(RowContainer$1, null, /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
|
|
3237
3246
|
gap: 11,
|
|
3238
3247
|
tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang === void 0 ? void 0 : _TEXT_DICTIONARY$lang.SHAPE_FILL,
|
|
@@ -3253,6 +3262,16 @@ var ShapeToolBar = function ShapeToolBar(_ref) {
|
|
|
3253
3262
|
value: isElementShape(selectedElement) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.opacity : shapeOpacity,
|
|
3254
3263
|
onChangeOpacity: onChangeShapeOpacity,
|
|
3255
3264
|
languageLocale: languageLocale
|
|
3265
|
+
}), (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.type) === 'square' && /*#__PURE__*/React.createElement(OpacityPicker, {
|
|
3266
|
+
tooltip: (TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang3 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang3 === void 0 ? void 0 : _TEXT_DICTIONARY$lang3.CORNER_RADIUS) || 'Corner Radius',
|
|
3267
|
+
value: selectedElement.cornerRadius || 0,
|
|
3268
|
+
min: 0,
|
|
3269
|
+
max: 50,
|
|
3270
|
+
step: 1,
|
|
3271
|
+
varient: "radius",
|
|
3272
|
+
onChangeOpacity: onChangeCornerRadius,
|
|
3273
|
+
languageLocale: languageLocale,
|
|
3274
|
+
toolBarIcon: IconRoundedCorner
|
|
3256
3275
|
}));
|
|
3257
3276
|
};
|
|
3258
3277
|
ShapeToolBar.propTypes = propTypes$l;
|
|
@@ -3336,7 +3355,10 @@ var TopToolBar = function TopToolBar(_ref) {
|
|
|
3336
3355
|
cuttingGuideStroke = _ref.cuttingGuideStroke,
|
|
3337
3356
|
cuttingGuideStrokeColor = _ref.cuttingGuideStrokeColor,
|
|
3338
3357
|
onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp,
|
|
3339
|
-
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage
|
|
3358
|
+
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage,
|
|
3359
|
+
showBackgroundImagePicker = _ref.showBackgroundImagePicker,
|
|
3360
|
+
showOpacityPicker = _ref.showOpacityPicker,
|
|
3361
|
+
changeSelectedElementProperty = _ref.changeSelectedElementProperty;
|
|
3340
3362
|
return /*#__PURE__*/React.createElement(ToolBarWrapper, {
|
|
3341
3363
|
disabled: selectedElement && !(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable)
|
|
3342
3364
|
}, selectedElement && !(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable) && /*#__PURE__*/React.createElement(OverlayBlocker, {
|
|
@@ -3358,7 +3380,9 @@ var TopToolBar = function TopToolBar(_ref) {
|
|
|
3358
3380
|
cuttingGuideStroke: cuttingGuideStroke,
|
|
3359
3381
|
cuttingGuideStrokeColor: cuttingGuideStrokeColor,
|
|
3360
3382
|
onChangeCuttingGuideProp: onChangeCuttingGuideProp,
|
|
3361
|
-
onRemoveBackgroundImage: onRemoveBackgroundImage
|
|
3383
|
+
onRemoveBackgroundImage: onRemoveBackgroundImage,
|
|
3384
|
+
showBackgroundImagePicker: showBackgroundImagePicker,
|
|
3385
|
+
showOpacityPicker: showOpacityPicker
|
|
3362
3386
|
}) : selectedTab === (sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.text) ? /*#__PURE__*/React.createElement(TextToolBar, {
|
|
3363
3387
|
fontFamily: isElementOfSameType(selectedElement, elementTypes.text) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.fontFamily : defaultTextProps === null || defaultTextProps === void 0 ? void 0 : defaultTextProps.fontFamily,
|
|
3364
3388
|
fontSize: isElementOfSameType(selectedElement, elementTypes.text) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.fontSize : defaultTextProps === null || defaultTextProps === void 0 ? void 0 : defaultTextProps.fontSize,
|
|
@@ -3391,7 +3415,10 @@ var TopToolBar = function TopToolBar(_ref) {
|
|
|
3391
3415
|
shapeOpacity: shapeOpacity,
|
|
3392
3416
|
onChangeShapeOpacity: onChangeShapeOpacity,
|
|
3393
3417
|
selectedElement: selectedElement,
|
|
3394
|
-
languageLocale: languageLocale
|
|
3418
|
+
languageLocale: languageLocale,
|
|
3419
|
+
onChangeCornerRadius: function onChangeCornerRadius(val) {
|
|
3420
|
+
changeSelectedElementProperty('cornerRadius', Number(val));
|
|
3421
|
+
}
|
|
3395
3422
|
}) : selectedTab === (sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.qr) ? /*#__PURE__*/React.createElement(QrToolBar, {
|
|
3396
3423
|
qrStrokeWidth: qrStrokeWidth,
|
|
3397
3424
|
qrStrokeColor: qrStrokeColor,
|
|
@@ -4531,7 +4558,10 @@ var Editor = function Editor(_ref) {
|
|
|
4531
4558
|
showSaveButton = _ref.showSaveButton,
|
|
4532
4559
|
onSetSelectedTab = _ref.onSetSelectedTab,
|
|
4533
4560
|
saveButtonText = _ref.saveButtonText,
|
|
4534
|
-
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage
|
|
4561
|
+
onRemoveBackgroundImage = _ref.onRemoveBackgroundImage,
|
|
4562
|
+
showBackgroundImagePicker = _ref.showBackgroundImagePicker,
|
|
4563
|
+
showOpacityPicker = _ref.showOpacityPicker,
|
|
4564
|
+
changeSelectedElementProperty = _ref.changeSelectedElementProperty;
|
|
4535
4565
|
var transformerRef = useRef(null);
|
|
4536
4566
|
useEffect(function () {
|
|
4537
4567
|
if (transformerRef !== null && transformerRef !== void 0 && transformerRef.current) {
|
|
@@ -4635,6 +4665,7 @@ var Editor = function Editor(_ref) {
|
|
|
4635
4665
|
key: el.id
|
|
4636
4666
|
}, el, {
|
|
4637
4667
|
id: el.id,
|
|
4668
|
+
cornerRadius: el.cornerRadius || 0,
|
|
4638
4669
|
onClick: function onClick() {
|
|
4639
4670
|
return handleSelect(el);
|
|
4640
4671
|
},
|
|
@@ -4856,7 +4887,10 @@ var Editor = function Editor(_ref) {
|
|
|
4856
4887
|
cuttingGuideStroke: cuttingGuideStroke,
|
|
4857
4888
|
cuttingGuideStrokeColor: cuttingGuideStrokeColor,
|
|
4858
4889
|
onChangeCuttingGuideProp: onChangeCuttingGuideProp,
|
|
4859
|
-
onRemoveBackgroundImage: onRemoveBackgroundImage
|
|
4890
|
+
onRemoveBackgroundImage: onRemoveBackgroundImage,
|
|
4891
|
+
showBackgroundImagePicker: showBackgroundImagePicker,
|
|
4892
|
+
showOpacityPicker: showOpacityPicker,
|
|
4893
|
+
changeSelectedElementProperty: changeSelectedElementProperty
|
|
4860
4894
|
}), /*#__PURE__*/React.createElement(InnerContainer, null, /*#__PURE__*/React.createElement(InnerContainerWrapper, {
|
|
4861
4895
|
editorHeight: editorHeight + 50,
|
|
4862
4896
|
editorWidth: editorWidth
|
|
@@ -5710,13 +5744,17 @@ var isPropValid = /* #__PURE__ */memoize(function (prop) {
|
|
|
5710
5744
|
* @property {'en'|'ru'|'pl'|'de'|'es'|'fr'|'it'} [locale]
|
|
5711
5745
|
* @property {Function} [onCreateNewTemplate] - called when user creates a new template, passes new canvas elements
|
|
5712
5746
|
* @property {Function} [onTemplateSelect] - called when a template is selected, passes template id
|
|
5747
|
+
* @property {Function} [uploadQRLogoImage] - Optional callback to upload the QR logo image. Should return a string or an object with `{ url }`
|
|
5748
|
+
* @property {number} [zoomLevel] - Optional zoom level (e.g. 100 for 100%)
|
|
5749
|
+
* @property {boolean} [showBackgroundImagePicker] - Used to set background image on entire canvas
|
|
5750
|
+
* @property {boolean} [showOpacityPicker] - Related to showBackgroundImagePicker and it's opacity
|
|
5713
5751
|
*/
|
|
5714
5752
|
|
|
5715
5753
|
/**
|
|
5716
5754
|
* @type {React.ForwardRefExoticComponent<StudioProps & React.RefAttributes<HTMLDivElement>>}
|
|
5717
5755
|
*/
|
|
5718
5756
|
var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
5719
|
-
var _elements$elements$fi, _elements$
|
|
5757
|
+
var _elements$elements$fi, _elements$find5, _elements$find6, _elements$find7;
|
|
5720
5758
|
var _ref$title = _ref.title,
|
|
5721
5759
|
title = _ref$title === void 0 ? '' : _ref$title,
|
|
5722
5760
|
_ref$defaultQrLogo = _ref.defaultQrLogo,
|
|
@@ -5744,7 +5782,11 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
5744
5782
|
_ref$locale = _ref.locale,
|
|
5745
5783
|
locale = _ref$locale === void 0 ? 'en' : _ref$locale,
|
|
5746
5784
|
onCreateNewTemplate = _ref.onCreateNewTemplate,
|
|
5747
|
-
onTemplateSelect = _ref.onTemplateSelect
|
|
5785
|
+
onTemplateSelect = _ref.onTemplateSelect,
|
|
5786
|
+
showBackgroundImagePicker = _ref.showBackgroundImagePicker,
|
|
5787
|
+
showOpacityPicker = _ref.showOpacityPicker,
|
|
5788
|
+
uploadQRLogoImage = _ref.uploadQRLogoImage,
|
|
5789
|
+
zoomLevel = _ref.zoomLevel;
|
|
5748
5790
|
var stageRef = useRef(null);
|
|
5749
5791
|
var _useState = useState(null),
|
|
5750
5792
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -5778,7 +5820,7 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
5778
5820
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
5779
5821
|
helperSideBarVisible = _useState14[0],
|
|
5780
5822
|
setHelperSideBarVisible = _useState14[1];
|
|
5781
|
-
var _useState15 = useState(100),
|
|
5823
|
+
var _useState15 = useState(zoomLevel !== null && zoomLevel !== void 0 ? zoomLevel : 100),
|
|
5782
5824
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
5783
5825
|
zoomPercentage = _useState16[0],
|
|
5784
5826
|
setZoomPercentage = _useState16[1];
|
|
@@ -5908,9 +5950,17 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
5908
5950
|
return onSave;
|
|
5909
5951
|
}(),
|
|
5910
5952
|
loading: overallLoading,
|
|
5911
|
-
setLoading: setLoading
|
|
5953
|
+
setLoading: setLoading,
|
|
5954
|
+
undoCount: history.length,
|
|
5955
|
+
hasChanges: history.length > 0,
|
|
5956
|
+
redoCount: redoStack.length
|
|
5912
5957
|
};
|
|
5913
5958
|
});
|
|
5959
|
+
useEffect(function () {
|
|
5960
|
+
if (typeof zoomLevel === 'number') {
|
|
5961
|
+
setZoomPercentage(zoomLevel);
|
|
5962
|
+
}
|
|
5963
|
+
}, [zoomLevel]);
|
|
5914
5964
|
useEffect(function () {
|
|
5915
5965
|
var handleKeyDown = function handleKeyDown(e) {
|
|
5916
5966
|
var isMac = navigator.platform.toUpperCase().includes('MAC');
|
|
@@ -6063,25 +6113,41 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6063
6113
|
};
|
|
6064
6114
|
saveHistory([].concat(_toConsumableArray(elemClone), [newElement]));
|
|
6065
6115
|
};
|
|
6066
|
-
var onSetPageSize = function onSetPageSize(
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
var elemClone = JSON.parse(JSON.stringify(elements));
|
|
6071
|
-
var sizeIndex = elemClone.findIndex(function (e) {
|
|
6116
|
+
var onSetPageSize = function onSetPageSize(newSize) {
|
|
6117
|
+
var _elements$find4;
|
|
6118
|
+
if (!newSize) return;
|
|
6119
|
+
var oldSize = (elements === null || elements === void 0 || (_elements$find4 = elements.find(function (e) {
|
|
6072
6120
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
6121
|
+
})) === null || _elements$find4 === void 0 ? void 0 : _elements$find4.size) || pageSizes.A4;
|
|
6122
|
+
var oldDims = pageSizesDimensions[oldSize];
|
|
6123
|
+
var newDims = pageSizesDimensions[newSize];
|
|
6124
|
+
var scaleX = newDims.width / oldDims.width;
|
|
6125
|
+
var scaleY = newDims.height / oldDims.height;
|
|
6126
|
+
var scaledElements = elements.map(function (elem) {
|
|
6127
|
+
if (elem.type === elementTypes.pageSize) {
|
|
6128
|
+
return _objectSpread2(_objectSpread2({}, elem), {}, {
|
|
6129
|
+
size: newSize
|
|
6130
|
+
}); // Just update the size
|
|
6131
|
+
}
|
|
6132
|
+
var scaled = _objectSpread2({}, elem);
|
|
6133
|
+
|
|
6134
|
+
// Scale common position and size props
|
|
6135
|
+
if (typeof scaled.x === 'number') scaled.x *= scaleX;
|
|
6136
|
+
if (typeof scaled.y === 'number') scaled.y *= scaleY;
|
|
6137
|
+
if (typeof scaled.width === 'number') scaled.width *= scaleX;
|
|
6138
|
+
if (typeof scaled.height === 'number') scaled.height *= scaleY;
|
|
6139
|
+
if (typeof scaled.radius === 'number') scaled.radius *= Math.min(scaleX, scaleY); // for circles, stars
|
|
6140
|
+
if (typeof scaled.fontSize === 'number') scaled.fontSize *= Math.min(scaleX, scaleY);
|
|
6141
|
+
|
|
6142
|
+
// Special case: QR codes or icons that have scale or size props
|
|
6143
|
+
if (scaled.points && Array.isArray(scaled.points)) {
|
|
6144
|
+
scaled.points = scaled.points.map(function (val, idx) {
|
|
6145
|
+
return idx % 2 === 0 ? val * scaleX : val * scaleY;
|
|
6146
|
+
});
|
|
6147
|
+
}
|
|
6148
|
+
return scaled;
|
|
6073
6149
|
});
|
|
6074
|
-
|
|
6075
|
-
elemClone[sizeIndex]['size'] = size;
|
|
6076
|
-
} else {
|
|
6077
|
-
var sizeElement = {
|
|
6078
|
-
type: elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize,
|
|
6079
|
-
id: "element".concat(Date.now()),
|
|
6080
|
-
size: size
|
|
6081
|
-
};
|
|
6082
|
-
elemClone.push(sizeElement);
|
|
6083
|
-
}
|
|
6084
|
-
saveHistory(removeImageProperty(elemClone));
|
|
6150
|
+
saveHistory(removeImageProperty(scaledElements));
|
|
6085
6151
|
};
|
|
6086
6152
|
var _onChangeCuttingGuideProp = function onChangeCuttingGuideProp(type, value) {
|
|
6087
6153
|
var elemClone = JSON.parse(JSON.stringify(elements));
|
|
@@ -6125,6 +6191,7 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6125
6191
|
shapeProps['height'] = 100;
|
|
6126
6192
|
shapeProps['width'] = 100;
|
|
6127
6193
|
shapeProps['name'] = elementTypes.square;
|
|
6194
|
+
shapeProps['cornerRadius'] = 0;
|
|
6128
6195
|
addElement(shapeProps);
|
|
6129
6196
|
} else if (type === elementTypes.arrowRight) {
|
|
6130
6197
|
shapeProps['points'] = [0, 0, 100, 0];
|
|
@@ -6508,7 +6575,7 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6508
6575
|
};
|
|
6509
6576
|
var addQrLogo = /*#__PURE__*/function () {
|
|
6510
6577
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
6511
|
-
var file, imageUrl, reader;
|
|
6578
|
+
var file, result, imageUrl, reader, _t;
|
|
6512
6579
|
return _regenerator().w(function (_context2) {
|
|
6513
6580
|
while (1) switch (_context2.n) {
|
|
6514
6581
|
case 0:
|
|
@@ -6522,29 +6589,45 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6522
6589
|
}
|
|
6523
6590
|
return _context2.a(2);
|
|
6524
6591
|
case 2:
|
|
6525
|
-
if (!
|
|
6526
|
-
_context2.n =
|
|
6592
|
+
if (!uploadQRLogoImage) {
|
|
6593
|
+
_context2.n = 8;
|
|
6527
6594
|
break;
|
|
6528
6595
|
}
|
|
6596
|
+
_context2.p = 3;
|
|
6529
6597
|
setLoadingUploadImage(true);
|
|
6530
|
-
_context2.n =
|
|
6531
|
-
return
|
|
6532
|
-
case
|
|
6533
|
-
|
|
6534
|
-
|
|
6598
|
+
_context2.n = 4;
|
|
6599
|
+
return uploadQRLogoImage(file);
|
|
6600
|
+
case 4:
|
|
6601
|
+
result = _context2.v;
|
|
6602
|
+
imageUrl = typeof result === 'string' ? result : result === null || result === void 0 ? void 0 : result.url;
|
|
6603
|
+
if (imageUrl) {
|
|
6604
|
+
addLogo(imageUrl);
|
|
6605
|
+
} else {
|
|
6606
|
+
console.warn('uploadQRLogoImage did not return a valid image URL');
|
|
6607
|
+
}
|
|
6608
|
+
_context2.n = 6;
|
|
6609
|
+
break;
|
|
6610
|
+
case 5:
|
|
6611
|
+
_context2.p = 5;
|
|
6612
|
+
_t = _context2.v;
|
|
6613
|
+
console.error('Error uploading QR logo image:', _t);
|
|
6614
|
+
case 6:
|
|
6615
|
+
_context2.p = 6;
|
|
6535
6616
|
setLoadingUploadImage(false);
|
|
6536
|
-
_context2.
|
|
6617
|
+
return _context2.f(6);
|
|
6618
|
+
case 7:
|
|
6619
|
+
_context2.n = 9;
|
|
6537
6620
|
break;
|
|
6538
|
-
case
|
|
6621
|
+
case 8:
|
|
6539
6622
|
reader = new FileReader();
|
|
6540
6623
|
reader.onload = function () {
|
|
6541
6624
|
addLogo(reader.result);
|
|
6542
6625
|
};
|
|
6543
6626
|
reader.readAsDataURL(file);
|
|
6544
|
-
case
|
|
6627
|
+
case 9:
|
|
6545
6628
|
return _context2.a(2);
|
|
6546
6629
|
}
|
|
6547
|
-
}, _callee2);
|
|
6630
|
+
}, _callee2, null, [[3, 5, 6, 7]]);
|
|
6548
6631
|
}));
|
|
6549
6632
|
return function addQrLogo() {
|
|
6550
6633
|
return _ref3.apply(this, arguments);
|
|
@@ -6655,12 +6738,12 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6655
6738
|
}), loadingFonts ? null : /*#__PURE__*/React.createElement(Editor
|
|
6656
6739
|
// canvasSize={canvasSize}
|
|
6657
6740
|
, {
|
|
6658
|
-
cuttingGuideStroke: (elements === null || elements === void 0 || (_elements$
|
|
6741
|
+
cuttingGuideStroke: (elements === null || elements === void 0 || (_elements$find5 = elements.find(function (e) {
|
|
6659
6742
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
6660
|
-
})) === null || _elements$
|
|
6661
|
-
cuttingGuideStrokeColor: (elements === null || elements === void 0 || (_elements$
|
|
6743
|
+
})) === null || _elements$find5 === void 0 ? void 0 : _elements$find5.cuttingGuideStroke) || 0,
|
|
6744
|
+
cuttingGuideStrokeColor: (elements === null || elements === void 0 || (_elements$find6 = elements.find(function (e) {
|
|
6662
6745
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
6663
|
-
})) === null || _elements$
|
|
6746
|
+
})) === null || _elements$find6 === void 0 ? void 0 : _elements$find6.cuttingGuideStrokeColor) || (theme === null || theme === void 0 ? void 0 : theme.color.black),
|
|
6664
6747
|
onChangeCuttingGuideProp: function onChangeCuttingGuideProp(type, value) {
|
|
6665
6748
|
_onChangeCuttingGuideProp(type, value);
|
|
6666
6749
|
},
|
|
@@ -6702,9 +6785,9 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6702
6785
|
stageRef: stageRef,
|
|
6703
6786
|
saveHistory: saveHistory,
|
|
6704
6787
|
onChangeBackgroundImageOpacity: onChangeBackgroundImageOpacity,
|
|
6705
|
-
backgroundImageOpacity: (elements === null || elements === void 0 || (_elements$
|
|
6788
|
+
backgroundImageOpacity: (elements === null || elements === void 0 || (_elements$find7 = elements.find(function (e) {
|
|
6706
6789
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.backgroundImage);
|
|
6707
|
-
})) === null || _elements$
|
|
6790
|
+
})) === null || _elements$find7 === void 0 ? void 0 : _elements$find7.opacity) || backgroundImageOpacity,
|
|
6708
6791
|
onDeleteSelectedElement: onDeleteSelectedElement,
|
|
6709
6792
|
onCopySelectedElement: onCopySelectedElement,
|
|
6710
6793
|
onToggleLockElement: onToggleLockElement,
|
|
@@ -6723,7 +6806,10 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6723
6806
|
onSetSelectedTab: onSelectedTab,
|
|
6724
6807
|
saveButtonText: saveButtonText,
|
|
6725
6808
|
languageLocale: languageLocale,
|
|
6726
|
-
onRemoveBackgroundImage: onRemoveBackgroundImage
|
|
6809
|
+
onRemoveBackgroundImage: onRemoveBackgroundImage,
|
|
6810
|
+
showBackgroundImagePicker: showBackgroundImagePicker,
|
|
6811
|
+
showOpacityPicker: showOpacityPicker,
|
|
6812
|
+
changeSelectedElementProperty: changeSelectedElementProperty
|
|
6727
6813
|
}), overallLoading && /*#__PURE__*/React.createElement(Overlay, null, /*#__PURE__*/React.createElement(LoadingSpinner, {
|
|
6728
6814
|
size: "60px",
|
|
6729
6815
|
color: theme.color.secondary
|