kitchen-simulator 4.1.7-react-18 → 4.2.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 (206) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +171 -111
  4. package/es/LiteRenderer.js +161 -129
  5. package/es/actions/export.js +25 -12
  6. package/es/actions/project-actions.js +2 -1
  7. package/es/assets/gltf/door_sliding.bin +0 -0
  8. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  9. package/es/catalog/catalog.js +21 -5
  10. package/es/catalog/factories/area-factory-3d.js +17 -17
  11. package/es/catalog/factories/wall-factory.js +1 -1
  12. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  13. package/es/catalog/properties/export.js +21 -0
  14. package/es/catalog/properties/property-checkbox.js +68 -0
  15. package/es/catalog/properties/property-color.js +39 -0
  16. package/es/catalog/properties/property-enum.js +50 -0
  17. package/es/catalog/properties/property-hidden.js +19 -0
  18. package/es/catalog/properties/property-lenght-measure.js +100 -0
  19. package/es/catalog/properties/property-length-measure.js +84 -0
  20. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  21. package/es/catalog/properties/property-number.js +48 -0
  22. package/es/catalog/properties/property-read-only.js +26 -0
  23. package/es/catalog/properties/property-string.js +48 -0
  24. package/es/catalog/properties/property-toggle.js +39 -0
  25. package/es/catalog/properties/shared-property-style.js +14 -0
  26. package/es/catalog/utils/exporter.js +24 -11
  27. package/es/catalog/utils/item-loader.js +224 -220
  28. package/es/class/hole.js +0 -2
  29. package/es/class/item.js +92 -70
  30. package/es/class/layer.js +1 -1
  31. package/es/class/line.js +4 -8
  32. package/es/class/project.js +96 -81
  33. package/es/components/content.js +10 -93
  34. package/es/components/export.js +4 -6
  35. package/es/components/style/button.js +106 -0
  36. package/es/components/style/cancel-button.js +21 -0
  37. package/es/components/style/content-container.js +30 -0
  38. package/es/components/style/content-title.js +25 -0
  39. package/es/components/style/delete-button.js +24 -0
  40. package/es/components/style/export.js +28 -2
  41. package/es/components/style/form-block.js +20 -0
  42. package/es/components/style/form-color-input.js +26 -0
  43. package/es/components/style/form-label.js +22 -0
  44. package/es/components/style/form-number-input.js +29 -29
  45. package/es/components/style/form-number-input_2.js +200 -0
  46. package/es/components/style/form-select.js +19 -0
  47. package/es/components/style/form-slider.js +60 -0
  48. package/es/components/style/form-submit-button.js +25 -0
  49. package/es/components/style/form-text-input.js +69 -0
  50. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  51. package/es/components/viewer2d/group.js +5 -4
  52. package/es/components/viewer2d/item.js +155 -359
  53. package/es/components/viewer2d/layer.js +1 -1
  54. package/es/components/viewer2d/line.js +22 -54
  55. package/es/components/viewer2d/ruler.js +16 -11
  56. package/es/components/viewer2d/rulerDist.js +38 -51
  57. package/es/components/viewer2d/rulerX.js +4 -2
  58. package/es/components/viewer2d/rulerY.js +3 -0
  59. package/es/components/viewer2d/scene.js +17 -12
  60. package/es/components/viewer2d/state.js +1 -1
  61. package/es/components/viewer2d/utils.js +2 -2
  62. package/es/components/viewer2d/vertex.js +3 -2
  63. package/es/components/viewer2d/viewer2d.js +81 -118
  64. package/es/components/viewer3d/front3D.js +13 -1
  65. package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
  66. package/es/components/viewer3d/scene-creator.js +270 -69
  67. package/es/components/viewer3d/viewer3d-first-person.js +26 -32
  68. package/es/components/viewer3d/viewer3d.js +110 -130
  69. package/es/constants.js +7 -2
  70. package/es/devLiteRenderer.js +491 -150
  71. package/es/index.js +589 -62
  72. package/es/models.js +13 -8
  73. package/es/plugins/SVGLoader.js +1414 -0
  74. package/es/plugins/console-debugger.js +34 -0
  75. package/es/plugins/export.js +7 -0
  76. package/es/plugins/keyboard.js +110 -0
  77. package/es/reducers/project-reducer.js +4 -1
  78. package/es/reducers/viewer2d-reducer.js +3 -1
  79. package/es/reducers/viewer3d-reducer.js +3 -1
  80. package/es/styles/export.js +5 -0
  81. package/es/styles/tabs.css +40 -0
  82. package/es/utils/geometry.js +77 -119
  83. package/es/utils/helper.js +38 -1
  84. package/es/utils/isolate-event-handler.js +829 -609
  85. package/es/utils/molding.js +459 -11
  86. package/es/utils/ruler.js +58 -0
  87. package/lib/AppContext.js +1 -1
  88. package/lib/LiteKitchenConfigurator.js +170 -111
  89. package/lib/LiteRenderer.js +160 -129
  90. package/lib/actions/export.js +35 -39
  91. package/lib/actions/project-actions.js +2 -1
  92. package/lib/assets/gltf/door_sliding.bin +0 -0
  93. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  94. package/lib/catalog/catalog.js +20 -4
  95. package/lib/catalog/factories/area-factory-3d.js +14 -14
  96. package/lib/catalog/factories/wall-factory.js +1 -1
  97. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  98. package/lib/catalog/properties/export.js +81 -0
  99. package/lib/catalog/properties/property-checkbox.js +76 -0
  100. package/lib/catalog/properties/property-color.js +47 -0
  101. package/lib/catalog/properties/property-enum.js +58 -0
  102. package/lib/catalog/properties/property-hidden.js +27 -0
  103. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  104. package/lib/catalog/properties/property-length-measure.js +92 -0
  105. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  106. package/lib/catalog/properties/property-number.js +56 -0
  107. package/lib/catalog/properties/property-read-only.js +34 -0
  108. package/lib/catalog/properties/property-string.js +56 -0
  109. package/lib/catalog/properties/property-toggle.js +47 -0
  110. package/lib/catalog/properties/shared-property-style.js +21 -0
  111. package/lib/catalog/utils/exporter.js +24 -11
  112. package/lib/catalog/utils/item-loader.js +221 -217
  113. package/lib/class/hole.js +0 -2
  114. package/lib/class/item.js +90 -68
  115. package/lib/class/layer.js +1 -1
  116. package/lib/class/line.js +3 -7
  117. package/lib/class/project.js +96 -81
  118. package/lib/components/content.js +10 -93
  119. package/lib/components/export.js +6 -26
  120. package/lib/components/style/button.js +115 -0
  121. package/lib/components/style/cancel-button.js +29 -0
  122. package/lib/components/style/content-container.js +38 -0
  123. package/lib/components/style/content-title.js +35 -0
  124. package/lib/components/style/delete-button.js +34 -0
  125. package/lib/components/style/export.js +105 -1
  126. package/lib/components/style/form-block.js +28 -0
  127. package/lib/components/style/form-color-input.js +34 -0
  128. package/lib/components/style/form-label.js +30 -0
  129. package/lib/components/style/form-number-input.js +29 -29
  130. package/lib/components/style/form-number-input_2.js +209 -0
  131. package/lib/components/style/form-select.js +29 -0
  132. package/lib/components/style/form-slider.js +68 -0
  133. package/lib/components/style/form-submit-button.js +35 -0
  134. package/lib/components/style/form-text-input.js +78 -0
  135. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  136. package/lib/components/viewer2d/group.js +5 -4
  137. package/lib/components/viewer2d/item.js +152 -356
  138. package/lib/components/viewer2d/layer.js +1 -1
  139. package/lib/components/viewer2d/line.js +22 -54
  140. package/lib/components/viewer2d/ruler.js +15 -10
  141. package/lib/components/viewer2d/rulerDist.js +38 -51
  142. package/lib/components/viewer2d/rulerX.js +4 -2
  143. package/lib/components/viewer2d/rulerY.js +3 -0
  144. package/lib/components/viewer2d/scene.js +17 -12
  145. package/lib/components/viewer2d/state.js +1 -1
  146. package/lib/components/viewer2d/utils.js +2 -2
  147. package/lib/components/viewer2d/vertex.js +3 -2
  148. package/lib/components/viewer2d/viewer2d.js +79 -115
  149. package/lib/components/viewer3d/front3D.js +13 -1
  150. package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
  151. package/lib/components/viewer3d/scene-creator.js +267 -66
  152. package/lib/components/viewer3d/viewer3d-first-person.js +26 -32
  153. package/lib/components/viewer3d/viewer3d.js +107 -126
  154. package/lib/constants.js +12 -7
  155. package/lib/devLiteRenderer.js +489 -148
  156. package/lib/index.js +591 -62
  157. package/lib/models.js +13 -8
  158. package/lib/plugins/SVGLoader.js +1419 -0
  159. package/lib/plugins/console-debugger.js +42 -0
  160. package/lib/plugins/export.js +25 -0
  161. package/lib/plugins/keyboard.js +117 -0
  162. package/lib/reducers/project-reducer.js +4 -1
  163. package/lib/reducers/viewer2d-reducer.js +3 -1
  164. package/lib/reducers/viewer3d-reducer.js +3 -1
  165. package/lib/styles/export.js +13 -0
  166. package/lib/styles/tabs.css +40 -0
  167. package/lib/utils/geometry.js +77 -119
  168. package/lib/utils/helper.js +40 -1
  169. package/lib/utils/isolate-event-handler.js +829 -608
  170. package/lib/utils/molding.js +460 -9
  171. package/lib/utils/ruler.js +63 -0
  172. package/package.json +21 -20
  173. package/es/mocks/appliancePayload.json +0 -27
  174. package/es/mocks/cabinetPayload.json +0 -1914
  175. package/es/mocks/cabinetPayload2.json +0 -76
  176. package/es/mocks/dataBundle2.json +0 -4
  177. package/es/mocks/distancePayload.json +0 -6
  178. package/es/mocks/doorStylePayload2.json +0 -84
  179. package/es/mocks/furnishingPayload.json +0 -23
  180. package/es/mocks/itemCDSPayload.json +0 -27
  181. package/es/mocks/lightingPayload.json +0 -23
  182. package/es/mocks/mockProps.json +0 -43
  183. package/es/mocks/mockProps2.json +0 -9
  184. package/es/mocks/moldingPayload.json +0 -19
  185. package/es/mocks/projectItemsCatalog.json +0 -133
  186. package/es/mocks/rectangleShape.json +0 -238
  187. package/es/mocks/replaceCabinetPayload.json +0 -81
  188. package/es/mocks/roomShapePayload.json +0 -5
  189. package/es/useAppContext.js +0 -8
  190. package/lib/mocks/appliancePayload.json +0 -27
  191. package/lib/mocks/cabinetPayload.json +0 -1914
  192. package/lib/mocks/cabinetPayload2.json +0 -76
  193. package/lib/mocks/dataBundle2.json +0 -4
  194. package/lib/mocks/distancePayload.json +0 -6
  195. package/lib/mocks/doorStylePayload2.json +0 -84
  196. package/lib/mocks/furnishingPayload.json +0 -23
  197. package/lib/mocks/itemCDSPayload.json +0 -27
  198. package/lib/mocks/lightingPayload.json +0 -23
  199. package/lib/mocks/mockProps.json +0 -43
  200. package/lib/mocks/mockProps2.json +0 -9
  201. package/lib/mocks/moldingPayload.json +0 -19
  202. package/lib/mocks/projectItemsCatalog.json +0 -133
  203. package/lib/mocks/rectangleShape.json +0 -238
  204. package/lib/mocks/replaceCabinetPayload.json +0 -81
  205. package/lib/mocks/roomShapePayload.json +0 -5
  206. 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,29 @@ 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) {
996
- try {
997
- counterTop = counterTop.toJS();
998
- } catch (error) {
999
- //@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";
1001
- console.log(error);
1002
- }
1003
- }
1004
- if (counterTop.uri === undefined && layer.toJS().counterTop.uri !== undefined) {
1002
+ var _layer$toJS;
1003
+ var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
1004
+ 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
1005
  counterTop.uri = layer.toJS().counterTop.uri;
1006
1006
  }
1007
+ if (isEmpty(counterTop.uri)) {
1008
+ //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
1009
+ counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
1010
+ }
1007
1011
  var countTopMap = counterTop.uri;
1008
- var interiorMap = doorStyles.get("interior");
1012
+ var interiorMap = doorStyles.get('interior');
1009
1013
  var countT = loadTexture(countTopMap);
1010
1014
  countT.wrapS = Three.RepeatWrapping;
1011
1015
  countT.wrapT = Three.RepeatWrapping;
@@ -1014,7 +1018,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1014
1018
  var mat2 = null,
1015
1019
  mat3 = null,
1016
1020
  mat4 = null;
1017
- if (normalMap === "") {
1021
+ if (normalMap === '') {
1018
1022
  mat2 = new Three.MeshStandardMaterial({
1019
1023
  color: examplecolor,
1020
1024
  metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
@@ -1031,11 +1035,11 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1031
1035
  }
1032
1036
  // mat2.envMap = textureCube;
1033
1037
 
1034
- if (normalMap !== "") {
1038
+ if (normalMap !== '') {
1035
1039
  var t = loadTexture(normalMap);
1036
1040
  mat2.map = t;
1037
1041
  }
1038
- if (normalMap === "") {
1042
+ if (normalMap === '') {
1039
1043
  mat3 = new Three.MeshStandardMaterial({
1040
1044
  // color: examplecolor,
1041
1045
  metalness: counterTop.metalness,
@@ -1057,13 +1061,13 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1057
1061
  });
1058
1062
  mat4.map = loadTexture(interiorMap);
1059
1063
  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")) {
1064
+ if (object.children[j].name.includes('main')) {}
1065
+ if (object.children[j].name.includes('countertop')) {
1062
1066
  object.children[j].material = mat3;
1063
1067
  object.children[j].receiveShadow = true;
1064
1068
  object.children[j].castShadow = true;
1065
1069
  addEdgesToMesh(object.children[j]);
1066
- } else if (object.children[j].name.includes("_interior_")) {
1070
+ } else if (object.children[j].name.includes('_interior_')) {
1067
1071
  object.children[j].material = mat4;
1068
1072
  } else if (object.children[j].type === OBJTYPE_MESH) {
1069
1073
  object.children[j].material = mat2;
@@ -1073,7 +1077,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1073
1077
  }
1074
1078
  }
1075
1079
  }, function (reason) {
1076
- console.log("loadGLTF failed for reason:", reason);
1080
+ console.log('loadGLTF failed for reason:', reason);
1077
1081
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1078
1082
  }).then(function () {
1079
1083
  return _loadGLTFs(0);
@@ -1087,18 +1091,18 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1087
1091
  var applianceMaterial = element.applianceMaterial;
1088
1092
  if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
1089
1093
  var onLoadItem = function onLoadItem(object) {
1090
- var newAltitude = element.properties.get("altitude").get("_length");
1091
- var newUnit = element.properties.get("altitude").get("_unit") || "in";
1094
+ var newAltitude = element.properties.get('altitude').get('_length');
1095
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1092
1096
  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");
1097
+ var newWidth = element.properties.get('width').get('_length');
1098
+ var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
1099
+ newWidth = convert(newWidth).from(newWidthUnit).to('in');
1100
+ var newHeight = element.properties.get('height').get('_length');
1101
+ var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
1102
+ newHeight = convert(newHeight).from(newHeightUnit).to('in');
1103
+ var newDepth = element.properties.get('depth').get('_length');
1104
+ var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
1105
+ newDepth = convert(newDepth).from(newDepthUnit).to('in');
1102
1106
  object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
1103
1107
  // Normalize the origin of the object
1104
1108
  var boundingBox = new Three.Box3().setFromObject(object);
@@ -1113,16 +1117,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1113
1117
  var name = obj.name;
1114
1118
  var texture,
1115
1119
  textureLoader = new Three.TextureLoader();
1116
- if (name.includes("_black")) {
1120
+ if (name.includes('_black')) {
1117
1121
  obj.material.roughness = 0.4;
1118
1122
  obj.material.metalness = 1.0;
1119
1123
  obj.material.color = new Three.Color(0, 0, 0);
1120
1124
  obj.castShadow = true;
1121
1125
  obj.receiveShadow = true;
1122
1126
  return object;
1123
- } else if (name.includes("_wood")) {
1124
- texture = loadTexture("/assets/img/texture/wood.jpg");
1125
- } else if (name.includes("_glass")) {
1127
+ } else if (name.includes('_wood')) {
1128
+ texture = loadTexture('/assets/img/texture/wood.jpg');
1129
+ } else if (name.includes('_glass')) {
1126
1130
  // texture = loadTexture('/assets/img/texture/glass.jpg');
1127
1131
  var material = new Three.MeshPhysicalMaterial({
1128
1132
  transparent: true,
@@ -1137,7 +1141,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1137
1141
  obj.castShadow = true;
1138
1142
  obj.receiveShadow = true;
1139
1143
  return object;
1140
- } else if (name.includes("_steel")) {
1144
+ } else if (name.includes('_steel')) {
1141
1145
  // texture = loadTexture('/assets/img/texture/steel.jpg');
1142
1146
  var _material2 = new Three.MeshPhysicalMaterial({
1143
1147
  roughness: 0.2,
@@ -1187,16 +1191,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1187
1191
  // vertical line - 4 lines around object//////////////////////////
1188
1192
  var vLineGeom = new Three.BufferGeometry();
1189
1193
  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));
1194
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1191
1195
  var vLineGeom1 = new Three.BufferGeometry();
1192
1196
  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));
1197
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1194
1198
  var vLineGeom2 = new Three.BufferGeometry();
1195
1199
  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));
1200
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1197
1201
  var vLineGeom3 = new Three.BufferGeometry();
1198
1202
  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));
1203
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1200
1204
  // ///////////////////////////////////////
1201
1205
 
1202
1206
  // set names of transform object
@@ -1209,12 +1213,12 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1209
1213
  color: 0xffffff,
1210
1214
  colorWrite: true
1211
1215
  }));
1212
- rotFillObj.name = "rotate";
1216
+ rotFillObj.name = 'rotate';
1213
1217
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1214
1218
  color: 0xffffff,
1215
1219
  side: Three.DoubleSide
1216
1220
  }));
1217
- upObj.name = "transUp";
1221
+ upObj.name = 'transUp';
1218
1222
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1219
1223
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
1220
1224
  side: Three.DoubleSide,
@@ -1254,7 +1258,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1254
1258
  vLine3.translateY(0.1);
1255
1259
  upObj.translateOnAxis(uVec, 1);
1256
1260
  upObj.translateY(max.y - min.y + 0.05);
1257
- mBox.name = "TransformBox";
1261
+ mBox.name = 'TransformBox';
1258
1262
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1259
1263
  mBox.scale.set(1.01, 1.01, 1.01);
1260
1264
 
@@ -1282,7 +1286,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1282
1286
  asrtObj.add(mBox);
1283
1287
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
1284
1288
  // asrtObj.translateY(newAltitude / scalevec.y);
1285
- asrtObj.name = "TransformGizmo";
1289
+ asrtObj.name = 'TransformGizmo';
1286
1290
  // add assets Objects Group
1287
1291
  object.add(asrtObj);
1288
1292
 
@@ -1312,7 +1316,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1312
1316
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1313
1317
  return onLoadItem(cachedObject[element.type].clone());
1314
1318
  }
1315
- if (keys[i] === "base") {
1319
+ if (keys[i] === 'base') {
1316
1320
  // if base Objects
1317
1321
  i++;
1318
1322
  return _loadGLTFs2(i);
@@ -1321,13 +1325,13 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1321
1325
 
1322
1326
  // load base to start //
1323
1327
  // return loadGLTF(dirName + structure["base"])
1324
- return loadGLTF(structure["base"]).then(function (object) {
1328
+ return loadGLTF(structure['base']).then(function (object) {
1325
1329
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1326
1330
  // let texture = loadTexture(textureURL);
1327
1331
  // texture.wrapS = Three.MirroredRepeatWrapping;
1328
1332
  // texture.wrapT = Three.MirroredRepeatWrapping;
1329
1333
 
1330
- object.name = "MainObject";
1334
+ object.name = 'MainObject';
1331
1335
  // NOTE: changed appliance emissive color to black
1332
1336
  var mat2 = new Three.MeshStandardMaterial({
1333
1337
  emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
@@ -1345,7 +1349,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1345
1349
  }
1346
1350
  objGroup = object;
1347
1351
  }, function (reason) {
1348
- console.log("loadGLTF failed for reason:", reason);
1352
+ console.log('loadGLTF failed for reason:', reason);
1349
1353
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1350
1354
  }).then(function () {
1351
1355
  return _loadGLTFs2(0);
@@ -1358,21 +1362,21 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1358
1362
  var onLoadItem = function onLoadItem(object) {
1359
1363
  var width = {
1360
1364
  length: sizeinfo.width,
1361
- unit: "in"
1365
+ unit: 'in'
1362
1366
  };
1363
1367
  var depth = {
1364
1368
  length: sizeinfo.depth,
1365
- unit: "in"
1369
+ unit: 'in'
1366
1370
  };
1367
1371
  var height = {
1368
1372
  length: sizeinfo.height,
1369
- unit: "in"
1373
+ unit: 'in'
1370
1374
  };
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";
1375
+ var newWidth = convert(width.length).from(width.unit).to('cm');
1376
+ var newDepth = convert(depth.length).from(depth.unit).to('cm');
1377
+ var newHeight = convert(height.length).from(height.unit).to('cm');
1378
+ var newAltitude = element.properties.get('altitude').get('_length');
1379
+ var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1376
1380
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1377
1381
 
1378
1382
  //object.scale.set(newWidth, newHeight, newDepth);
@@ -1419,16 +1423,16 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1419
1423
  // vertical line - 4 lines around object//////////////////////////
1420
1424
  var vLineGeom = new Three.BufferGeometry();
1421
1425
  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));
1426
+ vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1423
1427
  var vLineGeom1 = new Three.BufferGeometry();
1424
1428
  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));
1429
+ vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1426
1430
  var vLineGeom2 = new Three.BufferGeometry();
1427
1431
  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));
1432
+ vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1429
1433
  var vLineGeom3 = new Three.BufferGeometry();
1430
1434
  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));
1435
+ vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1432
1436
  // ///////////////////////////////////////
1433
1437
 
1434
1438
  // set names of transform object
@@ -1441,12 +1445,12 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1441
1445
  color: 0xffffff,
1442
1446
  colorWrite: true
1443
1447
  }));
1444
- rotFillObj.name = "rotate";
1448
+ rotFillObj.name = 'rotate';
1445
1449
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1446
1450
  color: 0xffffff,
1447
1451
  side: Three.DoubleSide
1448
1452
  }));
1449
- upObj.name = "transUp";
1453
+ upObj.name = 'transUp';
1450
1454
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1451
1455
  color: 0xdd6699,
1452
1456
  side: Three.DoubleSide,
@@ -1488,7 +1492,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1488
1492
  //rotObj.translateOnAxis(uVec, 1);
1489
1493
  upObj.translateOnAxis(uVec, 1);
1490
1494
  upObj.translateY(max.y - min.y);
1491
- mBox.name = "TransformBox";
1495
+ mBox.name = 'TransformBox';
1492
1496
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1493
1497
  mBox.scale.set(1.01, 1.01, 1.01);
1494
1498
 
@@ -1517,7 +1521,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1517
1521
  asrtObj.add(mBox);
1518
1522
  asrtObj.scale.set(1, 1, 1);
1519
1523
  //asrtObj.translateY(newAltitude / scalevec.y);
1520
- asrtObj.name = "TransformGizmo";
1524
+ asrtObj.name = 'TransformGizmo';
1521
1525
  // add assets Objects Group
1522
1526
  object.add(asrtObj);
1523
1527
 
@@ -1550,7 +1554,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1550
1554
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1551
1555
  return onLoadItem(cachedObject[element.type].clone());
1552
1556
  }
1553
- if (keys[i] === "base") {
1557
+ if (keys[i] === 'base') {
1554
1558
  // if base Objects
1555
1559
  i++;
1556
1560
  return _loadGLTFs3(i);
@@ -1559,13 +1563,13 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1559
1563
 
1560
1564
  // load base to start //
1561
1565
  // return loadGLTF(dirName + structure["base"])
1562
- return loadGLTF(structure["base"]).then(function (object) {
1566
+ return loadGLTF(structure['base']).then(function (object) {
1563
1567
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1564
1568
  // let texture = loadTexture(textureURL);
1565
1569
  // texture.wrapS = Three.MirroredRepeatWrapping;
1566
1570
  // texture.wrapT = Three.MirroredRepeatWrapping;
1567
1571
 
1568
- object.name = "MainObject";
1572
+ object.name = 'MainObject';
1569
1573
  var mat2 = new Three.MeshStandardMaterial({
1570
1574
  emissive: new Three.Color(0x666666).convertLinearToSRGB(),
1571
1575
  metalness: 0.7,
@@ -1581,7 +1585,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1581
1585
  }
1582
1586
  objGroup = object;
1583
1587
  }, function (reason) {
1584
- console.log("loadGLTF failed for reason:", reason);
1588
+ console.log('loadGLTF failed for reason:', reason);
1585
1589
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1586
1590
  }).then(function () {
1587
1591
  return _loadGLTFs3(0);