kitchen-simulator 3.15.0 → 3.16.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.
Binary file
@@ -838,85 +838,88 @@ var Project = /*#__PURE__*/function () {
838
838
  state = state.merge({
839
839
  catalog: catalog
840
840
  });
841
- var _viewer2D = state.viewer2D;
842
- var viewer = _viewer2D.toJS();
843
- width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
844
- height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
845
- var layerID = state.scene.selectedLayer;
846
841
  state = Item.setInitialDoorStyle(state, doorStyle).updatedState;
847
- if (isEmpty(viewer)) return {
848
- updatedState: state
849
- };
850
- var halfWidth = width / 2;
851
- var halfHeight = height / 2;
852
- var viewerWidth = viewer.SVGWidth;
853
- var viewerHeight = viewer.SVGHeight;
854
- var centerPos = {
855
- x: viewerWidth / 2,
856
- y: viewerHeight / 2
857
- };
858
- var vtLB = {
859
- x: centerPos.x - halfWidth,
860
- y: centerPos.y - halfHeight
861
- };
862
- var vtRB = {
863
- x: centerPos.x + halfWidth,
864
- y: centerPos.y - halfHeight
865
- };
866
- var vtRT = {
867
- x: centerPos.x + halfWidth,
868
- y: centerPos.y + halfHeight
869
- };
870
- var vtLT = {
871
- x: centerPos.x - halfWidth,
872
- y: centerPos.y + halfHeight
873
- };
874
- var vertices = [];
875
- switch (roomShapeType) {
876
- case 'rectangle':
877
- vertices = [vtLB, vtLT, vtRT, vtRB];
878
- break;
879
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
880
- vertices = [vtLB, vtRB, vtRT];
881
- break;
882
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
883
- vertices = [vtRB, vtRT, vtLT];
884
- break;
885
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
886
- vertices = [vtRT, vtLT, vtLB];
887
- break;
888
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
889
- vertices = [vtLT, vtLB, vtRB];
890
- break;
891
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
892
- vertices = [vtRB, vtRT, vtLT, vtLB];
893
- break;
894
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
895
- vertices = [vtLB, vtRB, vtRT, vtLT];
896
- break;
897
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
898
- vertices = [vtLT, vtLB, vtRB, vtRT];
899
- break;
900
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
901
- vertices = [vtRT, vtLT, vtLB, vtRB];
902
- break;
903
- }
904
- for (var i = 0; i < vertices.length - 1; i++) {
905
- state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
906
- }
907
- if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
908
- state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
909
- }
910
- var layer = state.getIn(['scene', 'layers', layerID]);
911
- var lines = layer.getIn(['lines']).toJS();
912
- var drawingInfo = {};
913
- var lineKey = Object.keys(lines);
914
- for (var _i = 0; _i < lineKey.length; _i++) {
915
- if (!isEmpty(lineKey)) {
916
- drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
842
+ var layerID = state.scene.selectedLayer;
843
+ if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !isEmpty(width) && !isEmpty(height) && width !== 0 && height !== 0) {
844
+ var _viewer2D = state.viewer2D;
845
+ var viewer = _viewer2D.toJS();
846
+ if (isEmpty(viewer)) return {
847
+ updatedState: state
848
+ };
849
+ width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
850
+ height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
851
+ var halfWidth = width / 2;
852
+ var halfHeight = height / 2;
853
+ var viewerWidth = viewer.SVGWidth;
854
+ var viewerHeight = viewer.SVGHeight;
855
+ var centerPos = {
856
+ x: viewerWidth / 2,
857
+ y: viewerHeight / 2
858
+ };
859
+ var vtLB = {
860
+ x: centerPos.x - halfWidth,
861
+ y: centerPos.y - halfHeight
862
+ };
863
+ var vtRB = {
864
+ x: centerPos.x + halfWidth,
865
+ y: centerPos.y - halfHeight
866
+ };
867
+ var vtRT = {
868
+ x: centerPos.x + halfWidth,
869
+ y: centerPos.y + halfHeight
870
+ };
871
+ var vtLT = {
872
+ x: centerPos.x - halfWidth,
873
+ y: centerPos.y + halfHeight
874
+ };
875
+ var vertices = [];
876
+ switch (roomShapeType) {
877
+ case 'rectangle':
878
+ vertices = [vtLB, vtLT, vtRT, vtRB];
879
+ break;
880
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
881
+ vertices = [vtLB, vtRB, vtRT];
882
+ break;
883
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
884
+ vertices = [vtRB, vtRT, vtLT];
885
+ break;
886
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
887
+ vertices = [vtRT, vtLT, vtLB];
888
+ break;
889
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
890
+ vertices = [vtLT, vtLB, vtRB];
891
+ break;
892
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
893
+ vertices = [vtRB, vtRT, vtLT, vtLB];
894
+ break;
895
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
896
+ vertices = [vtLB, vtRB, vtRT, vtLT];
897
+ break;
898
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
899
+ vertices = [vtLT, vtLB, vtRB, vtRT];
900
+ break;
901
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
902
+ vertices = [vtRT, vtLT, vtLB, vtRB];
903
+ break;
904
+ }
905
+ for (var i = 0; i < vertices.length - 1; i++) {
906
+ state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
907
+ }
908
+ if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
909
+ state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
910
+ }
911
+ var layer = state.getIn(['scene', 'layers', layerID]);
912
+ var lines = layer.getIn(['lines']).toJS();
913
+ var drawingInfo = {};
914
+ var lineKey = Object.keys(lines);
915
+ for (var _i = 0; _i < lineKey.length; _i++) {
916
+ if (!isEmpty(lineKey)) {
917
+ drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
918
+ }
919
+ state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
917
920
  }
918
- state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
919
921
  }
922
+
920
923
  // copy keeped measurement unit
921
924
  state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
922
925
  state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
@@ -32,6 +32,7 @@ export default function Ruler(_ref) {
32
32
  transform = _ref.transform,
33
33
  style = _ref.style;
34
34
  var distanceText = convert(length).from(unit).to(rulerUnit).toFixed(0);
35
+ distanceText = (Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100).toFixed(0);
35
36
  var textLength = (distanceText.length + layer.unit.length) * 9;
36
37
  return /*#__PURE__*/React.createElement("g", {
37
38
  transform: transform
@@ -52,7 +53,7 @@ export default function Ruler(_ref) {
52
53
  transform: "scale(1, -1)",
53
54
  style: STYLE_TEXT,
54
55
  fill: TEXT_COLOR_NEUTRAL_7
55
- }, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
56
+ }, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
56
57
  x1: style === STYLE_ROOM_SHAPE ? 0 : 4,
57
58
  y1: "0",
58
59
  x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
@@ -266,7 +266,7 @@ export function updateScene(planData, sceneData, oldSceneData, diffArray, action
266
266
  * Every 'doorStyle' change has a 'door_style_id' change.
267
267
  * So, if door_style_id changes, it indicates 'doorStyle' change.
268
268
  */
269
- if (['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
269
+ if (path[1] === 'layers' && path[3] === 'molding' || path[path.length - 2] === 'doorStyle' && path[path.length - 1] === 'id' || ['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
270
270
 
271
271
  // If there are any molding change of layer
272
272
  if (path[1] === 'layers' && path[3] === 'molding') isUpdateMolding = true;
@@ -951,9 +951,9 @@ function getLineDistance(obj, layer, isCalcWall, index) {
951
951
  obj.geometry.attributes.position.needsUpdate = true;
952
952
  obj.geometry.computeBoundingSphere();
953
953
  obj.geometry.computeBoundingBox();
954
- var dist = formatNumber(convert(intersects[i].distance).from('cm').to('in'), DECIMAL_PLACES_2);
954
+ var dist = convert(intersects[i].distance).from('cm').to('in');
955
955
  if (dist > 3) {
956
- var _canvas = getTextCanvas(dist);
956
+ var _canvas = getDistanceCanvas(dist, layer);
957
957
  var wid = _canvas.width / window.innerWidth * 30;
958
958
  var hei = _canvas.height / window.innerHeight * 30;
959
959
  var texture = new Three.Texture(_canvas);
@@ -1075,7 +1075,7 @@ function getLineDistance(obj, layer, isCalcWall, index) {
1075
1075
  obj.geometry.attributes.position.needsUpdate = true;
1076
1076
  var _dist = formatNumber(distance, DECIMAL_PLACES_2);
1077
1077
  if (_dist > 3) {
1078
- var _canvas2 = getTextCanvas(_dist);
1078
+ var _canvas2 = getDistanceCanvas(_dist, layer);
1079
1079
  var _wid = _canvas2.width / window.innerWidth * 30;
1080
1080
  var _hei = _canvas2.height / window.innerHeight * 30;
1081
1081
  var _texture = new Three.Texture(_canvas2);
@@ -1203,12 +1203,17 @@ export function getIntersectPoint(opX, opY, pX, pY) {
1203
1203
  function gcd(a, b) {
1204
1204
  return a % b ? gcd(b, a % b) : b;
1205
1205
  }
1206
- function getTextCanvas(text) {
1207
- var parameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1206
+ function getDistanceCanvas(distance, layer) {
1207
+ var _layer$unit;
1208
+ var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1208
1209
  var canvas = document.createElement('canvas');
1209
1210
  var ctx = canvas.getContext('2d');
1211
+ var curUnit = (_layer$unit = layer === null || layer === void 0 ? void 0 : layer.unit) !== null && _layer$unit !== void 0 ? _layer$unit : 'in';
1212
+ var distText = String((Math.round(convert(distance).from('in').to(curUnit) * 100) / 100).toFixed(0));
1210
1213
  var fontSize = 16;
1211
- var integral = String(text) + "''";
1214
+ var integral = distText + curUnit;
1215
+ // let integral = String(distance) + "''";
1216
+
1212
1217
  parameters.fontName = parameters.fontName || ARROW_TEXT_FONTFACE;
1213
1218
 
1214
1219
  // Prepare the font to be able to measure
@@ -231,6 +231,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
231
231
  });
232
232
  self.renderer.domElement.style.display = 'block';
233
233
  }, 1500);
234
+ self.planData = planData;
234
235
  });
235
236
  var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
236
237
  var layer = scene.getIn(['layers', scene.selectedLayer]);
package/es/constants.js CHANGED
@@ -754,6 +754,7 @@ export var INTERNAL_EVENT_START_DRAW_WALL = 'INTERNAL_EVENT_START_DRAW_WALL';
754
754
 
755
755
  // room shape type
756
756
  export var ROOM_SHAPE_TYPE = {
757
+ CUSTOM: 'custom',
757
758
  RECTANGLE: 'rectangle',
758
759
  TWO_WALLS_LEFT_TOP: '2wLeftTop',
759
760
  TWO_WALLS_RIGHT_TOP: '2wRightTop',
@@ -335,6 +335,104 @@ function WorkSpace(props) {
335
335
  setExternalEvent(evt);
336
336
  }
337
337
  }, "Add Room shape(rectangle)"), /*#__PURE__*/React.createElement(Button, {
338
+ actionType: "danger",
339
+ onClick: function onClick() {
340
+ var evt = {
341
+ type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
342
+ payload: {
343
+ roomShapeType: 'custom',
344
+ width: 0,
345
+ height: 0,
346
+ doorStyle: {
347
+ id: 36,
348
+ type: 'door',
349
+ name: 'Brilliant White Shaker',
350
+ thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
351
+ texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
352
+ color: '#ffffff',
353
+ glossness: 1,
354
+ door_style_id: 42,
355
+ brightness: 1,
356
+ sku: 'SW',
357
+ color_family: ',10,',
358
+ color_sku_alias: 'SW',
359
+ door_style_name: 'Shaker',
360
+ install: '',
361
+ doorStyles: {
362
+ base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
363
+ counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
364
+ interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
365
+ base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
366
+ base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
367
+ base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
368
+ base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
369
+ door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
370
+ fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
371
+ drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
372
+ base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
373
+ base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
374
+ base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
375
+ base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
376
+ door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
377
+ fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
378
+ drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
379
+ base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
380
+ base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
381
+ base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
382
+ base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
383
+ door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
384
+ fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
385
+ drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
386
+ base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
387
+ base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
388
+ base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
389
+ base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
390
+ door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
391
+ fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
392
+ drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
393
+ base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
394
+ base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
395
+ base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
396
+ base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
397
+ door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
398
+ fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
399
+ drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
400
+ base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
401
+ base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
402
+ base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
403
+ base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
404
+ door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
405
+ fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
406
+ drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
407
+ base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
408
+ base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
409
+ base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
410
+ base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
411
+ door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
412
+ fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
413
+ drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
414
+ base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
415
+ base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
416
+ base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
417
+ base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
418
+ door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
419
+ fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
420
+ drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
421
+ base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
422
+ base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
423
+ base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
424
+ base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
425
+ door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
426
+ fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
427
+ drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
428
+ },
429
+ installation_types: [125, 124]
430
+ }
431
+ }
432
+ };
433
+ setExternalEvent(evt);
434
+ }
435
+ }, "Add Room shape(custom)"), /*#__PURE__*/React.createElement(Button, {
338
436
  actionType: "danger",
339
437
  onClick: function onClick() {
340
438
  var evt = {
@@ -729,6 +729,7 @@ function initPropData(element, catalog) {
729
729
  function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
730
730
  var _attributesFormData;
731
731
  var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
732
+ var layerUnit = state.getIn(['scene', 'layers', 'layer-1', 'unit']);
732
733
  var attributesFormData = initAttrData(element, layer, state);
733
734
  var value = attrPayload.value;
734
735
  var attributeName = attrPayload.attributeName;
@@ -736,28 +737,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
736
737
  if (attributeName === ATT_ITEM_POS) {
737
738
  // calculate the new position of movement
738
739
  var rotRad = (value.directionAng + element.rotation) / 180 * Math.PI;
739
- var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from('in').to('cm');
740
- var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from('in').to('cm');
741
- // const reversedDirection =
742
- // value.directionAng === LEFT_DIST_ANG
743
- // ? RIGHT_DIST_ANG
744
- // : value.directionAng === RIGHT_DIST_ANG
745
- // ? LEFT_DIST_ANG
746
- // : value.directionAng === BACK_DIST_ANG
747
- // ? FRONT_DIST_ANG
748
- // : BACK_DIST_ANG;
749
- // let dist = convert(
750
- // element.distArray?.find(v => v[1] === reversedDirection)
751
- // ? element.distArray?.find(v => v[1] === reversedDirection)[0]
752
- // : 0
753
- // )
754
- // .from('cm')
755
- // .to('in');
756
- // if (dist + (value.oldDistance - value.newDistance) <= 0 || value.newDistance < 0) {
757
- // // confirm "The item will be placed outside the floor plan. Are you sure?"
758
- // setPopupOpen(true);
759
- // return;
760
- // }
740
+ var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(layerUnit).to('cm');
741
+ var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(layerUnit).to('cm');
761
742
  value = {
762
743
  x: newX,
763
744
  y: newY
@@ -766,8 +747,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
766
747
  var att = attributesFormData.has(attributeName) ? attributesFormData.get(attributeName) : element[attributeName];
767
748
  if (att) value = att.merge({
768
749
  _length: value,
769
- _unit: UNIT_INCH,
770
- length: convert(value).from(UNIT_INCH).to(UNIT_CENTIMETER)
750
+ _unit: layerUnit,
751
+ length: convert(value).from(layerUnit).to(UNIT_CENTIMETER)
771
752
  });
772
753
  }
773
754
  // make the new attrivutes
@@ -1179,9 +1160,16 @@ function _handleExternalEvent() {
1179
1160
  while (1) switch (_context8.prev = _context8.next) {
1180
1161
  case 0:
1181
1162
  it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
1182
- if (it.properties.altitude.length !== convert(it.properties.altitude._length).from('in').to('cm')) {
1183
- it.properties.altitude.length = convert(it.properties.altitude._length).from('in').to('cm');
1184
- }
1163
+ // if (
1164
+ // it.properties.altitude.length !==
1165
+ // convert(it.properties.altitude._length).from('in').to('cm')
1166
+ // ) {
1167
+ // it.properties.altitude.length = convert(
1168
+ // it.properties.altitude._length
1169
+ // )
1170
+ // .from('in')
1171
+ // .to('cm');
1172
+ // }
1185
1173
  /////////
1186
1174
  if (!cdsItems.some(function (v) {
1187
1175
  var _it$doorStyle;
@@ -1254,7 +1242,7 @@ function _handleExternalEvent() {
1254
1242
  return _ref2.apply(this, arguments);
1255
1243
  };
1256
1244
  }());
1257
- }
1245
+ } else props.projectActions.loadProject(evt.payload);
1258
1246
  case 5:
1259
1247
  return _context1.abrupt("continue", 44);
1260
1248
  case 6:
@@ -1401,7 +1389,7 @@ function _handleExternalEvent() {
1401
1389
  } else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1402
1390
  return _context1.abrupt("continue", 44);
1403
1391
  case 20:
1404
- _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle; // console.log('****', layer);
1392
+ _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1405
1393
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1406
1394
  return _context1.abrupt("continue", 44);
1407
1395
  case 21:
Binary file
@@ -847,85 +847,88 @@ var Project = exports["default"] = /*#__PURE__*/function () {
847
847
  state = state.merge({
848
848
  catalog: catalog
849
849
  });
850
- var _viewer2D = state.viewer2D;
851
- var viewer = _viewer2D.toJS();
852
- width = (0, _convertUnitsLite.convert)(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
853
- height = (0, _convertUnitsLite.convert)(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
854
- var layerID = state.scene.selectedLayer;
855
850
  state = _export2.Item.setInitialDoorStyle(state, doorStyle).updatedState;
856
- if ((0, _helper.isEmpty)(viewer)) return {
857
- updatedState: state
858
- };
859
- var halfWidth = width / 2;
860
- var halfHeight = height / 2;
861
- var viewerWidth = viewer.SVGWidth;
862
- var viewerHeight = viewer.SVGHeight;
863
- var centerPos = {
864
- x: viewerWidth / 2,
865
- y: viewerHeight / 2
866
- };
867
- var vtLB = {
868
- x: centerPos.x - halfWidth,
869
- y: centerPos.y - halfHeight
870
- };
871
- var vtRB = {
872
- x: centerPos.x + halfWidth,
873
- y: centerPos.y - halfHeight
874
- };
875
- var vtRT = {
876
- x: centerPos.x + halfWidth,
877
- y: centerPos.y + halfHeight
878
- };
879
- var vtLT = {
880
- x: centerPos.x - halfWidth,
881
- y: centerPos.y + halfHeight
882
- };
883
- var vertices = [];
884
- switch (roomShapeType) {
885
- case 'rectangle':
886
- vertices = [vtLB, vtLT, vtRT, vtRB];
887
- break;
888
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
889
- vertices = [vtLB, vtRB, vtRT];
890
- break;
891
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
892
- vertices = [vtRB, vtRT, vtLT];
893
- break;
894
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
895
- vertices = [vtRT, vtLT, vtLB];
896
- break;
897
- case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
898
- vertices = [vtLT, vtLB, vtRB];
899
- break;
900
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
901
- vertices = [vtRB, vtRT, vtLT, vtLB];
902
- break;
903
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
904
- vertices = [vtLB, vtRB, vtRT, vtLT];
905
- break;
906
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
907
- vertices = [vtLT, vtLB, vtRB, vtRT];
908
- break;
909
- case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
910
- vertices = [vtRT, vtLT, vtLB, vtRB];
911
- break;
912
- }
913
- for (var i = 0; i < vertices.length - 1; i++) {
914
- state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
915
- }
916
- if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
917
- state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
918
- }
919
- var layer = state.getIn(['scene', 'layers', layerID]);
920
- var lines = layer.getIn(['lines']).toJS();
921
- var drawingInfo = {};
922
- var lineKey = Object.keys(lines);
923
- for (var _i = 0; _i < lineKey.length; _i++) {
924
- if (!(0, _helper.isEmpty)(lineKey)) {
925
- drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
851
+ var layerID = state.scene.selectedLayer;
852
+ if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !(0, _helper.isEmpty)(width) && !(0, _helper.isEmpty)(height) && width !== 0 && height !== 0) {
853
+ var _viewer2D = state.viewer2D;
854
+ var viewer = _viewer2D.toJS();
855
+ if ((0, _helper.isEmpty)(viewer)) return {
856
+ updatedState: state
857
+ };
858
+ width = (0, _convertUnitsLite.convert)(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
859
+ height = (0, _convertUnitsLite.convert)(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
860
+ var halfWidth = width / 2;
861
+ var halfHeight = height / 2;
862
+ var viewerWidth = viewer.SVGWidth;
863
+ var viewerHeight = viewer.SVGHeight;
864
+ var centerPos = {
865
+ x: viewerWidth / 2,
866
+ y: viewerHeight / 2
867
+ };
868
+ var vtLB = {
869
+ x: centerPos.x - halfWidth,
870
+ y: centerPos.y - halfHeight
871
+ };
872
+ var vtRB = {
873
+ x: centerPos.x + halfWidth,
874
+ y: centerPos.y - halfHeight
875
+ };
876
+ var vtRT = {
877
+ x: centerPos.x + halfWidth,
878
+ y: centerPos.y + halfHeight
879
+ };
880
+ var vtLT = {
881
+ x: centerPos.x - halfWidth,
882
+ y: centerPos.y + halfHeight
883
+ };
884
+ var vertices = [];
885
+ switch (roomShapeType) {
886
+ case 'rectangle':
887
+ vertices = [vtLB, vtLT, vtRT, vtRB];
888
+ break;
889
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
890
+ vertices = [vtLB, vtRB, vtRT];
891
+ break;
892
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
893
+ vertices = [vtRB, vtRT, vtLT];
894
+ break;
895
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
896
+ vertices = [vtRT, vtLT, vtLB];
897
+ break;
898
+ case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
899
+ vertices = [vtLT, vtLB, vtRB];
900
+ break;
901
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
902
+ vertices = [vtRB, vtRT, vtLT, vtLB];
903
+ break;
904
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
905
+ vertices = [vtLB, vtRB, vtRT, vtLT];
906
+ break;
907
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
908
+ vertices = [vtLT, vtLB, vtRB, vtRT];
909
+ break;
910
+ case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
911
+ vertices = [vtRT, vtLT, vtLB, vtRB];
912
+ break;
913
+ }
914
+ for (var i = 0; i < vertices.length - 1; i++) {
915
+ state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
916
+ }
917
+ if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
918
+ state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
919
+ }
920
+ var layer = state.getIn(['scene', 'layers', layerID]);
921
+ var lines = layer.getIn(['lines']).toJS();
922
+ var drawingInfo = {};
923
+ var lineKey = Object.keys(lines);
924
+ for (var _i = 0; _i < lineKey.length; _i++) {
925
+ if (!(0, _helper.isEmpty)(lineKey)) {
926
+ drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
927
+ }
928
+ state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
926
929
  }
927
- state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
928
930
  }
931
+
929
932
  // copy keeped measurement unit
930
933
  state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
931
934
  state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
@@ -39,6 +39,7 @@ function Ruler(_ref) {
39
39
  transform = _ref.transform,
40
40
  style = _ref.style;
41
41
  var distanceText = (0, _convertUnitsLite.convert)(length).from(unit).to(rulerUnit).toFixed(0);
42
+ distanceText = (Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100).toFixed(0);
42
43
  var textLength = (distanceText.length + layer.unit.length) * 9;
43
44
  return /*#__PURE__*/_react["default"].createElement("g", {
44
45
  transform: transform
@@ -59,7 +60,7 @@ function Ruler(_ref) {
59
60
  transform: "scale(1, -1)",
60
61
  style: STYLE_TEXT,
61
62
  fill: _constants.TEXT_COLOR_NEUTRAL_7
62
- }, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
63
+ }, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
63
64
  x1: style === _line.STYLE_ROOM_SHAPE ? 0 : 4,
64
65
  y1: "0",
65
66
  x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
@@ -301,7 +301,7 @@ function updateScene(planData, sceneData, oldSceneData, diffArray, actions, cata
301
301
  * Every 'doorStyle' change has a 'door_style_id' change.
302
302
  * So, if door_style_id changes, it indicates 'doorStyle' change.
303
303
  */
304
- if (['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
304
+ if (path[1] === 'layers' && path[3] === 'molding' || path[path.length - 2] === 'doorStyle' && path[path.length - 1] === 'id' || ['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
305
305
 
306
306
  // If there are any molding change of layer
307
307
  if (path[1] === 'layers' && path[3] === 'molding') isUpdateMolding = true;
@@ -986,9 +986,9 @@ function getLineDistance(obj, layer, isCalcWall, index) {
986
986
  obj.geometry.attributes.position.needsUpdate = true;
987
987
  obj.geometry.computeBoundingSphere();
988
988
  obj.geometry.computeBoundingBox();
989
- var dist = (0, _math.formatNumber)((0, _convertUnitsLite.convert)(intersects[i].distance).from('cm').to('in'), _constants.DECIMAL_PLACES_2);
989
+ var dist = (0, _convertUnitsLite.convert)(intersects[i].distance).from('cm').to('in');
990
990
  if (dist > 3) {
991
- var _canvas = getTextCanvas(dist);
991
+ var _canvas = getDistanceCanvas(dist, layer);
992
992
  var wid = _canvas.width / window.innerWidth * 30;
993
993
  var hei = _canvas.height / window.innerHeight * 30;
994
994
  var texture = new Three.Texture(_canvas);
@@ -1110,7 +1110,7 @@ function getLineDistance(obj, layer, isCalcWall, index) {
1110
1110
  obj.geometry.attributes.position.needsUpdate = true;
1111
1111
  var _dist = (0, _math.formatNumber)(distance, _constants.DECIMAL_PLACES_2);
1112
1112
  if (_dist > 3) {
1113
- var _canvas2 = getTextCanvas(_dist);
1113
+ var _canvas2 = getDistanceCanvas(_dist, layer);
1114
1114
  var _wid = _canvas2.width / window.innerWidth * 30;
1115
1115
  var _hei = _canvas2.height / window.innerHeight * 30;
1116
1116
  var _texture = new Three.Texture(_canvas2);
@@ -1238,12 +1238,17 @@ function getIntersectPoint(opX, opY, pX, pY) {
1238
1238
  function gcd(a, b) {
1239
1239
  return a % b ? gcd(b, a % b) : b;
1240
1240
  }
1241
- function getTextCanvas(text) {
1242
- var parameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1241
+ function getDistanceCanvas(distance, layer) {
1242
+ var _layer$unit;
1243
+ var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1243
1244
  var canvas = document.createElement('canvas');
1244
1245
  var ctx = canvas.getContext('2d');
1246
+ var curUnit = (_layer$unit = layer === null || layer === void 0 ? void 0 : layer.unit) !== null && _layer$unit !== void 0 ? _layer$unit : 'in';
1247
+ var distText = String((Math.round((0, _convertUnitsLite.convert)(distance).from('in').to(curUnit) * 100) / 100).toFixed(0));
1245
1248
  var fontSize = 16;
1246
- var integral = String(text) + "''";
1249
+ var integral = distText + curUnit;
1250
+ // let integral = String(distance) + "''";
1251
+
1247
1252
  parameters.fontName = parameters.fontName || _constants.ARROW_TEXT_FONTFACE;
1248
1253
 
1249
1254
  // Prepare the font to be able to measure
@@ -238,6 +238,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
238
238
  });
239
239
  self.renderer.domElement.style.display = 'block';
240
240
  }, 1500);
241
+ self.planData = planData;
241
242
  });
242
243
  var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
243
244
  var layer = scene.getIn(['layers', scene.selectedLayer]);
package/lib/constants.js CHANGED
@@ -764,6 +764,7 @@ var INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_START_DRAW_WALL = 'I
764
764
 
765
765
  // room shape type
766
766
  var ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_TYPE = {
767
+ CUSTOM: 'custom',
767
768
  RECTANGLE: 'rectangle',
768
769
  TWO_WALLS_LEFT_TOP: '2wLeftTop',
769
770
  TWO_WALLS_RIGHT_TOP: '2wRightTop',
@@ -339,6 +339,104 @@ function WorkSpace(props) {
339
339
  setExternalEvent(evt);
340
340
  }
341
341
  }, "Add Room shape(rectangle)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
342
+ actionType: "danger",
343
+ onClick: function onClick() {
344
+ var evt = {
345
+ type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
346
+ payload: {
347
+ roomShapeType: 'custom',
348
+ width: 0,
349
+ height: 0,
350
+ doorStyle: {
351
+ id: 36,
352
+ type: 'door',
353
+ name: 'Brilliant White Shaker',
354
+ thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
355
+ texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
356
+ color: '#ffffff',
357
+ glossness: 1,
358
+ door_style_id: 42,
359
+ brightness: 1,
360
+ sku: 'SW',
361
+ color_family: ',10,',
362
+ color_sku_alias: 'SW',
363
+ door_style_name: 'Shaker',
364
+ install: '',
365
+ doorStyles: {
366
+ base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
367
+ counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
368
+ interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
369
+ base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
370
+ base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
371
+ base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
372
+ base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
373
+ door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
374
+ fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
375
+ drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
376
+ base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
377
+ base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
378
+ base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
379
+ base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
380
+ door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
381
+ fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
382
+ drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
383
+ base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
384
+ base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
385
+ base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
386
+ base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
387
+ door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
388
+ fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
389
+ drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
390
+ base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
391
+ base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
392
+ base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
393
+ base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
394
+ door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
395
+ fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
396
+ drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
397
+ base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
398
+ base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
399
+ base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
400
+ base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
401
+ door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
402
+ fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
403
+ drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
404
+ base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
405
+ base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
406
+ base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
407
+ base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
408
+ door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
409
+ fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
410
+ drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
411
+ base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
412
+ base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
413
+ base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
414
+ base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
415
+ door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
416
+ fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
417
+ drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
418
+ base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
419
+ base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
420
+ base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
421
+ base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
422
+ door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
423
+ fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
424
+ drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
425
+ base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
426
+ base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
427
+ base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
428
+ base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
429
+ door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
430
+ fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
431
+ drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
432
+ },
433
+ installation_types: [125, 124]
434
+ }
435
+ }
436
+ };
437
+ setExternalEvent(evt);
438
+ }
439
+ }, "Add Room shape(custom)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
342
440
  actionType: "danger",
343
441
  onClick: function onClick() {
344
442
  var evt = {
@@ -736,6 +736,7 @@ function initPropData(element, catalog) {
736
736
  function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
737
737
  var _attributesFormData;
738
738
  var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
739
+ var layerUnit = state.getIn(['scene', 'layers', 'layer-1', 'unit']);
739
740
  var attributesFormData = initAttrData(element, layer, state);
740
741
  var value = attrPayload.value;
741
742
  var attributeName = attrPayload.attributeName;
@@ -743,28 +744,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
743
744
  if (attributeName === _constants.ATT_ITEM_POS) {
744
745
  // calculate the new position of movement
745
746
  var rotRad = (value.directionAng + element.rotation) / 180 * Math.PI;
746
- var newX = element.x + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from('in').to('cm');
747
- var newY = element.y + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from('in').to('cm');
748
- // const reversedDirection =
749
- // value.directionAng === LEFT_DIST_ANG
750
- // ? RIGHT_DIST_ANG
751
- // : value.directionAng === RIGHT_DIST_ANG
752
- // ? LEFT_DIST_ANG
753
- // : value.directionAng === BACK_DIST_ANG
754
- // ? FRONT_DIST_ANG
755
- // : BACK_DIST_ANG;
756
- // let dist = convert(
757
- // element.distArray?.find(v => v[1] === reversedDirection)
758
- // ? element.distArray?.find(v => v[1] === reversedDirection)[0]
759
- // : 0
760
- // )
761
- // .from('cm')
762
- // .to('in');
763
- // if (dist + (value.oldDistance - value.newDistance) <= 0 || value.newDistance < 0) {
764
- // // confirm "The item will be placed outside the floor plan. Are you sure?"
765
- // setPopupOpen(true);
766
- // return;
767
- // }
747
+ var newX = element.x + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(layerUnit).to('cm');
748
+ var newY = element.y + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(layerUnit).to('cm');
768
749
  value = {
769
750
  x: newX,
770
751
  y: newY
@@ -773,8 +754,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
773
754
  var att = attributesFormData.has(attributeName) ? attributesFormData.get(attributeName) : element[attributeName];
774
755
  if (att) value = att.merge({
775
756
  _length: value,
776
- _unit: _constants.UNIT_INCH,
777
- length: (0, _convertUnitsLite.convert)(value).from(_constants.UNIT_INCH).to(_constants.UNIT_CENTIMETER)
757
+ _unit: layerUnit,
758
+ length: (0, _convertUnitsLite.convert)(value).from(layerUnit).to(_constants.UNIT_CENTIMETER)
778
759
  });
779
760
  }
780
761
  // make the new attrivutes
@@ -1186,9 +1167,16 @@ function _handleExternalEvent() {
1186
1167
  while (1) switch (_context8.prev = _context8.next) {
1187
1168
  case 0:
1188
1169
  it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
1189
- if (it.properties.altitude.length !== (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm')) {
1190
- it.properties.altitude.length = (0, _convertUnitsLite.convert)(it.properties.altitude._length).from('in').to('cm');
1191
- }
1170
+ // if (
1171
+ // it.properties.altitude.length !==
1172
+ // convert(it.properties.altitude._length).from('in').to('cm')
1173
+ // ) {
1174
+ // it.properties.altitude.length = convert(
1175
+ // it.properties.altitude._length
1176
+ // )
1177
+ // .from('in')
1178
+ // .to('cm');
1179
+ // }
1192
1180
  /////////
1193
1181
  if (!cdsItems.some(function (v) {
1194
1182
  var _it$doorStyle;
@@ -1261,7 +1249,7 @@ function _handleExternalEvent() {
1261
1249
  return _ref2.apply(this, arguments);
1262
1250
  };
1263
1251
  }());
1264
- }
1252
+ } else props.projectActions.loadProject(evt.payload);
1265
1253
  case 5:
1266
1254
  return _context1.abrupt("continue", 44);
1267
1255
  case 6:
@@ -1408,7 +1396,7 @@ function _handleExternalEvent() {
1408
1396
  } else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
1409
1397
  return _context1.abrupt("continue", 44);
1410
1398
  case 20:
1411
- _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle; // console.log('****', layer);
1399
+ _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
1412
1400
  props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
1413
1401
  return _context1.abrupt("continue", 44);
1414
1402
  case 21:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "3.15.0",
3
+ "version": "3.16.0",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",