kitchen-simulator 3.1.15 → 4.0.0-alpha.12

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.
Files changed (105) hide show
  1. package/es/LiteKitchenConfigurator.js +204 -21
  2. package/es/LiteRenderer.js +277 -12
  3. package/es/actions/items-actions.js +6 -10
  4. package/es/actions/lines-actions.js +1 -3
  5. package/es/actions/project-actions.js +5 -15
  6. package/es/assets/Window.hdr +2100 -0
  7. package/es/assets/gltf/door_sliding.bin +0 -0
  8. package/es/assets/img/1.jpg +0 -0
  9. package/es/catalog/areas/area/planner-element.js +5 -10
  10. package/es/catalog/catalog.js +4 -1
  11. package/es/catalog/factories/area-factory-3d.js +17 -18
  12. package/es/catalog/factories/wall-factory-3d.js +2 -2
  13. package/es/catalog/factories/wall-factory.js +8 -8
  14. package/es/catalog/lines/wall/planner-element.js +9 -18
  15. package/es/catalog/utils/exporter.js +3 -6
  16. package/es/catalog/utils/item-loader.js +197 -202
  17. package/es/catalog/utils/mtl-loader.js +2 -2
  18. package/es/catalog/utils/obj-loader.js +2 -2
  19. package/es/class/item.js +127 -107
  20. package/es/class/line.js +2 -14
  21. package/es/class/project.js +44 -150
  22. package/es/components/content.js +6 -19
  23. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  24. package/es/components/viewer2d/item.js +51 -84
  25. package/es/components/viewer2d/line.js +243 -315
  26. package/es/components/viewer2d/ruler.js +36 -16
  27. package/es/components/viewer2d/rulerDist.js +75 -44
  28. package/es/components/viewer2d/utils.js +0 -6
  29. package/es/components/viewer2d/viewer2d.js +205 -301
  30. package/es/components/viewer3d/front3D.js +2 -3
  31. package/es/components/viewer3d/libs/mtl-loader.js +2 -2
  32. package/es/components/viewer3d/libs/obj-loader.js +2 -2
  33. package/es/components/viewer3d/libs/orbit-controls.js +4 -3
  34. package/es/components/viewer3d/libs/pointer-lock-controls.js +7 -6
  35. package/es/components/viewer3d/viewer3d.js +80 -127
  36. package/es/constants.js +3 -110
  37. package/es/devLiteRenderer.js +38 -597
  38. package/es/index.js +86 -16
  39. package/es/models.js +5 -8
  40. package/es/plugins/SVGLoader.js +5 -7
  41. package/es/plugins/keyboard.js +6 -15
  42. package/es/reducers/items-reducer.js +5 -5
  43. package/es/reducers/lines-reducer.js +1 -1
  44. package/es/reducers/project-reducer.js +3 -5
  45. package/es/shared-style.js +4 -4
  46. package/es/utils/geometry.js +0 -161
  47. package/es/utils/get-edges-of-subgraphs.js +1 -1
  48. package/es/utils/graph-cycles.js +1 -1
  49. package/es/utils/graph.js +1 -1
  50. package/es/utils/helper.js +2 -67
  51. package/es/utils/isolate-event-handler.js +124 -1367
  52. package/es/utils/molding.js +2 -238
  53. package/lib/LiteKitchenConfigurator.js +205 -22
  54. package/lib/LiteRenderer.js +278 -13
  55. package/lib/actions/items-actions.js +6 -10
  56. package/lib/actions/lines-actions.js +1 -3
  57. package/lib/actions/project-actions.js +4 -15
  58. package/lib/assets/Window.hdr +2100 -0
  59. package/lib/assets/gltf/door_sliding.bin +0 -0
  60. package/lib/assets/img/1.jpg +0 -0
  61. package/lib/catalog/areas/area/planner-element.js +5 -11
  62. package/lib/catalog/catalog.js +4 -1
  63. package/lib/catalog/factories/area-factory-3d.js +14 -15
  64. package/lib/catalog/factories/wall-factory-3d.js +2 -2
  65. package/lib/catalog/factories/wall-factory.js +8 -8
  66. package/lib/catalog/lines/wall/planner-element.js +9 -19
  67. package/lib/catalog/utils/exporter.js +3 -6
  68. package/lib/catalog/utils/item-loader.js +194 -199
  69. package/lib/catalog/utils/mtl-loader.js +2 -9
  70. package/lib/catalog/utils/obj-loader.js +2 -10
  71. package/lib/class/item.js +125 -105
  72. package/lib/class/line.js +1 -13
  73. package/lib/class/project.js +43 -149
  74. package/lib/components/content.js +6 -19
  75. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  76. package/lib/components/viewer2d/item.js +50 -83
  77. package/lib/components/viewer2d/line.js +242 -315
  78. package/lib/components/viewer2d/ruler.js +35 -15
  79. package/lib/components/viewer2d/rulerDist.js +75 -44
  80. package/lib/components/viewer2d/utils.js +0 -7
  81. package/lib/components/viewer2d/viewer2d.js +205 -299
  82. package/lib/components/viewer3d/front3D.js +2 -3
  83. package/lib/components/viewer3d/libs/mtl-loader.js +2 -9
  84. package/lib/components/viewer3d/libs/obj-loader.js +2 -9
  85. package/lib/components/viewer3d/libs/orbit-controls.js +5 -11
  86. package/lib/components/viewer3d/libs/pointer-lock-controls.js +7 -13
  87. package/lib/components/viewer3d/viewer3d.js +79 -125
  88. package/lib/constants.js +7 -115
  89. package/lib/devLiteRenderer.js +33 -592
  90. package/lib/index.js +86 -16
  91. package/lib/models.js +5 -8
  92. package/lib/plugins/SVGLoader.js +5 -7
  93. package/lib/plugins/keyboard.js +6 -15
  94. package/lib/reducers/items-reducer.js +5 -5
  95. package/lib/reducers/lines-reducer.js +1 -1
  96. package/lib/reducers/project-reducer.js +2 -4
  97. package/lib/shared-style.js +4 -4
  98. package/lib/utils/geometry.js +0 -162
  99. package/lib/utils/get-edges-of-subgraphs.js +1 -6
  100. package/lib/utils/graph-cycles.js +8 -7
  101. package/lib/utils/graph.js +1 -6
  102. package/lib/utils/helper.js +3 -70
  103. package/lib/utils/isolate-event-handler.js +121 -1364
  104. package/lib/utils/molding.js +0 -238
  105. package/package.json +1 -1
@@ -24,22 +24,21 @@ var _models = require("../../models");
24
24
  var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
25
25
  var _loadObj = require("./load-obj");
26
26
  var _helper = require("../../utils/helper");
27
- var _utils = require("../../components/viewer2d/utils");
28
27
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
29
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
29
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
- var INITIAL_NORMAL_MAP = "";
30
+ var INITIAL_NORMAL_MAP = '';
32
31
 
33
32
  // env Map ///////////////
34
33
  var paramsCounter = {
35
- envMap: "HDR",
34
+ envMap: 'HDR',
36
35
  roughness: 0.6,
37
36
  metalness: 0.3,
38
37
  exposure: 1
39
38
  // debug: true
40
39
  };
41
40
  var params = {
42
- envMap: "HDR",
41
+ envMap: 'HDR',
43
42
  roughness: 0.9,
44
43
  metalness: 0.1,
45
44
  metalness_glossy: 0.2,
@@ -47,18 +46,18 @@ var params = {
47
46
  // debug: false
48
47
  };
49
48
  var paramsModel = {
50
- envMap: "HDR",
49
+ envMap: 'HDR',
51
50
  roughness: 0.9,
52
51
  metalness: 0.2,
53
52
  exposure: 1.0
54
53
  // debug: false
55
54
  };
56
55
  var buttons = [{
57
- name: "Edit",
58
- thumbnail: "/assets/img/svg/3d_item_warning_edit.svg"
56
+ name: 'Edit',
57
+ thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
59
58
  }, {
60
- name: "Info",
61
- thumbnail: "/assets/img/svg/3d_item_warning_info.svg"
59
+ name: 'Info',
60
+ thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
62
61
  }];
63
62
 
64
63
  // /////////////////////////
@@ -74,7 +73,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
74
73
  var x = element.x,
75
74
  y = element.y,
76
75
  rotation = element.rotation;
77
- var el_DSN = "el_DSN",
76
+ var el_DSN = 'el_DSN',
78
77
  doorStylesKeys = [];
79
78
  var _element = element.toJS();
80
79
  if (_element.doorStyle !== undefined) {
@@ -82,10 +81,10 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
82
81
  doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
83
82
  }
84
83
  }
85
- if ((doorStylesKeys.includes("euro_length") || doorStylesKeys.includes("euro_width") || doorStylesKeys.includes("euro_shape_svg")) && _element.doorStyle.doorStyles.is_euro_cds) {
84
+ if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
86
85
  el_DSN = _element.doorStyle.door_style_name;
87
86
  } else {
88
- el_DSN = "el_DSN";
87
+ el_DSN = 'el_DSN';
89
88
  }
90
89
  var width, depth, el_euro_length, el_euro_width, el_euro_length_unit, el_euro_width_unit, el_is_euro_cds, el_euro_shape_svg;
91
90
  if (doorStylesKeys.length > 0) {
@@ -95,41 +94,41 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
95
94
  el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
96
95
  }
97
96
  if (el_euro_length === undefined && el_euro_width === undefined) {
98
- el_DSN = "el_DSN";
97
+ el_DSN = 'el_DSN';
99
98
  }
100
- if (el_DSN === "Euro & Frameless") {
99
+ if (el_DSN === 'Euro & Frameless') {
101
100
  // sizeinfo["depth"] = el_euro_length;
102
101
  // sizeinfo["width"] = el_euro_width;
103
102
  }
104
- var tempWidth = element.properties.get("width");
105
- var tempDepth = element.properties.get("depth");
103
+ var tempWidth = element.properties.get('width');
104
+ var tempDepth = element.properties.get('depth');
106
105
  width = tempWidth && {
107
- length: tempWidth.get("_length"),
108
- unit: tempWidth.get("_unit")
106
+ length: tempWidth.get('_length'),
107
+ unit: tempWidth.get('_unit')
109
108
  };
110
109
  depth = tempDepth && {
111
- length: tempDepth.get("_length"),
112
- unit: tempDepth.get("_unit")
110
+ length: tempDepth.get('_length'),
111
+ unit: tempDepth.get('_unit')
113
112
  };
114
- var originalWidth = (0, _convertUnitsLite.convert)(sizeinfo.width).from("in").to("cm");
115
- var originalDepth = (0, _convertUnitsLite.convert)(sizeinfo.depth).from("in").to("cm");
116
- var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to("cm");
117
- var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to("cm");
113
+ var originalWidth = (0, _convertUnitsLite.convert)(sizeinfo.width).from('in').to('cm');
114
+ var originalDepth = (0, _convertUnitsLite.convert)(sizeinfo.depth).from('in').to('cm');
115
+ var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
116
+ var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
118
117
  var padding = (0, _convertUnitsLite.convert)(_constants.SHAPE_SVG_PADDING).from(_constants.UNIT_INCH).to(_constants.UNIT_CENTIMETER);
119
118
  var angle = element.rotation + 90;
120
119
  var textRotation = 0;
121
120
  if (Math.sin(angle * Math.PI / 180) < 0) {
122
121
  textRotation = 180;
123
122
  }
124
- var color = "#eee";
123
+ var color = '#eee';
125
124
  if (layoutpos == _constants.BASE_CABINET_LAYOUTPOS) {
126
- color = "#3f8db3";
125
+ color = '#3f8db3';
127
126
  }
128
127
  if (layoutpos == _constants.TALL_CABINET_LAYOUTPOS) {
129
- color = "#93b3be";
128
+ color = '#93b3be';
130
129
  }
131
130
  if (layoutpos == _constants.WALL_CABINET_LAYOUTPOS) {
132
- color = "#48b08dcc";
131
+ color = '#48b08dcc';
133
132
  }
134
133
  var splitStr = [];
135
134
  var txtContent = [];
@@ -143,7 +142,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
143
142
  var dcId,
144
143
  doorStyle = element.doorStyle;
145
144
  if (doorStyle instanceof _immutable.Map) {
146
- dcId = doorStyle.get("id");
145
+ dcId = doorStyle.get('id');
147
146
  } else {
148
147
  dcId = doorStyle.id;
149
148
  }
@@ -162,7 +161,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
162
161
  splitStr.push(type.slice(lineCount * rowCount));
163
162
  splitStr.forEach(function (el, key) {
164
163
  txtContent.push(/*#__PURE__*/_react["default"].createElement("text", {
165
- key: "text" + key,
164
+ key: 'text' + key,
166
165
  x: "0",
167
166
  y: newDepth / 2 - 12,
168
167
  dy: 16 * key,
@@ -172,16 +171,16 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
172
171
  ,
173
172
  style: {
174
173
  fontWeight: 500,
175
- fontSize: "7px",
176
- textAnchor: "middle",
177
- fill: "#FFF",
178
- display: "block"
174
+ fontSize: '7px',
175
+ textAnchor: 'middle',
176
+ fill: '#FFF',
177
+ display: 'block'
179
178
  }
180
179
  }, el));
181
180
  });
182
181
  var style = {
183
- stroke: element.selected ? "#565658" : "#565658",
184
- strokeWidth: "2px",
182
+ stroke: element.selected ? '#565658' : '#565658',
183
+ strokeWidth: '2px',
185
184
  fill: color
186
185
  };
187
186
  // let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
@@ -189,8 +188,9 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
189
188
  var rendered = null;
190
189
  var svg_url, svg_width, svg_depth;
191
190
  if (shape_svg || el_euro_shape_svg) {
192
- if (typeof shape_svg == "string" || typeof el_euro_shape_svg == "string") {
193
- if (el_DSN === "Euro & Frameless" && el_is_euro_cds) {
191
+ var _element$toJS$doorSty;
192
+ if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
193
+ if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
194
194
  svg_url = el_euro_shape_svg;
195
195
  svg_width = newWidth;
196
196
  svg_depth = newDepth;
@@ -217,21 +217,17 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
217
217
  var warning_buttons = /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", {
218
218
  id: "warning_info_2d",
219
219
  style: {
220
- cursor: "pointer",
220
+ cursor: 'pointer',
221
221
  transform: "translate(".concat(-transX, "px, ").concat(-transY, "px)")
222
222
  },
223
223
  onMouseEnter: function onMouseEnter(event) {
224
224
  var bbox = event.target.getBoundingClientRect();
225
- if (document.getElementById("warning_box_2d")) {
226
- document.getElementById("warning_box_2d").style.display = "flex";
227
- document.getElementById("warning_box_2d").style.top = "".concat(bbox.top - 60, "px");
228
- document.getElementById("warning_box_2d").style.left = "".concat(bbox.left, "px");
229
- }
225
+ document.getElementById('warning_box_2d').style.display = 'flex';
226
+ document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
227
+ document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
230
228
  },
231
229
  onMouseLeave: function onMouseLeave() {
232
- if (document.getElementById("warning_box_2d")) {
233
- document.getElementById("warning_box_2d").style.display = "none";
234
- }
230
+ document.getElementById('warning_box_2d').style.display = 'none';
235
231
  }
236
232
  }, /*#__PURE__*/_react["default"].createElement("circle", {
237
233
  cx: 0,
@@ -249,7 +245,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
249
245
  href: buttons[1].thumbnail
250
246
  })), /*#__PURE__*/_react["default"].createElement("g", {
251
247
  style: {
252
- cursor: "pointer",
248
+ cursor: 'pointer',
253
249
  transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
254
250
  },
255
251
  "data-element-root": true,
@@ -295,7 +291,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
295
291
  }, /*#__PURE__*/_react["default"].createElement("image", {
296
292
  preserveAspectRatio: "none",
297
293
  style: {
298
- pointerEvents: "none"
294
+ pointerEvents: 'none'
299
295
  },
300
296
  href: svg_url,
301
297
  width: "".concat(newWidth + 2 * padding_width),
@@ -308,16 +304,18 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
308
304
  y: "".concat(padding_depth),
309
305
  width: "".concat(newWidth),
310
306
  height: "".concat(newDepth),
311
- visibility: "hidden",
307
+ visibility: 'hidden',
312
308
  style: {
313
- pointerEvents: "all",
309
+ pointerEvents: 'all',
314
310
  opacity: 0.7,
315
- postion: "relative"
311
+ postion: 'relative'
316
312
  }
317
313
  }), /*#__PURE__*/_react["default"].createElement("g", {
318
314
  transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
319
- }, txtContent)), element.category === "cabinet" && /*#__PURE__*/_react["default"].createElement("g", {
320
- visibility: (0, _utils.isWarningItem)(element) ? "visible" : "hidden"
315
+ }, txtContent)), element.category === 'cabinet' && /*#__PURE__*/_react["default"].createElement("g", {
316
+ visibility: (element === null || element === void 0 || (_element$toJS$doorSty = element.toJS().doorStyle) === null || _element$toJS$doorSty === void 0 || (_element$toJS$doorSty = _element$toJS$doorSty.doorStyles) === null || _element$toJS$doorSty === void 0 || (_element$toJS$doorSty = _element$toJS$doorSty.cds) === null || _element$toJS$doorSty === void 0 ? void 0 : _element$toJS$doorSty.filter(function (cd) {
317
+ return cd.itemID == (element === null || element === void 0 ? void 0 : element.getIn(['itemID']));
318
+ }).length) > 0 ? 'hidden' : 'visible'
321
319
  }, warning_buttons)));
322
320
  } else {
323
321
  rendered = /*#__PURE__*/_react["default"].createElement("g", {
@@ -404,38 +402,38 @@ var assignUVs = function assignUVs(geometry) {
404
402
  function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
405
403
  var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
406
404
  if (element.doorStyle.constructor !== _immutable.Map) {
407
- element = element.set("doorStyle", (0, _immutable.fromJS)(element.doorStyle));
405
+ element = element.set('doorStyle', (0, _immutable.fromJS)(element.doorStyle));
408
406
  }
409
- if (element.doorStyle.toJS().handle_gltf !== "") {
407
+ if (element.doorStyle.toJS().handle_gltf !== '') {
410
408
  // Check element has doorHandle
411
409
  for (var i = 1; i < 10; i++) {
412
- element = element.setIn(["doorStyle", "doorStyles", "door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
413
- element = element.setIn(["doorStyle", "doorStyles", "fixed_drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
414
- element = element.setIn(["doorStyle", "doorStyles", "drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
410
+ element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
411
+ element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
412
+ element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
415
413
  }
416
414
  }
417
415
  var width = {
418
416
  length: sizeinfo.width,
419
- unit: "in"
417
+ unit: 'in'
420
418
  };
421
419
  var depth = {
422
420
  length: sizeinfo.depth,
423
- unit: "in"
421
+ unit: 'in'
424
422
  };
425
423
  var height = {
426
424
  length: sizeinfo.height,
427
- unit: "in"
425
+ unit: 'in'
428
426
  };
429
- var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to("in");
430
- var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to("in");
431
- var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to("in");
432
- var mainName = ""; // to get name structure//
433
- if (element.properties.get("width")) newWidth = element.getIn(["properties", "width", "_length"]);
434
- if (element.properties.get("depth")) newDepth = element.getIn(["properties", "depth", "_length"]);
435
- if (element.properties.get("height")) newHeight = element.getIn(["properties", "height", "_length"]);
427
+ var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('in');
428
+ var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('in');
429
+ var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('in');
430
+ var mainName = ''; // to get name structure//
431
+ if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
432
+ if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
433
+ if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
436
434
  var structure = structure_json;
437
435
  // structure.push({name:'model', url: '/assets/model/DCM.gltf'});
438
- structure.model = "/assets/model/DCM.gltf";
436
+ structure.model = '/assets/model/DCM.gltf';
439
437
  var placeholders = structure.placeholders;
440
438
  var doorStyles = null;
441
439
  var color = 0xffffff,
@@ -445,26 +443,25 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
445
443
  if (layer.toJS().counterTop.uri) {
446
444
  counterTop.uri = layer.toJS().counterTop.uri;
447
445
  }
448
- if ("name" in element.doorStyle) {
446
+ if ('name' in element.doorStyle) {
449
447
  doorStyles = new _immutable.Map(element.doorStyle.doorStyles);
450
448
  color = element.doorStyle.color;
451
449
  glossness = element.doorStyle.glossness;
452
450
  handleMaterial.metalness = element.doorStyle.metalness;
453
451
  handleMaterial.roughness = element.doorStyle.roughness;
454
452
  } else if (element.doorStyle != null && element.doorStyle) {
455
- doorStyles = element.doorStyle.get("doorStyles");
456
- color = element.doorStyle.get("color");
457
- glossness = element.doorStyle.get("glossness");
458
- handleMaterial.metalness = element.doorStyle.get("metalness");
459
- handleMaterial.roughness = element.doorStyle.get("roughness");
453
+ doorStyles = element.doorStyle.get('doorStyles');
454
+ color = element.doorStyle.get('color');
455
+ glossness = element.doorStyle.get('glossness');
456
+ handleMaterial.metalness = element.doorStyle.get('metalness');
457
+ handleMaterial.roughness = element.doorStyle.get('roughness');
460
458
  }
461
- if (color === undefined) color = "#ffffff";
459
+ if (color === undefined) color = '#ffffff';
462
460
  if (glossness === undefined) glossness = 1;
463
461
  var tempDoorStyles = doorStyles.toJS();
464
462
  var tempPlaceholders = structure.tempPlaceholders;
465
463
  var tPlaceholders = tempPlaceholders.find(function (el) {
466
464
  return el.id === tempDoorStyles.cabinet_door_style_id;
467
- // return el.id === tempDoorStyles.cds[0].cabinet_door_style_id;
468
465
  });
469
466
  if (tPlaceholders !== undefined) {
470
467
  placeholders = tPlaceholders.placeholders;
@@ -483,13 +480,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
483
480
  areaMaterial.side = Three.DoubleSide;
484
481
  // areaMaterial.envMap = textureCube;
485
482
  if ((0, _helper.isEmpty)(doorStyles)) {
486
- var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
483
+ var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
487
484
  var interiortexture = loadTexture(normalMap);
488
485
  applyTexture(areaMaterial, interiortexture, 100, 100);
489
486
  }
490
487
  var object1 = object;
491
- var newAltitude = element.properties.get("altitude").get("_length");
492
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
488
+ var newAltitude = element.properties.get('altitude').get('_length');
489
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
493
490
  newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
494
491
  var _element = element.toJS();
495
492
  if (!_element.doorStyle.doorStyles.is_euro_cds) {
@@ -506,27 +503,27 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
506
503
  var door_match = child.name.match(matchStr);
507
504
  if (door_match && door_match.length > 2) {
508
505
  var _child$children$;
509
- var rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_L" : "rotate_R";
510
- if (door_match[2] === "_L") {
511
- rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_R" : "rotate_L";
506
+ var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
507
+ if (door_match[2] === '_L') {
508
+ rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
512
509
  }
513
510
  var isDoubleDoor = door_match && door_match[2] !== undefined;
514
511
  (_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
515
512
  var _it$name, _it$children;
516
- if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes("handle") && (_it$children = it.children) !== null && _it$children !== void 0 && _it$children.length && is_corner === 1 && isDoubleDoor) {
513
+ if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes('handle') && (_it$children = it.children) !== null && _it$children !== void 0 && _it$children.length && is_corner === 1 && isDoubleDoor) {
517
514
  var _child$name, _child$name2, _object1$children, _t0$name, _t0$children;
518
- var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith("_L") ? child.name.replace("_L", "_R") : child === null || child === void 0 || (_child$name2 = child.name) === null || _child$name2 === void 0 ? void 0 : _child$name2.replace("_R", "_L");
515
+ var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith('_L') ? child.name.replace('_L', '_R') : child === null || child === void 0 || (_child$name2 = child.name) === null || _child$name2 === void 0 ? void 0 : _child$name2.replace('_R', '_L');
519
516
  var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
520
517
  return (item === null || item === void 0 ? void 0 : item.name) === tname;
521
518
  })) || [];
522
519
  var t0 = tmp[0];
523
- var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith("_L") ? "rotate_L" : "rotate_R";
520
+ var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith('_L') ? 'rotate_L' : 'rotate_R';
524
521
  var tposArr = (t0 === null || t0 === void 0 || (_t0$children = t0.children) === null || _t0$children === void 0 || (_t0$children = _t0$children[0]) === null || _t0$children === void 0 || (_t0$children = _t0$children.children) === null || _t0$children === void 0 ? void 0 : _t0$children.filter(function (item) {
525
522
  var _item$name;
526
523
  return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
527
524
  })) || [];
528
525
  var tpos0 = tposArr[0];
529
- if (it.name.includes("base_end")) {
526
+ if (it.name.includes('base_end')) {
530
527
  var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
531
528
  door_animate_offset[child.name] = {
532
529
  x: -2 * ((_it$position$x = (_it$position = it.position) === null || _it$position === void 0 ? void 0 : _it$position.x) !== null && _it$position$x !== void 0 ? _it$position$x : 0) - 0.12,
@@ -594,16 +591,16 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
594
591
  // vertical line - 4 lines around object//////////////////////////
595
592
  var vLineGeom = new Three.BufferGeometry();
596
593
  var vertices = [(max.x - min.x) / 2 + min.x, 0, max.z, (max.x - min.x) / 2 + min.x, 0, max.z + 1.3];
597
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
594
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
598
595
  var vLineGeom1 = new Three.BufferGeometry();
599
596
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
600
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
597
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
601
598
  var vLineGeom2 = new Three.BufferGeometry();
602
599
  var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
603
- vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
600
+ vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
604
601
  var vLineGeom3 = new Three.BufferGeometry();
605
602
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
606
- vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
603
+ vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
607
604
  // ///////////////////////////////////////
608
605
 
609
606
  // set names of transform object
@@ -616,12 +613,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
616
613
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
617
614
  colorWrite: true
618
615
  }));
619
- rotFillObj.name = "rotate";
616
+ rotFillObj.name = 'rotate';
620
617
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
621
618
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
622
619
  side: Three.DoubleSide
623
620
  }));
624
- upObj.name = "transUp";
621
+ upObj.name = 'transUp';
625
622
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
626
623
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
627
624
  side: Three.DoubleSide,
@@ -663,7 +660,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
663
660
  //rotObj.translateOnAxis(uVec, 1);
664
661
  upObj.translateOnAxis(uVec, 1);
665
662
  upObj.translateY(max.y - min.y);
666
- mBox.name = "TransformBox";
663
+ mBox.name = 'TransformBox';
667
664
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
668
665
  mBox.scale.set(1.01, 1.01, 1.01);
669
666
 
@@ -692,7 +689,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
692
689
  asrtObj.add(mBox);
693
690
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
694
691
  //asrtObj.translateY(newAltitude / scalevec.y);
695
- asrtObj.name = "TransformGizmo";
692
+ asrtObj.name = 'TransformGizmo';
696
693
  // add assets Objects Group
697
694
  object1.add(asrtObj);
698
695
 
@@ -705,7 +702,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
705
702
  SceneCreator.getDistances(layer);
706
703
  }, 100);
707
704
  }
708
- var flip_doorhandle = element.properties.get("flip_doorhandle");
705
+ var flip_doorhandle = element.properties.get('flip_doorhandle');
709
706
  if (flip_doorhandle) {
710
707
  SceneCreator.updateDoorHandleMesh(element, object1, true);
711
708
  }
@@ -721,14 +718,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
721
718
  transparency: 0.8
722
719
  });
723
720
  obj.material = material;
724
- } else if (name.startsWith("sink_")) {
721
+ } else if (name.startsWith('sink_')) {
725
722
  // texture = loadTexture('/assets/img/texture/steel.jpg');
726
723
 
727
724
  var _material;
728
725
  // Get color from name
729
- if (name.includes("black") || name.includes("white")) {
726
+ if (name.includes('black') || name.includes('white')) {
730
727
  var _color2;
731
- if (name.includes("black")) {
728
+ if (name.includes('black')) {
732
729
  _color2 = new Three.Color(0x555555).convertLinearToSRGB();
733
730
  } else {
734
731
  _color2 = 0xffffff;
@@ -761,14 +758,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
761
758
  var open_doors = element.toJS().properties.open_doors;
762
759
  var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
763
760
  if (object_match && object_match.length > 2) {
764
- var isDoor = object_match[1] === "door";
761
+ var isDoor = object_match[1] === 'door';
765
762
  if (isDoor) {
766
763
  var offsetData = object1.userData.door_animate_offset[obj.name];
767
764
  // Open Door
768
- (0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner, "Opened2D");
765
+ (0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
769
766
  } else {
770
767
  // Open Drawer
771
- (0, _helper.translateDrawer)(element.toJS(), obj, open_doors, "Opened2D");
768
+ (0, _helper.translateDrawer)(element.toJS(), obj, open_doors, 'Opened2D');
772
769
  }
773
770
  }
774
771
  }
@@ -778,30 +775,30 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
778
775
  // keys in structure
779
776
  var keys = Object.keys(structure);
780
777
  // if exist in cached Objects
781
- if (element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
782
- var _objGroup = cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone();
778
+ if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
779
+ var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
783
780
  return Promise.resolve(onLoadItem(_objGroup.clone()));
784
781
  }
785
782
 
786
783
  // base Object/////
787
784
  var objGroup = null;
788
785
  var _loadGLTFs = function loadGLTFs(i) {
789
- if (keys[i] === "animation") {
786
+ if (keys[i] === 'animation') {
790
787
  // if animation info
791
788
  i++;
792
789
  return _loadGLTFs(i);
793
790
  }
794
- if (keys[i] === "placeholders") {
791
+ if (keys[i] === 'placeholders') {
795
792
  // if placeholders group
796
793
  i++;
797
794
  return _loadGLTFs(i);
798
795
  }
799
796
  if (i === keys.length) {
800
797
  // if end of keys
801
- cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
802
- return onLoadItem(cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone());
798
+ cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
799
+ return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
803
800
  }
804
- if (keys[i] === "base") {
801
+ if (keys[i] === 'base') {
805
802
  // if base Objects
806
803
  i++;
807
804
  return _loadGLTFs(i);
@@ -814,15 +811,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
814
811
  }
815
812
  for (var j = 0; j < placeholderStructure.length; j++) {
816
813
  var phData = placeholderStructure[j];
817
- var phs = phData.split("/");
818
- var temp = phData.split("/");
814
+ var phs = phData.split('/');
815
+ var temp = phData.split('/');
819
816
  // placeholder remake////////////////
820
817
  for (var k = 0; k < phs.length; k++) {
821
818
  if (phs[k] in placeholders) {
822
819
  var placeholderphs = placeholders[phs[k]];
823
820
  var key = placeholderStructure.length / placeholderphs.length;
824
821
  phs[k] = placeholderphs[Math.floor(j / key)];
825
- var splitedData = phs[k].split("/");
822
+ var splitedData = phs[k].split('/');
826
823
  if (splitedData.length > 1) {
827
824
  phs[k] = splitedData[splitedData.length - 1];
828
825
  for (var m = splitedData.length - 2; m >= 0; m--) {
@@ -833,41 +830,41 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
833
830
  k = -1;
834
831
  continue;
835
832
  }
836
- if (phs[k].indexOf("ph") == -1) {
833
+ if (phs[k].indexOf('ph') == -1) {
837
834
  var _url = structure[temp[k - 1]];
838
- if (temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS()) in structure) {
839
- if (structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] != null) {
840
- _url = structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())];
835
+ if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
836
+ if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
837
+ _url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
841
838
  }
842
839
  }
843
840
  if ((0, _typeof2["default"])(_url) == Array) _url = _url[0];
844
- var uData = _url.split("/");
841
+ var uData = _url.split('/');
845
842
  uData = uData[uData.length - 1];
846
843
  uData = uData.slice(0, -5);
847
- var datas = uData.split("_");
844
+ var datas = uData.split('_');
848
845
  uData = datas[1];
849
846
  for (var _i = 2; _i < datas.length; _i++) {
850
- uData += "_";
847
+ uData += '_';
851
848
  uData += datas[_i];
852
849
  }
853
- uData = mainName.replace("main", uData);
854
- phs[k] = "ph_" + uData + "_" + phs[k];
850
+ uData = mainName.replace('main', uData);
851
+ phs[k] = 'ph_' + uData + '_' + phs[k];
855
852
  }
856
853
  }
857
854
  phsArray.push(phs);
858
855
  }
859
856
  var url = structure[keys[i]];
860
- var normalMap = "";
861
- var urlData = url.split("/");
857
+ var normalMap = '';
858
+ var urlData = url.split('/');
862
859
  for (var _j = 0; _j < element.submodule.size; _j++) {
863
- var replaceUrlData = element.submodule.get(_j).split("/");
860
+ var replaceUrlData = element.submodule.get(_j).split('/');
864
861
  if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
865
862
  url = element.submodule.get(_j);
866
863
  break;
867
864
  }
868
865
  }
869
866
  for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
870
- var normalMapData = element.normalMap.get(_j2).split("/");
867
+ var normalMapData = element.normalMap.get(_j2).split('/');
871
868
  if (urlData.includes(normalMapData[normalMapData.length - 2])) {
872
869
  normalMap = element.normalMap.get(_j2);
873
870
  break;
@@ -879,15 +876,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
879
876
  if (phsArray.length > 0) {
880
877
  // let loadUrl = dirName + url;
881
878
  var loadUrl = url;
882
- if (doorStyles.get(keys[i] + "_gltf") != undefined) {
883
- loadUrl = doorStyles.get(keys[i] + "_gltf");
884
- structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = loadUrl;
879
+ if (doorStyles.get(keys[i] + '_gltf') != undefined) {
880
+ loadUrl = doorStyles.get(keys[i] + '_gltf');
881
+ structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
885
882
  } else {
886
- structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = null;
883
+ structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
887
884
  }
888
885
  return (0, _loadObj.loadGLTF)(loadUrl).then(function (object) {
889
- if (normalMap !== "") {
890
- var normalUrl = normalMap.split(".")[0] + "-normal." + normalMap.split(".")[1];
886
+ if (normalMap !== '') {
887
+ var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
891
888
  var t = loadTexture(normalMap);
892
889
  var _m = loadTexture(normalUrl);
893
890
  var mat2 = new Three.MeshStandardMaterial({
@@ -911,7 +908,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
911
908
  // let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
912
909
  var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
913
910
  var _mat;
914
- if (_normalMap === "") {
911
+ if (_normalMap === '') {
915
912
  var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
916
913
  _mat = new Three.MeshStandardMaterial({
917
914
  color: examplecolor,
@@ -935,8 +932,8 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
935
932
  object.children[_j4].material = _mat;
936
933
  object.children[_j4].receiveShadow = true;
937
934
  object.children[_j4].castShadow = true;
938
- !object.children[_j4].name.includes("handle") && addEdgesToMesh(object.children[_j4]);
939
- } else if (!object.children[_j4].name.startsWith("ph_") && object.children[_j4].type === _constants.OBJTYPE_GROUP) {
935
+ !object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
936
+ } else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === _constants.OBJTYPE_GROUP) {
940
937
  object.children[_j4].traverse(function (prim) {
941
938
  prim.material = _mat;
942
939
  prim.receiveShadow = true;
@@ -976,10 +973,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
976
973
  } else {
977
974
  if (parent.children[_k].name == placeholder) {
978
975
  var tmp = object.clone();
979
- if (placeholder.includes("drawer_door") && placeholder.includes("_handle")) {
976
+ if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
980
977
  tmp.rotateZ(Math.PI / 2);
981
978
  }
982
- if (placeholder.includes("_handle") && tmp.children[0].type === _constants.OBJTYPE_MESH) {
979
+ if (placeholder.includes('_handle') && tmp.children[0].type === _constants.OBJTYPE_MESH) {
983
980
  // NOTE: change metalness of handle
984
981
  tmp.children[0].material.metalness = 1;
985
982
  // handleMaterial.metalness || 0.2;
@@ -993,25 +990,23 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
993
990
  }
994
991
  }
995
992
  }, function (reason) {
996
- console.log("loadGLTF failed for reason:", reason);
993
+ console.log('loadGLTF failed for reason:', reason);
997
994
  }).then(function () {
998
995
  i++;
999
996
  return _loadGLTFs(i);
1000
997
  });
1001
998
  }
1002
999
  };
1003
- return (0, _loadObj.loadGLTF)(structure["base"]).then(function (object) {
1004
- object.name = "MainObject";
1000
+ return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
1001
+ object.name = 'MainObject';
1005
1002
  object.receiveShadow = true;
1006
1003
  objGroup = object;
1007
1004
  if (!(0, _helper.isEmpty)(doorStyles)) {
1008
- var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
1005
+ var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
1009
1006
  if (counterTop.uri === undefined) {
1010
1007
  try {
1011
1008
  counterTop = counterTop.toJS();
1012
1009
  } catch (error) {
1013
- //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
1014
- counterTop.uri = "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg";
1015
1010
  console.log(error);
1016
1011
  }
1017
1012
  }
@@ -1019,7 +1014,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
1019
1014
  counterTop.uri = layer.toJS().counterTop.uri;
1020
1015
  }
1021
1016
  var countTopMap = counterTop.uri;
1022
- var interiorMap = doorStyles.get("interior");
1017
+ var interiorMap = doorStyles.get('interior');
1023
1018
  var countT = loadTexture(countTopMap);
1024
1019
  countT.wrapS = Three.RepeatWrapping;
1025
1020
  countT.wrapT = Three.RepeatWrapping;
@@ -1028,7 +1023,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
1028
1023
  var mat2 = null,
1029
1024
  mat3 = null,
1030
1025
  mat4 = null;
1031
- if (normalMap === "") {
1026
+ if (normalMap === '') {
1032
1027
  mat2 = new Three.MeshStandardMaterial({
1033
1028
  color: examplecolor,
1034
1029
  metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
@@ -1045,11 +1040,11 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
1045
1040
  }
1046
1041
  // mat2.envMap = textureCube;
1047
1042
 
1048
- if (normalMap !== "") {
1043
+ if (normalMap !== '') {
1049
1044
  var t = loadTexture(normalMap);
1050
1045
  mat2.map = t;
1051
1046
  }
1052
- if (normalMap === "") {
1047
+ if (normalMap === '') {
1053
1048
  mat3 = new Three.MeshStandardMaterial({
1054
1049
  // color: examplecolor,
1055
1050
  metalness: counterTop.metalness,
@@ -1071,13 +1066,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
1071
1066
  });
1072
1067
  mat4.map = loadTexture(interiorMap);
1073
1068
  for (var j = 0; j < object.children.length; j++) {
1074
- if (object.children[j].name.includes("main")) {}
1075
- if (object.children[j].name.includes("countertop")) {
1069
+ if (object.children[j].name.includes('main')) {}
1070
+ if (object.children[j].name.includes('countertop')) {
1076
1071
  object.children[j].material = mat3;
1077
1072
  object.children[j].receiveShadow = true;
1078
1073
  object.children[j].castShadow = true;
1079
1074
  addEdgesToMesh(object.children[j]);
1080
- } else if (object.children[j].name.includes("_interior_")) {
1075
+ } else if (object.children[j].name.includes('_interior_')) {
1081
1076
  object.children[j].material = mat4;
1082
1077
  } else if (object.children[j].type === _constants.OBJTYPE_MESH) {
1083
1078
  object.children[j].material = mat2;
@@ -1087,7 +1082,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
1087
1082
  }
1088
1083
  }
1089
1084
  }, function (reason) {
1090
- console.log("loadGLTF failed for reason:", reason);
1085
+ console.log('loadGLTF failed for reason:', reason);
1091
1086
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1092
1087
  }).then(function () {
1093
1088
  return _loadGLTFs(0);
@@ -1101,18 +1096,18 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1101
1096
  var applianceMaterial = element.applianceMaterial;
1102
1097
  if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
1103
1098
  var onLoadItem = function onLoadItem(object) {
1104
- var newAltitude = element.properties.get("altitude").get("_length");
1105
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
1099
+ var newAltitude = element.properties.get('altitude').get('_length');
1100
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1106
1101
  newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
1107
- var newWidth = element.properties.get("width").get("_length");
1108
- var newWidthUnit = element.properties.get("width").get("_unit") || "in";
1109
- newWidth = (0, _convertUnitsLite.convert)(newWidth).from(newWidthUnit).to("in");
1110
- var newHeight = element.properties.get("height").get("_length");
1111
- var newHeightUnit = element.properties.get("height").get("_unit") || "in";
1112
- newHeight = (0, _convertUnitsLite.convert)(newHeight).from(newHeightUnit).to("in");
1113
- var newDepth = element.properties.get("depth").get("_length");
1114
- var newDepthUnit = element.properties.get("depth").get("_unit") || "in";
1115
- newDepth = (0, _convertUnitsLite.convert)(newDepth).from(newDepthUnit).to("in");
1102
+ var newWidth = element.properties.get('width').get('_length');
1103
+ var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
1104
+ newWidth = (0, _convertUnitsLite.convert)(newWidth).from(newWidthUnit).to('in');
1105
+ var newHeight = element.properties.get('height').get('_length');
1106
+ var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
1107
+ newHeight = (0, _convertUnitsLite.convert)(newHeight).from(newHeightUnit).to('in');
1108
+ var newDepth = element.properties.get('depth').get('_length');
1109
+ var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
1110
+ newDepth = (0, _convertUnitsLite.convert)(newDepth).from(newDepthUnit).to('in');
1116
1111
  object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
1117
1112
  // Normalize the origin of the object
1118
1113
  var boundingBox = new Three.Box3().setFromObject(object);
@@ -1127,16 +1122,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1127
1122
  var name = obj.name;
1128
1123
  var texture,
1129
1124
  textureLoader = new Three.TextureLoader();
1130
- if (name.includes("_black")) {
1125
+ if (name.includes('_black')) {
1131
1126
  obj.material.roughness = 0.4;
1132
1127
  obj.material.metalness = 1.0;
1133
1128
  obj.material.color = new Three.Color(0, 0, 0);
1134
1129
  obj.castShadow = true;
1135
1130
  obj.receiveShadow = true;
1136
1131
  return object;
1137
- } else if (name.includes("_wood")) {
1138
- texture = loadTexture("/assets/img/texture/wood.jpg");
1139
- } else if (name.includes("_glass")) {
1132
+ } else if (name.includes('_wood')) {
1133
+ texture = loadTexture('/assets/img/texture/wood.jpg');
1134
+ } else if (name.includes('_glass')) {
1140
1135
  // texture = loadTexture('/assets/img/texture/glass.jpg');
1141
1136
  var material = new Three.MeshPhysicalMaterial({
1142
1137
  transparent: true,
@@ -1151,7 +1146,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1151
1146
  obj.castShadow = true;
1152
1147
  obj.receiveShadow = true;
1153
1148
  return object;
1154
- } else if (name.includes("_steel")) {
1149
+ } else if (name.includes('_steel')) {
1155
1150
  // texture = loadTexture('/assets/img/texture/steel.jpg');
1156
1151
  var _material2 = new Three.MeshPhysicalMaterial({
1157
1152
  roughness: 0.2,
@@ -1201,16 +1196,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1201
1196
  // vertical line - 4 lines around object//////////////////////////
1202
1197
  var vLineGeom = new Three.BufferGeometry();
1203
1198
  var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1204
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1199
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1205
1200
  var vLineGeom1 = new Three.BufferGeometry();
1206
1201
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1207
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1202
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1208
1203
  var vLineGeom2 = new Three.BufferGeometry();
1209
1204
  var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1210
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1205
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1211
1206
  var vLineGeom3 = new Three.BufferGeometry();
1212
1207
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1213
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1208
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1214
1209
  // ///////////////////////////////////////
1215
1210
 
1216
1211
  // set names of transform object
@@ -1223,12 +1218,12 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1223
1218
  color: 0xffffff,
1224
1219
  colorWrite: true
1225
1220
  }));
1226
- rotFillObj.name = "rotate";
1221
+ rotFillObj.name = 'rotate';
1227
1222
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1228
1223
  color: 0xffffff,
1229
1224
  side: Three.DoubleSide
1230
1225
  }));
1231
- upObj.name = "transUp";
1226
+ upObj.name = 'transUp';
1232
1227
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1233
1228
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
1234
1229
  side: Three.DoubleSide,
@@ -1268,7 +1263,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1268
1263
  vLine3.translateY(0.1);
1269
1264
  upObj.translateOnAxis(uVec, 1);
1270
1265
  upObj.translateY(max.y - min.y + 0.05);
1271
- mBox.name = "TransformBox";
1266
+ mBox.name = 'TransformBox';
1272
1267
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1273
1268
  mBox.scale.set(1.01, 1.01, 1.01);
1274
1269
 
@@ -1296,7 +1291,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1296
1291
  asrtObj.add(mBox);
1297
1292
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
1298
1293
  // asrtObj.translateY(newAltitude / scalevec.y);
1299
- asrtObj.name = "TransformGizmo";
1294
+ asrtObj.name = 'TransformGizmo';
1300
1295
  // add assets Objects Group
1301
1296
  object.add(asrtObj);
1302
1297
 
@@ -1326,7 +1321,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1326
1321
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1327
1322
  return onLoadItem(cachedObject[element.type].clone());
1328
1323
  }
1329
- if (keys[i] === "base") {
1324
+ if (keys[i] === 'base') {
1330
1325
  // if base Objects
1331
1326
  i++;
1332
1327
  return _loadGLTFs2(i);
@@ -1335,13 +1330,13 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1335
1330
 
1336
1331
  // load base to start //
1337
1332
  // return loadGLTF(dirName + structure["base"])
1338
- return (0, _loadObj.loadGLTF)(structure["base"]).then(function (object) {
1333
+ return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
1339
1334
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1340
1335
  // let texture = loadTexture(textureURL);
1341
1336
  // texture.wrapS = Three.MirroredRepeatWrapping;
1342
1337
  // texture.wrapT = Three.MirroredRepeatWrapping;
1343
1338
 
1344
- object.name = "MainObject";
1339
+ object.name = 'MainObject';
1345
1340
  // NOTE: changed appliance emissive color to black
1346
1341
  var mat2 = new Three.MeshStandardMaterial({
1347
1342
  emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
@@ -1359,7 +1354,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
1359
1354
  }
1360
1355
  objGroup = object;
1361
1356
  }, function (reason) {
1362
- console.log("loadGLTF failed for reason:", reason);
1357
+ console.log('loadGLTF failed for reason:', reason);
1363
1358
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1364
1359
  }).then(function () {
1365
1360
  return _loadGLTFs2(0);
@@ -1372,21 +1367,21 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1372
1367
  var onLoadItem = function onLoadItem(object) {
1373
1368
  var width = {
1374
1369
  length: sizeinfo.width,
1375
- unit: "in"
1370
+ unit: 'in'
1376
1371
  };
1377
1372
  var depth = {
1378
1373
  length: sizeinfo.depth,
1379
- unit: "in"
1374
+ unit: 'in'
1380
1375
  };
1381
1376
  var height = {
1382
1377
  length: sizeinfo.height,
1383
- unit: "in"
1378
+ unit: 'in'
1384
1379
  };
1385
- var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to("cm");
1386
- var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to("cm");
1387
- var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to("cm");
1388
- var newAltitude = element.properties.get("altitude").get("_length");
1389
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
1380
+ var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
1381
+ var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
1382
+ var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('cm');
1383
+ var newAltitude = element.properties.get('altitude').get('_length');
1384
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1390
1385
  newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
1391
1386
 
1392
1387
  //object.scale.set(newWidth, newHeight, newDepth);
@@ -1433,16 +1428,16 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1433
1428
  // vertical line - 4 lines around object//////////////////////////
1434
1429
  var vLineGeom = new Three.BufferGeometry();
1435
1430
  var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1436
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1431
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1437
1432
  var vLineGeom1 = new Three.BufferGeometry();
1438
1433
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1439
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1434
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1440
1435
  var vLineGeom2 = new Three.BufferGeometry();
1441
1436
  var vertices2 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1442
- vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1437
+ vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1443
1438
  var vLineGeom3 = new Three.BufferGeometry();
1444
1439
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1445
- vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1440
+ vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1446
1441
  // ///////////////////////////////////////
1447
1442
 
1448
1443
  // set names of transform object
@@ -1455,12 +1450,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1455
1450
  color: 0xffffff,
1456
1451
  colorWrite: true
1457
1452
  }));
1458
- rotFillObj.name = "rotate";
1453
+ rotFillObj.name = 'rotate';
1459
1454
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1460
1455
  color: 0xffffff,
1461
1456
  side: Three.DoubleSide
1462
1457
  }));
1463
- upObj.name = "transUp";
1458
+ upObj.name = 'transUp';
1464
1459
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1465
1460
  color: 0xdd6699,
1466
1461
  side: Three.DoubleSide,
@@ -1502,7 +1497,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1502
1497
  //rotObj.translateOnAxis(uVec, 1);
1503
1498
  upObj.translateOnAxis(uVec, 1);
1504
1499
  upObj.translateY(max.y - min.y);
1505
- mBox.name = "TransformBox";
1500
+ mBox.name = 'TransformBox';
1506
1501
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1507
1502
  mBox.scale.set(1.01, 1.01, 1.01);
1508
1503
 
@@ -1531,7 +1526,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1531
1526
  asrtObj.add(mBox);
1532
1527
  asrtObj.scale.set(1, 1, 1);
1533
1528
  //asrtObj.translateY(newAltitude / scalevec.y);
1534
- asrtObj.name = "TransformGizmo";
1529
+ asrtObj.name = 'TransformGizmo';
1535
1530
  // add assets Objects Group
1536
1531
  object.add(asrtObj);
1537
1532
 
@@ -1564,7 +1559,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1564
1559
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1565
1560
  return onLoadItem(cachedObject[element.type].clone());
1566
1561
  }
1567
- if (keys[i] === "base") {
1562
+ if (keys[i] === 'base') {
1568
1563
  // if base Objects
1569
1564
  i++;
1570
1565
  return _loadGLTFs3(i);
@@ -1573,13 +1568,13 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1573
1568
 
1574
1569
  // load base to start //
1575
1570
  // return loadGLTF(dirName + structure["base"])
1576
- return (0, _loadObj.loadGLTF)(structure["base"]).then(function (object) {
1571
+ return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
1577
1572
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1578
1573
  // let texture = loadTexture(textureURL);
1579
1574
  // texture.wrapS = Three.MirroredRepeatWrapping;
1580
1575
  // texture.wrapT = Three.MirroredRepeatWrapping;
1581
1576
 
1582
- object.name = "MainObject";
1577
+ object.name = 'MainObject';
1583
1578
  var mat2 = new Three.MeshStandardMaterial({
1584
1579
  emissive: new Three.Color(0x666666).convertLinearToSRGB(),
1585
1580
  metalness: 0.7,
@@ -1595,7 +1590,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1595
1590
  }
1596
1591
  objGroup = object;
1597
1592
  }, function (reason) {
1598
- console.log("loadGLTF failed for reason:", reason);
1593
+ console.log('loadGLTF failed for reason:', reason);
1599
1594
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1600
1595
  }).then(function () {
1601
1596
  return _loadGLTFs3(0);