@threedddplus/logoeditor 0.0.173 → 0.0.175

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.
@@ -14681,6 +14681,9 @@ var SaveDesign = function SaveDesign(_ref) {
14681
14681
  var _useState = useState(''),
14682
14682
  designNameValidation = _useState[0],
14683
14683
  setDesignNameValidation = _useState[1];
14684
+ //@ts-ignore
14685
+ var tempCanvas = new fabric.Canvas();
14686
+ var dataURL = '';
14684
14687
  var _useState2 = useState(false),
14685
14688
  commaInTagName = _useState2[0],
14686
14689
  setCommaInTagName = _useState2[1];
@@ -14712,21 +14715,110 @@ var SaveDesign = function SaveDesign(_ref) {
14712
14715
  return nameValidation;
14713
14716
  } else return true;
14714
14717
  };
14718
+ /*
14719
+ const getBounds = (objects)=> {
14720
+ const minX = Math.min(...objects.map(obj => obj.left));
14721
+ const minY = Math.min(...objects.map(obj => obj.top));
14722
+ const maxX = Math.max(...objects.map(obj => obj.left + obj.width * obj.scaleX));
14723
+ const maxY = Math.max(...objects.map(obj => obj.top + obj.height * obj.scaleY));
14724
+ return {
14725
+ minX: minX,
14726
+ minY: minY,
14727
+ width: maxX - minX,
14728
+ height: maxY - minY
14729
+ };
14730
+ }
14731
+ const cropAndConvert = async()=>{
14732
+ const activeObjects = canvas.getObjects();
14733
+
14734
+ if (activeObjects.length > 0) {
14735
+ // Create a new canvas element to handle the selected objects
14736
+ const croppedCanvas = document.createElement('canvas');
14737
+ const croppedContext = croppedCanvas.getContext('2d');
14738
+ // Calculate the size of the new canvas to fit all selected objects
14739
+ const bounds = getBounds(activeObjects);
14740
+ croppedCanvas.width = bounds.width;
14741
+ croppedCanvas.height = bounds.height;
14742
+ // Draw each object onto the new canvas
14743
+ activeObjects.forEach((obj) => {
14744
+ const left = obj.left - bounds.minX;
14745
+ const top = obj.top - bounds.minY;
14746
+ if (obj.type === 'group') {
14747
+ obj._objects.forEach(element => {
14748
+ const elLeft = element.left + obj.left - bounds.minX;
14749
+ const elTop = element.top + obj.top - bounds.minY;
14750
+ console.log(element.type)
14751
+ if (element.type === 'image') {
14752
+ const imgElement = element._element;
14753
+ croppedContext.drawImage(
14754
+ imgElement,
14755
+ 0, 0, imgElement.width, imgElement.height,
14756
+ elLeft, elTop,
14757
+ element.width * element.scaleX, element.height * element.scaleY
14758
+ );
14759
+ } else if (element.type === 'text') {
14760
+ croppedContext.font = `${element.fontSize}px ${element.fontFamily}`;
14761
+ croppedContext.fillStyle = element.fill;
14762
+ croppedContext.fillText(
14763
+ element.text,
14764
+ elLeft,
14765
+ elTop + element.fontSize
14766
+ );
14767
+ }else if (element.type === 'path') {
14768
+ const path = new Path2D(element.path);
14769
+ croppedContext.fillStyle = element.fill;
14770
+ croppedContext.translate(elLeft, elTop);
14771
+ croppedContext.fill(path);
14772
+ croppedContext.translate(-elLeft, -elTop);
14773
+ }
14774
+ });
14775
+ }
14776
+ if (obj.type === 'image') {
14777
+ const imgElement = obj._element;
14778
+ croppedContext.drawImage(
14779
+ imgElement,
14780
+ 0, 0, imgElement.width, imgElement.height,
14781
+ left, top,
14782
+ obj.width * obj.scaleX, obj.height * obj.scaleY
14783
+ );
14784
+ } else if (obj.type === 'text') {
14785
+ croppedContext.font = `${obj.fontSize}px ${obj.fontFamily}`;
14786
+ croppedContext.fillStyle = obj.fill;
14787
+ croppedContext.fillText(
14788
+ obj.text,
14789
+ left,
14790
+ top + obj.fontSize
14791
+ );
14792
+ }else if (obj.type === 'path') {
14793
+ const path = new Path2D(obj.path);
14794
+ croppedContext.fillStyle = obj.fill;
14795
+ croppedContext.translate(left, top);
14796
+ croppedContext.fill(path);
14797
+ croppedContext.translate(-left, -top);
14798
+ }
14799
+ });
14800
+
14801
+
14802
+ // Convert the new canvas to a data URL in JPG format and download it
14803
+ const dataUrl = croppedCanvas.toDataURL();
14804
+ console.log(dataUrl);
14805
+ }
14806
+ }*/
14715
14807
  var onSaveHandler = /*#__PURE__*/function () {
14716
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
14717
- var canvasGetobject, pathTextsData, dataURL, canvasData, pathTextsKeys, i, pathData, o, obj, dataCh, S3UrlPath, canvasSvg, raw, horizontalLine, verticalLine;
14718
- return _regeneratorRuntime().wrap(function _callee$(_context) {
14719
- while (1) switch (_context.prev = _context.next) {
14808
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
14809
+ var canvasGetobject, pathTextsData, selectAllCanvasObjects, canvasData, pathTextsKeys, i, pathData, o, obj, dataCh, S3UrlPath, canvasSvg, raw, horizontalLine, verticalLine;
14810
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
14811
+ while (1) switch (_context2.prev = _context2.next) {
14720
14812
  case 0:
14721
14813
  if (isSaving) {
14722
- _context.next = 30;
14814
+ _context2.next = 31;
14723
14815
  break;
14724
14816
  }
14725
14817
  if (checkValidations()) {
14726
- _context.next = 3;
14818
+ _context2.next = 3;
14727
14819
  break;
14728
14820
  }
14729
- return _context.abrupt("return");
14821
+ return _context2.abrupt("return");
14730
14822
  case 3:
14731
14823
  setIsSaving(true);
14732
14824
  canvas.backgroundColor = null;
@@ -14768,12 +14860,68 @@ var SaveDesign = function SaveDesign(_ref) {
14768
14860
  };
14769
14861
  }
14770
14862
  });
14771
- dataURL = canvas.toDataURL();
14772
- canvasData = use3dddPlus.getState().applyColorFill(); // const canvasGetobject = canvas.getObjects();
14773
- // canvasData.objects.forEach((element, index) => {
14774
- // element.colorFill = canvasGetobject[index].colorFill;
14775
- // });
14776
- // looping through the text shape objects & taking out text data to inject in the canvas json data & save
14863
+ selectAllCanvasObjects = function selectAllCanvasObjects(padding) {
14864
+ if (padding === void 0) {
14865
+ padding = 20;
14866
+ }
14867
+ //@ts-ignore
14868
+ return new Promise(function (resolve, reject) {
14869
+ var objs = canvas.getObjects().map(function (obj) {
14870
+ return obj.set('active', true);
14871
+ });
14872
+ var group = new fabric.ActiveSelection(objs, {
14873
+ canvas: canvas,
14874
+ originX: 'center',
14875
+ originY: 'center'
14876
+ });
14877
+ canvas.setActiveObject(group);
14878
+ canvas.requestRenderAll();
14879
+ group.clone(function (clonedGroup) {
14880
+ var boundingRect = clonedGroup.getBoundingRect();
14881
+ var paddedWidth = boundingRect.width + 2 * padding;
14882
+ var paddedHeight = boundingRect.height + 2 * padding;
14883
+ tempCanvas.setWidth(paddedWidth);
14884
+ tempCanvas.setHeight(paddedHeight);
14885
+ clonedGroup.left = padding + boundingRect.left;
14886
+ clonedGroup.top = padding + boundingRect.top;
14887
+ clonedGroup.setCoords();
14888
+ tempCanvas.add(clonedGroup);
14889
+ clonedGroup.center();
14890
+ clonedGroup.setCoords();
14891
+ tempCanvas.requestRenderAll();
14892
+ var dataURL = tempCanvas.toDataURL();
14893
+ tempCanvas.clear();
14894
+ tempCanvas.dispose();
14895
+ clonedGroup = null;
14896
+ canvas.discardActiveObject();
14897
+ resolve(dataURL);
14898
+ });
14899
+ });
14900
+ };
14901
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
14902
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
14903
+ while (1) switch (_context.prev = _context.next) {
14904
+ case 0:
14905
+ _context.prev = 0;
14906
+ _context.next = 3;
14907
+ return selectAllCanvasObjects();
14908
+ case 3:
14909
+ dataURL = _context.sent;
14910
+ console.log(dataURL); // This will log the data URL
14911
+ _context.next = 10;
14912
+ break;
14913
+ case 7:
14914
+ _context.prev = 7;
14915
+ _context.t0 = _context["catch"](0);
14916
+ console.error('Error capturing canvas objects:', _context.t0);
14917
+ case 10:
14918
+ case "end":
14919
+ return _context.stop();
14920
+ }
14921
+ }, _callee, null, [[0, 7]]);
14922
+ }))();
14923
+ // const dataURL = canvas.toDataURL();
14924
+ canvasData = use3dddPlus.getState().applyColorFill(); // looping through the text shape objects & taking out text data to inject in the canvas json data & save
14777
14925
  pathTextsKeys = Object.keys(pathTextsData);
14778
14926
  for (i = 0; i < pathTextsKeys.length; i++) {
14779
14927
  pathData = pathTextsData[pathTextsKeys[i]];
@@ -14785,10 +14933,10 @@ var SaveDesign = function SaveDesign(_ref) {
14785
14933
  }
14786
14934
  }
14787
14935
  dataCh = JSON.stringify(canvasData); // console.log('SAVE-->',dataCh);
14788
- _context.next = 16;
14936
+ _context2.next = 17;
14789
14937
  return uploadLogoConfig(dataCh, use3dddPlus.getState().customerId);
14790
- case 16:
14791
- S3UrlPath = _context.sent;
14938
+ case 17:
14939
+ S3UrlPath = _context2.sent;
14792
14940
  canvasSvg = canvas.toSVG();
14793
14941
  closeModal('', false, '', {});
14794
14942
  raw = JSON.stringify({
@@ -14832,18 +14980,18 @@ var SaveDesign = function SaveDesign(_ref) {
14832
14980
  setIsSaving(false);
14833
14981
  console.log('ERROR in Save Logo:', ex);
14834
14982
  });
14835
- case 30:
14983
+ case 31:
14836
14984
  use3dddPlus.setState({
14837
14985
  logoName: ''
14838
14986
  });
14839
14987
  use3dddPlus.setState({
14840
14988
  logoTag: []
14841
14989
  });
14842
- case 32:
14990
+ case 33:
14843
14991
  case "end":
14844
- return _context.stop();
14992
+ return _context2.stop();
14845
14993
  }
14846
- }, _callee);
14994
+ }, _callee2);
14847
14995
  }));
14848
14996
  return function onSaveHandler() {
14849
14997
  return _ref2.apply(this, arguments);