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