kitchen-simulator 4.4.6 → 5.0.0-new-api.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 (187) hide show
  1. package/es/LiteRenderer.js +15 -53
  2. package/es/assets/Window.hdr +2100 -0
  3. package/es/assets/img/default/maple.jpg +0 -0
  4. package/es/assets/img/default/steel.jpg +0 -0
  5. package/es/catalog/catalog.js +0 -2
  6. package/es/catalog/factories/area-factory-3d.js +0 -4
  7. package/es/catalog/holes/door-double/door_double.png +0 -0
  8. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  9. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  10. package/es/catalog/holes/gate/gate.jpg +0 -0
  11. package/es/catalog/holes/window-clear/texture.png +0 -0
  12. package/es/catalog/holes/window-cross/texture.png +0 -0
  13. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  14. package/es/catalog/holes/window-vertical/texture.png +0 -0
  15. package/es/catalog/utils/exporter.js +2 -0
  16. package/es/catalog/utils/item-loader.js +0 -4
  17. package/es/class/area.js +0 -1
  18. package/es/class/export.js +1 -3
  19. package/es/class/item.js +17 -6
  20. package/es/components/content.js +1 -3
  21. package/es/components/style/export.js +2 -28
  22. package/es/components/viewer2d/line.js +2 -2
  23. package/es/components/viewer2d/viewer2d.js +0 -1
  24. package/es/components/viewer3d/front3D.js +1 -2
  25. package/es/components/viewer3d/pointer-lock-navigation.js +0 -90
  26. package/es/components/viewer3d/scene-creator.js +0 -1
  27. package/es/components/viewer3d/three-memory-cleaner.js +0 -14
  28. package/es/components/viewer3d/viewer3d.js +1 -1
  29. package/es/constants.js +11 -6
  30. package/es/devLiteRenderer.js +124 -84
  31. package/es/mappings/external-events/mapExternalEventPayload.js +28 -0
  32. package/es/mappings/external-events/mappers/addItemMapper.js +86 -0
  33. package/es/mappings/external-events/mappers/ccdfMapper.js +86 -0
  34. package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +31 -0
  35. package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +37 -0
  36. package/es/mappings/external-events/mappers/loadProjectMapper.js +62 -0
  37. package/es/mappings/holesToCatalog.js +139 -0
  38. package/es/models.js +12 -1
  39. package/es/plugins/keyboard.js +1 -1
  40. package/es/reducers/export.js +2 -4
  41. package/es/reducers/items-reducer.js +1 -1
  42. package/es/reducers/project-reducer.js +1 -1
  43. package/es/reducers/reducer.js +2 -3
  44. package/es/shared/objects/immutable.js +3 -0
  45. package/es/utils/geometry.js +276 -74
  46. package/es/utils/history.js +2 -2
  47. package/es/utils/isolate-event-handler.js +57 -45
  48. package/es/utils/molding.js +5 -3
  49. package/lib/LiteRenderer.js +17 -55
  50. package/lib/assets/Window.hdr +2100 -0
  51. package/lib/assets/img/default/maple.jpg +0 -0
  52. package/lib/assets/img/default/steel.jpg +0 -0
  53. package/lib/catalog/catalog.js +0 -2
  54. package/lib/catalog/factories/area-factory-3d.js +0 -4
  55. package/lib/catalog/holes/door-double/door_double.png +0 -0
  56. package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
  57. package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  58. package/lib/catalog/holes/gate/gate.jpg +0 -0
  59. package/lib/catalog/holes/window-clear/texture.png +0 -0
  60. package/lib/catalog/holes/window-cross/texture.png +0 -0
  61. package/lib/catalog/holes/window-double-hung/texture.png +0 -0
  62. package/lib/catalog/holes/window-vertical/texture.png +0 -0
  63. package/lib/catalog/utils/exporter.js +2 -0
  64. package/lib/catalog/utils/item-loader.js +0 -4
  65. package/lib/class/area.js +0 -1
  66. package/lib/class/export.js +0 -8
  67. package/lib/class/item.js +17 -6
  68. package/lib/components/content.js +1 -3
  69. package/lib/components/style/export.js +1 -105
  70. package/lib/components/viewer2d/line.js +1 -1
  71. package/lib/components/viewer2d/viewer2d.js +0 -1
  72. package/lib/components/viewer3d/front3D.js +1 -2
  73. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -90
  74. package/lib/components/viewer3d/scene-creator.js +0 -1
  75. package/lib/components/viewer3d/three-memory-cleaner.js +0 -14
  76. package/lib/constants.js +16 -11
  77. package/lib/devLiteRenderer.js +126 -86
  78. package/lib/mappings/external-events/mapExternalEventPayload.js +33 -0
  79. package/lib/mappings/external-events/mappers/addItemMapper.js +92 -0
  80. package/lib/mappings/external-events/mappers/ccdfMapper.js +93 -0
  81. package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +37 -0
  82. package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +44 -0
  83. package/lib/mappings/external-events/mappers/loadProjectMapper.js +70 -0
  84. package/lib/mappings/holesToCatalog.js +148 -0
  85. package/lib/models.js +12 -1
  86. package/lib/reducers/export.js +1 -9
  87. package/lib/reducers/reducer.js +0 -1
  88. package/lib/shared/objects/immutable.js +9 -0
  89. package/lib/utils/geometry.js +276 -74
  90. package/lib/utils/history.js +1 -1
  91. package/lib/utils/isolate-event-handler.js +57 -45
  92. package/lib/utils/molding.js +5 -3
  93. package/package.json +1 -1
  94. package/es/assets/gltf/door_closet.bin +0 -0
  95. package/es/assets/gltf/door_closet.fbx +0 -0
  96. package/es/assets/gltf/door_exterior.bin +0 -0
  97. package/es/assets/gltf/door_exterior.fbx +0 -0
  98. package/es/assets/gltf/door_interior.bin +0 -0
  99. package/es/assets/gltf/door_interior.fbx +0 -0
  100. package/es/assets/gltf/door_sliding.bin +0 -0
  101. package/es/assets/gltf/door_sliding.fbx +0 -0
  102. package/es/assets/img/png/helper/video_preview_3d.png +0 -0
  103. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  104. package/es/assets/img/svg/color/Brown.svg +0 -9
  105. package/es/assets/img/svg/color/Dark.svg +0 -9
  106. package/es/assets/img/svg/color/Light.svg +0 -9
  107. package/es/assets/img/svg/color/Medium.svg +0 -9
  108. package/es/assets/img/svg/color/Unfinished.svg +0 -9
  109. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  110. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  111. package/es/catalog/properties/export.js +0 -21
  112. package/es/catalog/properties/property-checkbox.js +0 -68
  113. package/es/catalog/properties/property-color.js +0 -39
  114. package/es/catalog/properties/property-enum.js +0 -50
  115. package/es/catalog/properties/property-hidden.js +0 -19
  116. package/es/catalog/properties/property-lenght-measure.js +0 -100
  117. package/es/catalog/properties/property-length-measure.js +0 -84
  118. package/es/catalog/properties/property-length-measure_hole.js +0 -100
  119. package/es/catalog/properties/property-number.js +0 -48
  120. package/es/catalog/properties/property-read-only.js +0 -26
  121. package/es/catalog/properties/property-string.js +0 -48
  122. package/es/catalog/properties/property-toggle.js +0 -39
  123. package/es/catalog/properties/shared-property-style.js +0 -14
  124. package/es/catalog/utils/FuseUtils.js +0 -79
  125. package/es/class/FuseUtils.js +0 -79
  126. package/es/components/style/button.js +0 -106
  127. package/es/components/style/cancel-button.js +0 -21
  128. package/es/components/style/content-container.js +0 -30
  129. package/es/components/style/content-title.js +0 -25
  130. package/es/components/style/delete-button.js +0 -24
  131. package/es/components/style/form-block.js +0 -20
  132. package/es/components/style/form-color-input.js +0 -26
  133. package/es/components/style/form-label.js +0 -22
  134. package/es/components/style/form-number-input_2.js +0 -200
  135. package/es/components/style/form-select.js +0 -19
  136. package/es/components/style/form-slider.js +0 -60
  137. package/es/components/style/form-text-input.js +0 -69
  138. package/es/reducers/user-reducer.js +0 -41
  139. package/es/styles/export.js +0 -5
  140. package/es/styles/tabs.css +0 -40
  141. package/lib/assets/gltf/door_closet.bin +0 -0
  142. package/lib/assets/gltf/door_closet.fbx +0 -0
  143. package/lib/assets/gltf/door_exterior.bin +0 -0
  144. package/lib/assets/gltf/door_exterior.fbx +0 -0
  145. package/lib/assets/gltf/door_interior.bin +0 -0
  146. package/lib/assets/gltf/door_interior.fbx +0 -0
  147. package/lib/assets/gltf/door_sliding.bin +0 -0
  148. package/lib/assets/gltf/door_sliding.fbx +0 -0
  149. package/lib/assets/img/png/helper/video_preview_3d.png +0 -0
  150. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  151. package/lib/assets/img/svg/color/Brown.svg +0 -9
  152. package/lib/assets/img/svg/color/Dark.svg +0 -9
  153. package/lib/assets/img/svg/color/Light.svg +0 -9
  154. package/lib/assets/img/svg/color/Medium.svg +0 -9
  155. package/lib/assets/img/svg/color/Unfinished.svg +0 -9
  156. package/lib/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  157. package/lib/catalog/lines/wall/textures/bricks3.jpg +0 -0
  158. package/lib/catalog/properties/export.js +0 -81
  159. package/lib/catalog/properties/property-checkbox.js +0 -76
  160. package/lib/catalog/properties/property-color.js +0 -47
  161. package/lib/catalog/properties/property-enum.js +0 -58
  162. package/lib/catalog/properties/property-hidden.js +0 -27
  163. package/lib/catalog/properties/property-lenght-measure.js +0 -108
  164. package/lib/catalog/properties/property-length-measure.js +0 -92
  165. package/lib/catalog/properties/property-length-measure_hole.js +0 -108
  166. package/lib/catalog/properties/property-number.js +0 -56
  167. package/lib/catalog/properties/property-read-only.js +0 -34
  168. package/lib/catalog/properties/property-string.js +0 -56
  169. package/lib/catalog/properties/property-toggle.js +0 -47
  170. package/lib/catalog/properties/shared-property-style.js +0 -21
  171. package/lib/catalog/utils/FuseUtils.js +0 -87
  172. package/lib/class/FuseUtils.js +0 -87
  173. package/lib/components/style/button.js +0 -115
  174. package/lib/components/style/cancel-button.js +0 -29
  175. package/lib/components/style/content-container.js +0 -38
  176. package/lib/components/style/content-title.js +0 -35
  177. package/lib/components/style/delete-button.js +0 -34
  178. package/lib/components/style/form-block.js +0 -28
  179. package/lib/components/style/form-color-input.js +0 -34
  180. package/lib/components/style/form-label.js +0 -30
  181. package/lib/components/style/form-number-input_2.js +0 -209
  182. package/lib/components/style/form-select.js +0 -29
  183. package/lib/components/style/form-slider.js +0 -68
  184. package/lib/components/style/form-text-input.js +0 -78
  185. package/lib/reducers/user-reducer.js +0 -48
  186. package/lib/styles/export.js +0 -13
  187. package/lib/styles/tabs.css +0 -40
@@ -10,17 +10,18 @@ var _immutable = require("immutable");
10
10
  var _reactContainerDimensions = _interopRequireDefault(require("react-container-dimensions"));
11
11
  var _projectItemsCatalog = _interopRequireDefault(require("./mocks/projectItemsCatalog.json"));
12
12
  var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
13
- var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload2.json"));
14
- var _cabinetPayload2 = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
13
+ var _cabinetPayload_new = _interopRequireDefault(require("./mocks/cabinetPayload_new.json"));
14
+ var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
15
15
  var _appliancePayload = _interopRequireDefault(require("./mocks/appliancePayload.json"));
16
16
  var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload2.json"));
17
+ var _doorStylePayload_new = _interopRequireDefault(require("./mocks/doorStylePayload_new.json"));
17
18
  var _roomShapePayload = _interopRequireDefault(require("./mocks/roomShapePayload.json"));
18
19
  var _itemCDSPayload = _interopRequireDefault(require("./mocks/itemCDSPayload.json"));
19
20
  var _lightingPayload = _interopRequireDefault(require("./mocks/lightingPayload.json"));
20
21
  var _furnishingPayload = _interopRequireDefault(require("./mocks/furnishingPayload.json"));
21
- var _rectangleShape = _interopRequireDefault(require("./mocks/rectangleShape.json"));
22
22
  var _moldingPayload = _interopRequireDefault(require("./mocks/moldingPayload.json"));
23
23
  var _replaceCabinetPayload = _interopRequireDefault(require("./mocks/replaceCabinetPayload.json"));
24
+ var _holesPayload = _interopRequireDefault(require("./mocks/holesPayload.json"));
24
25
  var _reactDom = _interopRequireDefault(require("react-dom"));
25
26
  var _LiteRenderer = _interopRequireDefault(require("./LiteRenderer"));
26
27
  var _antd = require("antd");
@@ -64,6 +65,9 @@ function WorkSpace(props) {
64
65
  externalEvent = _useState2[0],
65
66
  setExternalEvent = _useState2[1];
66
67
  var offset = 5;
68
+ var holeButtons = Array.isArray(_holesPayload["default"]) ? [_holesPayload["default"].find(function (hole) {
69
+ return hole && !hole.is_deleted;
70
+ })] : [];
67
71
  return /*#__PURE__*/_react["default"].createElement("div", {
68
72
  className: "flex gap-4"
69
73
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
@@ -82,7 +86,7 @@ function WorkSpace(props) {
82
86
  var evt = {
83
87
  type: _constants.EXTERNAL_EVENT_LOAD_PROJECT,
84
88
  // send request for sync scene data to 3DTool
85
- payload: JSON.parse(_mockProps["default"].projectElement[0].project_data)
89
+ payload: _mockProps["default"].projectElement[0].project_data
86
90
  };
87
91
  setExternalEvent(evt);
88
92
  }
@@ -214,7 +218,7 @@ function WorkSpace(props) {
214
218
  onClick: function onClick() {
215
219
  var evt = {
216
220
  type: _constants.EXTERNAL_EVENT_ADD_ITEM,
217
- payload: _cabinetPayload["default"]
221
+ payload: _cabinetPayload_new["default"]
218
222
  };
219
223
  setExternalEvent(evt);
220
224
  }
@@ -223,7 +227,7 @@ function WorkSpace(props) {
223
227
  onClick: function onClick() {
224
228
  var evt = {
225
229
  type: _constants.EXTERNAL_EVENT_ADD_ITEM,
226
- payload: _cabinetPayload2["default"]
230
+ payload: _cabinetPayload["default"]
227
231
  };
228
232
  setExternalEvent(evt);
229
233
  }
@@ -241,6 +245,18 @@ function WorkSpace(props) {
241
245
  setExternalEvent(evt);
242
246
  }
243
247
  }, "DoorStyle (Change into Midtown White Shaker)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
248
+ actionType: "danger",
249
+ onClick: function onClick() {
250
+ var evt = {
251
+ type: _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE,
252
+ payload: {
253
+ doorStyle: _doorStylePayload_new["default"] === null || _doorStylePayload_new["default"] === void 0 ? void 0 : _doorStylePayload_new["default"].doorStyle,
254
+ applyScope: _doorStylePayload_new["default"] === null || _doorStylePayload_new["default"] === void 0 ? void 0 : _doorStylePayload_new["default"].applyScope
255
+ }
256
+ };
257
+ setExternalEvent(evt);
258
+ }
259
+ }, "DoorStyle Change(New-Cambriage)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
244
260
  actionType: "danger",
245
261
  onClick: function onClick() {
246
262
  var evt = {
@@ -249,7 +265,6 @@ function WorkSpace(props) {
249
265
  roomShapeType: 'rectangle',
250
266
  width: 250,
251
267
  height: 100,
252
- measurementUnit: 'in',
253
268
  doorStyle: {
254
269
  id: 36,
255
270
  type: 'door',
@@ -268,70 +283,70 @@ function WorkSpace(props) {
268
283
  doorStyles: {
269
284
  base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
270
285
  counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
271
- interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
286
+ interior: _constants.DEFAULT_INTERIOR_URL,
272
287
  base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
273
288
  base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
274
289
  base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
275
290
  base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
276
- door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
277
- fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
278
- drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
291
+ door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
292
+ fixed_drawer_door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
293
+ drawer_door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
279
294
  base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
280
295
  base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
281
296
  base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
282
297
  base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
283
- door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
284
- fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
285
- drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
298
+ door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
299
+ fixed_drawer_door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
300
+ drawer_door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
286
301
  base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
287
302
  base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
288
303
  base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
289
304
  base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
290
- door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
291
- fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
292
- drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
305
+ door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
306
+ fixed_drawer_door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
307
+ drawer_door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
293
308
  base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
294
309
  base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
295
310
  base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
296
311
  base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
297
- door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
298
- fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
299
- drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
312
+ door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
313
+ fixed_drawer_door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
314
+ drawer_door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
300
315
  base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
301
316
  base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
302
317
  base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
303
318
  base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
304
- door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
305
- fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
306
- drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
319
+ door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
320
+ fixed_drawer_door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
321
+ drawer_door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
307
322
  base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
308
323
  base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
309
324
  base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
310
325
  base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
311
- door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
312
- fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
313
- drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
326
+ door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
327
+ fixed_drawer_door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
328
+ drawer_door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
314
329
  base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
315
330
  base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
316
331
  base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
317
332
  base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
318
- door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
319
- fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
320
- drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
333
+ door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
334
+ fixed_drawer_door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
335
+ drawer_door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
321
336
  base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
322
337
  base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
323
338
  base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
324
339
  base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
325
- door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
326
- fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
327
- drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
340
+ door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
341
+ fixed_drawer_door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
342
+ drawer_door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
328
343
  base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
329
344
  base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
330
345
  base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
331
346
  base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
332
- door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
333
- fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
334
- drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
347
+ door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
348
+ fixed_drawer_door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
349
+ drawer_door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL
335
350
  },
336
351
  installation_types: [125, 124]
337
352
  }
@@ -366,70 +381,70 @@ function WorkSpace(props) {
366
381
  doorStyles: {
367
382
  base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
368
383
  counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
369
- interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
384
+ interior: _constants.DEFAULT_INTERIOR_URL,
370
385
  base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
371
386
  base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
372
387
  base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
373
388
  base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
374
- door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
375
- fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
376
- drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
389
+ door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
390
+ fixed_drawer_door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
391
+ drawer_door_handle_1: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
377
392
  base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
378
393
  base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
379
394
  base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
380
395
  base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
381
- door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
382
- fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
383
- drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
396
+ door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
397
+ fixed_drawer_door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
398
+ drawer_door_handle_2: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
384
399
  base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
385
400
  base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
386
401
  base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
387
402
  base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
388
- door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
389
- fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
390
- drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
403
+ door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
404
+ fixed_drawer_door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
405
+ drawer_door_handle_3: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
391
406
  base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
392
407
  base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
393
408
  base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
394
409
  base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
395
- door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
396
- fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
397
- drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
410
+ door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
411
+ fixed_drawer_door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
412
+ drawer_door_handle_4: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
398
413
  base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
399
414
  base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
400
415
  base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
401
416
  base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
402
- door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
403
- fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
404
- drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
417
+ door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
418
+ fixed_drawer_door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
419
+ drawer_door_handle_5: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
405
420
  base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
406
421
  base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
407
422
  base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
408
423
  base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
409
- door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
410
- fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
411
- drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
424
+ door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
425
+ fixed_drawer_door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
426
+ drawer_door_handle_6: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
412
427
  base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
413
428
  base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
414
429
  base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
415
430
  base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
416
- door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
417
- fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
418
- drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
431
+ door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
432
+ fixed_drawer_door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
433
+ drawer_door_handle_7: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
419
434
  base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
420
435
  base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
421
436
  base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
422
437
  base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
423
- door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
424
- fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
425
- drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
438
+ door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
439
+ fixed_drawer_door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
440
+ drawer_door_handle_8: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
426
441
  base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
427
442
  base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
428
443
  base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
429
444
  base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
430
- door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
431
- fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
432
- drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
445
+ door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
446
+ fixed_drawer_door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL,
447
+ drawer_door_handle_9: _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL
433
448
  },
434
449
  installation_types: [125, 124]
435
450
  }
@@ -552,6 +567,38 @@ function WorkSpace(props) {
552
567
  setExternalEvent(evt);
553
568
  }
554
569
  }, "OP-Wall Length to 100"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
570
+ actionType: "danger",
571
+ onClick: function onClick() {
572
+ var evt = {
573
+ type: _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
574
+ payload: {
575
+ attributeName: _constants.ATT_HOLE_OFFSET_A,
576
+ value: 20
577
+ },
578
+ callback: function callback(updatedAttributeForm) {
579
+ console.log(updatedAttributeForm);
580
+ // Do something here with new attributes
581
+ }
582
+ };
583
+ setExternalEvent(evt);
584
+ }
585
+ }, "OP-Window Left Distance To 20"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
586
+ actionType: "danger",
587
+ onClick: function onClick() {
588
+ var evt = {
589
+ type: _constants.EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
590
+ payload: {
591
+ attributeName: _constants.ATT_HOLE_OFFSET_B,
592
+ value: 20
593
+ },
594
+ callback: function callback(updatedAttributeForm) {
595
+ console.log(updatedAttributeForm);
596
+ // Do something here with new attributes
597
+ }
598
+ };
599
+ setExternalEvent(evt);
600
+ }
601
+ }, "OP-Window Right Distance To 20"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
555
602
  actionType: "danger",
556
603
  onClick: function onClick() {
557
604
  var evt = {
@@ -618,29 +665,21 @@ function WorkSpace(props) {
618
665
  };
619
666
  setExternalEvent(evt);
620
667
  }
621
- }, "Delete Item"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
622
- actionType: "danger",
623
- onClick: function onClick() {
624
- var evt = {
625
- type: _constants.EXTERNAL_EVENT_ADD_HOLE,
626
- payload: {
627
- holeName: _constants.HOLE_NAMES.WINDOW_CROSS
628
- }
629
- };
630
- setExternalEvent(evt);
631
- }
632
- }, "Add Hole (Cross Window)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
633
- actionType: "danger",
634
- onClick: function onClick() {
635
- var evt = {
636
- type: _constants.EXTERNAL_EVENT_ADD_HOLE,
637
- payload: {
638
- holeName: _constants.HOLE_NAMES.DOOR_EXTERIOR
639
- }
640
- };
641
- setExternalEvent(evt);
642
- }
643
- }, "Add Hole (DOOR_EXTERIOR)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
668
+ }, "Delete Item"), holeButtons.map(function (hole) {
669
+ return /*#__PURE__*/_react["default"].createElement(_antd.Button, {
670
+ key: "".concat(hole.type, "-").concat(hole.name),
671
+ actionType: "danger",
672
+ onClick: function onClick() {
673
+ var evt = {
674
+ type: _constants.EXTERNAL_EVENT_ADD_HOLE,
675
+ payload: {
676
+ holeName: hole.name
677
+ }
678
+ };
679
+ setExternalEvent(evt);
680
+ }
681
+ }, "Add Hole (".concat(hole.type, " - ").concat(hole.name, ")"));
682
+ }), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
644
683
  actionType: "danger",
645
684
  onClick: function onClick() {
646
685
  var evt = {
@@ -864,6 +903,7 @@ function WorkSpace(props) {
864
903
  logoImg: "/assets/logo.png",
865
904
  companyUrl: "https://example.com",
866
905
  toolbarButtons: [],
906
+ holes: _holesPayload["default"],
867
907
  externalEvent: externalEvent,
868
908
  onInternalEvent: onInternalEvent,
869
909
  onError: function onError(payload) {
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapExternalEventPayload = mapExternalEventPayload;
7
+ var _constants = require("../../constants");
8
+ var _helper = require("../../utils/helper");
9
+ var _addItemMapper = require("./mappers/addItemMapper");
10
+ var _changeDoorStyleMapper = require("./mappers/changeDoorStyleMapper");
11
+ var _loadProjectMapper = require("./mappers/loadProjectMapper");
12
+ /**
13
+ * Main dispatcher for external event payload mapping.
14
+ * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
15
+ * without changing the behavior of the existing 3D tool.
16
+ */
17
+ function mapExternalEventPayload(evt, state) {
18
+ if ((0, _helper.isEmpty)(evt)) return null;
19
+ switch (evt.type) {
20
+ case _constants.EXTERNAL_EVENT_REPLACE_CABINET:
21
+ evt.payload.replaceItemInfo = (0, _addItemMapper.mapAddItemEvent)(evt.payload.replaceItemInfo, state);
22
+ return evt;
23
+ case _constants.EXTERNAL_EVENT_ADD_ITEM:
24
+ evt.payload = (0, _addItemMapper.mapAddItemEvent)(evt.payload, state);
25
+ return evt;
26
+ case _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE:
27
+ return (0, _changeDoorStyleMapper.mapChangeDoorStyleEvent)(evt, state);
28
+ case _constants.EXTERNAL_EVENT_LOAD_PROJECT:
29
+ return (0, _loadProjectMapper.mapLoadProjectEvent)(evt, state);
30
+ default:
31
+ return evt;
32
+ }
33
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mapAddItemEvent = mapAddItemEvent;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _helper = require("../../../utils/helper");
11
+ 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; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ /**
14
+ * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
15
+ *
16
+ * Converts the new assets3d payload shape into the legacy structure_json format
17
+ * expected by the existing 3D tool.
18
+ *
19
+ * @param {Object} evt.payload External event payload
20
+ * @param {Immutable.Map} state Planner state
21
+ * @returns {Object|null} Updated event (or null when payload is empty)
22
+ */
23
+ function mapAddItemEvent(evtPayload, state) {
24
+ var _evtPayload;
25
+ // make structure_json using assest3D
26
+ var layerId = state.getIn(['scene', 'selectedLayer']);
27
+ var layer = state.getIn(['scene', 'layers', layerId]);
28
+ var tempStructure = {};
29
+ var tempPlaceholders = [];
30
+ var cabinetDoorFinishId, animation;
31
+ if ((0, _helper.isEmpty)(evtPayload)) return null;
32
+ var cabinetDoorFinish = (_evtPayload = evtPayload) === null || _evtPayload === void 0 ? void 0 : _evtPayload.ccdf;
33
+ var assets3d = cabinetDoorFinish === null || cabinetDoorFinish === void 0 ? void 0 : cabinetDoorFinish.assets3d;
34
+ if ((0, _helper.isEmpty)(assets3d)) {
35
+ // nothing to map; keep event as-is
36
+ return evtPayload;
37
+ }
38
+ if (!(0, _helper.isEmpty)(cabinetDoorFinish === null || cabinetDoorFinish === void 0 ? void 0 : cabinetDoorFinish.id)) {
39
+ cabinetDoorFinishId = cabinetDoorFinish.id;
40
+ }
41
+
42
+ // clone so we can push injected handle assets without mutating original
43
+ var updatedAssets3D = (0, _toConsumableArray2["default"])(assets3d);
44
+
45
+ // first pass: inject door-handle assets where needed
46
+ assets3d.forEach(function (asItem) {
47
+ // make door handle
48
+ if (!(0, _helper.isEmpty)(asItem === null || asItem === void 0 ? void 0 : asItem.placeholder_name)) {
49
+ var phName = asItem.placeholder_name;
50
+ if (phName.includes('door_')) {
51
+ var doorHandleName = phName.slice(0, phName.length - 2) + '_handle' + phName.slice(phName.length - 2);
52
+ updatedAssets3D.push({
53
+ placeholder_name: doorHandleName,
54
+ gltf: layer.get('doorHandle')
55
+ });
56
+ }
57
+ }
58
+ });
59
+
60
+ // second pass: build structure + placeholders from full asset list
61
+ updatedAssets3D.forEach(function (asitem) {
62
+ var _evtPayload2;
63
+ // set base field with gltf
64
+ tempStructure.base = (_evtPayload2 = evtPayload) === null || _evtPayload2 === void 0 ? void 0 : _evtPayload2.gltf;
65
+ if (!(0, _helper.isEmpty)(asitem === null || asitem === void 0 ? void 0 : asitem.placeholder_name)) {
66
+ // make the structure using placeholder_name and gltf
67
+ var phName = asitem.placeholder_name;
68
+ if (!phName.includes('_handle_') && !phName.includes('sink')) {
69
+ phName = 'base_' + phName;
70
+ }
71
+ tempStructure[phName] = asitem.gltf;
72
+ }
73
+ });
74
+
75
+ // make the tempPlaceholders using structure and id
76
+ tempPlaceholders.push({
77
+ id: cabinetDoorFinishId,
78
+ structure: tempStructure
79
+ });
80
+
81
+ // make the structure_json using animation and tempPlaceholders
82
+ var structure_json = {
83
+ animation: animation,
84
+ tempPlaceholders: tempPlaceholders
85
+ };
86
+
87
+ // rebuild the cabinet payload with structure_json
88
+ evtPayload = _objectSpread(_objectSpread({}, evtPayload), {}, {
89
+ structure_json: structure_json
90
+ });
91
+ return evtPayload;
92
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ccdfMapper = ccdfMapper;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _utils = require("../../../components/viewer2d/utils");
10
+ var _immutable = require("../../../shared/objects/immutable");
11
+ function ccdfMapper(ccdf_list, layer) {
12
+ // This function make cabinet definition using ccdf, layer's item information and catalog
13
+ // console.log(ccdf_list, catalog);
14
+ // make structure_json list using ccdf-list
15
+ var cabinetDefinitionList = [];
16
+ var tempPlaceholders = [];
17
+ var structure = {};
18
+ var cdfId;
19
+ var structure_json = {};
20
+ var cabinetDefinition = {};
21
+ var layerJS = (0, _immutable.toJSIfNeeded)(layer);
22
+ ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (ccdf) {
23
+ var itemKeys = Object.keys(layerJS.items);
24
+ var correctItemId = '';
25
+ for (var i = 0; i < itemKeys.length; i++) {
26
+ if (layerJS.items[itemKeys[i]].itemID === ccdf.cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
27
+ }
28
+ var cd = layerJS.items[correctItemId];
29
+ if (cd.itemID === ccdf.cabinet_id) {
30
+ if (!(0, _utils.isEmpty)(ccdf === null || ccdf === void 0 ? void 0 : ccdf.id)) {
31
+ cdfId = ccdf.id;
32
+ }
33
+ var assets3d = ccdf === null || ccdf === void 0 ? void 0 : ccdf.assets3d;
34
+ var updatedAssets3D = (0, _toConsumableArray2["default"])(assets3d);
35
+ // make structure
36
+ assets3d.forEach(function (asItem) {
37
+ // make door handle
38
+ if (!(0, _utils.isEmpty)(asItem === null || asItem === void 0 ? void 0 : asItem.placeholder_name)) {
39
+ var phName = asItem.placeholder_name;
40
+ if (phName.includes('door_')) {
41
+ var doorHandleName = phName.slice(0, phName.length - 2) + '_handle' + phName.slice(phName.length - 2);
42
+ updatedAssets3D.push({
43
+ placeholder_name: doorHandleName,
44
+ gltf: layerJS.doorHandle
45
+ });
46
+ }
47
+ }
48
+ });
49
+ updatedAssets3D.forEach(function (asitem) {
50
+ // set base field with gltf
51
+ structure.base = cd.gltf;
52
+ if (!(0, _utils.isEmpty)(asitem === null || asitem === void 0 ? void 0 : asitem.placeholder_name)) {
53
+ // make the structure using placeholder_name and gltf
54
+ var phName = asitem.placeholder_name;
55
+ if (!phName.includes('_handle_') && !phName.includes('sink')) {
56
+ phName = 'base_' + phName;
57
+ }
58
+ structure[phName] = asitem.gltf;
59
+ }
60
+ });
61
+ // make tempPlaceholders
62
+ tempPlaceholders.push({
63
+ structure: structure,
64
+ id: cdfId
65
+ });
66
+ // make structure_json
67
+ structure_json = {
68
+ tempPlaceholders: tempPlaceholders
69
+ };
70
+ // make cabinet definition using structure_json and catalog
71
+ cabinetDefinition = {
72
+ type: cd.category,
73
+ itemID: cd.itemID,
74
+ name: cd.name,
75
+ long_name: cd.long_name,
76
+ sizeinfo: cd.sizeinfo,
77
+ description: cd.description,
78
+ prototype: cd.prototype,
79
+ base: cd.base,
80
+ shape_svg: cd.shape_svg,
81
+ gltf: cd.gltf,
82
+ structure_json: structure_json,
83
+ layoutpos: cd.layoutpos,
84
+ is_corner: cd.is_corner,
85
+ obj_property: cd.obj_property,
86
+ outline: cd.outline
87
+ };
88
+ }
89
+ // make cabinet definition list using cabinetDefinition
90
+ cabinetDefinitionList.push(cabinetDefinition);
91
+ });
92
+ return cabinetDefinitionList;
93
+ }