kitchen-simulator 4.1.0-react-18 → 4.1.1

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 (202) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +162 -111
  4. package/es/LiteRenderer.js +161 -129
  5. package/es/actions/export.js +25 -12
  6. package/es/assets/gltf/door_sliding.bin +0 -0
  7. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  8. package/es/catalog/catalog.js +21 -5
  9. package/es/catalog/factories/area-factory-3d.js +17 -17
  10. package/es/catalog/factories/wall-factory.js +1 -1
  11. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  12. package/es/catalog/properties/export.js +21 -0
  13. package/es/catalog/properties/property-checkbox.js +68 -0
  14. package/es/catalog/properties/property-color.js +39 -0
  15. package/es/catalog/properties/property-enum.js +50 -0
  16. package/es/catalog/properties/property-hidden.js +19 -0
  17. package/es/catalog/properties/property-lenght-measure.js +100 -0
  18. package/es/catalog/properties/property-length-measure.js +84 -0
  19. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  20. package/es/catalog/properties/property-number.js +48 -0
  21. package/es/catalog/properties/property-read-only.js +26 -0
  22. package/es/catalog/properties/property-string.js +48 -0
  23. package/es/catalog/properties/property-toggle.js +39 -0
  24. package/es/catalog/properties/shared-property-style.js +14 -0
  25. package/es/catalog/utils/exporter.js +24 -11
  26. package/es/catalog/utils/item-loader.js +222 -213
  27. package/es/class/hole.js +0 -2
  28. package/es/class/item.js +89 -70
  29. package/es/class/layer.js +1 -1
  30. package/es/class/line.js +4 -8
  31. package/es/class/project.js +97 -80
  32. package/es/components/content.js +5 -93
  33. package/es/components/export.js +4 -6
  34. package/es/components/style/button.js +106 -0
  35. package/es/components/style/cancel-button.js +21 -0
  36. package/es/components/style/content-container.js +30 -0
  37. package/es/components/style/content-title.js +25 -0
  38. package/es/components/style/delete-button.js +24 -0
  39. package/es/components/style/export.js +28 -2
  40. package/es/components/style/form-block.js +20 -0
  41. package/es/components/style/form-color-input.js +26 -0
  42. package/es/components/style/form-label.js +22 -0
  43. package/es/components/style/form-number-input.js +29 -27
  44. package/es/components/style/form-number-input_2.js +200 -0
  45. package/es/components/style/form-select.js +19 -0
  46. package/es/components/style/form-slider.js +60 -0
  47. package/es/components/style/form-submit-button.js +25 -0
  48. package/es/components/style/form-text-input.js +69 -0
  49. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  50. package/es/components/viewer2d/group.js +5 -4
  51. package/es/components/viewer2d/item.js +155 -359
  52. package/es/components/viewer2d/layer.js +1 -1
  53. package/es/components/viewer2d/line.js +22 -52
  54. package/es/components/viewer2d/ruler.js +16 -11
  55. package/es/components/viewer2d/rulerDist.js +38 -51
  56. package/es/components/viewer2d/rulerX.js +4 -2
  57. package/es/components/viewer2d/rulerY.js +3 -0
  58. package/es/components/viewer2d/scene.js +17 -12
  59. package/es/components/viewer2d/state.js +1 -1
  60. package/es/components/viewer2d/utils.js +2 -2
  61. package/es/components/viewer2d/vertex.js +3 -2
  62. package/es/components/viewer2d/viewer2d.js +56 -87
  63. package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
  64. package/es/components/viewer3d/scene-creator.js +255 -58
  65. package/es/components/viewer3d/viewer3d-first-person.js +24 -26
  66. package/es/components/viewer3d/viewer3d.js +103 -124
  67. package/es/constants.js +7 -2
  68. package/es/devLiteRenderer.js +491 -150
  69. package/es/index.js +590 -21
  70. package/es/models.js +13 -8
  71. package/es/plugins/SVGLoader.js +1414 -0
  72. package/es/plugins/console-debugger.js +34 -0
  73. package/es/plugins/export.js +7 -0
  74. package/es/plugins/keyboard.js +110 -0
  75. package/es/reducers/project-reducer.js +3 -0
  76. package/es/reducers/viewer2d-reducer.js +3 -1
  77. package/es/reducers/viewer3d-reducer.js +3 -1
  78. package/es/styles/export.js +5 -0
  79. package/es/styles/tabs.css +40 -0
  80. package/es/utils/geometry.js +77 -119
  81. package/es/utils/helper.js +38 -1
  82. package/es/utils/isolate-event-handler.js +827 -607
  83. package/es/utils/molding.js +459 -11
  84. package/es/utils/ruler.js +58 -0
  85. package/lib/AppContext.js +1 -1
  86. package/lib/LiteKitchenConfigurator.js +161 -111
  87. package/lib/LiteRenderer.js +160 -129
  88. package/lib/actions/export.js +35 -39
  89. package/lib/assets/gltf/door_sliding.bin +0 -0
  90. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  91. package/lib/catalog/catalog.js +20 -4
  92. package/lib/catalog/factories/area-factory-3d.js +14 -14
  93. package/lib/catalog/factories/wall-factory.js +1 -1
  94. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  95. package/lib/catalog/properties/export.js +81 -0
  96. package/lib/catalog/properties/property-checkbox.js +76 -0
  97. package/lib/catalog/properties/property-color.js +47 -0
  98. package/lib/catalog/properties/property-enum.js +58 -0
  99. package/lib/catalog/properties/property-hidden.js +27 -0
  100. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  101. package/lib/catalog/properties/property-length-measure.js +92 -0
  102. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  103. package/lib/catalog/properties/property-number.js +56 -0
  104. package/lib/catalog/properties/property-read-only.js +34 -0
  105. package/lib/catalog/properties/property-string.js +56 -0
  106. package/lib/catalog/properties/property-toggle.js +47 -0
  107. package/lib/catalog/properties/shared-property-style.js +21 -0
  108. package/lib/catalog/utils/exporter.js +24 -11
  109. package/lib/catalog/utils/item-loader.js +219 -210
  110. package/lib/class/hole.js +0 -2
  111. package/lib/class/item.js +87 -68
  112. package/lib/class/layer.js +1 -1
  113. package/lib/class/line.js +3 -7
  114. package/lib/class/project.js +97 -80
  115. package/lib/components/content.js +5 -93
  116. package/lib/components/export.js +6 -26
  117. package/lib/components/style/button.js +115 -0
  118. package/lib/components/style/cancel-button.js +29 -0
  119. package/lib/components/style/content-container.js +38 -0
  120. package/lib/components/style/content-title.js +35 -0
  121. package/lib/components/style/delete-button.js +34 -0
  122. package/lib/components/style/export.js +105 -1
  123. package/lib/components/style/form-block.js +28 -0
  124. package/lib/components/style/form-color-input.js +34 -0
  125. package/lib/components/style/form-label.js +30 -0
  126. package/lib/components/style/form-number-input.js +29 -27
  127. package/lib/components/style/form-number-input_2.js +209 -0
  128. package/lib/components/style/form-select.js +29 -0
  129. package/lib/components/style/form-slider.js +68 -0
  130. package/lib/components/style/form-submit-button.js +35 -0
  131. package/lib/components/style/form-text-input.js +78 -0
  132. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  133. package/lib/components/viewer2d/group.js +5 -4
  134. package/lib/components/viewer2d/item.js +152 -356
  135. package/lib/components/viewer2d/layer.js +1 -1
  136. package/lib/components/viewer2d/line.js +22 -52
  137. package/lib/components/viewer2d/ruler.js +15 -10
  138. package/lib/components/viewer2d/rulerDist.js +38 -51
  139. package/lib/components/viewer2d/rulerX.js +4 -2
  140. package/lib/components/viewer2d/rulerY.js +3 -0
  141. package/lib/components/viewer2d/scene.js +17 -12
  142. package/lib/components/viewer2d/state.js +1 -1
  143. package/lib/components/viewer2d/utils.js +2 -2
  144. package/lib/components/viewer2d/vertex.js +3 -2
  145. package/lib/components/viewer2d/viewer2d.js +54 -84
  146. package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
  147. package/lib/components/viewer3d/scene-creator.js +252 -55
  148. package/lib/components/viewer3d/viewer3d-first-person.js +24 -26
  149. package/lib/components/viewer3d/viewer3d.js +100 -120
  150. package/lib/constants.js +12 -7
  151. package/lib/devLiteRenderer.js +489 -148
  152. package/lib/index.js +592 -21
  153. package/lib/models.js +13 -8
  154. package/lib/plugins/SVGLoader.js +1419 -0
  155. package/lib/plugins/console-debugger.js +42 -0
  156. package/lib/plugins/export.js +25 -0
  157. package/lib/plugins/keyboard.js +117 -0
  158. package/lib/reducers/project-reducer.js +3 -0
  159. package/lib/reducers/viewer2d-reducer.js +3 -1
  160. package/lib/reducers/viewer3d-reducer.js +3 -1
  161. package/lib/styles/export.js +13 -0
  162. package/lib/styles/tabs.css +40 -0
  163. package/lib/utils/geometry.js +77 -119
  164. package/lib/utils/helper.js +40 -1
  165. package/lib/utils/isolate-event-handler.js +827 -606
  166. package/lib/utils/molding.js +460 -9
  167. package/lib/utils/ruler.js +63 -0
  168. package/package.json +20 -15
  169. package/es/mocks/appliancePayload.json +0 -27
  170. package/es/mocks/cabinetPayload.json +0 -1914
  171. package/es/mocks/cabinetPayload2.json +0 -76
  172. package/es/mocks/dataBundle2.json +0 -4
  173. package/es/mocks/distancePayload.json +0 -6
  174. package/es/mocks/doorStylePayload2.json +0 -84
  175. package/es/mocks/furnishingPayload.json +0 -23
  176. package/es/mocks/itemCDSPayload.json +0 -27
  177. package/es/mocks/lightingPayload.json +0 -23
  178. package/es/mocks/mockProps.json +0 -43
  179. package/es/mocks/mockProps2.json +0 -9
  180. package/es/mocks/moldingPayload.json +0 -19
  181. package/es/mocks/projectItemsCatalog.json +0 -133
  182. package/es/mocks/rectangleShape.json +0 -238
  183. package/es/mocks/replaceCabinetPayload.json +0 -81
  184. package/es/mocks/roomShapePayload.json +0 -5
  185. package/es/useAppContext.js +0 -8
  186. package/lib/mocks/appliancePayload.json +0 -27
  187. package/lib/mocks/cabinetPayload.json +0 -1914
  188. package/lib/mocks/cabinetPayload2.json +0 -76
  189. package/lib/mocks/dataBundle2.json +0 -4
  190. package/lib/mocks/distancePayload.json +0 -6
  191. package/lib/mocks/doorStylePayload2.json +0 -84
  192. package/lib/mocks/furnishingPayload.json +0 -23
  193. package/lib/mocks/itemCDSPayload.json +0 -27
  194. package/lib/mocks/lightingPayload.json +0 -23
  195. package/lib/mocks/mockProps.json +0 -43
  196. package/lib/mocks/mockProps2.json +0 -9
  197. package/lib/mocks/moldingPayload.json +0 -19
  198. package/lib/mocks/projectItemsCatalog.json +0 -133
  199. package/lib/mocks/rectangleShape.json +0 -238
  200. package/lib/mocks/replaceCabinetPayload.json +0 -81
  201. package/lib/mocks/roomShapePayload.json +0 -5
  202. package/lib/useAppContext.js +0 -16
@@ -4,9 +4,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  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; }
5
5
  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) { _defineProperty(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; }
6
6
  import { convert } from "../../utils/convert-units-lite";
7
- import { fromJS, Map } from "immutable";
8
- import React, { useState } from "react";
9
- import * as Three from "three";
7
+ import { fromJS, Map } from 'immutable';
8
+ import React, { useState } from 'react';
9
+ import * as Three from 'three';
10
10
  import * as SceneCreator from "../../components/viewer3d/scene-creator";
11
11
  import { ARROW_COLOR, BASE_CABINET_LAYOUTPOS, OBJTYPE_GROUP, OBJTYPE_MESH, SHADE_DARK_PURPLE_COLOR, SHAPE_SVG_DEPTH, SHAPE_SVG_PADDING, SHAPE_SVG_WIDTH, STATUS_WARNING_COLOR, STATUS_WARNING_LIGHT_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, UNIT_INCH, WALL_CABINET_LAYOUTPOS } from "../../constants";
12
12
  import { Item } from "../../models";
@@ -14,18 +14,18 @@ import * as GeomUtils from "./geom-utils";
14
14
  import { loadGLTF } from "./load-obj";
15
15
  import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
16
16
  import { isWarningItem } from "../../components/viewer2d/utils";
17
- var INITIAL_NORMAL_MAP = "";
17
+ var INITIAL_NORMAL_MAP = '';
18
18
 
19
19
  // env Map ///////////////
20
20
  var paramsCounter = {
21
- envMap: "HDR",
21
+ envMap: 'HDR',
22
22
  roughness: 0.6,
23
23
  metalness: 0.3,
24
24
  exposure: 1
25
25
  // debug: true
26
26
  };
27
27
  var params = {
28
- envMap: "HDR",
28
+ envMap: 'HDR',
29
29
  roughness: 0.9,
30
30
  metalness: 0.1,
31
31
  metalness_glossy: 0.2,
@@ -33,18 +33,18 @@ var params = {
33
33
  // debug: false
34
34
  };
35
35
  var paramsModel = {
36
- envMap: "HDR",
36
+ envMap: 'HDR',
37
37
  roughness: 0.9,
38
38
  metalness: 0.2,
39
39
  exposure: 1.0
40
40
  // debug: false
41
41
  };
42
42
  var buttons = [{
43
- name: "Edit",
44
- thumbnail: "/assets/img/svg/3d_item_warning_edit.svg"
43
+ name: 'Edit',
44
+ thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
45
45
  }, {
46
- name: "Info",
47
- thumbnail: "/assets/img/svg/3d_item_warning_info.svg"
46
+ name: 'Info',
47
+ thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
48
48
  }];
49
49
 
50
50
  // /////////////////////////
@@ -60,7 +60,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
60
60
  var x = element.x,
61
61
  y = element.y,
62
62
  rotation = element.rotation;
63
- var el_DSN = "el_DSN",
63
+ var el_DSN = 'el_DSN',
64
64
  doorStylesKeys = [];
65
65
  var _element = element.toJS();
66
66
  if (_element.doorStyle !== undefined) {
@@ -68,10 +68,10 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
68
68
  doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
69
69
  }
70
70
  }
71
- if ((doorStylesKeys.includes("euro_length") || doorStylesKeys.includes("euro_width") || doorStylesKeys.includes("euro_shape_svg")) && _element.doorStyle.doorStyles.is_euro_cds) {
71
+ if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
72
72
  el_DSN = _element.doorStyle.door_style_name;
73
73
  } else {
74
- el_DSN = "el_DSN";
74
+ el_DSN = 'el_DSN';
75
75
  }
76
76
  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;
77
77
  if (doorStylesKeys.length > 0) {
@@ -80,42 +80,42 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
80
80
  el_is_euro_cds = _element.doorStyle.doorStyles.is_euro_cds;
81
81
  el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
82
82
  }
83
- if (el_euro_length === undefined && el_euro_width === undefined) {
84
- el_DSN = "el_DSN";
83
+ if (isEmpty(el_euro_length) && isEmpty(el_euro_width)) {
84
+ el_DSN = 'el_DSN';
85
85
  }
86
- if (el_DSN === "Euro & Frameless") {
86
+ if (el_DSN === 'Euro & Frameless') {
87
87
  // sizeinfo["depth"] = el_euro_length;
88
88
  // sizeinfo["width"] = el_euro_width;
89
89
  }
90
- var tempWidth = element.properties.get("width");
91
- var tempDepth = element.properties.get("depth");
90
+ var tempWidth = element.properties.get('width');
91
+ var tempDepth = element.properties.get('depth');
92
92
  width = tempWidth && {
93
- length: tempWidth.get("_length"),
94
- unit: tempWidth.get("_unit")
93
+ length: tempWidth.get('_length'),
94
+ unit: tempWidth.get('_unit')
95
95
  };
96
96
  depth = tempDepth && {
97
- length: tempDepth.get("_length"),
98
- unit: tempDepth.get("_unit")
97
+ length: tempDepth.get('_length'),
98
+ unit: tempDepth.get('_unit')
99
99
  };
100
- var originalWidth = convert(sizeinfo.width).from("in").to("cm");
101
- var originalDepth = convert(sizeinfo.depth).from("in").to("cm");
102
- var newWidth = convert(width.length).from(width.unit).to("cm");
103
- var newDepth = convert(depth.length).from(depth.unit).to("cm");
100
+ var originalWidth = convert(sizeinfo.width).from('in').to('cm');
101
+ var originalDepth = convert(sizeinfo.depth).from('in').to('cm');
102
+ var newWidth = convert(width.length).from(width.unit).to('cm');
103
+ var newDepth = convert(depth.length).from(depth.unit).to('cm');
104
104
  var padding = convert(SHAPE_SVG_PADDING).from(UNIT_INCH).to(UNIT_CENTIMETER);
105
105
  var angle = element.rotation + 90;
106
106
  var textRotation = 0;
107
107
  if (Math.sin(angle * Math.PI / 180) < 0) {
108
108
  textRotation = 180;
109
109
  }
110
- var color = "#eee";
110
+ var color = '#eee';
111
111
  if (layoutpos == BASE_CABINET_LAYOUTPOS) {
112
- color = "#3f8db3";
112
+ color = '#3f8db3';
113
113
  }
114
114
  if (layoutpos == TALL_CABINET_LAYOUTPOS) {
115
- color = "#93b3be";
115
+ color = '#93b3be';
116
116
  }
117
117
  if (layoutpos == WALL_CABINET_LAYOUTPOS) {
118
- color = "#48b08dcc";
118
+ color = '#48b08dcc';
119
119
  }
120
120
  var splitStr = [];
121
121
  var txtContent = [];
@@ -129,7 +129,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
129
129
  var dcId,
130
130
  doorStyle = element.doorStyle;
131
131
  if (doorStyle instanceof Map) {
132
- dcId = doorStyle.get("id");
132
+ dcId = doorStyle.get('id');
133
133
  } else {
134
134
  dcId = doorStyle.id;
135
135
  }
@@ -148,7 +148,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
148
148
  splitStr.push(type.slice(lineCount * rowCount));
149
149
  splitStr.forEach(function (el, key) {
150
150
  txtContent.push(/*#__PURE__*/React.createElement("text", {
151
- key: "text" + key,
151
+ key: 'text' + key,
152
152
  x: "0",
153
153
  y: newDepth / 2 - 12,
154
154
  dy: 16 * key,
@@ -158,16 +158,16 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
158
158
  ,
159
159
  style: {
160
160
  fontWeight: 500,
161
- fontSize: "7px",
162
- textAnchor: "middle",
163
- fill: "#FFF",
164
- display: "block"
161
+ fontSize: '7px',
162
+ textAnchor: 'middle',
163
+ fill: '#FFF',
164
+ display: 'block'
165
165
  }
166
166
  }, el));
167
167
  });
168
168
  var style = {
169
- stroke: element.selected ? "#565658" : "#565658",
170
- strokeWidth: "2px",
169
+ stroke: element.selected ? '#565658' : '#565658',
170
+ strokeWidth: '2px',
171
171
  fill: color
172
172
  };
173
173
  // let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
@@ -175,8 +175,8 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
175
175
  var rendered = null;
176
176
  var svg_url, svg_width, svg_depth;
177
177
  if (shape_svg || el_euro_shape_svg) {
178
- if (typeof shape_svg == "string" || typeof el_euro_shape_svg == "string") {
179
- if (el_DSN === "Euro & Frameless" && el_is_euro_cds) {
178
+ if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
179
+ if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
180
180
  svg_url = el_euro_shape_svg;
181
181
  svg_width = newWidth;
182
182
  svg_depth = newDepth;
@@ -203,20 +203,25 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
203
203
  var warning_buttons = /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
204
204
  id: "warning_info_2d",
205
205
  style: {
206
- cursor: "pointer",
206
+ cursor: 'pointer',
207
207
  transform: "translate(".concat(-transX, "px, ").concat(-transY, "px)")
208
208
  },
209
209
  onMouseEnter: function onMouseEnter(event) {
210
- var bbox = event.target.getBoundingClientRect();
211
- if (document.getElementById("warning_box_2d")) {
212
- document.getElementById("warning_box_2d").style.display = "flex";
213
- document.getElementById("warning_box_2d").style.top = "".concat(bbox.top - 60, "px");
214
- document.getElementById("warning_box_2d").style.left = "".concat(bbox.left, "px");
215
- }
210
+ var target = event.currentTarget;
211
+ var tooltip = document.getElementById('warning_box_2d');
212
+ var parent = document.querySelector('#kitchen-simulator-container');
213
+ if (!tooltip || !parent) return;
214
+ var targetRect = target.getBoundingClientRect();
215
+ var parentRect = parent.getBoundingClientRect();
216
+ var left = targetRect.left - parentRect.left;
217
+ var top = targetRect.top - parentRect.top;
218
+ tooltip.style.display = 'flex';
219
+ tooltip.style.left = "".concat(left, "px");
220
+ tooltip.style.top = "".concat(top - 60, "px");
216
221
  },
217
222
  onMouseLeave: function onMouseLeave() {
218
- if (document.getElementById("warning_box_2d")) {
219
- document.getElementById("warning_box_2d").style.display = "none";
223
+ if (document.getElementById('warning_box_2d')) {
224
+ document.getElementById('warning_box_2d').style.display = 'none';
220
225
  }
221
226
  }
222
227
  }, /*#__PURE__*/React.createElement("circle", {
@@ -235,7 +240,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
235
240
  href: buttons[1].thumbnail
236
241
  })), /*#__PURE__*/React.createElement("g", {
237
242
  style: {
238
- cursor: "pointer",
243
+ cursor: 'pointer',
239
244
  transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
240
245
  },
241
246
  "data-element-root": true,
@@ -281,7 +286,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
281
286
  }, /*#__PURE__*/React.createElement("image", {
282
287
  preserveAspectRatio: "none",
283
288
  style: {
284
- pointerEvents: "none"
289
+ pointerEvents: 'none'
285
290
  },
286
291
  href: svg_url,
287
292
  width: "".concat(newWidth + 2 * padding_width),
@@ -294,16 +299,16 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
294
299
  y: "".concat(padding_depth),
295
300
  width: "".concat(newWidth),
296
301
  height: "".concat(newDepth),
297
- visibility: "hidden",
302
+ visibility: 'hidden',
298
303
  style: {
299
- pointerEvents: "all",
304
+ pointerEvents: 'all',
300
305
  opacity: 0.7,
301
- postion: "relative"
306
+ postion: 'relative'
302
307
  }
303
308
  }), /*#__PURE__*/React.createElement("g", {
304
309
  transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
305
- }, txtContent)), element.category === "cabinet" && /*#__PURE__*/React.createElement("g", {
306
- visibility: isWarningItem(element) ? "visible" : "hidden"
310
+ }, txtContent)), element.category === 'cabinet' && /*#__PURE__*/React.createElement("g", {
311
+ visibility: isWarningItem(element) ? 'visible' : 'hidden'
307
312
  }, warning_buttons)));
308
313
  } else {
309
314
  rendered = /*#__PURE__*/React.createElement("g", {
@@ -390,38 +395,38 @@ var assignUVs = function assignUVs(geometry) {
390
395
  export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
391
396
  var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
392
397
  if (element.doorStyle.constructor !== Map) {
393
- element = element.set("doorStyle", fromJS(element.doorStyle));
398
+ element = element.set('doorStyle', fromJS(element.doorStyle));
394
399
  }
395
- if (element.doorStyle.toJS().handle_gltf !== "") {
400
+ if (element.doorStyle.toJS().handle_gltf !== '') {
396
401
  // Check element has doorHandle
397
402
  for (var i = 1; i < 10; i++) {
398
- element = element.setIn(["doorStyle", "doorStyles", "door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
399
- element = element.setIn(["doorStyle", "doorStyles", "fixed_drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
400
- element = element.setIn(["doorStyle", "doorStyles", "drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
403
+ element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
404
+ element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
405
+ element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
401
406
  }
402
407
  }
403
408
  var width = {
404
409
  length: sizeinfo.width,
405
- unit: "in"
410
+ unit: 'in'
406
411
  };
407
412
  var depth = {
408
413
  length: sizeinfo.depth,
409
- unit: "in"
414
+ unit: 'in'
410
415
  };
411
416
  var height = {
412
417
  length: sizeinfo.height,
413
- unit: "in"
418
+ unit: 'in'
414
419
  };
415
- var newWidth = convert(width.length).from(width.unit).to("in");
416
- var newDepth = convert(depth.length).from(depth.unit).to("in");
417
- var newHeight = convert(height.length).from(height.unit).to("in");
418
- var mainName = ""; // to get name structure//
419
- if (element.properties.get("width")) newWidth = element.getIn(["properties", "width", "_length"]);
420
- if (element.properties.get("depth")) newDepth = element.getIn(["properties", "depth", "_length"]);
421
- if (element.properties.get("height")) newHeight = element.getIn(["properties", "height", "_length"]);
420
+ var newWidth = convert(width.length).from(width.unit).to('in');
421
+ var newDepth = convert(depth.length).from(depth.unit).to('in');
422
+ var newHeight = convert(height.length).from(height.unit).to('in');
423
+ var mainName = ''; // to get name structure//
424
+ if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
425
+ if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
426
+ if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
422
427
  var structure = structure_json;
423
428
  // structure.push({name:'model', url: '/assets/model/DCM.gltf'});
424
- structure.model = "/assets/model/DCM.gltf";
429
+ structure.model = '/assets/model/DCM.gltf';
425
430
  var placeholders = structure.placeholders;
426
431
  var doorStyles = null;
427
432
  var color = 0xffffff,
@@ -431,26 +436,29 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
431
436
  if (layer.toJS().counterTop.uri) {
432
437
  counterTop.uri = layer.toJS().counterTop.uri;
433
438
  }
434
- if ("name" in element.doorStyle) {
439
+ if ('name' in element.doorStyle) {
440
+ var _element2, _element3, _element4, _element5;
435
441
  doorStyles = new Map(element.doorStyle.doorStyles);
436
- color = element.doorStyle.color;
437
- glossness = element.doorStyle.glossness;
438
- handleMaterial.metalness = element.doorStyle.metalness;
439
- handleMaterial.roughness = element.doorStyle.roughness;
442
+ color = (_element2 = element) === null || _element2 === void 0 || (_element2 = _element2.doorStyle) === null || _element2 === void 0 ? void 0 : _element2.color;
443
+ glossness = (_element3 = element) === null || _element3 === void 0 || (_element3 = _element3.doorStyle) === null || _element3 === void 0 ? void 0 : _element3.glossness;
444
+ handleMaterial.metalness = (_element4 = element) === null || _element4 === void 0 || (_element4 = _element4.doorStyle) === null || _element4 === void 0 ? void 0 : _element4.metalness;
445
+ handleMaterial.roughness = (_element5 = element) === null || _element5 === void 0 || (_element5 = _element5.doorStyle) === null || _element5 === void 0 ? void 0 : _element5.roughness;
440
446
  } else if (element.doorStyle != null && element.doorStyle) {
441
- doorStyles = element.doorStyle.get("doorStyles");
442
- color = element.doorStyle.get("color");
443
- glossness = element.doorStyle.get("glossness");
444
- handleMaterial.metalness = element.doorStyle.get("metalness");
445
- handleMaterial.roughness = element.doorStyle.get("roughness");
447
+ var _element6, _element7, _element8, _element9, _element0;
448
+ doorStyles = (_element6 = element) === null || _element6 === void 0 || (_element6 = _element6.doorStyle) === null || _element6 === void 0 ? void 0 : _element6.get('doorStyles');
449
+ color = (_element7 = element) === null || _element7 === void 0 || (_element7 = _element7.doorStyle) === null || _element7 === void 0 ? void 0 : _element7.get('color');
450
+ glossness = (_element8 = element) === null || _element8 === void 0 || (_element8 = _element8.doorStyle) === null || _element8 === void 0 ? void 0 : _element8.get('glossness');
451
+ handleMaterial.metalness = (_element9 = element) === null || _element9 === void 0 || (_element9 = _element9.doorStyle) === null || _element9 === void 0 ? void 0 : _element9.get('metalness');
452
+ handleMaterial.roughness = (_element0 = element) === null || _element0 === void 0 || (_element0 = _element0.doorStyle) === null || _element0 === void 0 ? void 0 : _element0.get('roughness');
446
453
  }
447
- if (color === undefined) color = "#ffffff";
448
- if (glossness === undefined) glossness = 1;
454
+ if (isEmpty(color)) color = '#ffffff';
455
+ if (isEmpty(glossness)) glossness = 1;
449
456
  var tempDoorStyles = doorStyles.toJS();
450
457
  var tempPlaceholders = structure.tempPlaceholders;
451
458
  var tPlaceholders = tempPlaceholders.find(function (el) {
452
- return el.id === tempDoorStyles.cabinet_door_style_id;
453
- // return el.id === tempDoorStyles.cds[0].cabinet_door_style_id;
459
+ var _tempDoorStyles$cds, _tempDoorStyles$cds$;
460
+ if (tempDoorStyles !== null && tempDoorStyles !== void 0 && tempDoorStyles.cabinet_door_style_id) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 ? void 0 : tempDoorStyles.cabinet_door_style_id);else if ((tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds = tempDoorStyles.cds) === null || _tempDoorStyles$cds === void 0 ? void 0 : _tempDoorStyles$cds.length) > 0) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds$ = tempDoorStyles.cds[0]) === null || _tempDoorStyles$cds$ === void 0 ? void 0 : _tempDoorStyles$cds$.cabinet_door_style_id);
461
+ return false;
454
462
  });
455
463
  if (tPlaceholders !== undefined) {
456
464
  placeholders = tPlaceholders.placeholders;
@@ -469,13 +477,13 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
469
477
  areaMaterial.side = Three.DoubleSide;
470
478
  // areaMaterial.envMap = textureCube;
471
479
  if (isEmpty(doorStyles)) {
472
- var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
480
+ var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
473
481
  var interiortexture = loadTexture(normalMap);
474
482
  applyTexture(areaMaterial, interiortexture, 100, 100);
475
483
  }
476
484
  var object1 = object;
477
- var newAltitude = element.properties.get("altitude").get("_length");
478
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
485
+ var newAltitude = element.properties.get('altitude').get('_length');
486
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
479
487
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
480
488
  var _element = element.toJS();
481
489
  if (!_element.doorStyle.doorStyles.is_euro_cds) {
@@ -492,27 +500,27 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
492
500
  var door_match = child.name.match(matchStr);
493
501
  if (door_match && door_match.length > 2) {
494
502
  var _child$children$;
495
- var rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_L" : "rotate_R";
496
- if (door_match[2] === "_L") {
497
- rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_R" : "rotate_L";
503
+ var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
504
+ if (door_match[2] === '_L') {
505
+ rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
498
506
  }
499
507
  var isDoubleDoor = door_match && door_match[2] !== undefined;
500
508
  (_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
501
509
  var _it$name, _it$children;
502
- 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) {
510
+ 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) {
503
511
  var _child$name, _child$name2, _object1$children, _t0$name, _t0$children;
504
- 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");
512
+ 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');
505
513
  var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
506
514
  return (item === null || item === void 0 ? void 0 : item.name) === tname;
507
515
  })) || [];
508
516
  var t0 = tmp[0];
509
- var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith("_L") ? "rotate_L" : "rotate_R";
517
+ var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith('_L') ? 'rotate_L' : 'rotate_R';
510
518
  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) {
511
519
  var _item$name;
512
520
  return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
513
521
  })) || [];
514
522
  var tpos0 = tposArr[0];
515
- if (it.name.includes("base_end")) {
523
+ if (it.name.includes('base_end')) {
516
524
  var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
517
525
  door_animate_offset[child.name] = {
518
526
  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,
@@ -580,16 +588,16 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
580
588
  // vertical line - 4 lines around object//////////////////////////
581
589
  var vLineGeom = new Three.BufferGeometry();
582
590
  var vertices = [(max.x - min.x) / 2 + min.x, 0, max.z, (max.x - min.x) / 2 + min.x, 0, max.z + 1.3];
583
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
591
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
584
592
  var vLineGeom1 = new Three.BufferGeometry();
585
593
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
586
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
594
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
587
595
  var vLineGeom2 = new Three.BufferGeometry();
588
596
  var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
589
- vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
597
+ vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
590
598
  var vLineGeom3 = new Three.BufferGeometry();
591
599
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
592
- vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
600
+ vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
593
601
  // ///////////////////////////////////////
594
602
 
595
603
  // set names of transform object
@@ -602,12 +610,12 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
602
610
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
603
611
  colorWrite: true
604
612
  }));
605
- rotFillObj.name = "rotate";
613
+ rotFillObj.name = 'rotate';
606
614
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
607
615
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
608
616
  side: Three.DoubleSide
609
617
  }));
610
- upObj.name = "transUp";
618
+ upObj.name = 'transUp';
611
619
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
612
620
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
613
621
  side: Three.DoubleSide,
@@ -641,15 +649,15 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
641
649
  vLine3.material.depthTest = false;
642
650
  // translate vector to center of object
643
651
  var uVec = new Three.Vector3(-posVec.x / scalevec.x, -posVec.y / scalevec.y, -posVec.z / scalevec.z);
644
- vLine.translateY(0.1);
645
- vLine1.translateY(0.1);
646
- vLine2.translateY(0.1);
647
- vLine3.translateY(0.1);
652
+ vLine.translateY(_boundingBox.min.y + 0.1);
653
+ vLine1.translateY(_boundingBox.min.y + 0.1);
654
+ vLine2.translateY(_boundingBox.min.y + 0.1);
655
+ vLine3.translateY(_boundingBox.min.y + 0.1);
648
656
 
649
657
  //rotObj.translateOnAxis(uVec, 1);
650
658
  upObj.translateOnAxis(uVec, 1);
651
659
  upObj.translateY(max.y - min.y);
652
- mBox.name = "TransformBox";
660
+ mBox.name = 'TransformBox';
653
661
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
654
662
  mBox.scale.set(1.01, 1.01, 1.01);
655
663
 
@@ -678,7 +686,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
678
686
  asrtObj.add(mBox);
679
687
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
680
688
  //asrtObj.translateY(newAltitude / scalevec.y);
681
- asrtObj.name = "TransformGizmo";
689
+ asrtObj.name = 'TransformGizmo';
682
690
  // add assets Objects Group
683
691
  object1.add(asrtObj);
684
692
 
@@ -691,7 +699,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
691
699
  SceneCreator.getDistances(layer);
692
700
  }, 100);
693
701
  }
694
- var flip_doorhandle = element.properties.get("flip_doorhandle");
702
+ var flip_doorhandle = element.properties.get('flip_doorhandle');
695
703
  if (flip_doorhandle) {
696
704
  SceneCreator.updateDoorHandleMesh(element, object1, true);
697
705
  }
@@ -707,14 +715,14 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
707
715
  transparency: 0.8
708
716
  });
709
717
  obj.material = material;
710
- } else if (name.startsWith("sink_")) {
718
+ } else if (name.startsWith('sink_')) {
711
719
  // texture = loadTexture('/assets/img/texture/steel.jpg');
712
720
 
713
721
  var _material;
714
722
  // Get color from name
715
- if (name.includes("black") || name.includes("white")) {
723
+ if (name.includes('black') || name.includes('white')) {
716
724
  var _color2;
717
- if (name.includes("black")) {
725
+ if (name.includes('black')) {
718
726
  _color2 = new Three.Color(0x555555).convertLinearToSRGB();
719
727
  } else {
720
728
  _color2 = 0xffffff;
@@ -747,14 +755,14 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
747
755
  var open_doors = element.toJS().properties.open_doors;
748
756
  var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
749
757
  if (object_match && object_match.length > 2) {
750
- var isDoor = object_match[1] === "door";
758
+ var isDoor = object_match[1] === 'door';
751
759
  if (isDoor) {
752
760
  var offsetData = object1.userData.door_animate_offset[obj.name];
753
761
  // Open Door
754
- animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, "Opened2D");
762
+ animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
755
763
  } else {
756
764
  // Open Drawer
757
- translateDrawer(element.toJS(), obj, open_doors, "Opened2D");
765
+ translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
758
766
  }
759
767
  }
760
768
  }
@@ -764,30 +772,30 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
764
772
  // keys in structure
765
773
  var keys = Object.keys(structure);
766
774
  // if exist in cached Objects
767
- if (element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
768
- var _objGroup = cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone();
775
+ if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
776
+ var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
769
777
  return Promise.resolve(onLoadItem(_objGroup.clone()));
770
778
  }
771
779
 
772
780
  // base Object/////
773
781
  var objGroup = null;
774
782
  var _loadGLTFs = function loadGLTFs(i) {
775
- if (keys[i] === "animation") {
783
+ if (keys[i] === 'animation') {
776
784
  // if animation info
777
785
  i++;
778
786
  return _loadGLTFs(i);
779
787
  }
780
- if (keys[i] === "placeholders") {
788
+ if (keys[i] === 'placeholders') {
781
789
  // if placeholders group
782
790
  i++;
783
791
  return _loadGLTFs(i);
784
792
  }
785
793
  if (i === keys.length) {
786
794
  // if end of keys
787
- cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
788
- return onLoadItem(cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone());
795
+ cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
796
+ return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
789
797
  }
790
- if (keys[i] === "base") {
798
+ if (keys[i] === 'base') {
791
799
  // if base Objects
792
800
  i++;
793
801
  return _loadGLTFs(i);
@@ -800,15 +808,15 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
800
808
  }
801
809
  for (var j = 0; j < placeholderStructure.length; j++) {
802
810
  var phData = placeholderStructure[j];
803
- var phs = phData.split("/");
804
- var temp = phData.split("/");
811
+ var phs = phData.split('/');
812
+ var temp = phData.split('/');
805
813
  // placeholder remake////////////////
806
814
  for (var k = 0; k < phs.length; k++) {
807
815
  if (phs[k] in placeholders) {
808
816
  var placeholderphs = placeholders[phs[k]];
809
817
  var key = placeholderStructure.length / placeholderphs.length;
810
818
  phs[k] = placeholderphs[Math.floor(j / key)];
811
- var splitedData = phs[k].split("/");
819
+ var splitedData = phs[k].split('/');
812
820
  if (splitedData.length > 1) {
813
821
  phs[k] = splitedData[splitedData.length - 1];
814
822
  for (var m = splitedData.length - 2; m >= 0; m--) {
@@ -819,41 +827,41 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
819
827
  k = -1;
820
828
  continue;
821
829
  }
822
- if (phs[k].indexOf("ph") == -1) {
830
+ if (phs[k].indexOf('ph') == -1) {
823
831
  var _url = structure[temp[k - 1]];
824
- if (temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS()) in structure) {
825
- if (structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] != null) {
826
- _url = structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())];
832
+ if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
833
+ if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
834
+ _url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
827
835
  }
828
836
  }
829
837
  if (_typeof(_url) == Array) _url = _url[0];
830
- var uData = _url.split("/");
838
+ var uData = _url.split('/');
831
839
  uData = uData[uData.length - 1];
832
840
  uData = uData.slice(0, -5);
833
- var datas = uData.split("_");
841
+ var datas = uData.split('_');
834
842
  uData = datas[1];
835
843
  for (var _i = 2; _i < datas.length; _i++) {
836
- uData += "_";
844
+ uData += '_';
837
845
  uData += datas[_i];
838
846
  }
839
- uData = mainName.replace("main", uData);
840
- phs[k] = "ph_" + uData + "_" + phs[k];
847
+ uData = mainName.replace('main', uData);
848
+ phs[k] = 'ph_' + uData + '_' + phs[k];
841
849
  }
842
850
  }
843
851
  phsArray.push(phs);
844
852
  }
845
853
  var url = structure[keys[i]];
846
- var normalMap = "";
847
- var urlData = url.split("/");
854
+ var normalMap = '';
855
+ var urlData = url.split('/');
848
856
  for (var _j = 0; _j < element.submodule.size; _j++) {
849
- var replaceUrlData = element.submodule.get(_j).split("/");
857
+ var replaceUrlData = element.submodule.get(_j).split('/');
850
858
  if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
851
859
  url = element.submodule.get(_j);
852
860
  break;
853
861
  }
854
862
  }
855
863
  for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
856
- var normalMapData = element.normalMap.get(_j2).split("/");
864
+ var normalMapData = element.normalMap.get(_j2).split('/');
857
865
  if (urlData.includes(normalMapData[normalMapData.length - 2])) {
858
866
  normalMap = element.normalMap.get(_j2);
859
867
  break;
@@ -865,15 +873,15 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
865
873
  if (phsArray.length > 0) {
866
874
  // let loadUrl = dirName + url;
867
875
  var loadUrl = url;
868
- if (doorStyles.get(keys[i] + "_gltf") != undefined) {
869
- loadUrl = doorStyles.get(keys[i] + "_gltf");
870
- structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = loadUrl;
876
+ if (doorStyles.get(keys[i] + '_gltf') != undefined) {
877
+ loadUrl = doorStyles.get(keys[i] + '_gltf');
878
+ structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
871
879
  } else {
872
- structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = null;
880
+ structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
873
881
  }
874
882
  return loadGLTF(loadUrl).then(function (object) {
875
- if (normalMap !== "") {
876
- var normalUrl = normalMap.split(".")[0] + "-normal." + normalMap.split(".")[1];
883
+ if (normalMap !== '') {
884
+ var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
877
885
  var t = loadTexture(normalMap);
878
886
  var _m = loadTexture(normalUrl);
879
887
  var mat2 = new Three.MeshStandardMaterial({
@@ -897,7 +905,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
897
905
  // let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
898
906
  var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
899
907
  var _mat;
900
- if (_normalMap === "") {
908
+ if (_normalMap === '') {
901
909
  var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
902
910
  _mat = new Three.MeshStandardMaterial({
903
911
  color: examplecolor,
@@ -921,8 +929,8 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
921
929
  object.children[_j4].material = _mat;
922
930
  object.children[_j4].receiveShadow = true;
923
931
  object.children[_j4].castShadow = true;
924
- !object.children[_j4].name.includes("handle") && addEdgesToMesh(object.children[_j4]);
925
- } else if (!object.children[_j4].name.startsWith("ph_") && object.children[_j4].type === OBJTYPE_GROUP) {
932
+ !object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
933
+ } else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === OBJTYPE_GROUP) {
926
934
  object.children[_j4].traverse(function (prim) {
927
935
  prim.material = _mat;
928
936
  prim.receiveShadow = true;
@@ -962,10 +970,10 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
962
970
  } else {
963
971
  if (parent.children[_k].name == placeholder) {
964
972
  var tmp = object.clone();
965
- if (placeholder.includes("drawer_door") && placeholder.includes("_handle")) {
973
+ if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
966
974
  tmp.rotateZ(Math.PI / 2);
967
975
  }
968
- if (placeholder.includes("_handle") && tmp.children[0].type === OBJTYPE_MESH) {
976
+ if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
969
977
  // NOTE: change metalness of handle
970
978
  tmp.children[0].material.metalness = 1;
971
979
  // handleMaterial.metalness || 0.2;
@@ -979,33 +987,34 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
979
987
  }
980
988
  }
981
989
  }, function (reason) {
982
- console.log("loadGLTF failed for reason:", reason);
990
+ console.log('loadGLTF failed for reason:', reason);
983
991
  }).then(function () {
984
992
  i++;
985
993
  return _loadGLTFs(i);
986
994
  });
987
995
  }
988
996
  };
989
- return loadGLTF(structure["base"]).then(function (object) {
990
- object.name = "MainObject";
997
+ return loadGLTF(structure['base']).then(function (object) {
998
+ object.name = 'MainObject';
991
999
  object.receiveShadow = true;
992
1000
  objGroup = object;
993
1001
  if (!isEmpty(doorStyles)) {
994
- var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
995
- if (counterTop.uri === undefined) {
1002
+ var _layer$toJS;
1003
+ var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
1004
+ if (isEmpty(counterTop.uri)) {
996
1005
  try {
997
1006
  counterTop = counterTop.toJS();
998
1007
  } catch (error) {
999
1008
  //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
1000
- counterTop.uri = "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg";
1009
+ counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
1001
1010
  console.log(error);
1002
1011
  }
1003
1012
  }
1004
- if (counterTop.uri === undefined && layer.toJS().counterTop.uri !== undefined) {
1013
+ if (isEmpty(counterTop.uri) && !isEmpty(layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.counterTop.uri)) {
1005
1014
  counterTop.uri = layer.toJS().counterTop.uri;
1006
1015
  }
1007
1016
  var countTopMap = counterTop.uri;
1008
- var interiorMap = doorStyles.get("interior");
1017
+ var interiorMap = doorStyles.get('interior');
1009
1018
  var countT = loadTexture(countTopMap);
1010
1019
  countT.wrapS = Three.RepeatWrapping;
1011
1020
  countT.wrapT = Three.RepeatWrapping;
@@ -1014,7 +1023,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1014
1023
  var mat2 = null,
1015
1024
  mat3 = null,
1016
1025
  mat4 = null;
1017
- if (normalMap === "") {
1026
+ if (normalMap === '') {
1018
1027
  mat2 = new Three.MeshStandardMaterial({
1019
1028
  color: examplecolor,
1020
1029
  metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
@@ -1031,11 +1040,11 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1031
1040
  }
1032
1041
  // mat2.envMap = textureCube;
1033
1042
 
1034
- if (normalMap !== "") {
1043
+ if (normalMap !== '') {
1035
1044
  var t = loadTexture(normalMap);
1036
1045
  mat2.map = t;
1037
1046
  }
1038
- if (normalMap === "") {
1047
+ if (normalMap === '') {
1039
1048
  mat3 = new Three.MeshStandardMaterial({
1040
1049
  // color: examplecolor,
1041
1050
  metalness: counterTop.metalness,
@@ -1057,13 +1066,13 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1057
1066
  });
1058
1067
  mat4.map = loadTexture(interiorMap);
1059
1068
  for (var j = 0; j < object.children.length; j++) {
1060
- if (object.children[j].name.includes("main")) {}
1061
- if (object.children[j].name.includes("countertop")) {
1069
+ if (object.children[j].name.includes('main')) {}
1070
+ if (object.children[j].name.includes('countertop')) {
1062
1071
  object.children[j].material = mat3;
1063
1072
  object.children[j].receiveShadow = true;
1064
1073
  object.children[j].castShadow = true;
1065
1074
  addEdgesToMesh(object.children[j]);
1066
- } else if (object.children[j].name.includes("_interior_")) {
1075
+ } else if (object.children[j].name.includes('_interior_')) {
1067
1076
  object.children[j].material = mat4;
1068
1077
  } else if (object.children[j].type === OBJTYPE_MESH) {
1069
1078
  object.children[j].material = mat2;
@@ -1073,7 +1082,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1073
1082
  }
1074
1083
  }
1075
1084
  }, function (reason) {
1076
- console.log("loadGLTF failed for reason:", reason);
1085
+ console.log('loadGLTF failed for reason:', reason);
1077
1086
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1078
1087
  }).then(function () {
1079
1088
  return _loadGLTFs(0);
@@ -1087,18 +1096,18 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1087
1096
  var applianceMaterial = element.applianceMaterial;
1088
1097
  if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
1089
1098
  var onLoadItem = function onLoadItem(object) {
1090
- var newAltitude = element.properties.get("altitude").get("_length");
1091
- 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';
1092
1101
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1093
- var newWidth = element.properties.get("width").get("_length");
1094
- var newWidthUnit = element.properties.get("width").get("_unit") || "in";
1095
- newWidth = convert(newWidth).from(newWidthUnit).to("in");
1096
- var newHeight = element.properties.get("height").get("_length");
1097
- var newHeightUnit = element.properties.get("height").get("_unit") || "in";
1098
- newHeight = convert(newHeight).from(newHeightUnit).to("in");
1099
- var newDepth = element.properties.get("depth").get("_length");
1100
- var newDepthUnit = element.properties.get("depth").get("_unit") || "in";
1101
- newDepth = 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 = 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 = 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 = convert(newDepth).from(newDepthUnit).to('in');
1102
1111
  object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
1103
1112
  // Normalize the origin of the object
1104
1113
  var boundingBox = new Three.Box3().setFromObject(object);
@@ -1113,16 +1122,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1113
1122
  var name = obj.name;
1114
1123
  var texture,
1115
1124
  textureLoader = new Three.TextureLoader();
1116
- if (name.includes("_black")) {
1125
+ if (name.includes('_black')) {
1117
1126
  obj.material.roughness = 0.4;
1118
1127
  obj.material.metalness = 1.0;
1119
1128
  obj.material.color = new Three.Color(0, 0, 0);
1120
1129
  obj.castShadow = true;
1121
1130
  obj.receiveShadow = true;
1122
1131
  return object;
1123
- } else if (name.includes("_wood")) {
1124
- texture = loadTexture("/assets/img/texture/wood.jpg");
1125
- } 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')) {
1126
1135
  // texture = loadTexture('/assets/img/texture/glass.jpg');
1127
1136
  var material = new Three.MeshPhysicalMaterial({
1128
1137
  transparent: true,
@@ -1137,7 +1146,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1137
1146
  obj.castShadow = true;
1138
1147
  obj.receiveShadow = true;
1139
1148
  return object;
1140
- } else if (name.includes("_steel")) {
1149
+ } else if (name.includes('_steel')) {
1141
1150
  // texture = loadTexture('/assets/img/texture/steel.jpg');
1142
1151
  var _material2 = new Three.MeshPhysicalMaterial({
1143
1152
  roughness: 0.2,
@@ -1187,16 +1196,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1187
1196
  // vertical line - 4 lines around object//////////////////////////
1188
1197
  var vLineGeom = new Three.BufferGeometry();
1189
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];
1190
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1199
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1191
1200
  var vLineGeom1 = new Three.BufferGeometry();
1192
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];
1193
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1202
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1194
1203
  var vLineGeom2 = new Three.BufferGeometry();
1195
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];
1196
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1205
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1197
1206
  var vLineGeom3 = new Three.BufferGeometry();
1198
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];
1199
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1208
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1200
1209
  // ///////////////////////////////////////
1201
1210
 
1202
1211
  // set names of transform object
@@ -1209,12 +1218,12 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1209
1218
  color: 0xffffff,
1210
1219
  colorWrite: true
1211
1220
  }));
1212
- rotFillObj.name = "rotate";
1221
+ rotFillObj.name = 'rotate';
1213
1222
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1214
1223
  color: 0xffffff,
1215
1224
  side: Three.DoubleSide
1216
1225
  }));
1217
- upObj.name = "transUp";
1226
+ upObj.name = 'transUp';
1218
1227
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1219
1228
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
1220
1229
  side: Three.DoubleSide,
@@ -1254,7 +1263,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1254
1263
  vLine3.translateY(0.1);
1255
1264
  upObj.translateOnAxis(uVec, 1);
1256
1265
  upObj.translateY(max.y - min.y + 0.05);
1257
- mBox.name = "TransformBox";
1266
+ mBox.name = 'TransformBox';
1258
1267
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1259
1268
  mBox.scale.set(1.01, 1.01, 1.01);
1260
1269
 
@@ -1282,7 +1291,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1282
1291
  asrtObj.add(mBox);
1283
1292
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
1284
1293
  // asrtObj.translateY(newAltitude / scalevec.y);
1285
- asrtObj.name = "TransformGizmo";
1294
+ asrtObj.name = 'TransformGizmo';
1286
1295
  // add assets Objects Group
1287
1296
  object.add(asrtObj);
1288
1297
 
@@ -1312,7 +1321,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1312
1321
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1313
1322
  return onLoadItem(cachedObject[element.type].clone());
1314
1323
  }
1315
- if (keys[i] === "base") {
1324
+ if (keys[i] === 'base') {
1316
1325
  // if base Objects
1317
1326
  i++;
1318
1327
  return _loadGLTFs2(i);
@@ -1321,13 +1330,13 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1321
1330
 
1322
1331
  // load base to start //
1323
1332
  // return loadGLTF(dirName + structure["base"])
1324
- return loadGLTF(structure["base"]).then(function (object) {
1333
+ return loadGLTF(structure['base']).then(function (object) {
1325
1334
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1326
1335
  // let texture = loadTexture(textureURL);
1327
1336
  // texture.wrapS = Three.MirroredRepeatWrapping;
1328
1337
  // texture.wrapT = Three.MirroredRepeatWrapping;
1329
1338
 
1330
- object.name = "MainObject";
1339
+ object.name = 'MainObject';
1331
1340
  // NOTE: changed appliance emissive color to black
1332
1341
  var mat2 = new Three.MeshStandardMaterial({
1333
1342
  emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
@@ -1345,7 +1354,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1345
1354
  }
1346
1355
  objGroup = object;
1347
1356
  }, function (reason) {
1348
- console.log("loadGLTF failed for reason:", reason);
1357
+ console.log('loadGLTF failed for reason:', reason);
1349
1358
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1350
1359
  }).then(function () {
1351
1360
  return _loadGLTFs2(0);
@@ -1358,21 +1367,21 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1358
1367
  var onLoadItem = function onLoadItem(object) {
1359
1368
  var width = {
1360
1369
  length: sizeinfo.width,
1361
- unit: "in"
1370
+ unit: 'in'
1362
1371
  };
1363
1372
  var depth = {
1364
1373
  length: sizeinfo.depth,
1365
- unit: "in"
1374
+ unit: 'in'
1366
1375
  };
1367
1376
  var height = {
1368
1377
  length: sizeinfo.height,
1369
- unit: "in"
1378
+ unit: 'in'
1370
1379
  };
1371
- var newWidth = convert(width.length).from(width.unit).to("cm");
1372
- var newDepth = convert(depth.length).from(depth.unit).to("cm");
1373
- var newHeight = convert(height.length).from(height.unit).to("cm");
1374
- var newAltitude = element.properties.get("altitude").get("_length");
1375
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
1380
+ var newWidth = convert(width.length).from(width.unit).to('cm');
1381
+ var newDepth = convert(depth.length).from(depth.unit).to('cm');
1382
+ var newHeight = 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';
1376
1385
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1377
1386
 
1378
1387
  //object.scale.set(newWidth, newHeight, newDepth);
@@ -1419,16 +1428,16 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1419
1428
  // vertical line - 4 lines around object//////////////////////////
1420
1429
  var vLineGeom = new Three.BufferGeometry();
1421
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];
1422
- vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1431
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1423
1432
  var vLineGeom1 = new Three.BufferGeometry();
1424
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];
1425
- vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1434
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1426
1435
  var vLineGeom2 = new Three.BufferGeometry();
1427
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];
1428
- vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1437
+ vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1429
1438
  var vLineGeom3 = new Three.BufferGeometry();
1430
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];
1431
- vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1440
+ vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1432
1441
  // ///////////////////////////////////////
1433
1442
 
1434
1443
  // set names of transform object
@@ -1441,12 +1450,12 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1441
1450
  color: 0xffffff,
1442
1451
  colorWrite: true
1443
1452
  }));
1444
- rotFillObj.name = "rotate";
1453
+ rotFillObj.name = 'rotate';
1445
1454
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1446
1455
  color: 0xffffff,
1447
1456
  side: Three.DoubleSide
1448
1457
  }));
1449
- upObj.name = "transUp";
1458
+ upObj.name = 'transUp';
1450
1459
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1451
1460
  color: 0xdd6699,
1452
1461
  side: Three.DoubleSide,
@@ -1488,7 +1497,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1488
1497
  //rotObj.translateOnAxis(uVec, 1);
1489
1498
  upObj.translateOnAxis(uVec, 1);
1490
1499
  upObj.translateY(max.y - min.y);
1491
- mBox.name = "TransformBox";
1500
+ mBox.name = 'TransformBox';
1492
1501
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1493
1502
  mBox.scale.set(1.01, 1.01, 1.01);
1494
1503
 
@@ -1517,7 +1526,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1517
1526
  asrtObj.add(mBox);
1518
1527
  asrtObj.scale.set(1, 1, 1);
1519
1528
  //asrtObj.translateY(newAltitude / scalevec.y);
1520
- asrtObj.name = "TransformGizmo";
1529
+ asrtObj.name = 'TransformGizmo';
1521
1530
  // add assets Objects Group
1522
1531
  object.add(asrtObj);
1523
1532
 
@@ -1550,7 +1559,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1550
1559
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1551
1560
  return onLoadItem(cachedObject[element.type].clone());
1552
1561
  }
1553
- if (keys[i] === "base") {
1562
+ if (keys[i] === 'base') {
1554
1563
  // if base Objects
1555
1564
  i++;
1556
1565
  return _loadGLTFs3(i);
@@ -1559,13 +1568,13 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1559
1568
 
1560
1569
  // load base to start //
1561
1570
  // return loadGLTF(dirName + structure["base"])
1562
- return loadGLTF(structure["base"]).then(function (object) {
1571
+ return loadGLTF(structure['base']).then(function (object) {
1563
1572
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1564
1573
  // let texture = loadTexture(textureURL);
1565
1574
  // texture.wrapS = Three.MirroredRepeatWrapping;
1566
1575
  // texture.wrapT = Three.MirroredRepeatWrapping;
1567
1576
 
1568
- object.name = "MainObject";
1577
+ object.name = 'MainObject';
1569
1578
  var mat2 = new Three.MeshStandardMaterial({
1570
1579
  emissive: new Three.Color(0x666666).convertLinearToSRGB(),
1571
1580
  metalness: 0.7,
@@ -1581,7 +1590,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1581
1590
  }
1582
1591
  objGroup = object;
1583
1592
  }, function (reason) {
1584
- console.log("loadGLTF failed for reason:", reason);
1593
+ console.log('loadGLTF failed for reason:', reason);
1585
1594
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1586
1595
  }).then(function () {
1587
1596
  return _loadGLTFs3(0);