@arbisoft/react-design-tool 1.0.70 → 1.0.71
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 +56 -27
- package/dist/cjs/index.js +392 -82
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +392 -82
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -350,7 +350,14 @@ var propTypes$z = {
|
|
|
350
350
|
defaultText: PropTypes.string,
|
|
351
351
|
onSave: PropTypes.func,
|
|
352
352
|
saveButtonText: PropTypes.string,
|
|
353
|
-
locale: PropTypes.oneOf(['en', 'ru', 'pl', 'de', 'es', 'fr', 'it'])
|
|
353
|
+
locale: PropTypes.oneOf(['en', 'ru', 'pl', 'de', 'es', 'fr', 'it']),
|
|
354
|
+
canvasSize: PropTypes.shape({
|
|
355
|
+
mode: PropTypes.oneOf(['preset', 'custom']),
|
|
356
|
+
preset: PropTypes.string,
|
|
357
|
+
widthMm: PropTypes.number,
|
|
358
|
+
heightMm: PropTypes.number
|
|
359
|
+
}),
|
|
360
|
+
onCanvasSizeChange: PropTypes.func
|
|
354
361
|
};
|
|
355
362
|
|
|
356
363
|
/**
|
|
@@ -615,6 +622,125 @@ var pageSizesDimensions = _defineProperty(_defineProperty(_defineProperty(_defin
|
|
|
615
622
|
width: 460,
|
|
616
623
|
height: 648
|
|
617
624
|
});
|
|
625
|
+
var STANDARD_PAPER_SIZES_MM = {
|
|
626
|
+
A3: {
|
|
627
|
+
width: 297,
|
|
628
|
+
height: 420
|
|
629
|
+
},
|
|
630
|
+
A4: {
|
|
631
|
+
width: 210,
|
|
632
|
+
height: 297
|
|
633
|
+
},
|
|
634
|
+
A5: {
|
|
635
|
+
width: 148,
|
|
636
|
+
height: 210
|
|
637
|
+
},
|
|
638
|
+
Letter: {
|
|
639
|
+
width: 215.9,
|
|
640
|
+
height: 279.4
|
|
641
|
+
},
|
|
642
|
+
Legal: {
|
|
643
|
+
width: 215.9,
|
|
644
|
+
height: 355.6
|
|
645
|
+
},
|
|
646
|
+
Ledger: {
|
|
647
|
+
width: 431.8,
|
|
648
|
+
height: 279.4
|
|
649
|
+
},
|
|
650
|
+
B5: {
|
|
651
|
+
width: 176,
|
|
652
|
+
height: 250
|
|
653
|
+
},
|
|
654
|
+
C5: {
|
|
655
|
+
width: 162,
|
|
656
|
+
height: 229
|
|
657
|
+
}
|
|
658
|
+
};
|
|
659
|
+
var CANVAS_SIZE_MODES = {
|
|
660
|
+
preset: 'preset',
|
|
661
|
+
custom: 'custom'
|
|
662
|
+
};
|
|
663
|
+
var CUSTOM_CANVAS_PRESET_KEY = 'Custom';
|
|
664
|
+
var MM_TO_PX_RATIO = pageSizesDimensions[pageSizes.A4].width / STANDARD_PAPER_SIZES_MM.A4.width;
|
|
665
|
+
var MIN_CUSTOM_MM = 10;
|
|
666
|
+
var MAX_CUSTOM_MM = 2000;
|
|
667
|
+
var isValidPresetSize = function isValidPresetSize(size) {
|
|
668
|
+
return Boolean(size && pageSizesDimensions[size]);
|
|
669
|
+
};
|
|
670
|
+
var clampMm = function clampMm(value) {
|
|
671
|
+
var parsed = Number(value);
|
|
672
|
+
if (!Number.isFinite(parsed)) return null;
|
|
673
|
+
var clamped = Math.max(MIN_CUSTOM_MM, Math.min(MAX_CUSTOM_MM, parsed));
|
|
674
|
+
return Number(clamped.toFixed(2));
|
|
675
|
+
};
|
|
676
|
+
var mmToPx = function mmToPx(mm) {
|
|
677
|
+
var safeMm = clampMm(mm);
|
|
678
|
+
if (!safeMm) return null;
|
|
679
|
+
return Math.round(safeMm * MM_TO_PX_RATIO);
|
|
680
|
+
};
|
|
681
|
+
var getPresetMmDimensions = function getPresetMmDimensions(preset) {
|
|
682
|
+
return STANDARD_PAPER_SIZES_MM[preset] || null;
|
|
683
|
+
};
|
|
684
|
+
var getCanvasSizeLabel = function getCanvasSizeLabel(canvasSize) {
|
|
685
|
+
if (!canvasSize) return pageSizes.A4;
|
|
686
|
+
if (canvasSize.mode === CANVAS_SIZE_MODES.custom) {
|
|
687
|
+
return "".concat(canvasSize.widthMm, " x ").concat(canvasSize.heightMm, " mm");
|
|
688
|
+
}
|
|
689
|
+
return canvasSize.preset || pageSizes.A4;
|
|
690
|
+
};
|
|
691
|
+
var normalizeCanvasSize = function normalizeCanvasSize() {
|
|
692
|
+
var _pageSizesDimensions$, _pageSizesDimensions$2, _getPresetMmDimension, _getPresetMmDimension2;
|
|
693
|
+
var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
694
|
+
var fallbackPreset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : pageSizes.A4;
|
|
695
|
+
var fallback = {
|
|
696
|
+
mode: CANVAS_SIZE_MODES.preset,
|
|
697
|
+
preset: fallbackPreset,
|
|
698
|
+
widthPx: ((_pageSizesDimensions$ = pageSizesDimensions[fallbackPreset]) === null || _pageSizesDimensions$ === void 0 ? void 0 : _pageSizesDimensions$.width) || pageSizesDimensions[pageSizes.A4].width,
|
|
699
|
+
heightPx: ((_pageSizesDimensions$2 = pageSizesDimensions[fallbackPreset]) === null || _pageSizesDimensions$2 === void 0 ? void 0 : _pageSizesDimensions$2.height) || pageSizesDimensions[pageSizes.A4].height,
|
|
700
|
+
widthMm: ((_getPresetMmDimension = getPresetMmDimensions(fallbackPreset)) === null || _getPresetMmDimension === void 0 ? void 0 : _getPresetMmDimension.width) || STANDARD_PAPER_SIZES_MM.A4.width,
|
|
701
|
+
heightMm: ((_getPresetMmDimension2 = getPresetMmDimensions(fallbackPreset)) === null || _getPresetMmDimension2 === void 0 ? void 0 : _getPresetMmDimension2.height) || STANDARD_PAPER_SIZES_MM.A4.height
|
|
702
|
+
};
|
|
703
|
+
if (!input) return fallback;
|
|
704
|
+
if (typeof input === 'string' && isValidPresetSize(input)) {
|
|
705
|
+
var mmDims = getPresetMmDimensions(input) || getPresetMmDimensions(fallbackPreset);
|
|
706
|
+
return {
|
|
707
|
+
mode: CANVAS_SIZE_MODES.preset,
|
|
708
|
+
preset: input,
|
|
709
|
+
widthPx: pageSizesDimensions[input].width,
|
|
710
|
+
heightPx: pageSizesDimensions[input].height,
|
|
711
|
+
widthMm: mmDims === null || mmDims === void 0 ? void 0 : mmDims.width,
|
|
712
|
+
heightMm: mmDims === null || mmDims === void 0 ? void 0 : mmDims.height
|
|
713
|
+
};
|
|
714
|
+
}
|
|
715
|
+
var mode = input.mode || (isValidPresetSize(input.size) ? CANVAS_SIZE_MODES.preset : null);
|
|
716
|
+
var preset = input.preset || input.size;
|
|
717
|
+
if (mode === CANVAS_SIZE_MODES.preset && isValidPresetSize(preset)) {
|
|
718
|
+
var _mmDims = getPresetMmDimensions(preset) || getPresetMmDimensions(fallbackPreset);
|
|
719
|
+
return {
|
|
720
|
+
mode: CANVAS_SIZE_MODES.preset,
|
|
721
|
+
preset: preset,
|
|
722
|
+
widthPx: pageSizesDimensions[preset].width,
|
|
723
|
+
heightPx: pageSizesDimensions[preset].height,
|
|
724
|
+
widthMm: _mmDims === null || _mmDims === void 0 ? void 0 : _mmDims.width,
|
|
725
|
+
heightMm: _mmDims === null || _mmDims === void 0 ? void 0 : _mmDims.height
|
|
726
|
+
};
|
|
727
|
+
}
|
|
728
|
+
var widthMm = clampMm(input.widthMm);
|
|
729
|
+
var heightMm = clampMm(input.heightMm);
|
|
730
|
+
var widthPx = mmToPx(widthMm);
|
|
731
|
+
var heightPx = mmToPx(heightMm);
|
|
732
|
+
if (mode === CANVAS_SIZE_MODES.custom && widthPx && heightPx) {
|
|
733
|
+
return {
|
|
734
|
+
mode: CANVAS_SIZE_MODES.custom,
|
|
735
|
+
preset: CUSTOM_CANVAS_PRESET_KEY,
|
|
736
|
+
widthMm: widthMm,
|
|
737
|
+
heightMm: heightMm,
|
|
738
|
+
widthPx: widthPx,
|
|
739
|
+
heightPx: heightPx
|
|
740
|
+
};
|
|
741
|
+
}
|
|
742
|
+
return fallback;
|
|
743
|
+
};
|
|
618
744
|
|
|
619
745
|
var sideBarpillsList = {
|
|
620
746
|
template: 'Template',
|
|
@@ -658,24 +784,6 @@ var textList = [{
|
|
|
658
784
|
fontStyle: 'normal',
|
|
659
785
|
textAlign: 'left',
|
|
660
786
|
width: 220
|
|
661
|
-
}, {
|
|
662
|
-
text: 'LOCATION_BREADCRUMB',
|
|
663
|
-
fontFamily: 'Open Sans',
|
|
664
|
-
fontSize: 12,
|
|
665
|
-
color: '#6D737B',
|
|
666
|
-
fontWeight: theme.fontWeights[400],
|
|
667
|
-
textDecoration: 'normal',
|
|
668
|
-
fontStyle: 'normal',
|
|
669
|
-
textAlign: 'left'
|
|
670
|
-
}, {
|
|
671
|
-
text: 'DOMAIN',
|
|
672
|
-
fontFamily: 'Plus Jakarta Sans',
|
|
673
|
-
fontSize: 10,
|
|
674
|
-
color: '#333333',
|
|
675
|
-
fontWeight: theme.fontWeights[400],
|
|
676
|
-
textDecoration: 'normal',
|
|
677
|
-
fontStyle: 'normal',
|
|
678
|
-
textAlign: 'left'
|
|
679
787
|
}];
|
|
680
788
|
var elementTypes = {
|
|
681
789
|
pageSize: 'pageSize',
|
|
@@ -812,7 +920,7 @@ var LOCATION_BREADCRUMB$8 = "property > building > room";
|
|
|
812
920
|
var DOMAIN$8 = "www.domain.com";
|
|
813
921
|
var SHOW_PROPERTY_LOCATION$8 = "Show Property Label";
|
|
814
922
|
var LOCATION_HELPER$8 = "Enable this to show the property’s location label on the canvas, or disable it to hide it.";
|
|
815
|
-
var SHOW_QR_ID$8 = "Show QR
|
|
923
|
+
var SHOW_QR_ID$8 = "Show QR ID";
|
|
816
924
|
var QR_ID_HELPER$8 = "Enable this to display the unique QR Code ID on the canvas, or disable it to remove it.";
|
|
817
925
|
var MONOCHROME_COLOR$8 = "Tint Color";
|
|
818
926
|
var MONOCHROME_STRENGTH$8 = "Tint Strength";
|
|
@@ -2266,6 +2374,7 @@ var propTypes$w = {
|
|
|
2266
2374
|
onChangeTextProperty: PropTypes.func,
|
|
2267
2375
|
onSetPageSize: PropTypes.func,
|
|
2268
2376
|
selectedPageSize: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
|
2377
|
+
selectedPageSizeLabel: PropTypes.string,
|
|
2269
2378
|
loadingImages: PropTypes.bool,
|
|
2270
2379
|
loadingFonts: PropTypes.bool,
|
|
2271
2380
|
uploadImageCallBack: PropTypes.func,
|
|
@@ -2277,7 +2386,7 @@ var propTypes$w = {
|
|
|
2277
2386
|
outsideBoundaryPreviewPadding: PropTypes.number
|
|
2278
2387
|
};
|
|
2279
2388
|
|
|
2280
|
-
var _templateObject$r, _templateObject2$l, _templateObject3$b, _templateObject4$
|
|
2389
|
+
var _templateObject$r, _templateObject2$l, _templateObject3$b, _templateObject4$8, _templateObject5$5;
|
|
2281
2390
|
var Container$4 = styled.div(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n background-color: ", ";\n background-image: ", ";\n position: relative;\n flex-direction: column;\n overflow: hidden;\n"])), theme.color.white_F7F7F7, function (_ref) {
|
|
2282
2391
|
var selectedTab = _ref.selectedTab;
|
|
2283
2392
|
return selectedTab ? 'none' : "url(".concat(EditorBg, ")");
|
|
@@ -2296,8 +2405,8 @@ var InnerContainerWrapper = styled.div(_templateObject3$b || (_templateObject3$b
|
|
|
2296
2405
|
var editorWidth = _ref5.editorWidth;
|
|
2297
2406
|
return editorWidth || 400;
|
|
2298
2407
|
});
|
|
2299
|
-
var Title = styled.p(_templateObject4$
|
|
2300
|
-
var EditorBox = styled.div(_templateObject5$
|
|
2408
|
+
var Title = styled.p(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n align-self: flex-start;\n font-size: 14px;\n font-family: ", ";\n font-weight: ", ";\n color: ", ";\n padding: 0 6px;\n border-bottom-width: 0;\n"])), theme.color.gray_E8E8E8, theme.fonts.primary, theme.fontWeights[300], theme.color.gray_7A7979);
|
|
2409
|
+
var EditorBox = styled.div(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n height: ", "px;\n width: ", "px;\n min-height: ", "px;\n min-width: ", "px;\n background: ", ";\n box-shadow: 1.317px 1.317px 1.317px 0px rgba(0, 0, 0, 0.08);\n // transition: all 0.1s ease-in-out;\n overflow: hidden;\n"])), function (_ref6) {
|
|
2301
2410
|
var editorHeight = _ref6.editorHeight;
|
|
2302
2411
|
return editorHeight || 470;
|
|
2303
2412
|
}, function (_ref7) {
|
|
@@ -2349,6 +2458,7 @@ var propTypes$v = {
|
|
|
2349
2458
|
onChangeTextProperty: PropTypes.func,
|
|
2350
2459
|
onSetPageSize: PropTypes.func,
|
|
2351
2460
|
selectedPageSize: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
|
2461
|
+
selectedPageSizeLabel: PropTypes.string,
|
|
2352
2462
|
translation: PropTypes.object,
|
|
2353
2463
|
uploadImageCallBack: PropTypes.func,
|
|
2354
2464
|
setLoadingUploadImage: PropTypes.func,
|
|
@@ -2375,6 +2485,7 @@ var propTypes$u = {
|
|
|
2375
2485
|
onChangeBackgroundImageOpacity: PropTypes.func,
|
|
2376
2486
|
onSetPageSize: PropTypes.func,
|
|
2377
2487
|
selectedPageSize: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
|
2488
|
+
selectedPageSizeLabel: PropTypes.string,
|
|
2378
2489
|
languageLocale: PropTypes.string,
|
|
2379
2490
|
uploadImageCallBack: PropTypes.func,
|
|
2380
2491
|
setLoadingUploadImage: PropTypes.func,
|
|
@@ -2448,7 +2559,7 @@ var StyledContainer$6 = styled.div(_templateObject$p || (_templateObject$p = _ta
|
|
|
2448
2559
|
return disabled ? 'none' : 'all';
|
|
2449
2560
|
});
|
|
2450
2561
|
|
|
2451
|
-
var _templateObject$o, _templateObject2$j, _templateObject3$a, _templateObject4$
|
|
2562
|
+
var _templateObject$o, _templateObject2$j, _templateObject3$a, _templateObject4$7, _templateObject5$4, _templateObject6$2, _templateObject7$2;
|
|
2452
2563
|
var Wrapper = styled.span(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n position: relative;\n display: inline-flex;\n cursor: ", ";\n"])), function (_ref) {
|
|
2453
2564
|
var disabled = _ref.disabled;
|
|
2454
2565
|
return disabled ? 'not-allowed' : 'pointer';
|
|
@@ -2456,16 +2567,16 @@ var Wrapper = styled.span(_templateObject$o || (_templateObject$o = _taggedTempl
|
|
|
2456
2567
|
var Floating = styled.div(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n background-color: rgba(0, 0, 0, 0.75);\n color: #fff;\n border-radius: 6px;\n /* wrapping */\n white-space: normal;\n word-break: break-word;\n overflow-wrap: anywhere;\n /* defaults (can be overridden via inline style in component) */\n font-family: ", ";\n font-weight: ", ";\n pointer-events: none;\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);\n"])), theme.fonts.primary, theme.fontWeights[400]);
|
|
2457
2568
|
styled.div(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n visibility: hidden;\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n text-align: center;\n padding: 4px 10px;\n border-radius: 4px;\n position: absolute;\n z-index: 9999;\n white-space: nowrap;\n opacity: 0;\n transition: all 0.1s;\n font-size: 13px;\n font-family: ", ";\n font-weight: ", ";\n\n ", "\n ", "\n ", "\n ", "\n\n ", ":hover & {\n visibility: visible;\n opacity: 1;\n }\n"])), theme.fonts.primary, theme.fontWeights[400], function (_ref2) {
|
|
2458
2569
|
var position = _ref2.position;
|
|
2459
|
-
return position === 'top' && styled.css(_templateObject4$
|
|
2570
|
+
return position === 'top' && styled.css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n bottom: 110%;\n left: 50%;\n transform: translateX(-50%);\n "])));
|
|
2460
2571
|
}, function (_ref3) {
|
|
2461
2572
|
var position = _ref3.position;
|
|
2462
|
-
return position === 'right' && styled.css(_templateObject5$
|
|
2573
|
+
return position === 'right' && styled.css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n top: 50%;\n left: 105%;\n transform: translateY(-50%);\n "])));
|
|
2463
2574
|
}, function (_ref4) {
|
|
2464
2575
|
var position = _ref4.position;
|
|
2465
|
-
return position === 'bottom' && styled.css(_templateObject6$
|
|
2576
|
+
return position === 'bottom' && styled.css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n top: 110%;\n left: 50%;\n transform: translateX(-50%);\n "])));
|
|
2466
2577
|
}, function (_ref5) {
|
|
2467
2578
|
var position = _ref5.position;
|
|
2468
|
-
return position === 'left' && styled.css(_templateObject7$
|
|
2579
|
+
return position === 'left' && styled.css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n top: 50%;\n right: 105%;\n transform: translateY(-50%);\n "])));
|
|
2469
2580
|
}, Wrapper);
|
|
2470
2581
|
|
|
2471
2582
|
var Tooltip = function Tooltip(_ref) {
|
|
@@ -2625,13 +2736,13 @@ var propTypes$s = {
|
|
|
2625
2736
|
tooltip: PropTypes.string
|
|
2626
2737
|
};
|
|
2627
2738
|
|
|
2628
|
-
var _templateObject$n, _templateObject2$i, _templateObject3$9, _templateObject4$
|
|
2739
|
+
var _templateObject$n, _templateObject2$i, _templateObject3$9, _templateObject4$6;
|
|
2629
2740
|
var DropDownItem = styled.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
|
|
2630
2741
|
var IconWrapper$3 = styled.img(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n object-fit: contain;\n"])));
|
|
2631
2742
|
var DropDownList = styled.div(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n position: absolute;\n left: 0;\n top: 50;\n background-color: white;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 10;\n width: 100%;\n max-height: 200px;\n overflow-y: auto;\n z-index: 9999;\n"])));
|
|
2632
2743
|
|
|
2633
2744
|
// Individual option in the dropdown
|
|
2634
|
-
var DropDownOption = styled.div(_templateObject4$
|
|
2745
|
+
var DropDownOption = styled.div(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n padding: 8px 16px;\n cursor: pointer;\n font-size: 14px;\n color: #333333;\n &:hover {\n background-color: #f0f0f0;\n }\n &:active {\n background-color: #e0e0e0;\n }\n"])));
|
|
2635
2746
|
|
|
2636
2747
|
var DropDown = function DropDown(_ref) {
|
|
2637
2748
|
var left = _ref.left,
|
|
@@ -2699,10 +2810,18 @@ var DropDown = function DropDown(_ref) {
|
|
|
2699
2810
|
};
|
|
2700
2811
|
DropDown.propTypes = propTypes$s;
|
|
2701
2812
|
|
|
2702
|
-
var _templateObject$m, _templateObject2$h, _templateObject3$8;
|
|
2703
|
-
var Label$1 = styled.p(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n
|
|
2704
|
-
var RowContainer$4 = styled.div(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n
|
|
2705
|
-
var RemoveButton = styled.div(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n
|
|
2813
|
+
var _templateObject$m, _templateObject2$h, _templateObject3$8, _templateObject4$5, _templateObject5$3, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject0, _templateObject1;
|
|
2814
|
+
var Label$1 = styled.p(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 14px;\n font-weight: ", ";\n font-family: ", ";\n"])), theme.color.gray_700, theme.fontWeights[400], theme.fonts.primary);
|
|
2815
|
+
var RowContainer$4 = styled.div(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n flex-wrap: wrap;\n gap: 2px;\n"])));
|
|
2816
|
+
var RemoveButton = styled.div(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n height: 20px;\n width: 20px;\n border-radius: 20px;\n position: absolute;\n right: -7px;\n top: -7px;\n background: #ff4d4d;\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
|
|
2817
|
+
var CustomSizeRow = styled.div(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: flex-end;\n gap: 10px;\n margin-left: 8px;\n margin-right: 12px;\n"])));
|
|
2818
|
+
var CustomSizeField = styled.div(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 3px;\n"])));
|
|
2819
|
+
var CustomSizeFieldLabel = styled.span(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 9px;\n line-height: 11px;\n font-weight: ", ";\n font-family: ", ";\n"])), theme.color.gray_545454, theme.fontWeights[500], theme.fonts.primary);
|
|
2820
|
+
var CustomSizeInputWrap = styled.div(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n position: relative;\n width: 108px;\n height: 40px;\n border: 1px solid ", ";\n border-radius: 8px;\n background-color: ", ";\n box-sizing: border-box;\n transition: border-color 0.15s ease;\n\n &:focus-within {\n border-color: ", ";\n }\n"])), theme.color.gray_200, theme.color.white, theme.color.primary);
|
|
2821
|
+
var CustomSizeInput = styled.input(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 8px;\n padding: 6px 32px 6px 10px;\n box-sizing: border-box;\n background: transparent;\n color: ", ";\n font-size: 14px;\n line-height: 20px;\n font-family: ", ";\n color-scheme: light;\n appearance: textfield;\n\n &:focus {\n outline: none;\n }\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n"])), theme.color.gray_700, theme.fonts.primary);
|
|
2822
|
+
var CustomSizeUnit = styled.span(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n position: absolute;\n top: 50%;\n right: 10px;\n transform: translateY(-50%);\n color: ", ";\n font-size: 12px;\n line-height: 16px;\n font-family: ", ";\n pointer-events: none;\n"])), theme.color.gray_545454, theme.fonts.primary);
|
|
2823
|
+
var CustomSizeSeparator = styled.span(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 20px;\n line-height: 20px;\n font-weight: ", ";\n padding-bottom: 8px;\n font-family: ", ";\n"])), theme.color.gray_700, theme.fontWeights[400], theme.fonts.primary);
|
|
2824
|
+
var CustomSizeError = styled.span(_templateObject1 || (_templateObject1 = _taggedTemplateLiteral(["\n color: #d32f2f;\n font-size: 11px;\n margin-left: 4px;\n"])));
|
|
2706
2825
|
|
|
2707
2826
|
var propTypes$r = {
|
|
2708
2827
|
backgroundColor: PropTypes.string,
|
|
@@ -3351,6 +3470,7 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
3351
3470
|
onChangeBackgroundImageOpacity = _ref.onChangeBackgroundImageOpacity,
|
|
3352
3471
|
onSetPageSize = _ref.onSetPageSize,
|
|
3353
3472
|
selectedPageSize = _ref.selectedPageSize,
|
|
3473
|
+
selectedPageSizeLabel = _ref.selectedPageSizeLabel,
|
|
3354
3474
|
languageLocale = _ref.languageLocale,
|
|
3355
3475
|
uploadImageCallBack = _ref.uploadImageCallBack,
|
|
3356
3476
|
setLoadingUploadImage = _ref.setLoadingUploadImage,
|
|
@@ -3363,6 +3483,62 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
3363
3483
|
showBackgroundImagePicker = _ref$showBackgroundIm === void 0 ? true : _ref$showBackgroundIm,
|
|
3364
3484
|
_ref$showOpacityPicke = _ref.showOpacityPicker,
|
|
3365
3485
|
showOpacityPicker = _ref$showOpacityPicke === void 0 ? true : _ref$showOpacityPicke;
|
|
3486
|
+
var DEFAULT_CUSTOM_MM = 100;
|
|
3487
|
+
var _useState = React.useState(DEFAULT_CUSTOM_MM),
|
|
3488
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
3489
|
+
customWidthMm = _useState2[0],
|
|
3490
|
+
setCustomWidthMm = _useState2[1];
|
|
3491
|
+
var _useState3 = React.useState(DEFAULT_CUSTOM_MM),
|
|
3492
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
3493
|
+
customHeightMm = _useState4[0],
|
|
3494
|
+
setCustomHeightMm = _useState4[1];
|
|
3495
|
+
var _useState5 = React.useState(false),
|
|
3496
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
3497
|
+
showCustomSizeInputs = _useState6[0],
|
|
3498
|
+
setShowCustomSizeInputs = _useState6[1];
|
|
3499
|
+
var _useState7 = React.useState(''),
|
|
3500
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
3501
|
+
customSizeError = _useState8[0],
|
|
3502
|
+
setCustomSizeError = _useState8[1];
|
|
3503
|
+
var selectedLabel = selectedPageSizeLabel || (selectedPageSize === null || selectedPageSize === void 0 ? void 0 : selectedPageSize.preset) || selectedPageSize;
|
|
3504
|
+
var sizeOptions = React.useMemo(function () {
|
|
3505
|
+
return [].concat(_toConsumableArray(Object.keys(pageSizes)), [CUSTOM_CANVAS_PRESET_KEY]);
|
|
3506
|
+
}, []);
|
|
3507
|
+
React.useEffect(function () {
|
|
3508
|
+
var isCustom = (selectedPageSize === null || selectedPageSize === void 0 ? void 0 : selectedPageSize.mode) === CANVAS_SIZE_MODES.custom;
|
|
3509
|
+
setShowCustomSizeInputs(Boolean(isCustom));
|
|
3510
|
+
if (isCustom) {
|
|
3511
|
+
setCustomWidthMm((selectedPageSize === null || selectedPageSize === void 0 ? void 0 : selectedPageSize.widthMm) || DEFAULT_CUSTOM_MM);
|
|
3512
|
+
setCustomHeightMm((selectedPageSize === null || selectedPageSize === void 0 ? void 0 : selectedPageSize.heightMm) || DEFAULT_CUSTOM_MM);
|
|
3513
|
+
}
|
|
3514
|
+
}, [selectedPageSize]);
|
|
3515
|
+
var applyCustomSize = function applyCustomSize() {
|
|
3516
|
+
var widthValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : customWidthMm;
|
|
3517
|
+
var heightValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : customHeightMm;
|
|
3518
|
+
var showError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
3519
|
+
var widthMm = Number(widthValue);
|
|
3520
|
+
var heightMm = Number(heightValue);
|
|
3521
|
+
var isValidRange = widthMm >= 10 && widthMm <= 2000 && heightMm >= 10 && heightMm <= 2000;
|
|
3522
|
+
if (!Number.isFinite(widthMm) || !Number.isFinite(heightMm) || !isValidRange) {
|
|
3523
|
+
if (showError) setCustomSizeError('10-2000 mm');
|
|
3524
|
+
return;
|
|
3525
|
+
}
|
|
3526
|
+
setCustomSizeError('');
|
|
3527
|
+
onSetPageSize === null || onSetPageSize === void 0 || onSetPageSize({
|
|
3528
|
+
mode: CANVAS_SIZE_MODES.custom,
|
|
3529
|
+
widthMm: widthMm,
|
|
3530
|
+
heightMm: heightMm
|
|
3531
|
+
});
|
|
3532
|
+
};
|
|
3533
|
+
var handleCustomInputKeyDown = function handleCustomInputKeyDown(e) {
|
|
3534
|
+
if (e.key !== 'Enter') return;
|
|
3535
|
+
e.preventDefault();
|
|
3536
|
+
applyCustomSize(customWidthMm, customHeightMm, true);
|
|
3537
|
+
};
|
|
3538
|
+
var handleCustomRowBlur = function handleCustomRowBlur(e) {
|
|
3539
|
+
if (e.currentTarget.contains(e.relatedTarget)) return;
|
|
3540
|
+
applyCustomSize(customWidthMm, customHeightMm, true);
|
|
3541
|
+
};
|
|
3366
3542
|
var selectBackgroundColor = function selectBackgroundColor(e) {
|
|
3367
3543
|
onSetBackgroundColor(e);
|
|
3368
3544
|
};
|
|
@@ -3412,13 +3588,43 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
|
|
|
3412
3588
|
}();
|
|
3413
3589
|
return /*#__PURE__*/React.createElement(RowContainer$4, null, /*#__PURE__*/React.createElement(DropDown, {
|
|
3414
3590
|
gap: 20,
|
|
3415
|
-
left: /*#__PURE__*/React.createElement(Label$1, null,
|
|
3416
|
-
list:
|
|
3591
|
+
left: /*#__PURE__*/React.createElement(Label$1, null, selectedLabel),
|
|
3592
|
+
list: sizeOptions,
|
|
3417
3593
|
onSelect: function onSelect(e) {
|
|
3594
|
+
if (e === CUSTOM_CANVAS_PRESET_KEY) {
|
|
3595
|
+
setShowCustomSizeInputs(true);
|
|
3596
|
+
return;
|
|
3597
|
+
}
|
|
3598
|
+
setCustomSizeError('');
|
|
3599
|
+
setShowCustomSizeInputs(false);
|
|
3418
3600
|
onSetPageSize && onSetPageSize(e);
|
|
3419
3601
|
},
|
|
3420
3602
|
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.PAGE_SIZE
|
|
3421
|
-
}), /*#__PURE__*/React.createElement(
|
|
3603
|
+
}), showCustomSizeInputs ? /*#__PURE__*/React.createElement(CustomSizeRow, {
|
|
3604
|
+
onBlur: handleCustomRowBlur
|
|
3605
|
+
}, /*#__PURE__*/React.createElement(CustomSizeField, null, /*#__PURE__*/React.createElement(CustomSizeFieldLabel, null, "Width"), /*#__PURE__*/React.createElement(CustomSizeInputWrap, null, /*#__PURE__*/React.createElement(CustomSizeInput, {
|
|
3606
|
+
value: customWidthMm,
|
|
3607
|
+
onChange: function onChange(e) {
|
|
3608
|
+
var nextWidth = e.target.value;
|
|
3609
|
+
setCustomWidthMm(nextWidth);
|
|
3610
|
+
applyCustomSize(nextWidth, customHeightMm, false);
|
|
3611
|
+
},
|
|
3612
|
+
onKeyDown: handleCustomInputKeyDown,
|
|
3613
|
+
type: "number",
|
|
3614
|
+
min: 10,
|
|
3615
|
+
max: 2000
|
|
3616
|
+
}), /*#__PURE__*/React.createElement(CustomSizeUnit, null, "mm"))), /*#__PURE__*/React.createElement(CustomSizeSeparator, null, "x"), /*#__PURE__*/React.createElement(CustomSizeField, null, /*#__PURE__*/React.createElement(CustomSizeFieldLabel, null, "Height"), /*#__PURE__*/React.createElement(CustomSizeInputWrap, null, /*#__PURE__*/React.createElement(CustomSizeInput, {
|
|
3617
|
+
value: customHeightMm,
|
|
3618
|
+
onChange: function onChange(e) {
|
|
3619
|
+
var nextHeight = e.target.value;
|
|
3620
|
+
setCustomHeightMm(nextHeight);
|
|
3621
|
+
applyCustomSize(customWidthMm, nextHeight, false);
|
|
3622
|
+
},
|
|
3623
|
+
onKeyDown: handleCustomInputKeyDown,
|
|
3624
|
+
type: "number",
|
|
3625
|
+
min: 10,
|
|
3626
|
+
max: 2000
|
|
3627
|
+
}), /*#__PURE__*/React.createElement(CustomSizeUnit, null, "mm"))), customSizeError ? /*#__PURE__*/React.createElement(CustomSizeError, null, customSizeError) : null) : null, /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
|
|
3422
3628
|
gap: 11,
|
|
3423
3629
|
tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang2 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang2 === void 0 ? void 0 : _TEXT_DICTIONARY$lang2.BACKGROUND_COLOR,
|
|
3424
3630
|
tooltipPosition: 'bottom'
|
|
@@ -3995,6 +4201,7 @@ var TopToolBar = function TopToolBar(_ref) {
|
|
|
3995
4201
|
onChangeTextProperty = _ref.onChangeTextProperty,
|
|
3996
4202
|
onSetPageSize = _ref.onSetPageSize,
|
|
3997
4203
|
selectedPageSize = _ref.selectedPageSize,
|
|
4204
|
+
selectedPageSizeLabel = _ref.selectedPageSizeLabel,
|
|
3998
4205
|
languageLocale = _ref.languageLocale,
|
|
3999
4206
|
uploadImageCallBack = _ref.uploadImageCallBack,
|
|
4000
4207
|
setLoadingUploadImage = _ref.setLoadingUploadImage,
|
|
@@ -4020,6 +4227,7 @@ var TopToolBar = function TopToolBar(_ref) {
|
|
|
4020
4227
|
backgroundImageOpacity: backgroundImageOpacity,
|
|
4021
4228
|
onSetPageSize: onSetPageSize,
|
|
4022
4229
|
selectedPageSize: selectedPageSize,
|
|
4230
|
+
selectedPageSizeLabel: selectedPageSizeLabel,
|
|
4023
4231
|
languageLocale: languageLocale,
|
|
4024
4232
|
uploadImageCallBack: uploadImageCallBack,
|
|
4025
4233
|
setLoadingUploadImage: setLoadingUploadImage,
|
|
@@ -5366,6 +5574,7 @@ var Editor = function Editor(_ref) {
|
|
|
5366
5574
|
onChangeTextProperty = _ref.onChangeTextProperty,
|
|
5367
5575
|
onSetPageSize = _ref.onSetPageSize,
|
|
5368
5576
|
selectedPageSize = _ref.selectedPageSize,
|
|
5577
|
+
selectedPageSizeLabel = _ref.selectedPageSizeLabel,
|
|
5369
5578
|
loadingImages = _ref.loadingImages,
|
|
5370
5579
|
loadingFonts = _ref.loadingFonts,
|
|
5371
5580
|
uploadImageCallBack = _ref.uploadImageCallBack,
|
|
@@ -5384,7 +5593,7 @@ var Editor = function Editor(_ref) {
|
|
|
5384
5593
|
_ref$showOutsideBound = _ref.showOutsideBoundaryPreview,
|
|
5385
5594
|
showOutsideBoundaryPreview = _ref$showOutsideBound === void 0 ? false : _ref$showOutsideBound,
|
|
5386
5595
|
_ref$outsideBoundaryP = _ref.outsideBoundaryPreviewPadding,
|
|
5387
|
-
outsideBoundaryPreviewPadding = _ref$outsideBoundaryP === void 0 ?
|
|
5596
|
+
outsideBoundaryPreviewPadding = _ref$outsideBoundaryP === void 0 ? 80 : _ref$outsideBoundaryP;
|
|
5388
5597
|
var transformerRef = React.useRef(null);
|
|
5389
5598
|
var previewPadding = React.useMemo(function () {
|
|
5390
5599
|
return showOutsideBoundaryPreview ? Math.max(0, Number(outsideBoundaryPreviewPadding) || 0) : 0;
|
|
@@ -5721,6 +5930,7 @@ var Editor = function Editor(_ref) {
|
|
|
5721
5930
|
onChangeTextProperty: onChangeTextProperty,
|
|
5722
5931
|
onSetPageSize: onSetPageSize,
|
|
5723
5932
|
selectedPageSize: selectedPageSize,
|
|
5933
|
+
selectedPageSizeLabel: selectedPageSizeLabel,
|
|
5724
5934
|
languageLocale: languageLocale,
|
|
5725
5935
|
uploadImageCallBack: uploadImageCallBack,
|
|
5726
5936
|
setLoadingUploadImage: setLoadingUploadImage,
|
|
@@ -6712,13 +6922,15 @@ var isPropValid = /* #__PURE__ */memoize(function (prop) {
|
|
|
6712
6922
|
* @property {Array} [allowedFormats] - Allowed formats for image uploading functions
|
|
6713
6923
|
* @property {boolean} showQrIdToggle (boolean, default false) → controls visibility of the QR ID toggle
|
|
6714
6924
|
* @property {string | number} qrId (string | number | null, default null) → the value to render when toggled on
|
|
6925
|
+
* @property {{ mode: 'preset' | 'custom', preset?: string, widthMm?: number, heightMm?: number }} [canvasSize]
|
|
6926
|
+
* @property {Function} [onCanvasSizeChange]
|
|
6715
6927
|
*/
|
|
6716
6928
|
|
|
6717
6929
|
/**
|
|
6718
6930
|
* @type {React.ForwardRefExoticComponent<StudioProps & React.RefAttributes<HTMLDivElement>>}
|
|
6719
6931
|
*/
|
|
6720
6932
|
var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
6721
|
-
var _elements$elements$fi, _elements$
|
|
6933
|
+
var _elements$elements$fi, _elements$find, _elements$find2, _elements$find3;
|
|
6722
6934
|
var _ref$title = _ref.title,
|
|
6723
6935
|
title = _ref$title === void 0 ? '' : _ref$title,
|
|
6724
6936
|
_ref$defaultQrLogo = _ref.defaultQrLogo,
|
|
@@ -6739,7 +6951,7 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6739
6951
|
_ref$showOutsideBound = _ref.showOutsideBoundaryPreview,
|
|
6740
6952
|
showOutsideBoundaryPreview = _ref$showOutsideBound === void 0 ? false : _ref$showOutsideBound,
|
|
6741
6953
|
_ref$outsideBoundaryP = _ref.outsideBoundaryPreviewPadding,
|
|
6742
|
-
outsideBoundaryPreviewPadding = _ref$outsideBoundaryP === void 0 ?
|
|
6954
|
+
outsideBoundaryPreviewPadding = _ref$outsideBoundaryP === void 0 ? 80 : _ref$outsideBoundaryP,
|
|
6743
6955
|
onDeleteCustomTemplate = _ref.onDeleteCustomTemplate,
|
|
6744
6956
|
_ref$qrLink = _ref.qrLink,
|
|
6745
6957
|
qrLink = _ref$qrLink === void 0 ? 'www.google.com' : _ref$qrLink,
|
|
@@ -6762,7 +6974,9 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6762
6974
|
_ref$showQrIdToggle = _ref.showQrIdToggle,
|
|
6763
6975
|
showQrIdToggle = _ref$showQrIdToggle === void 0 ? false : _ref$showQrIdToggle,
|
|
6764
6976
|
_ref$qrId = _ref.qrId,
|
|
6765
|
-
qrId = _ref$qrId === void 0 ? null : _ref$qrId
|
|
6977
|
+
qrId = _ref$qrId === void 0 ? null : _ref$qrId,
|
|
6978
|
+
canvasSize = _ref.canvasSize,
|
|
6979
|
+
onCanvasSizeChange = _ref.onCanvasSizeChange;
|
|
6766
6980
|
var stageRef = React.useRef(null);
|
|
6767
6981
|
var elementCacheRef = React.useRef({});
|
|
6768
6982
|
var qrIdActiveRef = React.useRef(false);
|
|
@@ -6888,14 +7102,31 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6888
7102
|
currentQrId = _useState58[0],
|
|
6889
7103
|
setCurrentQrId = _useState58[1];
|
|
6890
7104
|
var overallLoading = loadingFonts || loadingImages || loadingUploadImage || loading;
|
|
6891
|
-
var
|
|
6892
|
-
var _base$find;
|
|
7105
|
+
var getPageSizeElement = React.useCallback(function () {
|
|
6893
7106
|
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : elements;
|
|
6894
|
-
|
|
7107
|
+
return base === null || base === void 0 ? void 0 : base.find(function (e) {
|
|
6895
7108
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
6896
|
-
})
|
|
6897
|
-
return pageSizesDimensions[sizeKey] || pageSizesDimensions[pageSizes.A4];
|
|
7109
|
+
});
|
|
6898
7110
|
}, [elements]);
|
|
7111
|
+
var getNormalizedCanvasSize = React.useCallback(function () {
|
|
7112
|
+
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : elements;
|
|
7113
|
+
var canvasSizeInput = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : canvasSize;
|
|
7114
|
+
if (canvasSizeInput) {
|
|
7115
|
+
return normalizeCanvasSize(canvasSizeInput, pageSizes.A4);
|
|
7116
|
+
}
|
|
7117
|
+
var pageSizeElem = base === null || base === void 0 ? void 0 : base.find(function (e) {
|
|
7118
|
+
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
7119
|
+
});
|
|
7120
|
+
return normalizeCanvasSize(pageSizeElem, pageSizes.A4);
|
|
7121
|
+
}, [elements, canvasSize]);
|
|
7122
|
+
var getPageDims = React.useCallback(function () {
|
|
7123
|
+
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : elements;
|
|
7124
|
+
var normalized = getNormalizedCanvasSize(base);
|
|
7125
|
+
return {
|
|
7126
|
+
width: normalized.widthPx,
|
|
7127
|
+
height: normalized.heightPx
|
|
7128
|
+
};
|
|
7129
|
+
}, [elements, getNormalizedCanvasSize]);
|
|
6899
7130
|
var findById = React.useCallback(function (id) {
|
|
6900
7131
|
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : elements;
|
|
6901
7132
|
return base.find(function (e) {
|
|
@@ -7111,9 +7342,47 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7111
7342
|
});
|
|
7112
7343
|
}, []);
|
|
7113
7344
|
React.useEffect(function () {
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
|
|
7345
|
+
var incomingPageSizeElem = elementsList === null || elementsList === void 0 ? void 0 : elementsList.find(function (e) {
|
|
7346
|
+
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
7347
|
+
});
|
|
7348
|
+
var nextCanvasSize = canvasSize ? normalizeCanvasSize(canvasSize, pageSizes.A4) : normalizeCanvasSize(incomingPageSizeElem, pageSizes.A4);
|
|
7349
|
+
var nextElements = elementsList.map(function (elem) {
|
|
7350
|
+
if (elem.type !== elementTypes.pageSize) return elem;
|
|
7351
|
+
var nextPageSize = _objectSpread2({}, elem);
|
|
7352
|
+
if (nextCanvasSize.mode === CANVAS_SIZE_MODES.custom) {
|
|
7353
|
+
delete nextPageSize.size;
|
|
7354
|
+
nextPageSize.mode = CANVAS_SIZE_MODES.custom;
|
|
7355
|
+
nextPageSize.widthMm = nextCanvasSize.widthMm;
|
|
7356
|
+
nextPageSize.heightMm = nextCanvasSize.heightMm;
|
|
7357
|
+
} else {
|
|
7358
|
+
delete nextPageSize.mode;
|
|
7359
|
+
delete nextPageSize.widthMm;
|
|
7360
|
+
delete nextPageSize.heightMm;
|
|
7361
|
+
nextPageSize.size = nextCanvasSize.preset;
|
|
7362
|
+
}
|
|
7363
|
+
return nextPageSize;
|
|
7364
|
+
});
|
|
7365
|
+
if (!nextElements.some(function (elem) {
|
|
7366
|
+
return elem.type === elementTypes.pageSize;
|
|
7367
|
+
})) {
|
|
7368
|
+
var injectedPageSize = {
|
|
7369
|
+
type: elementTypes.pageSize,
|
|
7370
|
+
id: "element".concat(Date.now()),
|
|
7371
|
+
size: nextCanvasSize.preset || pageSizes.A4,
|
|
7372
|
+
cuttingGuideStroke: 0,
|
|
7373
|
+
cuttingGuideStrokeColor: theme.color.black
|
|
7374
|
+
};
|
|
7375
|
+
if (nextCanvasSize.mode === CANVAS_SIZE_MODES.custom) {
|
|
7376
|
+
delete injectedPageSize.size;
|
|
7377
|
+
injectedPageSize.mode = CANVAS_SIZE_MODES.custom;
|
|
7378
|
+
injectedPageSize.widthMm = nextCanvasSize.widthMm;
|
|
7379
|
+
injectedPageSize.heightMm = nextCanvasSize.heightMm;
|
|
7380
|
+
}
|
|
7381
|
+
nextElements.unshift(injectedPageSize);
|
|
7382
|
+
}
|
|
7383
|
+
LoadImages(nextElements);
|
|
7384
|
+
setElements(nextElements);
|
|
7385
|
+
var foundLoc = nextElements === null || nextElements === void 0 ? void 0 : nextElements.find(function (e) {
|
|
7117
7386
|
return e.id === LOCATION_ELEMENT_ID && e.type === elementTypes.text;
|
|
7118
7387
|
});
|
|
7119
7388
|
if (foundLoc) {
|
|
@@ -7122,7 +7391,7 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7122
7391
|
rest = _extends({}, (_objectDestructuringEmpty(_ref4), _ref4));
|
|
7123
7392
|
elementCacheRef.current[LOCATION_ELEMENT_ID] = _objectSpread2({}, rest);
|
|
7124
7393
|
}
|
|
7125
|
-
}, _toConsumableArray(elementsList));
|
|
7394
|
+
}, [canvasSize].concat(_toConsumableArray(elementsList)));
|
|
7126
7395
|
var LoadImages = function LoadImages(elems) {
|
|
7127
7396
|
setLoadingImages(true);
|
|
7128
7397
|
preloadRelevantImages(elems).then(function (_ref5) {
|
|
@@ -7138,17 +7407,15 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7138
7407
|
});
|
|
7139
7408
|
};
|
|
7140
7409
|
var editorHeight = React.useMemo(function () {
|
|
7141
|
-
var
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
}, [zoomPercentage, elements]);
|
|
7410
|
+
var _getPageDims2 = getPageDims(elements),
|
|
7411
|
+
height = _getPageDims2.height;
|
|
7412
|
+
return calculatePercentageValue(height, zoomPercentage);
|
|
7413
|
+
}, [zoomPercentage, elements, getPageDims]);
|
|
7146
7414
|
var editorWidth = React.useMemo(function () {
|
|
7147
|
-
var
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
}, [zoomPercentage, elements]);
|
|
7415
|
+
var _getPageDims3 = getPageDims(elements),
|
|
7416
|
+
width = _getPageDims3.width;
|
|
7417
|
+
return calculatePercentageValue(width, zoomPercentage);
|
|
7418
|
+
}, [zoomPercentage, elements, getPageDims]);
|
|
7152
7419
|
var normalizedOutsidePreviewPadding = React.useMemo(function () {
|
|
7153
7420
|
return Math.max(0, Number(outsideBoundaryPreviewPadding) || 0);
|
|
7154
7421
|
}, [outsideBoundaryPreviewPadding]);
|
|
@@ -7162,11 +7429,11 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7162
7429
|
};
|
|
7163
7430
|
}, [showOutsideBoundaryPreview, normalizedOutsidePreviewPadding, editorWidth, editorHeight]);
|
|
7164
7431
|
var selectedPageSize = React.useMemo(function () {
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
}, [
|
|
7432
|
+
return getNormalizedCanvasSize(elements);
|
|
7433
|
+
}, [elements, getNormalizedCanvasSize]);
|
|
7434
|
+
var selectedPageSizeLabel = React.useMemo(function () {
|
|
7435
|
+
return getCanvasSizeLabel(selectedPageSize);
|
|
7436
|
+
}, [selectedPageSize]);
|
|
7170
7437
|
var hasLocationText = React.useMemo(function () {
|
|
7171
7438
|
return elements.some(function (e) {
|
|
7172
7439
|
return e.type === elementTypes.text && e.id === LOCATION_ELEMENT_ID;
|
|
@@ -7295,20 +7562,30 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7295
7562
|
saveHistory([].concat(_toConsumableArray(elemClone), [newElement]));
|
|
7296
7563
|
};
|
|
7297
7564
|
var onSetPageSize = function onSetPageSize(newSize) {
|
|
7298
|
-
var _elements$find4;
|
|
7299
7565
|
if (!newSize) return;
|
|
7300
|
-
var
|
|
7301
|
-
|
|
7302
|
-
|
|
7303
|
-
var
|
|
7304
|
-
var
|
|
7305
|
-
var
|
|
7306
|
-
var scaleY = newDims.height / oldDims.height;
|
|
7566
|
+
var oldDims = getNormalizedCanvasSize(elements);
|
|
7567
|
+
var newDims = normalizeCanvasSize(newSize, pageSizes.A4);
|
|
7568
|
+
var scaleX = newDims.widthPx / oldDims.widthPx;
|
|
7569
|
+
var scaleY = newDims.heightPx / oldDims.heightPx;
|
|
7570
|
+
var pageSizeElem = getPageSizeElement(elements);
|
|
7571
|
+
var pageSizeId = (pageSizeElem === null || pageSizeElem === void 0 ? void 0 : pageSizeElem.id) || "element".concat(Date.now());
|
|
7307
7572
|
var scaledElements = elements.map(function (elem) {
|
|
7308
7573
|
if (elem.type === elementTypes.pageSize) {
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
});
|
|
7574
|
+
var nextPageElem = _objectSpread2(_objectSpread2({}, elem), {}, {
|
|
7575
|
+
id: pageSizeId
|
|
7576
|
+
});
|
|
7577
|
+
if (newDims.mode === CANVAS_SIZE_MODES.custom) {
|
|
7578
|
+
delete nextPageElem.size;
|
|
7579
|
+
nextPageElem.mode = CANVAS_SIZE_MODES.custom;
|
|
7580
|
+
nextPageElem.widthMm = newDims.widthMm;
|
|
7581
|
+
nextPageElem.heightMm = newDims.heightMm;
|
|
7582
|
+
} else {
|
|
7583
|
+
delete nextPageElem.mode;
|
|
7584
|
+
delete nextPageElem.widthMm;
|
|
7585
|
+
delete nextPageElem.heightMm;
|
|
7586
|
+
nextPageElem.size = newDims.preset;
|
|
7587
|
+
}
|
|
7588
|
+
return nextPageElem;
|
|
7312
7589
|
}
|
|
7313
7590
|
var scaled = _objectSpread2({}, elem);
|
|
7314
7591
|
|
|
@@ -7328,7 +7605,39 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7328
7605
|
}
|
|
7329
7606
|
return scaled;
|
|
7330
7607
|
});
|
|
7608
|
+
if (!scaledElements.some(function (elem) {
|
|
7609
|
+
return elem.type === elementTypes.pageSize;
|
|
7610
|
+
})) {
|
|
7611
|
+
var newPageElement = {
|
|
7612
|
+
type: elementTypes.pageSize,
|
|
7613
|
+
id: pageSizeId,
|
|
7614
|
+
size: newDims.preset || pageSizes.A4,
|
|
7615
|
+
cuttingGuideStroke: 0,
|
|
7616
|
+
cuttingGuideStrokeColor: theme.color.black
|
|
7617
|
+
};
|
|
7618
|
+
if (newDims.mode === CANVAS_SIZE_MODES.custom) {
|
|
7619
|
+
delete newPageElement.size;
|
|
7620
|
+
newPageElement.mode = CANVAS_SIZE_MODES.custom;
|
|
7621
|
+
newPageElement.widthMm = newDims.widthMm;
|
|
7622
|
+
newPageElement.heightMm = newDims.heightMm;
|
|
7623
|
+
}
|
|
7624
|
+
scaledElements.unshift(newPageElement);
|
|
7625
|
+
}
|
|
7331
7626
|
saveHistory(removeImageProperty(scaledElements));
|
|
7627
|
+
if (typeof onCanvasSizeChange === 'function') {
|
|
7628
|
+
if (newDims.mode === CANVAS_SIZE_MODES.custom) {
|
|
7629
|
+
onCanvasSizeChange({
|
|
7630
|
+
mode: CANVAS_SIZE_MODES.custom,
|
|
7631
|
+
widthMm: newDims.widthMm,
|
|
7632
|
+
heightMm: newDims.heightMm
|
|
7633
|
+
});
|
|
7634
|
+
} else {
|
|
7635
|
+
onCanvasSizeChange({
|
|
7636
|
+
mode: CANVAS_SIZE_MODES.preset,
|
|
7637
|
+
preset: newDims.preset
|
|
7638
|
+
});
|
|
7639
|
+
}
|
|
7640
|
+
}
|
|
7332
7641
|
};
|
|
7333
7642
|
var _onChangeCuttingGuideProp = function onChangeCuttingGuideProp(type, value) {
|
|
7334
7643
|
var elemClone = JSON.parse(JSON.stringify(elements));
|
|
@@ -7967,12 +8276,12 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
7967
8276
|
onToggleQrIdText: toggleQrIdText
|
|
7968
8277
|
}), loadingFonts ? null : /*#__PURE__*/React.createElement(Editor, {
|
|
7969
8278
|
setLoading: setLoading,
|
|
7970
|
-
cuttingGuideStroke: (elements === null || elements === void 0 || (_elements$
|
|
8279
|
+
cuttingGuideStroke: (elements === null || elements === void 0 || (_elements$find = elements.find(function (e) {
|
|
7971
8280
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
7972
|
-
})) === null || _elements$
|
|
7973
|
-
cuttingGuideStrokeColor: (elements === null || elements === void 0 || (_elements$
|
|
8281
|
+
})) === null || _elements$find === void 0 ? void 0 : _elements$find.cuttingGuideStroke) || 0,
|
|
8282
|
+
cuttingGuideStrokeColor: (elements === null || elements === void 0 || (_elements$find2 = elements.find(function (e) {
|
|
7974
8283
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.pageSize);
|
|
7975
|
-
})) === null || _elements$
|
|
8284
|
+
})) === null || _elements$find2 === void 0 ? void 0 : _elements$find2.cuttingGuideStrokeColor) || (theme === null || theme === void 0 ? void 0 : theme.color.black),
|
|
7976
8285
|
onChangeCuttingGuideProp: function onChangeCuttingGuideProp(type, value) {
|
|
7977
8286
|
_onChangeCuttingGuideProp(type, value);
|
|
7978
8287
|
},
|
|
@@ -8019,9 +8328,9 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
8019
8328
|
stageRef: stageRef,
|
|
8020
8329
|
saveHistory: saveHistory,
|
|
8021
8330
|
onChangeBackgroundImageOpacity: onChangeBackgroundImageOpacity,
|
|
8022
|
-
backgroundImageOpacity: (elements === null || elements === void 0 || (_elements$
|
|
8331
|
+
backgroundImageOpacity: (elements === null || elements === void 0 || (_elements$find3 = elements.find(function (e) {
|
|
8023
8332
|
return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.backgroundImage);
|
|
8024
|
-
})) === null || _elements$
|
|
8333
|
+
})) === null || _elements$find3 === void 0 ? void 0 : _elements$find3.opacity) || backgroundImageOpacity,
|
|
8025
8334
|
onDeleteSelectedElement: onDeleteSelectedElement,
|
|
8026
8335
|
onCopySelectedElement: onCopySelectedElement,
|
|
8027
8336
|
onToggleLockElement: onToggleLockElement,
|
|
@@ -8031,6 +8340,7 @@ var Studio = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
8031
8340
|
onChangeTextProperty: onChangeTextProperty,
|
|
8032
8341
|
onSetPageSize: onSetPageSize,
|
|
8033
8342
|
selectedPageSize: selectedPageSize,
|
|
8343
|
+
selectedPageSizeLabel: selectedPageSizeLabel,
|
|
8034
8344
|
loadingImages: loadingImages,
|
|
8035
8345
|
loadingFonts: loadingFonts,
|
|
8036
8346
|
uploadImageCallBack: uploadImageCallBack,
|