@arbisoft/react-design-tool 1.0.60 → 1.0.62

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/dist/esm/index.js CHANGED
@@ -3,9 +3,9 @@ import PropTypes, { element } from 'prop-types';
3
3
  import styled, { css, keyframes, StyleSheetManager } from 'styled-components';
4
4
  import { createPortal } from 'react-dom';
5
5
  import { Image as Image$1, Group, Rect, Text, Line, Star, Path, RegularPolygon, Arrow, Circle, Stage, Layer, Transformer } from 'react-konva';
6
+ import Konva from 'konva';
6
7
  import QRCode from 'qrcode';
7
8
  import { Html } from 'react-konva-utils';
8
- import Konva from 'konva';
9
9
 
10
10
  function _arrayLikeToArray(r, a) {
11
11
  (null == a || a > r.length) && (a = r.length);
@@ -809,8 +809,12 @@ var LOCATION_BREADCRUMB$8 = "property > building > room";
809
809
  var DOMAIN$8 = "www.domain.com";
810
810
  var SHOW_PROPERTY_LOCATION$8 = "Show Property Label";
811
811
  var LOCATION_HELPER$8 = "Enable this to show the property’s location label on the canvas, or disable it to hide it.";
812
- var SHOW_QR_ID$8 = "Show QR ID";
812
+ var SHOW_QR_ID$8 = "Show QR Id";
813
813
  var QR_ID_HELPER$8 = "Enable this to display the unique QR Code ID on the canvas, or disable it to remove it.";
814
+ var MONOCHROME_COLOR$8 = "Tint Color";
815
+ var MONOCHROME_STRENGTH$8 = "Tint Strength";
816
+ var CLEAR_MONOCHROME$8 = "Remove Tint";
817
+ var TINT_SHORT$8 = "Tint";
814
818
  var enTranslations = {
815
819
  BRING_FORWARD: BRING_FORWARD$8,
816
820
  SEND_BACKWARD: SEND_BACKWARD$8,
@@ -883,7 +887,11 @@ var enTranslations = {
883
887
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$8,
884
888
  LOCATION_HELPER: LOCATION_HELPER$8,
885
889
  SHOW_QR_ID: SHOW_QR_ID$8,
886
- QR_ID_HELPER: QR_ID_HELPER$8
890
+ QR_ID_HELPER: QR_ID_HELPER$8,
891
+ MONOCHROME_COLOR: MONOCHROME_COLOR$8,
892
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$8,
893
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$8,
894
+ TINT_SHORT: TINT_SHORT$8
887
895
  };
888
896
 
889
897
  var BRING_FORWARD$7 = "Перенести вперёд";
@@ -958,6 +966,10 @@ var SHOW_PROPERTY_LOCATION$7 = "Показать метку объекта";
958
966
  var LOCATION_HELPER$7 = "Включите, чтобы показать метку расположения объекта на холсте, или отключите, чтобы скрыть её.";
959
967
  var SHOW_QR_ID$7 = "Показать QR-ID";
960
968
  var QR_ID_HELPER$7 = "Включите, чтобы отобразить уникальный идентификатор QR-кода на холсте, или отключите, чтобы убрать его.";
969
+ var MONOCHROME_COLOR$7 = "Цвет тона";
970
+ var MONOCHROME_STRENGTH$7 = "Сила тона";
971
+ var CLEAR_MONOCHROME$7 = "Убрать тон";
972
+ var TINT_SHORT$7 = "Тон";
961
973
  var ruTranslations = {
962
974
  BRING_FORWARD: BRING_FORWARD$7,
963
975
  SEND_BACKWARD: SEND_BACKWARD$7,
@@ -1030,7 +1042,11 @@ var ruTranslations = {
1030
1042
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$7,
1031
1043
  LOCATION_HELPER: LOCATION_HELPER$7,
1032
1044
  SHOW_QR_ID: SHOW_QR_ID$7,
1033
- QR_ID_HELPER: QR_ID_HELPER$7
1045
+ QR_ID_HELPER: QR_ID_HELPER$7,
1046
+ MONOCHROME_COLOR: MONOCHROME_COLOR$7,
1047
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$7,
1048
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$7,
1049
+ TINT_SHORT: TINT_SHORT$7
1034
1050
  };
1035
1051
 
1036
1052
  var BRING_FORWARD$6 = "Przenieś do przodu";
@@ -1105,6 +1121,10 @@ var SHOW_PROPERTY_LOCATION$6 = "Pokaż etykietę nieruchomości";
1105
1121
  var LOCATION_HELPER$6 = "Włącz tę opcję, aby wyświetlić etykietę lokalizacji nieruchomości na płótnie, lub wyłącz, aby ją ukryć.";
1106
1122
  var SHOW_QR_ID$6 = "Pokaż identyfikator QR";
1107
1123
  var QR_ID_HELPER$6 = "Włącz tę opcję, aby wyświetlić unikalny identyfikator kodu QR na płótnie, lub wyłącz, aby go usunąć.";
1124
+ var MONOCHROME_COLOR$6 = "Kolor tonu";
1125
+ var MONOCHROME_STRENGTH$6 = "Siła tonu";
1126
+ var CLEAR_MONOCHROME$6 = "Usuń ton";
1127
+ var TINT_SHORT$6 = "Ton";
1108
1128
  var plTranslations = {
1109
1129
  BRING_FORWARD: BRING_FORWARD$6,
1110
1130
  SEND_BACKWARD: SEND_BACKWARD$6,
@@ -1177,7 +1197,11 @@ var plTranslations = {
1177
1197
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$6,
1178
1198
  LOCATION_HELPER: LOCATION_HELPER$6,
1179
1199
  SHOW_QR_ID: SHOW_QR_ID$6,
1180
- QR_ID_HELPER: QR_ID_HELPER$6
1200
+ QR_ID_HELPER: QR_ID_HELPER$6,
1201
+ MONOCHROME_COLOR: MONOCHROME_COLOR$6,
1202
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$6,
1203
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$6,
1204
+ TINT_SHORT: TINT_SHORT$6
1181
1205
  };
1182
1206
 
1183
1207
  var BRING_FORWARD$5 = "Nach vorne bringen";
@@ -1252,6 +1276,10 @@ var SHOW_PROPERTY_LOCATION$5 = "Eigenschaftsbeschriftung anzeigen";
1252
1276
  var LOCATION_HELPER$5 = "Aktivieren Sie dies, um die Standortbeschriftung der Eigenschaft auf der Leinwand anzuzeigen, oder deaktivieren Sie es, um sie auszublenden.";
1253
1277
  var SHOW_QR_ID$5 = "QR-ID anzeigen";
1254
1278
  var QR_ID_HELPER$5 = "Aktivieren Sie dies, um die eindeutige QR-Code-ID auf der Leinwand anzuzeigen, oder deaktivieren Sie es, um sie zu entfernen.";
1279
+ var MONOCHROME_COLOR$5 = "Tönungsfarbe";
1280
+ var MONOCHROME_STRENGTH$5 = "Tönungsstärke";
1281
+ var CLEAR_MONOCHROME$5 = "Tönung entfernen";
1282
+ var TINT_SHORT$5 = "Tönung";
1255
1283
  var deTranslations = {
1256
1284
  BRING_FORWARD: BRING_FORWARD$5,
1257
1285
  SEND_BACKWARD: SEND_BACKWARD$5,
@@ -1324,7 +1352,11 @@ var deTranslations = {
1324
1352
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$5,
1325
1353
  LOCATION_HELPER: LOCATION_HELPER$5,
1326
1354
  SHOW_QR_ID: SHOW_QR_ID$5,
1327
- QR_ID_HELPER: QR_ID_HELPER$5
1355
+ QR_ID_HELPER: QR_ID_HELPER$5,
1356
+ MONOCHROME_COLOR: MONOCHROME_COLOR$5,
1357
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$5,
1358
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$5,
1359
+ TINT_SHORT: TINT_SHORT$5
1328
1360
  };
1329
1361
 
1330
1362
  var BRING_FORWARD$4 = "Traer al frente";
@@ -1399,6 +1431,10 @@ var SHOW_PROPERTY_LOCATION$4 = "Mostrar etiqueta de propiedad";
1399
1431
  var LOCATION_HELPER$4 = "Active esto para mostrar la etiqueta de ubicación de la propiedad en el lienzo, o desactívelo para ocultarla.";
1400
1432
  var SHOW_QR_ID$4 = "Mostrar ID de QR";
1401
1433
  var QR_ID_HELPER$4 = "Active esto para mostrar el identificador único del código QR en el lienzo, o desactívelo para eliminarlo.";
1434
+ var MONOCHROME_COLOR$4 = "Color de tinte";
1435
+ var MONOCHROME_STRENGTH$4 = "Intensidad del tinte";
1436
+ var CLEAR_MONOCHROME$4 = "Eliminar tinte";
1437
+ var TINT_SHORT$4 = "Tinte";
1402
1438
  var esTranslations = {
1403
1439
  BRING_FORWARD: BRING_FORWARD$4,
1404
1440
  SEND_BACKWARD: SEND_BACKWARD$4,
@@ -1471,7 +1507,11 @@ var esTranslations = {
1471
1507
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$4,
1472
1508
  LOCATION_HELPER: LOCATION_HELPER$4,
1473
1509
  SHOW_QR_ID: SHOW_QR_ID$4,
1474
- QR_ID_HELPER: QR_ID_HELPER$4
1510
+ QR_ID_HELPER: QR_ID_HELPER$4,
1511
+ MONOCHROME_COLOR: MONOCHROME_COLOR$4,
1512
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$4,
1513
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$4,
1514
+ TINT_SHORT: TINT_SHORT$4
1475
1515
  };
1476
1516
 
1477
1517
  var BRING_FORWARD$3 = "Mettre au premier plan";
@@ -1546,6 +1586,10 @@ var SHOW_PROPERTY_LOCATION$3 = "Afficher l’étiquette de propriété";
1546
1586
  var LOCATION_HELPER$3 = "Activez ceci pour afficher l’étiquette de l’emplacement de la propriété sur la zone de travail, ou désactivez-le pour la masquer.";
1547
1587
  var SHOW_QR_ID$3 = "Afficher l’ID du QR";
1548
1588
  var QR_ID_HELPER$3 = "Activez ceci pour afficher l’ID unique du code QR sur la zone de travail, ou désactivez-le pour le supprimer.";
1589
+ var MONOCHROME_COLOR$3 = "Couleur de teinte";
1590
+ var MONOCHROME_STRENGTH$3 = "Intensité de la teinte";
1591
+ var CLEAR_MONOCHROME$3 = "Retirer la teinte";
1592
+ var TINT_SHORT$3 = "Teinte";
1549
1593
  var frTranslations = {
1550
1594
  BRING_FORWARD: BRING_FORWARD$3,
1551
1595
  SEND_BACKWARD: SEND_BACKWARD$3,
@@ -1618,7 +1662,11 @@ var frTranslations = {
1618
1662
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$3,
1619
1663
  LOCATION_HELPER: LOCATION_HELPER$3,
1620
1664
  SHOW_QR_ID: SHOW_QR_ID$3,
1621
- QR_ID_HELPER: QR_ID_HELPER$3
1665
+ QR_ID_HELPER: QR_ID_HELPER$3,
1666
+ MONOCHROME_COLOR: MONOCHROME_COLOR$3,
1667
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$3,
1668
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$3,
1669
+ TINT_SHORT: TINT_SHORT$3
1622
1670
  };
1623
1671
 
1624
1672
  var BRING_FORWARD$2 = "Porta in primo piano";
@@ -1693,6 +1741,10 @@ var SHOW_PROPERTY_LOCATION$2 = "Mostra etichetta proprietà";
1693
1741
  var LOCATION_HELPER$2 = "Abilita questa opzione per mostrare l’etichetta della posizione della proprietà sulla tela, oppure disabilitala per nasconderla.";
1694
1742
  var SHOW_QR_ID$2 = "Mostra ID QR";
1695
1743
  var QR_ID_HELPER$2 = "Abilita questa opzione per mostrare l’ID univoco del codice QR sulla tela, oppure disabilitala per rimuoverlo.";
1744
+ var MONOCHROME_COLOR$2 = "Colore tinta";
1745
+ var MONOCHROME_STRENGTH$2 = "Intensità della tinta";
1746
+ var CLEAR_MONOCHROME$2 = "Rimuovi tinta";
1747
+ var TINT_SHORT$2 = "Tinta";
1696
1748
  var itTranslations = {
1697
1749
  BRING_FORWARD: BRING_FORWARD$2,
1698
1750
  SEND_BACKWARD: SEND_BACKWARD$2,
@@ -1765,7 +1817,11 @@ var itTranslations = {
1765
1817
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$2,
1766
1818
  LOCATION_HELPER: LOCATION_HELPER$2,
1767
1819
  SHOW_QR_ID: SHOW_QR_ID$2,
1768
- QR_ID_HELPER: QR_ID_HELPER$2
1820
+ QR_ID_HELPER: QR_ID_HELPER$2,
1821
+ MONOCHROME_COLOR: MONOCHROME_COLOR$2,
1822
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$2,
1823
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$2,
1824
+ TINT_SHORT: TINT_SHORT$2
1769
1825
  };
1770
1826
 
1771
1827
  var BRING_FORWARD$1 = "Επισπεύδω";
@@ -1840,6 +1896,10 @@ var SHOW_PROPERTY_LOCATION$1 = "Εμφάνιση ετικέτας ιδιοκτη
1840
1896
  var LOCATION_HELPER$1 = "Ενεργοποιήστε το για να εμφανιστεί η ετικέτα τοποθεσίας της ιδιοκτησίας στον καμβά ή απενεργοποιήστε το για να την αποκρύψετε.";
1841
1897
  var SHOW_QR_ID$1 = "Εμφάνιση ταυτότητας QR";
1842
1898
  var QR_ID_HELPER$1 = "Ενεργοποιήστε το για να εμφανιστεί το μοναδικό αναγνωριστικό QR Code στον καμβά ή απενεργοποιήστε το για να το αφαιρέσετε.";
1899
+ var MONOCHROME_COLOR$1 = "Χρώμα απόχρωσης";
1900
+ var MONOCHROME_STRENGTH$1 = "Ένταση απόχρωσης";
1901
+ var CLEAR_MONOCHROME$1 = "Αφαίρεση απόχρωσης";
1902
+ var TINT_SHORT$1 = "Απόχρωση";
1843
1903
  var elTranslations = {
1844
1904
  BRING_FORWARD: BRING_FORWARD$1,
1845
1905
  SEND_BACKWARD: SEND_BACKWARD$1,
@@ -1912,7 +1972,11 @@ var elTranslations = {
1912
1972
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION$1,
1913
1973
  LOCATION_HELPER: LOCATION_HELPER$1,
1914
1974
  SHOW_QR_ID: SHOW_QR_ID$1,
1915
- QR_ID_HELPER: QR_ID_HELPER$1
1975
+ QR_ID_HELPER: QR_ID_HELPER$1,
1976
+ MONOCHROME_COLOR: MONOCHROME_COLOR$1,
1977
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH$1,
1978
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME$1,
1979
+ TINT_SHORT: TINT_SHORT$1
1916
1980
  };
1917
1981
 
1918
1982
  var BRING_FORWARD = "Переносити";
@@ -1987,6 +2051,10 @@ var SHOW_PROPERTY_LOCATION = "Показати мітку власності";
1987
2051
  var LOCATION_HELPER = "Увімкніть, щоб показати мітку розташування власності на полотні, або вимкніть, щоб приховати її.";
1988
2052
  var SHOW_QR_ID = "Показати QR-ID";
1989
2053
  var QR_ID_HELPER = "Увімкніть, щоб відобразити унікальний ідентифікатор QR-коду на полотні, або вимкніть, щоб видалити його.";
2054
+ var MONOCHROME_COLOR = "Колір тону";
2055
+ var MONOCHROME_STRENGTH = "Сила тону";
2056
+ var CLEAR_MONOCHROME = "Прибрати тон";
2057
+ var TINT_SHORT = "Тон";
1990
2058
  var ukTranslations = {
1991
2059
  BRING_FORWARD: BRING_FORWARD,
1992
2060
  SEND_BACKWARD: SEND_BACKWARD,
@@ -2059,7 +2127,11 @@ var ukTranslations = {
2059
2127
  SHOW_PROPERTY_LOCATION: SHOW_PROPERTY_LOCATION,
2060
2128
  LOCATION_HELPER: LOCATION_HELPER,
2061
2129
  SHOW_QR_ID: SHOW_QR_ID,
2062
- QR_ID_HELPER: QR_ID_HELPER
2130
+ QR_ID_HELPER: QR_ID_HELPER,
2131
+ MONOCHROME_COLOR: MONOCHROME_COLOR,
2132
+ MONOCHROME_STRENGTH: MONOCHROME_STRENGTH,
2133
+ CLEAR_MONOCHROME: CLEAR_MONOCHROME,
2134
+ TINT_SHORT: TINT_SHORT
2063
2135
  };
2064
2136
 
2065
2137
  var SUPPPORTED_LOCALES = ['en', 'ru', 'pl', 'de', 'es', 'fr', 'it', 'el', 'uk'];
@@ -2176,6 +2248,11 @@ var propTypes$w = {
2176
2248
  onChangeImageStrokeWidth: PropTypes.func,
2177
2249
  onChangeImageStrokeColor: PropTypes.func,
2178
2250
  onChangeImageOpacity: PropTypes.func,
2251
+ imageTintColor: PropTypes.string,
2252
+ imageTintStrength: PropTypes.number,
2253
+ onChangeImageTintColor: PropTypes.func,
2254
+ onChangeImageTintStrength: PropTypes.func,
2255
+ onClearImageTint: PropTypes.func,
2179
2256
  qrStrokeWidth: PropTypes.number,
2180
2257
  qrStrokeColor: PropTypes.string,
2181
2258
  qrOpacity: PropTypes.number,
@@ -2252,6 +2329,11 @@ var propTypes$v = {
2252
2329
  onChangeImageStrokeWidth: PropTypes.func,
2253
2330
  onChangeImageStrokeColor: PropTypes.func,
2254
2331
  onChangeImageOpacity: PropTypes.func,
2332
+ imageTintColor: PropTypes.string,
2333
+ imageTintStrength: PropTypes.number,
2334
+ onChangeImageTintColor: PropTypes.func,
2335
+ onChangeImageTintStrength: PropTypes.func,
2336
+ onClearImageTint: PropTypes.func,
2255
2337
  qrStrokeWidth: PropTypes.number,
2256
2338
  qrStrokeColor: PropTypes.string,
2257
2339
  qrOpacity: PropTypes.number,
@@ -3074,7 +3156,7 @@ var OpacityPicker = function OpacityPicker(_ref) {
3074
3156
  src: varient === 'opacity' ? IconOpacity : toolBarIcon
3075
3157
  })), /*#__PURE__*/React.createElement(StyledText, {
3076
3158
  fontFamily: fontFamily
3077
- }, varient === 'opacity' ? "".concat(value * 100, "%") : "".concat(Math.round(value), "px")), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
3159
+ }, varient === 'opacity' ? "".concat(Math.round(value * 100), "%") : "".concat(Math.round(value), "px")), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
3078
3160
  style: {
3079
3161
  position: 'absolute',
3080
3162
  bottom: -50,
@@ -3682,6 +3764,11 @@ var propTypes$m = {
3682
3764
  onChangeImageStrokeWidth: PropTypes.func,
3683
3765
  onChangeImageStrokeColor: PropTypes.func,
3684
3766
  onChangeImageOpacity: PropTypes.func,
3767
+ imageTintColor: PropTypes.string,
3768
+ imageTintStrength: PropTypes.number,
3769
+ onChangeImageTintColor: PropTypes.func,
3770
+ onChangeImageTintStrength: PropTypes.func,
3771
+ onClearImageTint: PropTypes.func,
3685
3772
  selectedElement: PropTypes.object,
3686
3773
  languageLocale: PropTypes.string
3687
3774
  };
@@ -3691,13 +3778,18 @@ styled.p(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n
3691
3778
  var RowContainer$2 = styled.div(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-wrap: wrap;\n gap: 2px;\n"])));
3692
3779
 
3693
3780
  var ImageToolBar = function ImageToolBar(_ref) {
3694
- var _TEXT_DICTIONARY$lang;
3781
+ var _TEXT_DICTIONARY$lang, _TEXT_DICTIONARY$lang2, _TEXT_DICTIONARY$lang3, _TEXT_DICTIONARY$lang4, _selectedElement$tint, _TEXT_DICTIONARY$lang5, _TEXT_DICTIONARY$lang6, _selectedElement$tint2, _TEXT_DICTIONARY$lang7;
3695
3782
  var imageStrokeWidth = _ref.imageStrokeWidth,
3696
3783
  imageStrokeColor = _ref.imageStrokeColor,
3697
3784
  imageOpacity = _ref.imageOpacity,
3698
3785
  onChangeImageStrokeWidth = _ref.onChangeImageStrokeWidth,
3699
3786
  onChangeImageStrokeColor = _ref.onChangeImageStrokeColor,
3700
3787
  onChangeImageOpacity = _ref.onChangeImageOpacity,
3788
+ imageTintColor = _ref.imageTintColor,
3789
+ imageTintStrength = _ref.imageTintStrength,
3790
+ onChangeImageTintColor = _ref.onChangeImageTintColor,
3791
+ onChangeImageTintStrength = _ref.onChangeImageTintStrength,
3792
+ onClearImageTint = _ref.onClearImageTint,
3701
3793
  selectedElement = _ref.selectedElement,
3702
3794
  languageLocale = _ref.languageLocale;
3703
3795
  return /*#__PURE__*/React.createElement(RowContainer$2, null, /*#__PURE__*/React.createElement(StrokePicker, {
@@ -3711,7 +3803,35 @@ var ImageToolBar = function ImageToolBar(_ref) {
3711
3803
  value: isElementOfSameType(selectedElement, elementTypes.image) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.opacity : imageOpacity,
3712
3804
  onChangeOpacity: onChangeImageOpacity,
3713
3805
  languageLocale: languageLocale
3714
- }));
3806
+ }), /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
3807
+ gap: 8,
3808
+ 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.MONOCHROME_COLOR,
3809
+ tooltipPosition: 'bottom'
3810
+ }, /*#__PURE__*/React.createElement(StyledText, {
3811
+ fontFamily: theme.fonts.secondary
3812
+ }, TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang3 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang3 === void 0 ? void 0 : _TEXT_DICTIONARY$lang3.MONOCHROME_COLOR), /*#__PURE__*/React.createElement(ColorBox, {
3813
+ backgroundColor: isElementOfSameType(selectedElement, elementTypes.image) ? (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.tintColor) || imageTintColor : imageTintColor,
3814
+ onChange: onChangeImageTintColor
3815
+ })), /*#__PURE__*/React.createElement(OpacityPicker, {
3816
+ 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.MONOCHROME_STRENGTH,
3817
+ tooltipPosition: 'bottom',
3818
+ value: isElementOfSameType(selectedElement, elementTypes.image) ? (_selectedElement$tint = selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.tintStrength) !== null && _selectedElement$tint !== void 0 ? _selectedElement$tint : imageTintStrength : imageTintStrength,
3819
+ min: 0,
3820
+ max: 1,
3821
+ step: 0.05,
3822
+ onChangeOpacity: onChangeImageTintStrength,
3823
+ leftChild: /*#__PURE__*/React.createElement(StyledText, {
3824
+ fontFamily: theme.fonts.secondary
3825
+ }, TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang5 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang5 === void 0 ? void 0 : _TEXT_DICTIONARY$lang5.TINT_SHORT)
3826
+ }), /*#__PURE__*/React.createElement(ToolBarButtonWrapper, {
3827
+ gap: 8,
3828
+ tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang6 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang6 === void 0 ? void 0 : _TEXT_DICTIONARY$lang6.CLEAR_MONOCHROME,
3829
+ tooltipPosition: 'bottom',
3830
+ onClick: onClearImageTint,
3831
+ disabled: isElementOfSameType(selectedElement, elementTypes.image) ? ((_selectedElement$tint2 = selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.tintStrength) !== null && _selectedElement$tint2 !== void 0 ? _selectedElement$tint2 : 0) <= 0 : imageTintStrength <= 0
3832
+ }, /*#__PURE__*/React.createElement(StyledText, {
3833
+ fontFamily: theme.fonts.secondary
3834
+ }, TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang7 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang7 === void 0 ? void 0 : _TEXT_DICTIONARY$lang7.CLEAR_MONOCHROME)));
3715
3835
  };
3716
3836
  ImageToolBar.propTypes = propTypes$m;
3717
3837
 
@@ -3843,6 +3963,11 @@ var TopToolBar = function TopToolBar(_ref) {
3843
3963
  onChangeImageStrokeWidth = _ref.onChangeImageStrokeWidth,
3844
3964
  onChangeImageStrokeColor = _ref.onChangeImageStrokeColor,
3845
3965
  onChangeImageOpacity = _ref.onChangeImageOpacity,
3966
+ imageTintColor = _ref.imageTintColor,
3967
+ imageTintStrength = _ref.imageTintStrength,
3968
+ onChangeImageTintColor = _ref.onChangeImageTintColor,
3969
+ onChangeImageTintStrength = _ref.onChangeImageTintStrength,
3970
+ onClearImageTint = _ref.onClearImageTint,
3846
3971
  qrStrokeWidth = _ref.qrStrokeWidth,
3847
3972
  qrStrokeColor = _ref.qrStrokeColor,
3848
3973
  qrOpacity = _ref.qrOpacity,
@@ -3907,6 +4032,11 @@ var TopToolBar = function TopToolBar(_ref) {
3907
4032
  onChangeImageStrokeWidth: onChangeImageStrokeWidth,
3908
4033
  onChangeImageStrokeColor: onChangeImageStrokeColor,
3909
4034
  onChangeImageOpacity: onChangeImageOpacity,
4035
+ imageTintColor: imageTintColor,
4036
+ imageTintStrength: imageTintStrength,
4037
+ onChangeImageTintColor: onChangeImageTintColor,
4038
+ onChangeImageTintStrength: onChangeImageTintStrength,
4039
+ onClearImageTint: onClearImageTint,
3910
4040
  selectedElement: selectedElement,
3911
4041
  languageLocale: languageLocale
3912
4042
  }) : selectedTab === (sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.shape) ? /*#__PURE__*/React.createElement(ShapeToolBar, {
@@ -4253,6 +4383,7 @@ var propTypes$e = {
4253
4383
  };
4254
4384
 
4255
4385
  var CanvasImage = function CanvasImage(_ref) {
4386
+ var _element$tintStrength;
4256
4387
  var id = _ref.id,
4257
4388
  element = _ref.element,
4258
4389
  _onClick = _ref.onClick,
@@ -4268,6 +4399,30 @@ var CanvasImage = function CanvasImage(_ref) {
4268
4399
  _useState4 = _slicedToArray(_useState3, 2),
4269
4400
  imgEl = _useState4[0],
4270
4401
  setImgEl = _useState4[1];
4402
+ var imageNodeRef = useRef(null);
4403
+ var tintStrength = Number((_element$tintStrength = element === null || element === void 0 ? void 0 : element.tintStrength) !== null && _element$tintStrength !== void 0 ? _element$tintStrength : 0);
4404
+ var hasTint = tintStrength > 0;
4405
+ var _useMemo = useMemo(function () {
4406
+ var hex = typeof (element === null || element === void 0 ? void 0 : element.tintColor) === 'string' ? element.tintColor.trim() : '#000000';
4407
+ var safeHex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(hex) ? hex : '#000000';
4408
+ var normalized = safeHex.length === 4 ? "#".concat(safeHex[1]).concat(safeHex[1]).concat(safeHex[2]).concat(safeHex[2]).concat(safeHex[3]).concat(safeHex[3]) : safeHex;
4409
+ var r = parseInt(normalized.slice(1, 3), 16);
4410
+ var g = parseInt(normalized.slice(3, 5), 16);
4411
+ var b = parseInt(normalized.slice(5, 7), 16);
4412
+ var lerp = function lerp(start, end, t) {
4413
+ return start + (end - start) * Math.min(Math.max(t, 0), 1);
4414
+ };
4415
+
4416
+ // At 0: keep original grayscale; at 1: fully tint to the picked color.
4417
+ return {
4418
+ red: Math.round(lerp(255, r, tintStrength)),
4419
+ green: Math.round(lerp(255, g, tintStrength)),
4420
+ blue: Math.round(lerp(255, b, tintStrength))
4421
+ };
4422
+ }, [element === null || element === void 0 ? void 0 : element.tintColor, tintStrength]),
4423
+ red = _useMemo.red,
4424
+ green = _useMemo.green,
4425
+ blue = _useMemo.blue;
4271
4426
  useEffect(function () {
4272
4427
  var cancelled = false;
4273
4428
  var objectUrl;
@@ -4335,13 +4490,26 @@ var CanvasImage = function CanvasImage(_ref) {
4335
4490
  if (objectUrl) URL.revokeObjectURL(objectUrl);
4336
4491
  };
4337
4492
  }, [element === null || element === void 0 ? void 0 : element.src]);
4493
+ useEffect(function () {
4494
+ if (!(imageNodeRef !== null && imageNodeRef !== void 0 && imageNodeRef.current)) return;
4495
+ if (hasTint) {
4496
+ imageNodeRef.current.cache();
4497
+ } else {
4498
+ imageNodeRef.current.clearCache();
4499
+ }
4500
+ }, [hasTint, red, green, blue]);
4338
4501
  if (!loaded || !imgEl) return null;
4339
4502
  return /*#__PURE__*/React.createElement(Image$1, _extends({
4503
+ ref: imageNodeRef,
4340
4504
  id: id,
4341
4505
  image: imgEl
4342
4506
  }, element, {
4343
4507
  width: element === null || element === void 0 ? void 0 : element.width,
4344
4508
  height: element === null || element === void 0 ? void 0 : element.height,
4509
+ filters: hasTint ? [Konva.Filters.Grayscale, Konva.Filters.RGB] : undefined,
4510
+ red: hasTint ? red : undefined,
4511
+ green: hasTint ? green : undefined,
4512
+ blue: hasTint ? blue : undefined,
4345
4513
  onClick: function onClick() {
4346
4514
  return _onClick && _onClick();
4347
4515
  },
@@ -5162,6 +5330,11 @@ var Editor = function Editor(_ref) {
5162
5330
  onChangeImageStrokeWidth = _ref.onChangeImageStrokeWidth,
5163
5331
  onChangeImageStrokeColor = _ref.onChangeImageStrokeColor,
5164
5332
  onChangeImageOpacity = _ref.onChangeImageOpacity,
5333
+ imageTintColor = _ref.imageTintColor,
5334
+ imageTintStrength = _ref.imageTintStrength,
5335
+ onChangeImageTintColor = _ref.onChangeImageTintColor,
5336
+ onChangeImageTintStrength = _ref.onChangeImageTintStrength,
5337
+ onClearImageTint = _ref.onClearImageTint,
5165
5338
  qrStrokeWidth = _ref.qrStrokeWidth,
5166
5339
  qrStrokeColor = _ref.qrStrokeColor,
5167
5340
  qrOpacity = _ref.qrOpacity,
@@ -5497,6 +5670,11 @@ var Editor = function Editor(_ref) {
5497
5670
  onChangeImageStrokeWidth: onChangeImageStrokeWidth,
5498
5671
  onChangeImageStrokeColor: onChangeImageStrokeColor,
5499
5672
  onChangeImageOpacity: onChangeImageOpacity,
5673
+ imageTintColor: imageTintColor,
5674
+ imageTintStrength: imageTintStrength,
5675
+ onChangeImageTintColor: onChangeImageTintColor,
5676
+ onChangeImageTintStrength: onChangeImageTintStrength,
5677
+ onClearImageTint: onClearImageTint,
5500
5678
  qrStrokeWidth: qrStrokeWidth,
5501
5679
  qrStrokeColor: qrStrokeColor,
5502
5680
  qrOpacity: qrOpacity,
@@ -6591,38 +6769,46 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6591
6769
  _useState38 = _slicedToArray(_useState37, 2),
6592
6770
  imageOpacity = _useState38[0],
6593
6771
  setImageOpacity = _useState38[1];
6594
- var _useState39 = useState(2),
6772
+ var _useState39 = useState(theme.color.black),
6595
6773
  _useState40 = _slicedToArray(_useState39, 2),
6596
- qrStrokeWidth = _useState40[0],
6597
- setQrStrokeWidth = _useState40[1];
6598
- var _useState41 = useState(theme.color.black),
6774
+ imageTintColor = _useState40[0],
6775
+ setImageTintColor = _useState40[1];
6776
+ var _useState41 = useState(0.6),
6599
6777
  _useState42 = _slicedToArray(_useState41, 2),
6600
- qrStrokeColor = _useState42[0],
6601
- setQrStrokeColor = _useState42[1];
6602
- var _useState43 = useState(1),
6778
+ imageTintStrength = _useState42[0],
6779
+ setImageTintStrength = _useState42[1];
6780
+ var _useState43 = useState(2),
6603
6781
  _useState44 = _slicedToArray(_useState43, 2),
6604
- qrOpacity = _useState44[0],
6605
- setQrOpacity = _useState44[1];
6606
- var _useState45 = useState(null),
6782
+ qrStrokeWidth = _useState44[0],
6783
+ setQrStrokeWidth = _useState44[1];
6784
+ var _useState45 = useState(theme.color.black),
6607
6785
  _useState46 = _slicedToArray(_useState45, 2),
6608
- selectedElement = _useState46[0],
6609
- setSelectedElement = _useState46[1];
6610
- var _useState47 = useState(customImages || []),
6786
+ qrStrokeColor = _useState46[0],
6787
+ setQrStrokeColor = _useState46[1];
6788
+ var _useState47 = useState(1),
6611
6789
  _useState48 = _slicedToArray(_useState47, 2),
6612
- customImagesList = _useState48[0],
6613
- setCustomImagesList = _useState48[1];
6614
- var _useState49 = useState(defaultQrLogo),
6790
+ qrOpacity = _useState48[0],
6791
+ setQrOpacity = _useState48[1];
6792
+ var _useState49 = useState(null),
6615
6793
  _useState50 = _slicedToArray(_useState49, 2),
6616
- qrLogo = _useState50[0],
6617
- setQrLogo = _useState50[1];
6618
- var _useState51 = useState(basicTextProps),
6794
+ selectedElement = _useState50[0],
6795
+ setSelectedElement = _useState50[1];
6796
+ var _useState51 = useState(customImages || []),
6619
6797
  _useState52 = _slicedToArray(_useState51, 2),
6620
- defaultTextProps = _useState52[0],
6621
- setDefaultTextProps = _useState52[1];
6622
- var _useState53 = useState(qrId),
6798
+ customImagesList = _useState52[0],
6799
+ setCustomImagesList = _useState52[1];
6800
+ var _useState53 = useState(defaultQrLogo),
6623
6801
  _useState54 = _slicedToArray(_useState53, 2),
6624
- currentQrId = _useState54[0],
6625
- setCurrentQrId = _useState54[1];
6802
+ qrLogo = _useState54[0],
6803
+ setQrLogo = _useState54[1];
6804
+ var _useState55 = useState(basicTextProps),
6805
+ _useState56 = _slicedToArray(_useState55, 2),
6806
+ defaultTextProps = _useState56[0],
6807
+ setDefaultTextProps = _useState56[1];
6808
+ var _useState57 = useState(qrId),
6809
+ _useState58 = _slicedToArray(_useState57, 2),
6810
+ currentQrId = _useState58[0],
6811
+ setCurrentQrId = _useState58[1];
6626
6812
  var overallLoading = loadingFonts || loadingImages || loadingUploadImage || loading;
6627
6813
  var getPageDims = useCallback(function () {
6628
6814
  var _base$find;
@@ -7363,6 +7549,26 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
7363
7549
  setImageOpacity(e);
7364
7550
  }
7365
7551
  };
7552
+ var onChangeImageTintColor = function onChangeImageTintColor(color) {
7553
+ if (isElementOfSameType(selectedElement, elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.image)) {
7554
+ changeSelectedElementProperty('tintColor', color);
7555
+ }
7556
+ setImageTintColor(color);
7557
+ };
7558
+ var onChangeImageTintStrength = function onChangeImageTintStrength(value) {
7559
+ var nextStrength = Math.max(0, Math.min(1, value));
7560
+ if (isElementOfSameType(selectedElement, elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.image)) {
7561
+ changeSelectedElementProperty('tintStrength', nextStrength);
7562
+ } else {
7563
+ setImageTintStrength(nextStrength);
7564
+ }
7565
+ };
7566
+ var onClearImageTint = function onClearImageTint() {
7567
+ if (isElementOfSameType(selectedElement, elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.image)) {
7568
+ changeSelectedElementProperty('tintStrength', 0);
7569
+ }
7570
+ setImageTintStrength(0);
7571
+ };
7366
7572
  var addCustomImageToList = function addCustomImageToList(img) {
7367
7573
  // console.error({img});
7368
7574
  setCustomImagesList([].concat(_toConsumableArray(customImagesList), [img]));
@@ -7375,6 +7581,8 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
7375
7581
  stroke: imageStrokeColor,
7376
7582
  strokeWidth: imageStrokeWidth,
7377
7583
  opacity: imageOpacity,
7584
+ tintColor: imageTintColor,
7585
+ tintStrength: imageTintStrength,
7378
7586
  type: elementTypes.image,
7379
7587
  draggable: true,
7380
7588
  // width: 100,
@@ -7692,9 +7900,14 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
7692
7900
  imageStrokeWidth: imageStrokeWidth,
7693
7901
  imageStrokeColor: imageStrokeColor,
7694
7902
  imageOpacity: imageOpacity,
7903
+ imageTintColor: imageTintColor,
7904
+ imageTintStrength: imageTintStrength,
7695
7905
  onChangeImageStrokeWidth: onChangeImageStrokeWidth,
7696
7906
  onChangeImageStrokeColor: onChangeImageStrokeColor,
7697
7907
  onChangeImageOpacity: onChangeImageOpacity,
7908
+ onChangeImageTintColor: onChangeImageTintColor,
7909
+ onChangeImageTintStrength: onChangeImageTintStrength,
7910
+ onClearImageTint: onClearImageTint,
7698
7911
  onChangeShapeStrokeColor: onChangeShapeStrokeColor,
7699
7912
  onChangeShapeStrokeWidth: onChangeShapeStrokeWidth,
7700
7913
  onChangeShapeFill: onChangeShapeFill,