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
@@ -18,6 +18,10 @@ import { getMoldingDataOfScene2 } from "./molding";
18
18
  import { Scene, State } from "../models";
19
19
  import { calcDistancesFromHoleToNearestOneOrWall } from "./geometry";
20
20
  import { computeSkinPanels } from "./skinPanelEngine";
21
+ import { mapExternalEventPayload } from "../mappings/external-events/mapExternalEventPayload";
22
+ import { ccdfMapper } from "../mappings/external-events/mappers/ccdfMapper";
23
+ import { mapFromCCDFToCDS } from "../mappings/external-events/mappers/ccdfToCDSMapper";
24
+ import { updateProjectWithCDSList } from "../mappings/external-events/mappers/loadProjectMapper";
21
25
  var PRECISION = 2;
22
26
 
23
27
  // ---- compatibility: supports old + optimized props shapes ----
@@ -455,27 +459,28 @@ function updateCabinetPayload(_x3) {
455
459
  }
456
460
  function _updateCabinetPayload() {
457
461
  _updateCabinetPayload = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(cabinetPayload) {
458
- var cabinetPayloadKeys, i, _cabinetPayload$cabin, _cabinetPayload$cabin2;
462
+ var tempPlaceholders, cabinetPayloadKeys, i;
459
463
  return _regeneratorRuntime.wrap(function (_context6) {
460
464
  while (1) switch (_context6.prev = _context6.next) {
461
465
  case 0:
462
- // let tempPlaceholders = [];
463
- // tempPlaceholders = await parseTempPlaceholdersFromCabinetPayload(
464
- // cabinetPayload
465
- // );
466
+ tempPlaceholders = [];
467
+ _context6.next = 1;
468
+ return parseTempPlaceholdersFromCabinetPayload(cabinetPayload);
469
+ case 1:
470
+ tempPlaceholders = _context6.sent;
466
471
  cabinetPayloadKeys = Object.keys(cabinetPayload);
467
472
  for (i = 0; i < cabinetPayloadKeys.length; i++) {
468
473
  if (cabinetPayloadKeys[i] === 'structure_json') {
469
- cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] = (_cabinetPayload$cabin = (_cabinetPayload$cabin2 = cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'][0]) === null || _cabinetPayload$cabin2 === void 0 ? void 0 : _cabinetPayload$cabin2.placeholders) !== null && _cabinetPayload$cabin !== void 0 ? _cabinetPayload$cabin : [];
470
-
471
474
  // cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] =
472
- // tempPlaceholders[0].placeholders;
473
- // cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'] =
474
- // tempPlaceholders;
475
+ // cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'][0]
476
+ // ?.placeholders ?? [];
477
+
478
+ cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] = tempPlaceholders[0].placeholders;
479
+ cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'] = tempPlaceholders;
475
480
  }
476
481
  }
477
482
  return _context6.abrupt("return", cabinetPayload);
478
- case 1:
483
+ case 2:
479
484
  case "end":
480
485
  return _context6.stop();
481
486
  }
@@ -1211,13 +1216,12 @@ export function handleExternalEvent(_x0) {
1211
1216
  }
1212
1217
  function _handleExternalEvent() {
1213
1218
  _handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee0(props) {
1214
- var _evt$payload3, _evt$payload4;
1215
- var evt, state, layerId, layer, _evt$payload, _state$catalog, cdsItems, itemKeys, _loop6, i, newScene, tempState, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, defaulTitle, _evt$payload5, doorStyle, itemCDS, applyScope, _evt$payload5$itemIds, itemIds, _layerId, allItems, targetItems, idSet, selectedItemIds, _cdsItems, _loop7, _i2, _props$onInternalEven2, _evt$payload6, roomShapeType, width, height, measurementUnit, _doorStyle, value, _value, _evt$payload7, moldingInfo, isGlobal, distElement, _distElement, _evt$payload8, option, _value2, _layerId2, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i4, _i5, _i6, _evt$payload9, _evt$payload0, _evt$payload1, _evt$payload10, _layerID, _layer2, orginalItemInfo, originalItem, originalItemPos, replaceItem, _props$configData$mol, _props$configData, _props$configData$ski, _props$configData2, _props$onInternalEven3, sceneData, currentTexture, moldingPieceLength, skinPanelExclusionSKUs, _t5, _t6, _t7;
1219
+ var _evt$payload4, _evt$payload5;
1220
+ var state, evt, layerId, layer, _evt$payload, _state$catalog, cdsItems, itemKeys, _loop6, i, newScene, tempState, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, defaulTitle, _evt$payload6, doorStyle, applyScope, _evt$payload6$itemIds, itemIds, itemCDS, _layerId, allItems, targetItems, idSet, selectedItemIds, ccdf_list, _loop7, _i2, _props$onInternalEven2, _evt$payload7, roomShapeType, width, height, measurementUnit, _doorStyle, value, _value, _evt$payload8, moldingInfo, isGlobal, distElement, _distElement, _evt$payload9, option, _value2, _layerId2, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i4, _i5, _i6, _evt$payload0, _evt$payload1, _evt$payload10, _evt$payload11, _layerID, _layer2, orginalItemInfo, originalItem, originalItemPos, replaceItem, _layer$doorStyle, _currentTexture, _props$configData$mol, _props$configData, _props$configData$ski, _props$configData2, _props$onInternalEven3, sceneData, currentTexture, moldingPieceLength, skinPanelExclusionSKUs, _t5, _t6, _t7;
1216
1221
  return _regeneratorRuntime.wrap(function (_context11) {
1217
1222
  while (1) switch (_context11.prev = _context11.next) {
1218
1223
  case 0:
1219
1224
  // console.log('***external event****', props.externalEvent);
1220
- evt = props.externalEvent;
1221
1225
  state = getPlannerStateFromProps(props);
1222
1226
  if (state) {
1223
1227
  _context11.next = 1;
@@ -1225,6 +1229,7 @@ function _handleExternalEvent() {
1225
1229
  }
1226
1230
  return _context11.abrupt("return");
1227
1231
  case 1:
1232
+ evt = mapExternalEventPayload(props.externalEvent, state);
1228
1233
  layerId = state.getIn(['scene', 'selectedLayer']);
1229
1234
  layer = state.getIn(['scene', 'layers', layerId]);
1230
1235
  _t5 = evt === null || evt === void 0 ? void 0 : evt.type;
@@ -1239,19 +1244,19 @@ function _handleExternalEvent() {
1239
1244
  cdsItems = [];
1240
1245
  itemKeys = evt !== null && evt !== void 0 && (_evt$payload = evt.payload) !== null && _evt$payload !== void 0 && (_evt$payload = _evt$payload.layers['layer-1']) !== null && _evt$payload !== void 0 && _evt$payload.items ? Object.keys(evt.payload.layers['layer-1'].items) : [];
1241
1246
  _loop6 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop6() {
1242
- var _evt$payload2, _it$properties, _it$properties2, _it$properties3, _it$doorStyle2;
1247
+ var _evt$payload3, _it$properties, _it$properties2, _it$properties3, _it$doorStyle2;
1243
1248
  var it;
1244
1249
  return _regeneratorRuntime.wrap(function (_context0) {
1245
1250
  while (1) switch (_context0.prev = _context0.next) {
1246
1251
  case 0:
1247
- it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
1252
+ it = evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 || (_evt$payload3 = _evt$payload3.layers['layer-1']) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
1248
1253
  if (it !== null && it !== void 0 && (_it$properties = it.properties) !== null && _it$properties !== void 0 && (_it$properties = _it$properties.altitude) !== null && _it$properties !== void 0 && _it$properties.length && it !== null && it !== void 0 && (_it$properties2 = it.properties) !== null && _it$properties2 !== void 0 && (_it$properties2 = _it$properties2.altitude) !== null && _it$properties2 !== void 0 && _it$properties2._unit && it !== null && it !== void 0 && (_it$properties3 = it.properties) !== null && _it$properties3 !== void 0 && (_it$properties3 = _it$properties3.altitude) !== null && _it$properties3 !== void 0 && _it$properties3._length && it.properties.altitude.length !== convert(it.properties.altitude._length).from(it.properties.altitude._unit).to('cm')) {
1249
1254
  it.properties.altitude.length = convert(it.properties.altitude._length).from(it.properties.altitude._unit).to('cm');
1250
1255
  }
1251
1256
  /////////
1252
1257
  if (!cdsItems.some(function (v) {
1253
1258
  var _it$doorStyle;
1254
- return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 || (_it$doorStyle = _it$doorStyle.doorStyles) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.cabinet_door_style_id) === v.cdsId;
1259
+ return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) === v.dfId;
1255
1260
  })) cdsItems.push({
1256
1261
  itemID: it.itemID,
1257
1262
  prototype: it.prototype,
@@ -1259,7 +1264,7 @@ function _handleExternalEvent() {
1259
1264
  name: it.name,
1260
1265
  type: it.type,
1261
1266
  sku_number: it.sku_number,
1262
- cdsId: (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 || (_it$doorStyle2 = _it$doorStyle2.doorStyles) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.cabinet_door_style_id
1267
+ dfId: (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id
1263
1268
  });
1264
1269
  case 1:
1265
1270
  case "end":
@@ -1292,11 +1297,15 @@ function _handleExternalEvent() {
1292
1297
  }
1293
1298
  }, /*#__PURE__*/function () {
1294
1299
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(result) {
1295
- var rt, _i;
1300
+ var _evt$payload2;
1301
+ var cdsList, cabinetDefinitionList, rt, _i;
1296
1302
  return _regeneratorRuntime.wrap(function (_context9) {
1297
1303
  while (1) switch (_context9.prev = _context9.next) {
1298
1304
  case 0:
1299
- rt = mergeSameElements(result === null || result === void 0 ? void 0 : result.elements);
1305
+ cdsList = mapFromCCDFToCDS(result === null || result === void 0 ? void 0 : result.ccdf_list);
1306
+ evt.payload = updateProjectWithCDSList(evt.payload, cdsList);
1307
+ cabinetDefinitionList = ccdfMapper(result === null || result === void 0 ? void 0 : result.ccdf_list, evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.layers['layer-1']);
1308
+ rt = mergeSameElements(cabinetDefinitionList);
1300
1309
  _i = 0;
1301
1310
  case 1:
1302
1311
  if (!(_i < (rt === null || rt === void 0 ? void 0 : rt.length))) {
@@ -1373,7 +1382,7 @@ function _handleExternalEvent() {
1373
1382
  case 13:
1374
1383
  return _context11.abrupt("continue", 49);
1375
1384
  case 14:
1376
- ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName);
1385
+ ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload5 = evt.payload) === null || _evt$payload5 === void 0 ? void 0 : _evt$payload5.holeName);
1377
1386
  return _context11.abrupt("continue", 49);
1378
1387
  case 15:
1379
1388
  moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
@@ -1384,7 +1393,8 @@ function _handleExternalEvent() {
1384
1393
  props.projectActions.rename(defaulTitle);
1385
1394
  return _context11.abrupt("continue", 49);
1386
1395
  case 17:
1387
- _evt$payload5 = evt.payload, doorStyle = _evt$payload5.doorStyle, itemCDS = _evt$payload5.itemCDS, applyScope = _evt$payload5.applyScope, _evt$payload5$itemIds = _evt$payload5.itemIds, itemIds = _evt$payload5$itemIds === void 0 ? [] : _evt$payload5$itemIds;
1396
+ _evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, applyScope = _evt$payload6.applyScope, _evt$payload6$itemIds = _evt$payload6.itemIds, itemIds = _evt$payload6$itemIds === void 0 ? [] : _evt$payload6$itemIds;
1397
+ itemCDS = [];
1388
1398
  _layerId = state.getIn(['scene', 'selectedLayer']);
1389
1399
  allItems = state.getIn(['scene', 'layers', _layerId, 'items']).toJS();
1390
1400
  targetItems = []; // Prepare idSet for SINGLE or MULTIPLE
@@ -1412,28 +1422,24 @@ function _handleExternalEvent() {
1412
1422
  case 20:
1413
1423
  return _context11.abrupt("continue", 21);
1414
1424
  case 21:
1415
- _cdsItems = [];
1425
+ ccdf_list = [];
1416
1426
  _loop7 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop7() {
1417
- var _itemCDS$find;
1418
- var item, cdsId;
1427
+ var item;
1419
1428
  return _regeneratorRuntime.wrap(function (_context10) {
1420
1429
  while (1) switch (_context10.prev = _context10.next) {
1421
1430
  case 0:
1422
1431
  item = targetItems[_i2];
1423
- cdsId = (_itemCDS$find = itemCDS.find(function (itCDS) {
1424
- return itCDS.itemID === item.itemID;
1425
- })) === null || _itemCDS$find === void 0 ? void 0 : _itemCDS$find.cabinet_door_style_id;
1426
- if (cdsId && !_cdsItems.some(function (v) {
1427
- return item.itemID === v.itemID && item.name === v.name && cdsId === v.cdsId;
1432
+ if (!ccdf_list.some(function (v) {
1433
+ return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
1428
1434
  })) {
1429
- _cdsItems.push({
1435
+ ccdf_list.push({
1430
1436
  itemID: item.itemID,
1431
1437
  prototype: item.prototype,
1432
1438
  category: item.category,
1433
1439
  name: item.name,
1434
1440
  type: item.type,
1435
1441
  sku_number: item.sku_number,
1436
- cdsId: cdsId
1442
+ doorFinishId: doorStyle.id
1437
1443
  });
1438
1444
  }
1439
1445
  case 1:
@@ -1454,19 +1460,24 @@ function _handleExternalEvent() {
1454
1460
  _context11.next = 22;
1455
1461
  break;
1456
1462
  case 24:
1457
- if (_cdsItems.length > 0) {
1463
+ if (ccdf_list.length > 0) {
1458
1464
  (_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
1459
1465
  type: INTERNAL_EVENT_ITEMS_CATALOG,
1460
1466
  value: {
1461
- cdsItems: _cdsItems
1467
+ ccdf_list: ccdf_list
1462
1468
  }
1463
- }, /*#__PURE__*/function () {
1469
+ },
1470
+ /*#__PURE__*/
1471
+ // result is ccdf_list
1472
+ function () {
1464
1473
  var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(result) {
1465
- var rt, _i3;
1474
+ var mappedCabinetDefinitionList, rt, _i3;
1466
1475
  return _regeneratorRuntime.wrap(function (_context1) {
1467
1476
  while (1) switch (_context1.prev = _context1.next) {
1468
1477
  case 0:
1469
- rt = mergeSameElements(result === null || result === void 0 ? void 0 : result.elements);
1478
+ itemCDS = mapFromCCDFToCDS(result === null || result === void 0 ? void 0 : result.ccdf_list);
1479
+ mappedCabinetDefinitionList = ccdfMapper(result.ccdf_list, layer); // result: ccdf_list
1480
+ rt = mergeSameElements(mappedCabinetDefinitionList);
1470
1481
  _i3 = 0;
1471
1482
  case 1:
1472
1483
  if (!(_i3 < (rt === null || rt === void 0 ? void 0 : rt.length))) {
@@ -1496,7 +1507,7 @@ function _handleExternalEvent() {
1496
1507
  }
1497
1508
  return _context11.abrupt("continue", 49);
1498
1509
  case 25:
1499
- _evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, measurementUnit = _evt$payload6.measurementUnit, _doorStyle = _evt$payload6.doorStyle;
1510
+ _evt$payload7 = evt.payload, roomShapeType = _evt$payload7.roomShapeType, width = _evt$payload7.width, height = _evt$payload7.height, measurementUnit = _evt$payload7.measurementUnit, _doorStyle = _evt$payload7.doorStyle;
1500
1511
  props.projectActions.createRoomWithShape(roomShapeType, width, height, measurementUnit, _doorStyle);
1501
1512
  return _context11.abrupt("continue", 49);
1502
1513
  case 26:
@@ -1525,7 +1536,7 @@ function _handleExternalEvent() {
1525
1536
  props.projectActions.redo();
1526
1537
  return _context11.abrupt("continue", 49);
1527
1538
  case 31:
1528
- _evt$payload7 = evt.payload, moldingInfo = _evt$payload7.moldingInfo, isGlobal = _evt$payload7.isGlobal;
1539
+ _evt$payload8 = evt.payload, moldingInfo = _evt$payload8.moldingInfo, isGlobal = _evt$payload8.isGlobal;
1529
1540
  _context11.next = 32;
1530
1541
  return loadMoldingSvg(moldingInfo);
1531
1542
  case 32:
@@ -1540,7 +1551,7 @@ function _handleExternalEvent() {
1540
1551
  if (_distElement) props.projectActions.remove(_distElement);
1541
1552
  return _context11.abrupt("continue", 49);
1542
1553
  case 35:
1543
- _evt$payload8 = evt.payload, option = _evt$payload8.option, _value2 = _evt$payload8.value;
1554
+ _evt$payload9 = evt.payload, option = _evt$payload9.option, _value2 = _evt$payload9.value;
1544
1555
  _t7 = option;
1545
1556
  _context11.next = _t7 === PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT ? 36 : _t7 === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT ? 37 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE ? 38 : _t7 === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE ? 39 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE ? 40 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE ? 41 : 42;
1546
1557
  break;
@@ -1581,7 +1592,7 @@ function _handleExternalEvent() {
1581
1592
  case 45:
1582
1593
  _layerID = state.scene.selectedLayer;
1583
1594
  _layer2 = state.scene.getIn(['layers', _layerID]).toJS();
1584
- orginalItemInfo = evt === null || evt === void 0 || (_evt$payload9 = evt.payload) === null || _evt$payload9 === void 0 ? void 0 : _evt$payload9.orginalItemInfo;
1595
+ orginalItemInfo = evt === null || evt === void 0 || (_evt$payload0 = evt.payload) === null || _evt$payload0 === void 0 ? void 0 : _evt$payload0.orginalItemInfo;
1585
1596
  originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
1586
1597
  _context11.next = 46;
1587
1598
  return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
@@ -1593,10 +1604,10 @@ function _handleExternalEvent() {
1593
1604
  y: originalItem.y
1594
1605
  };
1595
1606
  replaceItem = {
1596
- name: evt === null || evt === void 0 || (_evt$payload0 = evt.payload) === null || _evt$payload0 === void 0 || (_evt$payload0 = _evt$payload0.replaceItemInfo) === null || _evt$payload0 === void 0 ? void 0 : _evt$payload0.name,
1607
+ name: evt === null || evt === void 0 || (_evt$payload1 = evt.payload) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.replaceItemInfo) === null || _evt$payload1 === void 0 ? void 0 : _evt$payload1.name,
1597
1608
  info: {
1598
- width: evt === null || evt === void 0 || (_evt$payload1 = evt.payload) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.replaceItemInfo) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.sizeinfo) === null || _evt$payload1 === void 0 ? void 0 : _evt$payload1.width,
1599
- height: evt === null || evt === void 0 || (_evt$payload10 = evt.payload) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.replaceItemInfo) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.sizeinfo) === null || _evt$payload10 === void 0 ? void 0 : _evt$payload10.height
1609
+ width: evt === null || evt === void 0 || (_evt$payload10 = evt.payload) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.replaceItemInfo) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.sizeinfo) === null || _evt$payload10 === void 0 ? void 0 : _evt$payload10.width,
1610
+ height: evt === null || evt === void 0 || (_evt$payload11 = evt.payload) === null || _evt$payload11 === void 0 || (_evt$payload11 = _evt$payload11.replaceItemInfo) === null || _evt$payload11 === void 0 || (_evt$payload11 = _evt$payload11.sizeinfo) === null || _evt$payload11 === void 0 ? void 0 : _evt$payload11.height
1600
1611
  }
1601
1612
  };
1602
1613
  props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
@@ -1606,7 +1617,8 @@ function _handleExternalEvent() {
1606
1617
  return _context11.abrupt("continue", 49);
1607
1618
  case 48:
1608
1619
  sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
1609
- currentTexture = layer.doorStyle !== null || layer.doorStyle !== undefined ? layer.doorStyle : props.state.doorStyle.toJS();
1620
+ currentTexture = (_layer$doorStyle = layer === null || layer === void 0 ? void 0 : layer.doorStyle) !== null && _layer$doorStyle !== void 0 ? _layer$doorStyle : props.state.doorStyle;
1621
+ if (!isEmpty(currentTexture) && Map.isMap(currentTexture)) currentTexture = (_currentTexture = currentTexture) === null || _currentTexture === void 0 ? void 0 : _currentTexture.toJS();
1610
1622
  moldingPieceLength = (_props$configData$mol = props === null || props === void 0 || (_props$configData = props.configData) === null || _props$configData === void 0 ? void 0 : _props$configData.moldingPieceLength) !== null && _props$configData$mol !== void 0 ? _props$configData$mol : DEFAULT_MOLDING_PIECE_LENGTH;
1611
1623
  sceneData.layers[layerId].moldingData = getMoldingDataOfScene2(layer, props.catalog, currentTexture, moldingPieceLength);
1612
1624
 
@@ -248,8 +248,9 @@ export function getLinesOfItem(item, allLineRects, catalog) {
248
248
  var hUnit = item.properties.get('depth').get('_unit') || 'cm';
249
249
  newDepth = convert(newDepth).from(hUnit).to('cm');
250
250
  if (item) {
251
+ var _element;
251
252
  // Get Outline Data of Selected Item
252
- outline = element.info.outline;
253
+ outline = (_element = element) === null || _element === void 0 || (_element = _element.info) === null || _element === void 0 ? void 0 : _element.outline;
253
254
  if (outline) {
254
255
  // Extract Points from `outline`
255
256
  var outlinePaths = outline.paths;
@@ -319,9 +320,9 @@ export function getLinesOfItem2(item, allLineRects, catalog) {
319
320
  var hUnit = item.properties.get('depth').get('_unit') || 'cm';
320
321
  newDepth = convert(newDepth).from(hUnit).to('cm');
321
322
  if (item) {
322
- var _element;
323
+ var _element2;
323
324
  // Get Outline Data of Selected Item
324
- outline = (_element = element) === null || _element === void 0 ? void 0 : _element.info.outline;
325
+ outline = (_element2 = element) === null || _element2 === void 0 ? void 0 : _element2.info.outline;
325
326
  if (outline) {
326
327
  // Extract Points from `outline`
327
328
  var outlinePaths = outline.paths;
@@ -429,6 +430,7 @@ export function getLinesFromItems2(moldingGroup, layer, catalog) {
429
430
  var MGlines = [];
430
431
  var MGlinesOtherSnapped = [];
431
432
  var items = _toConsumableArray(moldingGroup.items);
433
+ items = sortItemsByDistance(items, items[0]);
432
434
  // The other item's lines (these items are snapped to the moldingGroup items)
433
435
  var itemsOtherSnapped = layer.items.toArray().filter(function (item) {
434
436
  if (items.some(function (it) {
@@ -9,11 +9,6 @@ exports["default"] = LiteRenderer;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
12
  var _react = _interopRequireWildcard(require("react"));
18
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
14
  var _reactRedux = require("react-redux");
@@ -28,18 +23,16 @@ var _AppContext = _interopRequireDefault(require("./AppContext"));
28
23
  var _catalog = _interopRequireDefault(require("./catalog/catalog"));
29
24
  var Areas = _interopRequireWildcard(require("./catalog/areas/area/planner-element"));
30
25
  var Lines = _interopRequireWildcard(require("./catalog/lines/wall/planner-element"));
31
- var Holes = _interopRequireWildcard(require("./catalog/holes/export"));
32
- var _export2 = require("./plugins/export");
26
+ var _holesToCatalog = require("./mappings/holesToCatalog");
27
+ var _export = require("./plugins/export");
33
28
  var _LiteKitchenConfigurator = _interopRequireDefault(require("./LiteKitchenConfigurator"));
34
- var _excluded = ["width", "height", "configData", "externalEvent", "onInternalEvent", "onError"];
29
+ var _excluded = ["width", "height", "configData", "externalEvent", "onInternalEvent", "onError", "holes"]; // LiteRenderer.jsx
35
30
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
36
31
  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; }
37
32
  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; }
38
33
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
39
34
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
40
35
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
41
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
42
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // LiteRenderer.jsx
43
36
  var isBrowser = typeof window !== 'undefined';
44
37
  if (isBrowser) window.THREE = THREE;
45
38
 
@@ -88,50 +81,15 @@ function serializeError(err) {
88
81
  }
89
82
  }
90
83
 
91
- /* ---------- Error Boundary that pushes into buffer ---------- */
92
- var ToolErrorBoundary = /*#__PURE__*/function (_React$Component) {
93
- function ToolErrorBoundary() {
94
- (0, _classCallCheck2["default"])(this, ToolErrorBoundary);
95
- return _callSuper(this, ToolErrorBoundary, arguments);
96
- }
97
- (0, _inherits2["default"])(ToolErrorBoundary, _React$Component);
98
- return (0, _createClass2["default"])(ToolErrorBoundary, [{
99
- key: "componentDidCatch",
100
- value: function componentDidCatch(error, info) {
101
- var pushError = this.props.pushError;
102
- pushError({
103
- type: 'render-error',
104
- error: serializeError(error),
105
- info: {
106
- componentStack: info === null || info === void 0 ? void 0 : info.componentStack
107
- }
108
- });
109
- }
110
- }, {
111
- key: "render",
112
- value: function render() {
113
- return this.props.children;
114
- }
115
- }]);
116
- }(_react["default"].Component);
117
- ToolErrorBoundary.propTypes = {
118
- pushError: _propTypes["default"].func.isRequired,
119
- children: _propTypes["default"].any
120
- };
121
-
122
84
  // ----------------- catalog init -----------------
123
85
  function initCatalogOnce(catalog) {
124
86
  if (!catalog) return;
125
- if (catalog.__ksInitialized) return;
126
- for (var x in Areas) catalog.registerElement(Areas[x]);
127
- for (var _x in Lines) catalog.registerElement(Lines[_x]);
128
- for (var _x2 in Holes) catalog.registerElement(Holes[_x2]);
129
- catalog.registerCategory('Windows', 'Windows', [Holes.windowClear, Holes.windowCross, Holes.windowDoubleHung, Holes.windowVertical]);
130
- catalog.registerCategory('Doors', 'Doors', [Holes.doorInterior, Holes.doorExterior, Holes.doorCloset, Holes.doorSliding, Holes.doorwayFramed, Holes.doorwayFrameless]);
131
- catalog.__ksInitialized = true;
87
+ if (!catalog.__ksInitialized) {
88
+ for (var x in Areas) catalog.registerElement(Areas[x]);
89
+ for (var _x in Lines) catalog.registerElement(Lines[_x]);
90
+ catalog.__ksInitialized = true;
91
+ }
132
92
  }
133
-
134
- // ----------------- store factory -----------------
135
93
  function createInstanceStore() {
136
94
  var AppState = (0, _immutable.Map)({
137
95
  KitchenConfigurator: new _models.State()
@@ -162,7 +120,7 @@ function createInstanceStore() {
162
120
  return (0, _redux.createStore)(reducer, null, enhancer);
163
121
  }
164
122
  function createPlugins() {
165
- return [(0, _export2.Keyboard)(), (0, _export2.ConsoleDebugger)()];
123
+ return [(0, _export.Keyboard)(), (0, _export.ConsoleDebugger)()];
166
124
  }
167
125
  function LiteRenderer(props) {
168
126
  ensureSentryInit();
@@ -172,7 +130,11 @@ function LiteRenderer(props) {
172
130
  externalEvent = props.externalEvent,
173
131
  onInternalEvent = props.onInternalEvent,
174
132
  onError = props.onError,
133
+ holes = props.holes,
175
134
  passThrough = (0, _objectWithoutProperties2["default"])(props, _excluded);
135
+ var holePayload = (0, _react.useMemo)(function () {
136
+ return (0, _holesToCatalog.buildHoleElements)(holes);
137
+ }, [holes]);
176
138
 
177
139
  // ✅ instance-scoped store (no module singleton)
178
140
  var storeRef = (0, _react.useRef)(null);
@@ -182,8 +144,9 @@ function LiteRenderer(props) {
182
144
  var catalogRef = (0, _react.useRef)(null);
183
145
  if (!catalogRef.current) {
184
146
  catalogRef.current = new _catalog["default"]();
185
- initCatalogOnce(catalogRef.current);
186
147
  }
148
+ initCatalogOnce(catalogRef.current);
149
+ (0, _holesToCatalog.registerDynamicHoles)(catalogRef.current, holePayload);
187
150
 
188
151
  // ✅ stable plugins array
189
152
  var plugins = (0, _react.useMemo)(function () {
@@ -321,8 +284,6 @@ function LiteRenderer(props) {
321
284
  companyUrl = _ref.companyUrl;
322
285
  return /*#__PURE__*/_react["default"].createElement(_AppContext["default"].Provider, null, /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, {
323
286
  store: storeRef.current
324
- }, /*#__PURE__*/_react["default"].createElement(ToolErrorBoundary, {
325
- pushError: pushError
326
287
  }, /*#__PURE__*/_react["default"].createElement(_LiteKitchenConfigurator["default"], (0, _extends2["default"])({
327
288
  catalog: catalogRef.current,
328
289
  width: width,
@@ -336,7 +297,7 @@ function LiteRenderer(props) {
336
297
  configData: configData,
337
298
  externalEvent: externalEvent,
338
299
  onInternalEvent: onInternalEvent
339
- }, passThrough)))));
300
+ }, passThrough))));
340
301
  }
341
302
  LiteRenderer.propTypes = {
342
303
  width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
@@ -356,6 +317,7 @@ LiteRenderer.propTypes = {
356
317
  externalEvent: _propTypes["default"].object,
357
318
  onInternalEvent: _propTypes["default"].func,
358
319
  onError: _propTypes["default"].func,
320
+ holes: _propTypes["default"].array,
359
321
  store: _propTypes["default"].object
360
322
  };
361
323
  module.exports = exports.default;