@arbisoft/react-design-tool 1.0.19 → 1.0.21

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
@@ -959,7 +959,7 @@ var COLLAPSE$6 = "Collapse";
959
959
  var TEXT$6 = "Text";
960
960
  var STROKE_WIDTH_AND_COLOR$6 = "Stroke Width & Color";
961
961
  var NEW_TEMPLATE$6 = "New Template";
962
- var CUSTOM_TEMPLATES$6 = "Custom Templates";
962
+ var CUSTOM_TEMPLATES$6 = "My Designs";
963
963
  var PAGE_SIZE$6 = "Page size";
964
964
  var BACKGROUND_COLOR$6 = "Background Color";
965
965
  var BACKGROUND_IMAGE$6 = "Background Image";
@@ -1088,7 +1088,7 @@ var COLLAPSE$5 = "Свернуть";
1088
1088
  var TEXT$5 = "Текст";
1089
1089
  var STROKE_WIDTH_AND_COLOR$5 = "Толщина и цвет обводки";
1090
1090
  var NEW_TEMPLATE$5 = "Новый шаблон";
1091
- var CUSTOM_TEMPLATES$5 = "Пользовательские шаблоны";
1091
+ var CUSTOM_TEMPLATES$5 = "Мои дизайны";
1092
1092
  var PAGE_SIZE$5 = "Размер страницы";
1093
1093
  var BACKGROUND_COLOR$5 = "Цвет фона";
1094
1094
  var BACKGROUND_IMAGE$5 = "Фоновое изображение";
@@ -1217,7 +1217,7 @@ var COLLAPSE$4 = "Zwiń";
1217
1217
  var TEXT$4 = "Tekst";
1218
1218
  var STROKE_WIDTH_AND_COLOR$4 = "Szerokość i kolor obramowania";
1219
1219
  var NEW_TEMPLATE$4 = "Nowy szablon";
1220
- var CUSTOM_TEMPLATES$4 = "Niestandardowe szablony";
1220
+ var CUSTOM_TEMPLATES$4 = "Moje projekty";
1221
1221
  var PAGE_SIZE$4 = "Rozmiar strony";
1222
1222
  var BACKGROUND_COLOR$4 = "Kolor tła";
1223
1223
  var BACKGROUND_IMAGE$4 = "Obraz tła";
@@ -1346,7 +1346,7 @@ var COLLAPSE$3 = "Einklappen";
1346
1346
  var TEXT$3 = "Text";
1347
1347
  var STROKE_WIDTH_AND_COLOR$3 = "Strichbreite und -farbe";
1348
1348
  var NEW_TEMPLATE$3 = "Neue Vorlage";
1349
- var CUSTOM_TEMPLATES$3 = "Benutzerdefinierte Vorlagen";
1349
+ var CUSTOM_TEMPLATES$3 = "Meine Designs";
1350
1350
  var PAGE_SIZE$3 = "Seitengröße";
1351
1351
  var BACKGROUND_COLOR$3 = "Hintergrundfarbe";
1352
1352
  var BACKGROUND_IMAGE$3 = "Hintergrundbild";
@@ -1475,7 +1475,7 @@ var COLLAPSE$2 = "Colapsar";
1475
1475
  var TEXT$2 = "Texto";
1476
1476
  var STROKE_WIDTH_AND_COLOR$2 = "Grosor y color del trazo";
1477
1477
  var NEW_TEMPLATE$2 = "Nueva plantilla";
1478
- var CUSTOM_TEMPLATES$2 = "Plantillas personalizadas";
1478
+ var CUSTOM_TEMPLATES$2 = "Mis diseños";
1479
1479
  var PAGE_SIZE$2 = "Tamaño de página";
1480
1480
  var BACKGROUND_COLOR$2 = "Color de fondo";
1481
1481
  var BACKGROUND_IMAGE$2 = "Imagen de fondo";
@@ -1604,7 +1604,7 @@ var COLLAPSE$1 = "Réduire";
1604
1604
  var TEXT$1 = "Texte";
1605
1605
  var STROKE_WIDTH_AND_COLOR$1 = "Largeur et couleur du trait";
1606
1606
  var NEW_TEMPLATE$1 = "Nouveau modèle";
1607
- var CUSTOM_TEMPLATES$1 = "Modèles personnalisés";
1607
+ var CUSTOM_TEMPLATES$1 = "Mes créations";
1608
1608
  var PAGE_SIZE$1 = "Taille de page";
1609
1609
  var BACKGROUND_COLOR$1 = "Couleur d’arrière-plan";
1610
1610
  var BACKGROUND_IMAGE$1 = "Image d’arrière-plan";
@@ -1733,7 +1733,7 @@ var COLLAPSE = "Comprimi";
1733
1733
  var TEXT = "Testo";
1734
1734
  var STROKE_WIDTH_AND_COLOR = "Spessore e colore del tratto";
1735
1735
  var NEW_TEMPLATE = "Nuovo modello";
1736
- var CUSTOM_TEMPLATES = "Modelli personalizzati";
1736
+ var CUSTOM_TEMPLATES = "I miei progetti";
1737
1737
  var PAGE_SIZE = "Dimensione della pagina";
1738
1738
  var BACKGROUND_COLOR = "Colore di sfondo";
1739
1739
  var BACKGROUND_IMAGE = "Immagine di sfondo";
@@ -5373,7 +5373,7 @@ var TemplateSideBar = function TemplateSideBar(_ref) {
5373
5373
  }), /*#__PURE__*/React.createElement(Collapsable, {
5374
5374
  title: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang2 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang2 === void 0 ? void 0 : _TEXT_DICTIONARY$lang2.DEFAULT,
5375
5375
  content: renderDefaultContent
5376
- }), /*#__PURE__*/React.createElement(Collapsable, {
5376
+ }), customTemplatesList.length > 0 && /*#__PURE__*/React.createElement(Collapsable, {
5377
5377
  title: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang3 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang3 === void 0 ? void 0 : _TEXT_DICTIONARY$lang3.CUSTOM_TEMPLATES,
5378
5378
  content: renderCustomContent
5379
5379
  }));
@@ -5933,110 +5933,132 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
5933
5933
  _ref$locale = _ref.locale,
5934
5934
  locale = _ref$locale === void 0 ? 'en' : _ref$locale;
5935
5935
  var stageRef = useRef(null);
5936
- var _useState = useState(sideBarpillsList.template),
5936
+ var _useState = useState(null),
5937
5937
  _useState2 = _slicedToArray(_useState, 2),
5938
- selectedTab = _useState2[0],
5939
- setSelectedTab = _useState2[1];
5940
- var _useState3 = useState(validateLocale(locale)),
5938
+ copiedElement = _useState2[0],
5939
+ setCopiedElement = _useState2[1];
5940
+ var _useState3 = useState(sideBarpillsList.template),
5941
5941
  _useState4 = _slicedToArray(_useState3, 2),
5942
- languageLocale = _useState4[0],
5943
- setLanguageLocale = _useState4[1];
5944
- var _useState5 = useState(true),
5942
+ selectedTab = _useState4[0],
5943
+ setSelectedTab = _useState4[1];
5944
+ var _useState5 = useState(validateLocale(locale)),
5945
5945
  _useState6 = _slicedToArray(_useState5, 2),
5946
- loadingFonts = _useState6[0],
5947
- setLoadingFonts = _useState6[1];
5946
+ languageLocale = _useState6[0],
5947
+ setLanguageLocale = _useState6[1];
5948
5948
  var _useState7 = useState(true),
5949
5949
  _useState8 = _slicedToArray(_useState7, 2),
5950
- loadingImages = _useState8[0],
5951
- setLoadingImages = _useState8[1];
5952
- var _useState9 = useState(false),
5950
+ loadingFonts = _useState8[0],
5951
+ setLoadingFonts = _useState8[1];
5952
+ var _useState9 = useState(true),
5953
5953
  _useState10 = _slicedToArray(_useState9, 2),
5954
- loading = _useState10[0],
5955
- setLoading = _useState10[1];
5954
+ loadingImages = _useState10[0],
5955
+ setLoadingImages = _useState10[1];
5956
5956
  var _useState11 = useState(false),
5957
5957
  _useState12 = _slicedToArray(_useState11, 2),
5958
- loadingUploadImage = _useState12[0],
5959
- setLoadingUploadImage = _useState12[1];
5960
- var _useState13 = useState(true),
5958
+ loading = _useState12[0],
5959
+ setLoading = _useState12[1];
5960
+ var _useState13 = useState(false),
5961
5961
  _useState14 = _slicedToArray(_useState13, 2),
5962
- helperSideBarVisible = _useState14[0],
5963
- setHelperSideBarVisible = _useState14[1];
5964
- var _useState15 = useState(100),
5962
+ loadingUploadImage = _useState14[0],
5963
+ setLoadingUploadImage = _useState14[1];
5964
+ var _useState15 = useState(true),
5965
5965
  _useState16 = _slicedToArray(_useState15, 2),
5966
- zoomPercentage = _useState16[0],
5967
- setZoomPercentage = _useState16[1];
5968
- var _useState17 = useState(elementsList),
5966
+ helperSideBarVisible = _useState16[0],
5967
+ setHelperSideBarVisible = _useState16[1];
5968
+ var _useState17 = useState(100),
5969
5969
  _useState18 = _slicedToArray(_useState17, 2),
5970
- elements = _useState18[0],
5971
- setElements = _useState18[1];
5972
- var _useState19 = useState(1),
5970
+ zoomPercentage = _useState18[0],
5971
+ setZoomPercentage = _useState18[1];
5972
+ var _useState19 = useState(elementsList),
5973
5973
  _useState20 = _slicedToArray(_useState19, 2),
5974
- backgroundImageOpacity = _useState20[0],
5975
- setBackgroundImageOpacity = _useState20[1];
5976
- var _useState21 = useState([]),
5974
+ elements = _useState20[0],
5975
+ setElements = _useState20[1];
5976
+ var _useState21 = useState(1),
5977
5977
  _useState22 = _slicedToArray(_useState21, 2),
5978
- history = _useState22[0],
5979
- setHistory = _useState22[1];
5978
+ backgroundImageOpacity = _useState22[0],
5979
+ setBackgroundImageOpacity = _useState22[1];
5980
5980
  var _useState23 = useState([]),
5981
5981
  _useState24 = _slicedToArray(_useState23, 2),
5982
- redoStack = _useState24[0],
5983
- setRedoStack = _useState24[1];
5984
- var _useState25 = useState(theme.color.white),
5982
+ history = _useState24[0],
5983
+ setHistory = _useState24[1];
5984
+ var _useState25 = useState([]),
5985
5985
  _useState26 = _slicedToArray(_useState25, 2),
5986
- shapeFillColor = _useState26[0],
5987
- setShapeFillColor = _useState26[1];
5988
- var _useState27 = useState(1),
5986
+ redoStack = _useState26[0],
5987
+ setRedoStack = _useState26[1];
5988
+ var _useState27 = useState(theme.color.white),
5989
5989
  _useState28 = _slicedToArray(_useState27, 2),
5990
- shapeStrokeWidth = _useState28[0],
5991
- setShapeStrokeWidth = _useState28[1];
5992
- var _useState29 = useState(theme.color.black),
5990
+ shapeFillColor = _useState28[0],
5991
+ setShapeFillColor = _useState28[1];
5992
+ var _useState29 = useState(1),
5993
5993
  _useState30 = _slicedToArray(_useState29, 2),
5994
- shapeStrokeColor = _useState30[0],
5995
- setShapeStrokeColor = _useState30[1];
5996
- var _useState31 = useState(1),
5994
+ shapeStrokeWidth = _useState30[0],
5995
+ setShapeStrokeWidth = _useState30[1];
5996
+ var _useState31 = useState(theme.color.black),
5997
5997
  _useState32 = _slicedToArray(_useState31, 2),
5998
- shapeOpacity = _useState32[0],
5999
- setShapeOpacity = _useState32[1];
6000
- var _useState33 = useState(0),
5998
+ shapeStrokeColor = _useState32[0],
5999
+ setShapeStrokeColor = _useState32[1];
6000
+ var _useState33 = useState(1),
6001
6001
  _useState34 = _slicedToArray(_useState33, 2),
6002
- imageStrokeWidth = _useState34[0],
6003
- setImageStrokeWidth = _useState34[1];
6004
- var _useState35 = useState(theme.color.black),
6002
+ shapeOpacity = _useState34[0],
6003
+ setShapeOpacity = _useState34[1];
6004
+ var _useState35 = useState(0),
6005
6005
  _useState36 = _slicedToArray(_useState35, 2),
6006
- imageStrokeColor = _useState36[0],
6007
- setImageStrokeColor = _useState36[1];
6008
- var _useState37 = useState(1),
6006
+ imageStrokeWidth = _useState36[0],
6007
+ setImageStrokeWidth = _useState36[1];
6008
+ var _useState37 = useState(theme.color.black),
6009
6009
  _useState38 = _slicedToArray(_useState37, 2),
6010
- imageOpacity = _useState38[0],
6011
- setImageOpacity = _useState38[1];
6012
- var _useState39 = useState(2),
6010
+ imageStrokeColor = _useState38[0],
6011
+ setImageStrokeColor = _useState38[1];
6012
+ var _useState39 = useState(1),
6013
6013
  _useState40 = _slicedToArray(_useState39, 2),
6014
- qrStrokeWidth = _useState40[0],
6015
- setQrStrokeWidth = _useState40[1];
6016
- var _useState41 = useState(theme.color.black),
6014
+ imageOpacity = _useState40[0],
6015
+ setImageOpacity = _useState40[1];
6016
+ var _useState41 = useState(2),
6017
6017
  _useState42 = _slicedToArray(_useState41, 2),
6018
- qrStrokeColor = _useState42[0],
6019
- setQrStrokeColor = _useState42[1];
6020
- var _useState43 = useState(1),
6018
+ qrStrokeWidth = _useState42[0],
6019
+ setQrStrokeWidth = _useState42[1];
6020
+ var _useState43 = useState(theme.color.black),
6021
6021
  _useState44 = _slicedToArray(_useState43, 2),
6022
- qrOpacity = _useState44[0],
6023
- setQrOpacity = _useState44[1];
6024
- var _useState45 = useState(null),
6022
+ qrStrokeColor = _useState44[0],
6023
+ setQrStrokeColor = _useState44[1];
6024
+ var _useState45 = useState(1),
6025
6025
  _useState46 = _slicedToArray(_useState45, 2),
6026
- selectedElement = _useState46[0],
6027
- setSelectedElement = _useState46[1];
6028
- var _useState47 = useState(customImages || []),
6026
+ qrOpacity = _useState46[0],
6027
+ setQrOpacity = _useState46[1];
6028
+ var _useState47 = useState(null),
6029
6029
  _useState48 = _slicedToArray(_useState47, 2),
6030
- customImagesList = _useState48[0],
6031
- setCustomImagesList = _useState48[1];
6032
- var _useState49 = useState(null),
6030
+ selectedElement = _useState48[0],
6031
+ setSelectedElement = _useState48[1];
6032
+ var _useState49 = useState(customImages || []),
6033
6033
  _useState50 = _slicedToArray(_useState49, 2),
6034
- qrLogo = _useState50[0],
6035
- setQrLogo = _useState50[1];
6036
- var _useState51 = useState(basicTextProps),
6034
+ customImagesList = _useState50[0],
6035
+ setCustomImagesList = _useState50[1];
6036
+ var _useState51 = useState(null),
6037
6037
  _useState52 = _slicedToArray(_useState51, 2),
6038
- defaultTextProps = _useState52[0],
6039
- setDefaultTextProps = _useState52[1];
6038
+ qrLogo = _useState52[0],
6039
+ setQrLogo = _useState52[1];
6040
+ var _useState53 = useState(basicTextProps),
6041
+ _useState54 = _slicedToArray(_useState53, 2),
6042
+ defaultTextProps = _useState54[0],
6043
+ setDefaultTextProps = _useState54[1];
6044
+ var undo = useCallback(function () {
6045
+ if (history.length > 0) {
6046
+ setSelectedElement(null);
6047
+ var previousState = history[history.length - 1];
6048
+ setRedoStack([elements].concat(_toConsumableArray(redoStack)));
6049
+ setHistory(history.slice(0, -1));
6050
+ setElements(previousState);
6051
+ }
6052
+ }, [history, elements, redoStack, setRedoStack, setHistory, setElements]);
6053
+ var redo = useCallback(function () {
6054
+ if (redoStack.length > 0) {
6055
+ setSelectedElement(null);
6056
+ var nextState = redoStack[0];
6057
+ setHistory([].concat(_toConsumableArray(history), [elements]));
6058
+ setRedoStack(redoStack.slice(1));
6059
+ setElements(nextState);
6060
+ }
6061
+ }, [history, elements, redoStack, setHistory, setRedoStack, setElements]);
6040
6062
  useImperativeHandle(ref, function () {
6041
6063
  return {
6042
6064
  onSave: function () {
@@ -6076,6 +6098,61 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6076
6098
  }()
6077
6099
  };
6078
6100
  });
6101
+ useEffect(function () {
6102
+ var handleKeyDown = function handleKeyDown(e) {
6103
+ var isMac = navigator.platform.toUpperCase().includes('MAC');
6104
+ var ctrlOrCmd = isMac ? e.metaKey : e.ctrlKey;
6105
+ var shiftKey = e.shiftKey;
6106
+
6107
+ // Delete
6108
+ if ((e.key === 'Delete' || e.key === 'Backspace') && selectedElement && (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.draggable) !== false && !['INPUT', 'TEXTAREA'].includes(document.activeElement.tagName) && !document.activeElement.isContentEditable) {
6109
+ e.preventDefault();
6110
+ onDeleteSelectedElement();
6111
+ }
6112
+
6113
+ // Copy
6114
+ if (ctrlOrCmd && e.key.toLowerCase() === 'c') {
6115
+ if (selectedElement) {
6116
+ e.preventDefault();
6117
+ var copied = _objectSpread2({}, selectedElement);
6118
+ delete copied.ref;
6119
+ setCopiedElement(copied);
6120
+ }
6121
+ }
6122
+
6123
+ // Paste
6124
+ if (ctrlOrCmd && e.key.toLowerCase() === 'v') {
6125
+ if (copiedElement) {
6126
+ e.preventDefault();
6127
+ var newElement = _objectSpread2(_objectSpread2({}, copiedElement), {}, {
6128
+ id: "element".concat(Date.now()),
6129
+ x: copiedElement.x + 10,
6130
+ y: copiedElement.y + 10,
6131
+ draggable: true
6132
+ });
6133
+ addElement(newElement);
6134
+ setSelectedElement(newElement);
6135
+ }
6136
+ }
6137
+
6138
+ // Undo: Ctrl/Cmd + Z
6139
+ if (ctrlOrCmd && !shiftKey && e.key.toLowerCase() === 'z') {
6140
+ e.preventDefault();
6141
+ undo();
6142
+ }
6143
+
6144
+ // Redo: Ctrl/Cmd + Shift + Z or Ctrl + Y
6145
+ if (ctrlOrCmd && shiftKey && e.key.toLowerCase() === 'z' || ctrlOrCmd && e.key.toLowerCase() === 'y') {
6146
+ e.preventDefault();
6147
+ redo();
6148
+ }
6149
+ };
6150
+ window.addEventListener('keydown', handleKeyDown);
6151
+ return function () {
6152
+ window.removeEventListener('keydown', handleKeyDown);
6153
+ };
6154
+ }, [selectedElement, copiedElement, undo, redo]);
6155
+
6079
6156
  // console.log(isPropValid('onClick'));
6080
6157
  useEffect(function () {
6081
6158
  setLanguageLocale(validateLocale(locale));
@@ -6322,27 +6399,6 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6322
6399
  }
6323
6400
  setBackgroundImageOpacity(val);
6324
6401
  };
6325
- var undo = useCallback(function () {
6326
- if (history.length > 0) {
6327
- // if (history.length === 1) {
6328
- // setSelectedElement(null);
6329
- // }
6330
- setSelectedElement(null);
6331
- var previousState = history[history.length - 1];
6332
- setRedoStack([elements].concat(_toConsumableArray(redoStack)));
6333
- setHistory(history.slice(0, -1));
6334
- setElements(previousState);
6335
- }
6336
- }, [history, elements, redoStack, setRedoStack, setHistory, setElements]);
6337
- var redo = useCallback(function () {
6338
- if (redoStack.length > 0) {
6339
- setSelectedElement(null);
6340
- var nextState = redoStack[0];
6341
- setHistory([].concat(_toConsumableArray(history), [elements]));
6342
- setRedoStack(redoStack.slice(1));
6343
- setElements(nextState);
6344
- }
6345
- }, [history, elements, redoStack, setHistory, setRedoStack, setElements]);
6346
6402
  var onSelectElement = function onSelectElement(element) {
6347
6403
  if (isElementShape(element)) {
6348
6404
  setSelectedTab(sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.shape);
@@ -6442,7 +6498,22 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6442
6498
  saveHistory(_toConsumableArray(copyElements));
6443
6499
  };
6444
6500
  var createNewTemplate = function createNewTemplate() {
6445
- var elems = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _toConsumableArray(defaultElements);
6501
+ var elems = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [].concat(_toConsumableArray(defaultElements), [{
6502
+ type: elementTypes.qr,
6503
+ id: "element".concat(Date.now() + 1),
6504
+ width: 110,
6505
+ height: 110,
6506
+ x: 194.5,
6507
+ y: 280,
6508
+ fill: theme.color.green_80D965,
6509
+ stroke: theme.color.black,
6510
+ strokeWidth: 2,
6511
+ draggable: true,
6512
+ qrLogo: null,
6513
+ qrText: qrLink,
6514
+ opacity: 1,
6515
+ logoVisible: false
6516
+ }]);
6446
6517
  setElements(_toConsumableArray(elems));
6447
6518
  setHistory([]);
6448
6519
  setRedoStack([]);