@threedddplus/logoeditor 0.0.111 → 0.0.112-0

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.
@@ -3973,19 +3973,23 @@ var converterSlice = function converterSlice(set, get) {
3973
3973
  if (canvasToLoad === void 0) {
3974
3974
  canvasToLoad = use3dddPlus.getState().popupCanv;
3975
3975
  }
3976
- fabric.loadSVGFromString(String(svgstr), function (objects, options) {
3977
- var _canvasToLoad, _loadedObject$id;
3976
+ fabric.loadSVGFromString(
3977
+ //@ts-ignore
3978
+ new String(svgstr), function (objects, options) {
3979
+ var _canvasToLoad, _use3dddPlus$getState;
3978
3980
  var svgData = getDesignConceptSVGData(svgstr);
3979
3981
  console.log(svgData);
3980
3982
  var loadedObject = fabric.util.groupSVGElements(objects, options);
3981
- // Process each SVG data item to adjust object properties
3982
3983
  svgData.forEach(function (resItem) {
3983
- var path, node;
3984
- objects.forEach(function (item) {
3985
- // @ts-ignore
3984
+ var path;
3985
+ var node;
3986
+ objects == null ? void 0 : objects.forEach(function (item) {
3987
+ //@ts-ignore
3988
+ // console.log(item.id, res[0].path.replace("#", ""));
3989
+ //@ts-ignore
3986
3990
  if (item.id === resItem.path) {
3987
3991
  path = item;
3988
- // @ts-ignore
3992
+ //@ts-ignore
3989
3993
  } else if (item.id === resItem.element) {
3990
3994
  node = item;
3991
3995
  }
@@ -3993,100 +3997,247 @@ var converterSlice = function converterSlice(set, get) {
3993
3997
  if (node && path) {
3994
3998
  var _resItem$node$childre, _resItem$node$childre2;
3995
3999
  var fontSize = (_resItem$node$childre = resItem.node.children[0]) == null ? void 0 : (_resItem$node$childre2 = _resItem$node$childre.getAttribute('font-size')) == null ? void 0 : _resItem$node$childre2.replace('px', '');
4000
+ // console.log(
4001
+ // 'fontSize',
4002
+ // resItem.node.children[0],
4003
+ // fontSize,
4004
+ // path.top,
4005
+ // path.left,
4006
+ // path.textWidth,
4007
+ // path.width
4008
+ // );
3996
4009
  node.set({
3997
4010
  path: path,
3998
4011
  top: path.top,
3999
4012
  left: path.left,
4000
4013
  pathStartOffset: path.width * parseFloat(resItem.node.startOffset.baseVal.valueAsString) / 100,
4014
+ // fontFamily: resItem.node.children[0].getAttribute("font-family"),
4001
4015
  fontSize: fontSize || 25
4002
4016
  });
4003
4017
  node.setCoords();
4004
4018
  }
4005
4019
  });
4006
- // Adjust the loaded object's dimensions based on its content
4020
+ // loadedObject.scaleToHeight(300);
4021
+ // loadedObject.scaleToWidth(300);
4007
4022
  var canvas = (_canvasToLoad = canvasToLoad) != null ? _canvasToLoad : use3dddPlus.getState().popupCanv;
4008
- adjustObjectSize(loadedObject, canvas);
4009
- // Process and analyze color data from the loaded objects
4010
- // @ts-ignore
4011
- var objImage = loadedObject._objects;
4023
+ var canvasWidth = canvas.width;
4024
+ var canvasHeight = canvas.height;
4025
+ var val = 300;
4026
+ if ((loadedObject.width <= 200 || loadedObject.height <= 200) && (loadedObject.minX === -0 || loadedObject.minX)) {
4027
+ val = 600;
4028
+ }
4029
+ if (Math.ceil(loadedObject.width + loadedObject.left + 45) >= Math.floor(canvasWidth)) {
4030
+ loadedObject.scaleToWidth(val);
4031
+ } else if (Math.ceil(loadedObject.height + loadedObject.top + 10) >= Math.floor(canvasHeight)) {
4032
+ loadedObject.scaleToHeight(val);
4033
+ } else if (Math.ceil(loadedObject.left) < 0) {
4034
+ loadedObject.scaleToWidth(val);
4035
+ } else if (Math.ceil(loadedObject.top) < 0) {
4036
+ loadedObject.scaleToHeight(val);
4037
+ } else if (loadedObject.width < 200 || loadedObject.height < 200) {
4038
+ loadedObject.scaleToWidth(val);
4039
+ }
4040
+ //@ts-ignore
4041
+ var objImage = loadedObject == null ? void 0 : loadedObject._objects;
4042
+ var _Fills = [];
4012
4043
  var fillCounts = {};
4013
4044
  var colorObjects = {};
4014
- objImage.forEach(function (ele) {
4015
- ele.set({
4016
- strokeWidth: 0,
4017
- id: ele.id || use3dddPlus.getState().guid()
4018
- });
4019
- if (typeof ele.fill === 'string' && ele.fill !== '') {
4020
- var fillColor = ele.fill.toString();
4021
- var pixelCount = ele.width * ele.height;
4022
- fillCounts[fillColor] = (fillCounts[fillColor] || 0) + pixelCount;
4023
- if (!colorObjects[fillColor]) {
4024
- colorObjects[fillColor] = {
4025
- objects: []
4026
- };
4045
+ if (objImage) {
4046
+ objImage.forEach(function (ele) {
4047
+ var _ele$id;
4048
+ ele.set({
4049
+ strokeWidth: 0
4050
+ });
4051
+ ele.set({
4052
+ id: (_ele$id = ele.id) != null ? _ele$id : use3dddPlus.getState().guid()
4053
+ });
4054
+ if (typeof ele.fill === 'string' && ele.fill !== '') {
4055
+ set({
4056
+ fillColor: [].concat(ele.fill)
4057
+ });
4058
+ var fillColor = ele.fill.toString();
4059
+ var pixelCount = ele.width * ele.height;
4060
+ fillCounts[fillColor] = (fillCounts[fillColor] || 0) + pixelCount;
4061
+ if (colorObjects[fillColor]) {
4062
+ colorObjects[fillColor].objects.push(ele.get('id'));
4063
+ } else {
4064
+ colorObjects[fillColor] = {
4065
+ objects: [ele.get('id')]
4066
+ };
4067
+ }
4027
4068
  }
4028
- colorObjects[fillColor].objects.push(ele.id);
4029
- }
4069
+ });
4070
+ }
4071
+ use3dddPlus.setState({
4072
+ loadedObject: objImage
4030
4073
  });
4031
- // Determine top used colors and map them
4032
4074
  var sortedFillColors = Object.keys(fillCounts).sort(function (a, b) {
4033
4075
  return fillCounts[b] - fillCounts[a];
4034
4076
  });
4035
4077
  var topColors = sortedFillColors.slice(0, colorValue);
4036
4078
  var colorObjectsHex = {};
4037
- topColors.forEach(function (e) {
4038
- var colorHex = e.startsWith('#') ? e : get().RGBToHex(e);
4039
- colorObjectsHex[colorHex] = {
4040
- objects: colorObjects[e].objects
4041
- };
4042
- colorObjects[e].hex = colorHex;
4079
+ topColors.map(function (e) {
4080
+ if (e.search('#') === -1) {
4081
+ var _C = get().RGBToHex(e);
4082
+ _Fills.push(_C);
4083
+ colorObjects[e].hex = _C;
4084
+ colorObjectsHex[_C] = colorObjects[e];
4085
+ } else {
4086
+ _Fills.push(e);
4087
+ colorObjects[e].hex = e;
4088
+ colorObjectsHex[e] = colorObjects[e];
4089
+ }
4043
4090
  });
4044
- // Assign colors to objects and adjust display settings
4045
- objImage.forEach(function (ele) {
4046
- ele.set({
4047
- fill: colorObjects[ele.fill.toString()].hex
4091
+ //@ts-ignore
4092
+ set({
4093
+ fillColor: get().removeDuplicates(_Fills)
4094
+ });
4095
+ //@ts-ignore
4096
+ _Fills = get().removeDuplicates(_Fills);
4097
+ var fillColors = {};
4098
+ _Fills.map(function (item, index) {
4099
+ fillColors['layer' + index] = item;
4100
+ });
4101
+ use3dddPlus.setState({
4102
+ colorFill: fillColors
4103
+ });
4104
+ // Update colors in default color fill
4105
+ var defaultCF = [];
4106
+ Object.keys(fillColors).map(function (cf) {
4107
+ defaultCF.push({
4108
+ property: cf,
4109
+ "default": fillColors[cf],
4110
+ updated: fillColors[cf],
4111
+ objects: colorObjectsHex[fillColors[cf]].objects
4112
+ });
4113
+ });
4114
+ use3dddPlus.setState({
4115
+ defaultColorFill: defaultCF
4116
+ });
4117
+ use3dddPlus.setState({
4118
+ defaultColorFillCopy: defaultCF
4119
+ });
4120
+ function euclideanDistance(color1, color2) {
4121
+ var c1 = new fabric.Color(color1).getSource();
4122
+ var c2 = new fabric.Color(color2).getSource();
4123
+ var diffR = c1[0] - c2[0];
4124
+ var diffG = c1[1] - c2[1];
4125
+ var diffB = c1[2] - c2[2];
4126
+ return Math.sqrt(Math.pow(diffR, 2) + Math.pow(diffG, 2) + Math.pow(diffB, 2));
4127
+ }
4128
+ var colorMap = {};
4129
+ sortedFillColors.forEach(function (color) {
4130
+ var closestColor = topColors.reduce(function (prev, curr) {
4131
+ var prevDiff = euclideanDistance(color, prev);
4132
+ var currDiff = euclideanDistance(color, curr);
4133
+ return prevDiff < currDiff ? prev : curr;
4048
4134
  });
4135
+ colorMap[color] = closestColor;
4049
4136
  });
4137
+ if (objImage) {
4138
+ objImage.forEach(function (ele) {
4139
+ ele.set({
4140
+ fill: colorMap[ele.fill.toString()]
4141
+ });
4142
+ });
4143
+ }
4050
4144
  loadedObject.set({
4145
+ colorFill: fillColors,
4051
4146
  //@ts-ignore
4052
- colorFill: Object.keys(colorObjectsHex).reduce(function (acc, hex) {
4053
- var _extends2;
4054
- return _extends({}, acc, (_extends2 = {}, _extends2[hex] = colorObjectsHex[hex].objects, _extends2));
4055
- }, {}),
4056
- hasControls: false
4147
+ setControlVisible: false
4057
4148
  });
4058
- // loadedObject.setControlVisible()
4059
- // @ts-ignore
4060
- loadedObject.id = (_loadedObject$id = loadedObject.id) != null ? _loadedObject$id : use3dddPlus.getState().guid();
4149
+ loadedObject.id = use3dddPlus.getState().guid();
4150
+ // loadedObject = new fabric.Group(objImage, options);
4151
+ (_use3dddPlus$getState = use3dddPlus.getState().popupCanv) == null ? void 0 : _use3dddPlus$getState.clear();
4152
+ // use3dddPlus
4153
+ // .getState()
4154
+ // .popupCanv.setBackgroundColor(
4155
+ // {
4156
+ // source:
4157
+ // 'https://storage.googleapis.com/3ddplusgcp/logoEditor/assets/icons/checkerBoxBG.png',
4158
+ // repeat: 'repeat',
4159
+ // },
4160
+ // use3dddPlus
4161
+ // .getState()
4162
+ // .popupCanv.renderAll.bind(use3dddPlus.getState().popupCanv),
4163
+ // {
4164
+ // backgroundImageOpacity: 1,
4165
+ // scaleX: 1.1,
4166
+ // scaleY: 1.1,
4167
+ // backgroundRepeat: 'repeat',
4168
+ // }
4169
+ // );
4170
+ // const canvas = use3dddPlus.getState().popupCanv;
4171
+ var gridSize = 15; // Size of each grid cell
4172
+ // var canvasWidth = canvas.width;
4173
+ // var canvasHeight = canvas.height;
4174
+ var numCols = Math.ceil(canvasWidth / gridSize);
4175
+ var numRows = Math.ceil(canvasHeight / gridSize);
4176
+ // Function to create a rectangle with checkerboard pattern
4177
+ function createCheckerboardRect(left, top, width, height, isEvenRow) {
4178
+ var rect = new fabric.Rect({
4179
+ left: left,
4180
+ top: top,
4181
+ width: width,
4182
+ height: height,
4183
+ type: 'line',
4184
+ lockMovementX: true,
4185
+ lockMovementY: true,
4186
+ lockScalingX: true,
4187
+ lockScalingY: true,
4188
+ // backgroundColor:'#ccc',
4189
+ fill: isEvenRow && left / gridSize % 2 === 0 || !isEvenRow && left / gridSize % 2 !== 0 ? '#ffffff' : '#dadadac7'
4190
+ });
4191
+ return rect;
4192
+ }
4193
+ // Create grid lines
4194
+ for (var i = 0; i < numCols; i++) {
4195
+ var x = i * gridSize;
4196
+ canvas.add(new fabric.Line([x, 0, x, canvasHeight], {
4197
+ stroke: '#dadadac7',
4198
+ selectable: false,
4199
+ lockMovementX: true,
4200
+ lockMovementY: true,
4201
+ lockScalingX: true,
4202
+ lockScalingY: true,
4203
+ type: 'line'
4204
+ }));
4205
+ }
4206
+ for (var j = 0; j < numRows; j++) {
4207
+ var y = j * gridSize;
4208
+ canvas.add(new fabric.Line([0, y, canvasWidth, y], {
4209
+ stroke: '#FFFFFF',
4210
+ selectable: false,
4211
+ lockMovementX: true,
4212
+ lockMovementY: true,
4213
+ lockScalingX: true,
4214
+ lockScalingY: true,
4215
+ type: 'line'
4216
+ }));
4217
+ }
4218
+ // Fill grid with checkerboard pattern
4219
+ for (var i = 0; i < numCols; i++) {
4220
+ for (var j = 0; j < numRows; j++) {
4221
+ var _use3dddPlus$getState2, _use3dddPlus$getState3;
4222
+ var left = i * gridSize;
4223
+ var top = j * gridSize;
4224
+ var isEvenRow = j % 2 === 0;
4225
+ var rect = createCheckerboardRect(left, top, gridSize, gridSize, isEvenRow);
4226
+ (_use3dddPlus$getState2 = use3dddPlus.getState()) == null ? void 0 : (_use3dddPlus$getState3 = _use3dddPlus$getState2.popupCanv) == null ? void 0 : _use3dddPlus$getState3.add(rect);
4227
+ }
4228
+ }
4061
4229
  canvas.add(loadedObject).renderAll();
4062
4230
  canvas.centerObject(loadedObject);
4063
4231
  canvas.setActiveObject(loadedObject);
4064
4232
  use3dddPlus.setState({
4065
- activeSelection: loadedObject,
4233
+ activeSelection: loadedObject
4234
+ });
4235
+ use3dddPlus.setState({
4066
4236
  loading: false
4067
4237
  });
4068
- // Update canvas with modifications
4069
4238
  use3dddPlus.getState().popUpCanvasUpdateModification(true);
4070
4239
  });
4071
4240
  };
4072
- function adjustObjectSize(loadedObject, canvas) {
4073
- var scale = 300;
4074
- var canvasWidth = canvas.width;
4075
- var canvasHeight = canvas.height;
4076
- if (loadedObject.width <= 200 || loadedObject.height <= 200) {
4077
- scale = 600;
4078
- }
4079
- // Scale the object to fit within the canvas dimensions
4080
- if (Math.ceil(loadedObject.width + loadedObject.left + 45) >= Math.floor(canvasWidth)) {
4081
- loadedObject.scaleToWidth(scale);
4082
- } else if (Math.ceil(loadedObject.height + loadedObject.top + 10) >= Math.floor(canvasHeight)) {
4083
- loadedObject.scaleToHeight(scale);
4084
- } else if (Math.ceil(loadedObject.left) < 0 || Math.ceil(loadedObject.top) < 0) {
4085
- loadedObject.scaleToWidth(scale);
4086
- } else if (loadedObject.width < 200 || loadedObject.height < 200) {
4087
- loadedObject.scaleToWidth(scale);
4088
- }
4089
- }
4090
4241
  // function convertToFabricUnits(valueWithUnit, canvasHeight = 500) {
4091
4242
  // // Parse the value and unit from the string
4092
4243
  // const matches = valueWithUnit.match(/^([\d.]+)(\D+)$/);
@@ -10280,12 +10431,12 @@ var style = {
10280
10431
  // border: '1px solid #BEBEBE',
10281
10432
  border: state.isFocused ? 0 : 0,
10282
10433
  // This line disable the blue border
10283
- boxShadow: state.isFocused ? 'none' : 'none',
10434
+ boxShadow: state.isFocused ? 'none !important' : 'none !important',
10284
10435
  '&:hover': {
10285
10436
  border: state.isFocused ? 0 : 0
10286
10437
  },
10287
10438
  '&:focus': {
10288
- boxShadow: 'none'
10439
+ boxShadow: 'none !important'
10289
10440
  }
10290
10441
  });
10291
10442
  },