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
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapFromCCDFToCDS = mapFromCCDFToCDS;
7
+ var _utils = require("../../../components/viewer2d/utils");
8
+ function mapFromCCDFToCDS(ccdf_list) {
9
+ // This function make CDS from CCDF_List
10
+ var itemCDSList = [];
11
+ var itemCDSData = {};
12
+ var cabitnetDoorStyleId;
13
+ ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (asItem) {
14
+ if (!(0, _utils.isEmpty)(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
15
+ cabitnetDoorStyleId = asItem.id;
16
+ }
17
+ asItem === null || asItem === void 0 || asItem.assets3d.forEach(function (as) {
18
+ if (!(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.placeholder_name) && !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.gltf)) {
19
+ var updatedName = 'base_' + (as === null || as === void 0 ? void 0 : as.placeholder_name) + '_gltf';
20
+ itemCDSData[updatedName] = as === null || as === void 0 ? void 0 : as.gltf;
21
+ }
22
+ itemCDSData['is_euro_cds'] = !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.is_euro_cds) ? as.is_euro_cds : 0;
23
+ itemCDSData['euro_shape_svg'] = !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_shape_svg) ? as.is_euro_cds : null;
24
+ itemCDSData['euro_width'] = !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_width) ? as.is_euro_cds : null;
25
+ itemCDSData['euro_height'] = !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_height) ? as.is_euro_cds : null;
26
+ itemCDSData['euro_length'] = !(0, _utils.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_length) ? as.is_euro_cds : null;
27
+ });
28
+ var data = [];
29
+ data.push(itemCDSData);
30
+ itemCDSList.push({
31
+ itemID: asItem.cabinet_id,
32
+ data: data,
33
+ cabinet_door_style_id: cabitnetDoorStyleId
34
+ });
35
+ });
36
+ return itemCDSList;
37
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mapChangeDoorStyleEvent = mapChangeDoorStyleEvent;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _constants = require("../../../constants");
10
+ var _helper = require("../../../utils/helper");
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function mapChangeDoorStyleEvent(evt, state) {
14
+ var _evt$payload, _layer$toJS;
15
+ if ((0, _helper.isEmpty)(evt)) return null;
16
+ var targetDoorStyle = evt === null || evt === void 0 || (_evt$payload = evt.payload) === null || _evt$payload === void 0 ? void 0 : _evt$payload.doorStyle;
17
+ if ((0, _helper.isEmpty)(targetDoorStyle)) return evt;
18
+ var layerId = state.getIn(['scene', 'selectedLayer']);
19
+ var layer = state.getIn(['scene', 'layers', layerId]);
20
+ if ((0, _helper.isEmpty)(layer)) return evt;
21
+ var handleTexture = layer.get('doorHandle');
22
+ var counterToptexture = layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 || (_layer$toJS = _layer$toJS.counterTop) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.uri;
23
+
24
+ // make doorStyles and update the doorStyle payload
25
+ var Max_PH = 9;
26
+ var doorStyles = {
27
+ base: targetDoorStyle.texture,
28
+ counttop: counterToptexture,
29
+ interior: _constants.DEFAULT_INTERIOR_URL
30
+ };
31
+ for (var i = 1; i <= Max_PH; i++) {
32
+ doorStyles['base_door_' + i] = targetDoorStyle.texture;
33
+ doorStyles['base_fixed_drawer_door_' + i] = targetDoorStyle.texture;
34
+ doorStyles['base_drawer_' + i] = targetDoorStyle.texture;
35
+ doorStyles['base_drawer_door_' + i] = targetDoorStyle.texture;
36
+ doorStyles['door_handle_' + i] = handleTexture;
37
+ doorStyles['fixed_drawer_door_handle_' + i] = handleTexture;
38
+ doorStyles['drawer_door_handle_' + i] = handleTexture;
39
+ }
40
+ evt.payload.doorStyle = _objectSpread(_objectSpread({}, targetDoorStyle), {}, {
41
+ doorStyles: doorStyles
42
+ });
43
+ return evt;
44
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mapLoadProjectEvent = mapLoadProjectEvent;
8
+ exports.updateProjectWithCDSList = updateProjectWithCDSList;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _constants = require("../../../constants");
11
+ var _helper = require("../../../utils/helper");
12
+ 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; }
13
+ 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; }
14
+ function mapLoadProjectEvent(evt, state) {
15
+ // preprocessing for loading project
16
+ // this function make doorStyles using item's doorStyle
17
+ if ((0, _helper.isEmpty)(evt)) return null;
18
+ var layerId = evt.payload.layers['layer-1'].id;
19
+ var layer = evt.payload.layers;
20
+ var itemKeys = Object.keys(layer[layerId].items);
21
+ if ((0, _helper.isEmpty)(layer)) return evt;
22
+ var handleTexture = !(0, _helper.isEmpty)(layer.doorHandle) ? layer.doorHandle : _constants.DEFAULT_DOOR_HANDLE_TEXTURE_URL;
23
+ var counterToptexture = layer.counterTop;
24
+ // make doorStyles and update the doorStyle payload
25
+ var Max_PH = 9;
26
+ for (var i = 0; i < itemKeys.length; i++) {
27
+ var item = layer[layerId].items[itemKeys[i]];
28
+ var doorStyle = item.doorStyle;
29
+ var doorStyles = {
30
+ base: doorStyle.texture,
31
+ counttop: counterToptexture,
32
+ interior: _constants.DEFAULT_INTERIOR_URL
33
+ };
34
+ for (var _i = 1; _i <= Max_PH; _i++) {
35
+ doorStyles['base_door_' + _i] = doorStyle.texture;
36
+ doorStyles['base_fixed_drawer_door_' + _i] = doorStyle.texture;
37
+ doorStyles['base_drawer_' + _i] = doorStyle.texture;
38
+ doorStyles['base_drawer_door_' + _i] = doorStyle.texture;
39
+ doorStyles['door_handle_' + _i] = handleTexture;
40
+ doorStyles['fixed_drawer_door_handle_' + _i] = handleTexture;
41
+ doorStyles['drawer_door_handle_' + _i] = handleTexture;
42
+ }
43
+ item.doorStyle = _objectSpread(_objectSpread({}, doorStyle), {}, {
44
+ doorStyles: doorStyles
45
+ });
46
+ layer[layerId].items[itemKeys[i]] = item;
47
+ }
48
+ return evt;
49
+ }
50
+ function updateProjectWithCDSList(project, cdsList) {
51
+ //This function updates the project json using CDSList
52
+ if ((0, _helper.isEmpty)(project) || (0, _helper.isEmpty)(cdsList)) return project;
53
+ var layerId = project.layers['layer-1'].id;
54
+ var layer = project.layers;
55
+ var itemKeys = Object.keys(layer[layerId].items);
56
+ if ((0, _helper.isEmpty)(itemKeys)) return project;
57
+ var _loop = function _loop(i) {
58
+ cdsList.forEach(function (cds) {
59
+ var _layer$layerId;
60
+ if (((_layer$layerId = layer[layerId]) === null || _layer$layerId === void 0 || (_layer$layerId = _layer$layerId.items[itemKeys[i]]) === null || _layer$layerId === void 0 ? void 0 : _layer$layerId.itemID) === (cds === null || cds === void 0 ? void 0 : cds.itemID)) {
61
+ layer[layerId].items[itemKeys[i]].doorStyle.cds = cds;
62
+ }
63
+ });
64
+ };
65
+ for (var i = 0; i < itemKeys.length; i++) {
66
+ _loop(i);
67
+ }
68
+ project.layers = layer;
69
+ return project;
70
+ }
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.registerDynamicHoles = exports.buildHoleElements = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var Holes = _interopRequireWildcard(require("../catalog/holes/export"));
12
+ 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); }
13
+ 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; }
14
+ 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; }
15
+ var INCH_TO_CM = 2.54;
16
+ var normalizeKey = function normalizeKey(value) {
17
+ return (value !== null && value !== void 0 ? value : '').toString().toLowerCase().replace(/[^a-z0-9]+/g, '');
18
+ };
19
+ var safeParseJson = function safeParseJson(value) {
20
+ if (!value) return null;
21
+ try {
22
+ return JSON.parse(value);
23
+ } catch (_unused) {
24
+ return null;
25
+ }
26
+ };
27
+ var toCatalogLength = function toCatalogLength(value, prop) {
28
+ var _prop$defaultValue;
29
+ if (value == null) return null;
30
+ var unit = prop === null || prop === void 0 || (_prop$defaultValue = prop.defaultValue) === null || _prop$defaultValue === void 0 ? void 0 : _prop$defaultValue.unit;
31
+ if (unit && unit.toLowerCase() === 'in') return value;
32
+ return value * INCH_TO_CM;
33
+ };
34
+ var overrideLengthProperty = function overrideLengthProperty(prop, value) {
35
+ if (!prop || value == null) return prop;
36
+ var length = toCatalogLength(value, prop);
37
+ if (length == null) return prop;
38
+ return _objectSpread(_objectSpread({}, prop), {}, {
39
+ defaultValue: _objectSpread(_objectSpread({}, prop.defaultValue), {}, {
40
+ length: length
41
+ })
42
+ });
43
+ };
44
+ var findBaseHoleTemplate = function findBaseHoleTemplate(hole, templates) {
45
+ var target = normalizeKey(hole === null || hole === void 0 ? void 0 : hole.name);
46
+ if (!target) return null;
47
+ return templates.find(function (template) {
48
+ var _template$info, _template$info2;
49
+ var candidates = [template === null || template === void 0 ? void 0 : template.name, template === null || template === void 0 || (_template$info = template.info) === null || _template$info === void 0 ? void 0 : _template$info.title, template === null || template === void 0 || (_template$info2 = template.info) === null || _template$info2 === void 0 ? void 0 : _template$info2.description].map(normalizeKey);
50
+ return candidates.includes(target);
51
+ }) || null;
52
+ };
53
+ var buildHoleElementFromTemplate = function buildHoleElementFromTemplate(hole, base) {
54
+ var _base$info, _base$info2, _base$info3, _base$info4, _base$info5, _base$structure_json;
55
+ if (!hole || !base) return null;
56
+ var nextInfo = _objectSpread(_objectSpread({}, base.info), {}, {
57
+ title: hole.name || ((_base$info = base.info) === null || _base$info === void 0 ? void 0 : _base$info.title),
58
+ description: ((_base$info2 = base.info) === null || _base$info2 === void 0 ? void 0 : _base$info2.description) || hole.name || ((_base$info3 = base.info) === null || _base$info3 === void 0 ? void 0 : _base$info3.title),
59
+ image: hole.menu_thumbnail || ((_base$info4 = base.info) === null || _base$info4 === void 0 ? void 0 : _base$info4.image),
60
+ url: hole.gltf || ((_base$info5 = base.info) === null || _base$info5 === void 0 ? void 0 : _base$info5.url)
61
+ });
62
+ var nextProperties = _objectSpread({}, base.properties);
63
+ if (nextProperties.width) {
64
+ nextProperties.width = overrideLengthProperty(nextProperties.width, hole.width);
65
+ }
66
+ if (nextProperties.height) {
67
+ nextProperties.height = overrideLengthProperty(nextProperties.height, hole.height);
68
+ }
69
+ if (nextProperties.length) {
70
+ nextProperties.length = overrideLengthProperty(nextProperties.length, hole.length);
71
+ }
72
+ var customConfig = safeParseJson(hole.custom_config);
73
+ var customProps = (customConfig === null || customConfig === void 0 ? void 0 : customConfig.properties) || {};
74
+ Object.keys(customProps).forEach(function (key) {
75
+ if (!nextProperties[key]) return;
76
+ nextProperties[key] = overrideLengthProperty(nextProperties[key], customProps[key]);
77
+ });
78
+ return _objectSpread(_objectSpread({}, base), {}, {
79
+ name: hole.name || base.name,
80
+ info: nextInfo,
81
+ properties: nextProperties,
82
+ structure_json: _objectSpread(_objectSpread({}, base.structure_json || {}), {}, {
83
+ hole_id: hole.id || ((_base$structure_json = base.structure_json) === null || _base$structure_json === void 0 ? void 0 : _base$structure_json.hole_id)
84
+ })
85
+ });
86
+ };
87
+ var buildHoleElements = exports.buildHoleElements = function buildHoleElements(holes) {
88
+ var categories = {
89
+ Doors: [],
90
+ Windows: []
91
+ };
92
+ var elements = [];
93
+ if (!Array.isArray(holes)) return {
94
+ elements: elements,
95
+ categories: categories
96
+ };
97
+ var templates = Object.values(Holes);
98
+ var usedNames = new Set();
99
+ holes.forEach(function (hole) {
100
+ var _base$info6;
101
+ if (!hole || hole.is_deleted) return;
102
+ var base = findBaseHoleTemplate(hole, templates);
103
+ if (!base) return;
104
+ var element = buildHoleElementFromTemplate(hole, base);
105
+ if (!element || !element.name || usedNames.has(element.name)) return;
106
+ usedNames.add(element.name);
107
+ elements.push(element);
108
+ var typeKey = normalizeKey(hole.type);
109
+ if (typeKey === 'window') {
110
+ categories.Windows.push(element);
111
+ } else if (typeKey === 'door') {
112
+ categories.Doors.push(element);
113
+ } else if ((_base$info6 = base.info) !== null && _base$info6 !== void 0 && (_base$info6 = _base$info6.tag) !== null && _base$info6 !== void 0 && _base$info6.includes('window')) {
114
+ categories.Windows.push(element);
115
+ } else {
116
+ categories.Doors.push(element);
117
+ }
118
+ });
119
+ return {
120
+ elements: elements,
121
+ categories: categories
122
+ };
123
+ };
124
+ var registerDynamicHoles = exports.registerDynamicHoles = function registerDynamicHoles(catalog, holePayload) {
125
+ if (!catalog) return;
126
+ var holeElements = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.elements) || [];
127
+ holeElements.forEach(function (element) {
128
+ if (!catalog.hasElement(element.name)) {
129
+ catalog.registerElement(element);
130
+ }
131
+ });
132
+ var categories = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.categories) || {};
133
+ Object.entries(categories).forEach(function (_ref) {
134
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
135
+ name = _ref2[0],
136
+ elements = _ref2[1];
137
+ if (!elements.length) return;
138
+ if (!catalog.hasCategory(name)) {
139
+ catalog.registerCategory(name, name, elements);
140
+ return;
141
+ }
142
+ elements.forEach(function (element) {
143
+ if (!catalog.categoryHasElement(name, element.name)) {
144
+ catalog.addToCategory(name, element);
145
+ }
146
+ });
147
+ });
148
+ };
package/lib/models.js CHANGED
@@ -187,6 +187,15 @@ var Item = exports.Item = /*#__PURE__*/function (_Record7) {
187
187
  (0, _inherits2["default"])(Item, _Record7);
188
188
  return (0, _createClass2["default"])(Item);
189
189
  }((0, _immutable.Record)(_objectSpread(_objectSpread({}, sharedAttributes), {}, {
190
+ long_name: '',
191
+ sizeinfo: new _immutable.Map(),
192
+ description: '',
193
+ base: '',
194
+ shape_svg: '',
195
+ gltf: '',
196
+ is_corner: -1,
197
+ obj_property: new _immutable.Map(),
198
+ outline: '',
190
199
  prototype: 'items',
191
200
  x: 0,
192
201
  y: 0,
@@ -343,13 +352,15 @@ var CatalogElement = exports.CatalogElement = /*#__PURE__*/function (_Record1) {
343
352
  }((0, _immutable.Record)({
344
353
  itemID: -1,
345
354
  name: '',
355
+ long_name: '',
346
356
  prototype: '',
347
357
  info: new _immutable.Map(),
348
358
  properties: new _immutable.Map(),
349
359
  obj: new _immutable.Map(),
350
360
  type: '',
351
361
  cds: new _immutable.Map(),
352
- structure_json: {}
362
+ structure_json: {},
363
+ gltf: ''
353
364
  }, 'CatalogElement'));
354
365
  var Catalog = exports.Catalog = /*#__PURE__*/function (_Record10) {
355
366
  function Catalog() {
@@ -46,12 +46,6 @@ Object.defineProperty(exports, "KitchenConfiguratorSceneReducer", {
46
46
  return _sceneReducer["default"];
47
47
  }
48
48
  });
49
- Object.defineProperty(exports, "KitchenConfiguratorUserReducer", {
50
- enumerable: true,
51
- get: function get() {
52
- return _userReducer["default"];
53
- }
54
- });
55
49
  Object.defineProperty(exports, "KitchenConfiguratorVerticesReducer", {
56
50
  enumerable: true,
57
51
  get: function get() {
@@ -81,7 +75,6 @@ var _sceneReducer = _interopRequireDefault(require("./scene-reducer"));
81
75
  var _verticesReducer = _interopRequireDefault(require("./vertices-reducer"));
82
76
  var _viewer2dReducer = _interopRequireDefault(require("./viewer2d-reducer"));
83
77
  var _viewer3dReducer = _interopRequireDefault(require("./viewer3d-reducer"));
84
- var _userReducer = _interopRequireDefault(require("./user-reducer"));
85
78
  var _default = exports["default"] = {
86
79
  KitchenConfiguratorAreasReducer: _areasReducer["default"],
87
80
  KitchenConfiguratorHolesReducer: _holesReducer["default"],
@@ -92,6 +85,5 @@ var _default = exports["default"] = {
92
85
  KitchenConfiguratorSceneReducer: _sceneReducer["default"],
93
86
  KitchenConfiguratorVerticesReducer: _verticesReducer["default"],
94
87
  KitchenConfiguratorViewer2dReducer: _viewer2dReducer["default"],
95
- KitchenConfiguratorViewer3dReducer: _viewer3dReducer["default"],
96
- KitchenConfiguratorUserReducer: _userReducer["default"]
88
+ KitchenConfiguratorViewer3dReducer: _viewer3dReducer["default"]
97
89
  };
@@ -21,6 +21,5 @@ function appReducer(state, action) {
21
21
  if (_constants.GROUP_ACTIONS[action.type]) return _export.KitchenConfiguratorGroupsReducer.apply(void 0, arguments);
22
22
  if (_constants.SCENE_ACTIONS[action.type]) return _export.KitchenConfiguratorSceneReducer.apply(void 0, arguments);
23
23
  if (_constants.VERTEX_ACTIONS[action.type]) return _export.KitchenConfiguratorVerticesReducer.apply(void 0, arguments);
24
- if (_constants.USER_ACTIONS[action.type]) return _export.KitchenConfiguratorUserReducer.apply(void 0, arguments);
25
24
  return state || initialState;
26
25
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toJSIfNeeded = toJSIfNeeded;
7
+ function toJSIfNeeded(value) {
8
+ return value && typeof value.toJS === 'function' ? value.toJS() : value;
9
+ }