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
@@ -6,21 +6,22 @@ import { Map } from 'immutable';
6
6
  import ContainerDimensions from 'react-container-dimensions';
7
7
  import projectItemsCatalog from "./mocks/projectItemsCatalog.json";
8
8
  import mockProps from "./mocks/mockProps.json";
9
- import cabinetPaylod from "./mocks/cabinetPayload2.json";
9
+ import cabinetPaylod from "./mocks/cabinetPayload_new.json";
10
10
  import cabinetW0940Payload from "./mocks/cabinetPayload.json";
11
11
  import appliancePaylod from "./mocks/appliancePayload.json";
12
12
  import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
13
+ import doorStylePayloadNew from "./mocks/doorStylePayload_new.json";
13
14
  import roomShapePayload from "./mocks/roomShapePayload.json";
14
15
  import itemCDSPayload from "./mocks/itemCDSPayload.json";
15
16
  import lightingPayload from "./mocks/lightingPayload.json";
16
17
  import furnishingPayload from "./mocks/furnishingPayload.json";
17
- import rectangleData from "./mocks/rectangleShape.json";
18
18
  import moldingPayload from "./mocks/moldingPayload.json";
19
19
  import replaceCabinetPayload from "./mocks/replaceCabinetPayload.json";
20
+ import holesPayload from "./mocks/holesPayload.json";
20
21
  import ReactDOM from 'react-dom';
21
22
  import LiteRenderer from "./LiteRenderer";
22
23
  import { Button } from 'antd';
23
- import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_SET_FINISHING, FINISHING_TYPE, EXTERNAL_EVENT_ROTATE_PAN, DOORSTYLE_SCOPE_ALL } from "./constants";
24
+ import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_SET_FINISHING, FINISHING_TYPE, EXTERNAL_EVENT_ROTATE_PAN, DOORSTYLE_SCOPE_ALL, ATT_HOLE_OFFSET_A, ATT_HOLE_OFFSET_B, DEFAULT_INTERIOR_URL, DEFAULT_DOOR_HANDLE_TEXTURE_URL } from "./constants";
24
25
  import { convert } from "./utils/convert-units-lite";
25
26
 
26
27
  // --- renderer props ---
@@ -60,6 +61,9 @@ function WorkSpace(props) {
60
61
  externalEvent = _useState2[0],
61
62
  setExternalEvent = _useState2[1];
62
63
  var offset = 5;
64
+ var holeButtons = Array.isArray(holesPayload) ? [holesPayload.find(function (hole) {
65
+ return hole && !hole.is_deleted;
66
+ })] : [];
63
67
  return /*#__PURE__*/React.createElement("div", {
64
68
  className: "flex gap-4"
65
69
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
@@ -78,7 +82,7 @@ function WorkSpace(props) {
78
82
  var evt = {
79
83
  type: EXTERNAL_EVENT_LOAD_PROJECT,
80
84
  // send request for sync scene data to 3DTool
81
- payload: JSON.parse(mockProps.projectElement[0].project_data)
85
+ payload: mockProps.projectElement[0].project_data
82
86
  };
83
87
  setExternalEvent(evt);
84
88
  }
@@ -237,6 +241,18 @@ function WorkSpace(props) {
237
241
  setExternalEvent(evt);
238
242
  }
239
243
  }, "DoorStyle (Change into Midtown White Shaker)"), /*#__PURE__*/React.createElement(Button, {
244
+ actionType: "danger",
245
+ onClick: function onClick() {
246
+ var evt = {
247
+ type: EXTERNAL_EVENT_CHANGE_DOORSTYLE,
248
+ payload: {
249
+ doorStyle: doorStylePayloadNew === null || doorStylePayloadNew === void 0 ? void 0 : doorStylePayloadNew.doorStyle,
250
+ applyScope: doorStylePayloadNew === null || doorStylePayloadNew === void 0 ? void 0 : doorStylePayloadNew.applyScope
251
+ }
252
+ };
253
+ setExternalEvent(evt);
254
+ }
255
+ }, "DoorStyle Change(New-Cambriage)"), /*#__PURE__*/React.createElement(Button, {
240
256
  actionType: "danger",
241
257
  onClick: function onClick() {
242
258
  var evt = {
@@ -245,7 +261,6 @@ function WorkSpace(props) {
245
261
  roomShapeType: 'rectangle',
246
262
  width: 250,
247
263
  height: 100,
248
- measurementUnit: 'in',
249
264
  doorStyle: {
250
265
  id: 36,
251
266
  type: 'door',
@@ -264,70 +279,70 @@ function WorkSpace(props) {
264
279
  doorStyles: {
265
280
  base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
266
281
  counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
267
- interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
282
+ interior: DEFAULT_INTERIOR_URL,
268
283
  base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
269
284
  base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
270
285
  base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
271
286
  base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
272
- door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
273
- fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
274
- drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
287
+ door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
288
+ fixed_drawer_door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
289
+ drawer_door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
275
290
  base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
276
291
  base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
277
292
  base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
278
293
  base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
279
- door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
280
- fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
281
- drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
294
+ door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
295
+ fixed_drawer_door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
296
+ drawer_door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
282
297
  base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
283
298
  base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
284
299
  base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
285
300
  base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
286
- door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
287
- fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
288
- drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
301
+ door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
302
+ fixed_drawer_door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
303
+ drawer_door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
289
304
  base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
290
305
  base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
291
306
  base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
292
307
  base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
293
- door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
294
- fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
295
- drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
308
+ door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
309
+ fixed_drawer_door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
310
+ drawer_door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
296
311
  base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
297
312
  base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
298
313
  base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
299
314
  base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
300
- door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
301
- fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
302
- drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
315
+ door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
316
+ fixed_drawer_door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
317
+ drawer_door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
303
318
  base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
304
319
  base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
305
320
  base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
306
321
  base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
307
- door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
308
- fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
309
- drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
322
+ door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
323
+ fixed_drawer_door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
324
+ drawer_door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
310
325
  base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
311
326
  base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
312
327
  base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
313
328
  base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
314
- door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
315
- fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
316
- drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
329
+ door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
330
+ fixed_drawer_door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
331
+ drawer_door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
317
332
  base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
318
333
  base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
319
334
  base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
320
335
  base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
321
- door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
322
- fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
323
- drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
336
+ door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
337
+ fixed_drawer_door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
338
+ drawer_door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
324
339
  base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
325
340
  base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
326
341
  base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
327
342
  base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
328
- door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
329
- fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
330
- drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
343
+ door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
344
+ fixed_drawer_door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
345
+ drawer_door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL
331
346
  },
332
347
  installation_types: [125, 124]
333
348
  }
@@ -362,70 +377,70 @@ function WorkSpace(props) {
362
377
  doorStyles: {
363
378
  base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
364
379
  counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
365
- interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
380
+ interior: DEFAULT_INTERIOR_URL,
366
381
  base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
367
382
  base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
368
383
  base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
369
384
  base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
370
- door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
371
- fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
372
- drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
385
+ door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
386
+ fixed_drawer_door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
387
+ drawer_door_handle_1: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
373
388
  base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
374
389
  base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
375
390
  base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
376
391
  base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
377
- door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
378
- fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
379
- drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
392
+ door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
393
+ fixed_drawer_door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
394
+ drawer_door_handle_2: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
380
395
  base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
381
396
  base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
382
397
  base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
383
398
  base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
384
- door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
385
- fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
386
- drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
399
+ door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
400
+ fixed_drawer_door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
401
+ drawer_door_handle_3: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
387
402
  base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
388
403
  base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
389
404
  base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
390
405
  base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
391
- door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
392
- fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
393
- drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
406
+ door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
407
+ fixed_drawer_door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
408
+ drawer_door_handle_4: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
394
409
  base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
395
410
  base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
396
411
  base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
397
412
  base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
398
- door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
399
- fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
400
- drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
413
+ door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
414
+ fixed_drawer_door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
415
+ drawer_door_handle_5: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
401
416
  base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
402
417
  base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
403
418
  base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
404
419
  base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
405
- door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
406
- fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
407
- drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
420
+ door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
421
+ fixed_drawer_door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
422
+ drawer_door_handle_6: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
408
423
  base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
409
424
  base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
410
425
  base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
411
426
  base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
412
- door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
413
- fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
414
- drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
427
+ door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
428
+ fixed_drawer_door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
429
+ drawer_door_handle_7: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
415
430
  base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
416
431
  base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
417
432
  base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
418
433
  base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
419
- door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
420
- fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
421
- drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
434
+ door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
435
+ fixed_drawer_door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
436
+ drawer_door_handle_8: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
422
437
  base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
423
438
  base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
424
439
  base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
425
440
  base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
426
- door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
427
- fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
428
- drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
441
+ door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
442
+ fixed_drawer_door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL,
443
+ drawer_door_handle_9: DEFAULT_DOOR_HANDLE_TEXTURE_URL
429
444
  },
430
445
  installation_types: [125, 124]
431
446
  }
@@ -548,6 +563,38 @@ function WorkSpace(props) {
548
563
  setExternalEvent(evt);
549
564
  }
550
565
  }, "OP-Wall Length to 100"), /*#__PURE__*/React.createElement(Button, {
566
+ actionType: "danger",
567
+ onClick: function onClick() {
568
+ var evt = {
569
+ type: EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
570
+ payload: {
571
+ attributeName: ATT_HOLE_OFFSET_A,
572
+ value: 20
573
+ },
574
+ callback: function callback(updatedAttributeForm) {
575
+ console.log(updatedAttributeForm);
576
+ // Do something here with new attributes
577
+ }
578
+ };
579
+ setExternalEvent(evt);
580
+ }
581
+ }, "OP-Window Left Distance To 20"), /*#__PURE__*/React.createElement(Button, {
582
+ actionType: "danger",
583
+ onClick: function onClick() {
584
+ var evt = {
585
+ type: EXTERNAL_EVENT_UPDATE_ATTRIBUTE,
586
+ payload: {
587
+ attributeName: ATT_HOLE_OFFSET_B,
588
+ value: 20
589
+ },
590
+ callback: function callback(updatedAttributeForm) {
591
+ console.log(updatedAttributeForm);
592
+ // Do something here with new attributes
593
+ }
594
+ };
595
+ setExternalEvent(evt);
596
+ }
597
+ }, "OP-Window Right Distance To 20"), /*#__PURE__*/React.createElement(Button, {
551
598
  actionType: "danger",
552
599
  onClick: function onClick() {
553
600
  var evt = {
@@ -614,29 +661,21 @@ function WorkSpace(props) {
614
661
  };
615
662
  setExternalEvent(evt);
616
663
  }
617
- }, "Delete Item"), /*#__PURE__*/React.createElement(Button, {
618
- actionType: "danger",
619
- onClick: function onClick() {
620
- var evt = {
621
- type: EXTERNAL_EVENT_ADD_HOLE,
622
- payload: {
623
- holeName: HOLE_NAMES.WINDOW_CROSS
624
- }
625
- };
626
- setExternalEvent(evt);
627
- }
628
- }, "Add Hole (Cross Window)"), /*#__PURE__*/React.createElement(Button, {
629
- actionType: "danger",
630
- onClick: function onClick() {
631
- var evt = {
632
- type: EXTERNAL_EVENT_ADD_HOLE,
633
- payload: {
634
- holeName: HOLE_NAMES.DOOR_EXTERIOR
635
- }
636
- };
637
- setExternalEvent(evt);
638
- }
639
- }, "Add Hole (DOOR_EXTERIOR)"), /*#__PURE__*/React.createElement(Button, {
664
+ }, "Delete Item"), holeButtons.map(function (hole) {
665
+ return /*#__PURE__*/React.createElement(Button, {
666
+ key: "".concat(hole.type, "-").concat(hole.name),
667
+ actionType: "danger",
668
+ onClick: function onClick() {
669
+ var evt = {
670
+ type: EXTERNAL_EVENT_ADD_HOLE,
671
+ payload: {
672
+ holeName: hole.name
673
+ }
674
+ };
675
+ setExternalEvent(evt);
676
+ }
677
+ }, "Add Hole (".concat(hole.type, " - ").concat(hole.name, ")"));
678
+ }), /*#__PURE__*/React.createElement(Button, {
640
679
  actionType: "danger",
641
680
  onClick: function onClick() {
642
681
  var evt = {
@@ -860,6 +899,7 @@ function WorkSpace(props) {
860
899
  logoImg: "/assets/logo.png",
861
900
  companyUrl: "https://example.com",
862
901
  toolbarButtons: [],
902
+ holes: holesPayload,
863
903
  externalEvent: externalEvent,
864
904
  onInternalEvent: onInternalEvent,
865
905
  onError: function onError(payload) {
@@ -0,0 +1,28 @@
1
+ import { EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_LOAD_PROJECT, EXTERNAL_EVENT_REPLACE_CABINET } from "../../constants";
2
+ import { isEmpty } from "../../utils/helper";
3
+ import { mapAddItemEvent } from "./mappers/addItemMapper";
4
+ import { mapChangeDoorStyleEvent } from "./mappers/changeDoorStyleMapper";
5
+ import { mapLoadProjectEvent } from "./mappers/loadProjectMapper";
6
+
7
+ /**
8
+ * Main dispatcher for external event payload mapping.
9
+ * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
10
+ * without changing the behavior of the existing 3D tool.
11
+ */
12
+ export function mapExternalEventPayload(evt, state) {
13
+ if (isEmpty(evt)) return null;
14
+ switch (evt.type) {
15
+ case EXTERNAL_EVENT_REPLACE_CABINET:
16
+ evt.payload.replaceItemInfo = mapAddItemEvent(evt.payload.replaceItemInfo, state);
17
+ return evt;
18
+ case EXTERNAL_EVENT_ADD_ITEM:
19
+ evt.payload = mapAddItemEvent(evt.payload, state);
20
+ return evt;
21
+ case EXTERNAL_EVENT_CHANGE_DOORSTYLE:
22
+ return mapChangeDoorStyleEvent(evt, state);
23
+ case EXTERNAL_EVENT_LOAD_PROJECT:
24
+ return mapLoadProjectEvent(evt, state);
25
+ default:
26
+ return evt;
27
+ }
28
+ }
@@ -0,0 +1,86 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ 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; }
4
+ 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; }
5
+ import { isEmpty } from "../../../utils/helper";
6
+
7
+ /**
8
+ * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
9
+ *
10
+ * Converts the new assets3d payload shape into the legacy structure_json format
11
+ * expected by the existing 3D tool.
12
+ *
13
+ * @param {Object} evt.payload External event payload
14
+ * @param {Immutable.Map} state Planner state
15
+ * @returns {Object|null} Updated event (or null when payload is empty)
16
+ */
17
+ export function mapAddItemEvent(evtPayload, state) {
18
+ var _evtPayload;
19
+ // make structure_json using assest3D
20
+ var layerId = state.getIn(['scene', 'selectedLayer']);
21
+ var layer = state.getIn(['scene', 'layers', layerId]);
22
+ var tempStructure = {};
23
+ var tempPlaceholders = [];
24
+ var cabinetDoorFinishId, animation;
25
+ if (isEmpty(evtPayload)) return null;
26
+ var cabinetDoorFinish = (_evtPayload = evtPayload) === null || _evtPayload === void 0 ? void 0 : _evtPayload.ccdf;
27
+ var assets3d = cabinetDoorFinish === null || cabinetDoorFinish === void 0 ? void 0 : cabinetDoorFinish.assets3d;
28
+ if (isEmpty(assets3d)) {
29
+ // nothing to map; keep event as-is
30
+ return evtPayload;
31
+ }
32
+ if (!isEmpty(cabinetDoorFinish === null || cabinetDoorFinish === void 0 ? void 0 : cabinetDoorFinish.id)) {
33
+ cabinetDoorFinishId = cabinetDoorFinish.id;
34
+ }
35
+
36
+ // clone so we can push injected handle assets without mutating original
37
+ var updatedAssets3D = _toConsumableArray(assets3d);
38
+
39
+ // first pass: inject door-handle assets where needed
40
+ assets3d.forEach(function (asItem) {
41
+ // make door handle
42
+ if (!isEmpty(asItem === null || asItem === void 0 ? void 0 : asItem.placeholder_name)) {
43
+ var phName = asItem.placeholder_name;
44
+ if (phName.includes('door_')) {
45
+ var doorHandleName = phName.slice(0, phName.length - 2) + '_handle' + phName.slice(phName.length - 2);
46
+ updatedAssets3D.push({
47
+ placeholder_name: doorHandleName,
48
+ gltf: layer.get('doorHandle')
49
+ });
50
+ }
51
+ }
52
+ });
53
+
54
+ // second pass: build structure + placeholders from full asset list
55
+ updatedAssets3D.forEach(function (asitem) {
56
+ var _evtPayload2;
57
+ // set base field with gltf
58
+ tempStructure.base = (_evtPayload2 = evtPayload) === null || _evtPayload2 === void 0 ? void 0 : _evtPayload2.gltf;
59
+ if (!isEmpty(asitem === null || asitem === void 0 ? void 0 : asitem.placeholder_name)) {
60
+ // make the structure using placeholder_name and gltf
61
+ var phName = asitem.placeholder_name;
62
+ if (!phName.includes('_handle_') && !phName.includes('sink')) {
63
+ phName = 'base_' + phName;
64
+ }
65
+ tempStructure[phName] = asitem.gltf;
66
+ }
67
+ });
68
+
69
+ // make the tempPlaceholders using structure and id
70
+ tempPlaceholders.push({
71
+ id: cabinetDoorFinishId,
72
+ structure: tempStructure
73
+ });
74
+
75
+ // make the structure_json using animation and tempPlaceholders
76
+ var structure_json = {
77
+ animation: animation,
78
+ tempPlaceholders: tempPlaceholders
79
+ };
80
+
81
+ // rebuild the cabinet payload with structure_json
82
+ evtPayload = _objectSpread(_objectSpread({}, evtPayload), {}, {
83
+ structure_json: structure_json
84
+ });
85
+ return evtPayload;
86
+ }
@@ -0,0 +1,86 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import { isEmpty } from "../../../components/viewer2d/utils";
3
+ import { toJSIfNeeded } from "../../../shared/objects/immutable";
4
+ export function ccdfMapper(ccdf_list, layer) {
5
+ // This function make cabinet definition using ccdf, layer's item information and catalog
6
+ // console.log(ccdf_list, catalog);
7
+ // make structure_json list using ccdf-list
8
+ var cabinetDefinitionList = [];
9
+ var tempPlaceholders = [];
10
+ var structure = {};
11
+ var cdfId;
12
+ var structure_json = {};
13
+ var cabinetDefinition = {};
14
+ var layerJS = toJSIfNeeded(layer);
15
+ ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (ccdf) {
16
+ var itemKeys = Object.keys(layerJS.items);
17
+ var correctItemId = '';
18
+ for (var i = 0; i < itemKeys.length; i++) {
19
+ if (layerJS.items[itemKeys[i]].itemID === ccdf.cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
20
+ }
21
+ var cd = layerJS.items[correctItemId];
22
+ if (cd.itemID === ccdf.cabinet_id) {
23
+ if (!isEmpty(ccdf === null || ccdf === void 0 ? void 0 : ccdf.id)) {
24
+ cdfId = ccdf.id;
25
+ }
26
+ var assets3d = ccdf === null || ccdf === void 0 ? void 0 : ccdf.assets3d;
27
+ var updatedAssets3D = _toConsumableArray(assets3d);
28
+ // make structure
29
+ assets3d.forEach(function (asItem) {
30
+ // make door handle
31
+ if (!isEmpty(asItem === null || asItem === void 0 ? void 0 : asItem.placeholder_name)) {
32
+ var phName = asItem.placeholder_name;
33
+ if (phName.includes('door_')) {
34
+ var doorHandleName = phName.slice(0, phName.length - 2) + '_handle' + phName.slice(phName.length - 2);
35
+ updatedAssets3D.push({
36
+ placeholder_name: doorHandleName,
37
+ gltf: layerJS.doorHandle
38
+ });
39
+ }
40
+ }
41
+ });
42
+ updatedAssets3D.forEach(function (asitem) {
43
+ // set base field with gltf
44
+ structure.base = cd.gltf;
45
+ if (!isEmpty(asitem === null || asitem === void 0 ? void 0 : asitem.placeholder_name)) {
46
+ // make the structure using placeholder_name and gltf
47
+ var phName = asitem.placeholder_name;
48
+ if (!phName.includes('_handle_') && !phName.includes('sink')) {
49
+ phName = 'base_' + phName;
50
+ }
51
+ structure[phName] = asitem.gltf;
52
+ }
53
+ });
54
+ // make tempPlaceholders
55
+ tempPlaceholders.push({
56
+ structure: structure,
57
+ id: cdfId
58
+ });
59
+ // make structure_json
60
+ structure_json = {
61
+ tempPlaceholders: tempPlaceholders
62
+ };
63
+ // make cabinet definition using structure_json and catalog
64
+ cabinetDefinition = {
65
+ type: cd.category,
66
+ itemID: cd.itemID,
67
+ name: cd.name,
68
+ long_name: cd.long_name,
69
+ sizeinfo: cd.sizeinfo,
70
+ description: cd.description,
71
+ prototype: cd.prototype,
72
+ base: cd.base,
73
+ shape_svg: cd.shape_svg,
74
+ gltf: cd.gltf,
75
+ structure_json: structure_json,
76
+ layoutpos: cd.layoutpos,
77
+ is_corner: cd.is_corner,
78
+ obj_property: cd.obj_property,
79
+ outline: cd.outline
80
+ };
81
+ }
82
+ // make cabinet definition list using cabinetDefinition
83
+ cabinetDefinitionList.push(cabinetDefinition);
84
+ });
85
+ return cabinetDefinitionList;
86
+ }
@@ -0,0 +1,31 @@
1
+ import { isEmpty } from "../../../components/viewer2d/utils";
2
+ export function mapFromCCDFToCDS(ccdf_list) {
3
+ // This function make CDS from CCDF_List
4
+ var itemCDSList = [];
5
+ var itemCDSData = {};
6
+ var cabitnetDoorStyleId;
7
+ ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (asItem) {
8
+ if (!isEmpty(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
9
+ cabitnetDoorStyleId = asItem.id;
10
+ }
11
+ asItem === null || asItem === void 0 || asItem.assets3d.forEach(function (as) {
12
+ if (!isEmpty(as === null || as === void 0 ? void 0 : as.placeholder_name) && !isEmpty(as === null || as === void 0 ? void 0 : as.gltf)) {
13
+ var updatedName = 'base_' + (as === null || as === void 0 ? void 0 : as.placeholder_name) + '_gltf';
14
+ itemCDSData[updatedName] = as === null || as === void 0 ? void 0 : as.gltf;
15
+ }
16
+ itemCDSData['is_euro_cds'] = !isEmpty(as === null || as === void 0 ? void 0 : as.is_euro_cds) ? as.is_euro_cds : 0;
17
+ itemCDSData['euro_shape_svg'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_shape_svg) ? as.is_euro_cds : null;
18
+ itemCDSData['euro_width'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_width) ? as.is_euro_cds : null;
19
+ itemCDSData['euro_height'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_height) ? as.is_euro_cds : null;
20
+ itemCDSData['euro_length'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_length) ? as.is_euro_cds : null;
21
+ });
22
+ var data = [];
23
+ data.push(itemCDSData);
24
+ itemCDSList.push({
25
+ itemID: asItem.cabinet_id,
26
+ data: data,
27
+ cabinet_door_style_id: cabitnetDoorStyleId
28
+ });
29
+ });
30
+ return itemCDSList;
31
+ }