kitchen-simulator 11.28.0 → 11.28.2

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 (85) hide show
  1. package/es/actions/items-actions.js +12 -1
  2. package/es/assets/img/svg/3d_item_move.svg +9 -105
  3. package/es/assets/img/svg/3d_item_rotation.svg +3 -75
  4. package/es/assets/img/svg/accessories.svg +4 -4
  5. package/es/assets/img/svg/bottombar/elevation-back.svg +6 -6
  6. package/es/assets/img/svg/bottombar/elevation-front.svg +6 -6
  7. package/es/assets/img/svg/bottombar/elevation-left.svg +6 -6
  8. package/es/assets/img/svg/bottombar/elevation-right.svg +7 -7
  9. package/es/assets/img/svg/bottombar/elevation.svg +13 -13
  10. package/es/assets/img/svg/delete.svg +6 -2
  11. package/es/assets/img/svg/detail.svg +77 -77
  12. package/es/assets/img/svg/duplicate.svg +6 -6
  13. package/es/assets/img/svg/filtersActive.svg +19 -19
  14. package/es/assets/img/svg/invert.svg +12 -127
  15. package/es/assets/img/svg/menubar/login.svg +84 -84
  16. package/es/assets/img/svg/menubar/my_projects.svg +85 -85
  17. package/es/assets/img/svg/menubar/new_project.svg +110 -110
  18. package/es/assets/img/svg/menubar/save_project.svg +84 -84
  19. package/es/assets/img/svg/options.svg +3 -3
  20. package/es/assets/img/svg/positioning.svg +3 -3
  21. package/es/assets/img/svg/toggleFilters.svg +19 -19
  22. package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  23. package/es/assets/img/svg/wizardstep/detail_view.svg +87 -87
  24. package/es/assets/img/svg/wizardstep/tile_view.svg +95 -95
  25. package/es/catalog/utils/exporter.js +4 -0
  26. package/es/catalog/utils/item-loader.js +18 -8
  27. package/es/class/item.js +32 -2
  28. package/es/components/viewer2d/item.js +139 -125
  29. package/es/components/viewer2d/viewer2d.js +5 -2
  30. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  31. package/es/components/viewer3d/scene-creator.js +18 -0
  32. package/es/components/viewer3d/viewer3d.js +137 -49
  33. package/es/constants.js +4 -0
  34. package/es/events/external/handleExternalEvent.js +36 -33
  35. package/es/events/external/handlers.elementOps.js +8 -0
  36. package/es/mappings/external-events/mapExternalEventPayload.js +4 -4
  37. package/es/mappings/external-events/mappers/addItemMapper.js +9 -9
  38. package/es/models.js +4 -0
  39. package/es/reducers/items-reducer.js +8 -1
  40. package/es/shared/domain/asset/sanitize-asset-url.js +5 -5
  41. package/es/shared/domain/cabinet-mirror.js +7 -0
  42. package/es/utils/skinPanelEngine.js +14 -14
  43. package/lib/actions/items-actions.js +12 -0
  44. package/lib/assets/img/svg/3d_item_move.svg +9 -105
  45. package/lib/assets/img/svg/3d_item_rotation.svg +3 -75
  46. package/lib/assets/img/svg/accessories.svg +4 -4
  47. package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -6
  48. package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -6
  49. package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -6
  50. package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -7
  51. package/lib/assets/img/svg/bottombar/elevation.svg +13 -13
  52. package/lib/assets/img/svg/delete.svg +6 -2
  53. package/lib/assets/img/svg/detail.svg +77 -77
  54. package/lib/assets/img/svg/duplicate.svg +6 -6
  55. package/lib/assets/img/svg/filtersActive.svg +19 -19
  56. package/lib/assets/img/svg/invert.svg +12 -127
  57. package/lib/assets/img/svg/menubar/login.svg +84 -84
  58. package/lib/assets/img/svg/menubar/my_projects.svg +85 -85
  59. package/lib/assets/img/svg/menubar/new_project.svg +110 -110
  60. package/lib/assets/img/svg/menubar/save_project.svg +84 -84
  61. package/lib/assets/img/svg/options.svg +3 -3
  62. package/lib/assets/img/svg/positioning.svg +3 -3
  63. package/lib/assets/img/svg/toggleFilters.svg +19 -19
  64. package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  65. package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -87
  66. package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -95
  67. package/lib/catalog/utils/exporter.js +4 -0
  68. package/lib/catalog/utils/item-loader.js +18 -8
  69. package/lib/class/item.js +31 -1
  70. package/lib/components/viewer2d/item.js +138 -124
  71. package/lib/components/viewer2d/viewer2d.js +5 -2
  72. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  73. package/lib/components/viewer3d/scene-creator.js +18 -0
  74. package/lib/components/viewer3d/viewer3d.js +137 -49
  75. package/lib/constants.js +8 -4
  76. package/lib/events/external/handleExternalEvent.js +34 -31
  77. package/lib/events/external/handlers.elementOps.js +9 -0
  78. package/lib/mappings/external-events/mapExternalEventPayload.js +4 -4
  79. package/lib/mappings/external-events/mappers/addItemMapper.js +9 -9
  80. package/lib/models.js +4 -0
  81. package/lib/reducers/items-reducer.js +7 -0
  82. package/lib/shared/domain/asset/sanitize-asset-url.js +5 -5
  83. package/lib/shared/domain/cabinet-mirror.js +13 -0
  84. package/lib/utils/skinPanelEngine.js +14 -14
  85. package/package.json +1 -1
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.handleDeleteElement = handleDeleteElement;
7
7
  exports.handleDuplicateElement = handleDuplicateElement;
8
+ exports.handleMirrorElement = handleMirrorElement;
9
+ var _cabinetMirror = require("../../shared/domain/cabinet-mirror");
8
10
  function handleDuplicateElement(props, getElement, payload, state) {
9
11
  var distElement = getElement(payload, state);
10
12
  if (distElement) props.itemsActions.duplicateSelected(distElement, props.onInternalEvent);
@@ -12,4 +14,11 @@ function handleDuplicateElement(props, getElement, payload, state) {
12
14
  function handleDeleteElement(props, getElement, payload, state) {
13
15
  var distElement = getElement(payload, state);
14
16
  if (distElement) props.projectActions.remove(distElement);
17
+ }
18
+ function handleMirrorElement(props, getElement, payload, state) {
19
+ var distElement = getElement(payload, state);
20
+ if (!distElement || distElement.prototype !== 'items' || !(0, _cabinetMirror.canMirrorCabinet)(distElement)) return;
21
+ var layerID = state.getIn(['scene', 'selectedLayer']);
22
+ var mirrored = typeof (payload === null || payload === void 0 ? void 0 : payload.mirrored) === 'boolean' ? payload.mirrored : null;
23
+ props.itemsActions.toggleItemMirror(layerID, distElement.id, mirrored, props.onInternalEvent);
15
24
  }
@@ -9,10 +9,10 @@ var _helper = require("../../utils/helper");
9
9
  var _addItemMapper = require("./mappers/addItemMapper");
10
10
  var _changeDoorStyleMapper = require("./mappers/changeDoorStyleMapper");
11
11
  var _loadProjectMapper = require("./mappers/loadProjectMapper");
12
- /**
13
- * Main dispatcher for external event payload mapping.
14
- * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
15
- * without changing the behavior of the existing 3D tool.
12
+ /**
13
+ * Main dispatcher for external event payload mapping.
14
+ * Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
15
+ * without changing the behavior of the existing 3D tool.
16
16
  */
17
17
  function mapExternalEventPayload(evt, state, defaultTextures) {
18
18
  if ((0, _helper.isEmpty)(evt)) return null;
@@ -11,15 +11,15 @@ var _constants = require("../../../constants");
11
11
  var _helper = require("../../../utils/helper");
12
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
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
- /**
15
- * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
16
- *
17
- * Converts the new assets3d payload shape into the legacy structure_json format
18
- * expected by the existing 3D tool.
19
- *
20
- * @param {Object} evt.payload External event payload
21
- * @param {Immutable.Map} state Planner state
22
- * @returns {Object|null} Updated event (or null when payload is empty)
14
+ /**
15
+ * Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
16
+ *
17
+ * Converts the new assets3d payload shape into the legacy structure_json format
18
+ * expected by the existing 3D tool.
19
+ *
20
+ * @param {Object} evt.payload External event payload
21
+ * @param {Immutable.Map} state Planner state
22
+ * @returns {Object|null} Updated event (or null when payload is empty)
23
23
  */
24
24
  function mapAddItemEvent(orgEvtPayload, state) {
25
25
  var _evtPayload, _evtPayload3;
package/lib/models.js CHANGED
@@ -215,6 +215,8 @@ var Item = exports.Item = /*#__PURE__*/function (_Record7) {
215
215
  uri: ''
216
216
  },
217
217
  molding: [],
218
+ can_be_mirrored: false,
219
+ mirrored: false,
218
220
  isInitialPos: false,
219
221
  //current {x,y} is the initial position from host?
220
222
  backsplashVisible: false,
@@ -363,6 +365,8 @@ var CatalogElement = exports.CatalogElement = /*#__PURE__*/function (_Record1) {
363
365
  type: '',
364
366
  cds: new _immutable.Map(),
365
367
  ccdf_list: new _immutable.List(),
368
+ can_be_mirrored: false,
369
+ mirrored: false,
366
370
  structure_json: {},
367
371
  gltf: ''
368
372
  }, 'CatalogElement'));
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = _default;
7
7
  var _export = require("../class/export");
8
8
  var _export2 = require("../utils/export");
9
+ var _cabinetMirror = require("../shared/domain/cabinet-mirror");
9
10
  var _constants = require("../constants");
10
11
  function _default(state, action) {
11
12
  switch (action.type) {
@@ -21,6 +22,12 @@ function _default(state, action) {
21
22
  return _export.Item.editWidth(state, action.newWidth, action.layerID, action.itemID).updatedState;
22
23
  case _constants.DUPLICATE_SELECTED:
23
24
  return _export.Item.duplicateSelected(state, action.currentObject, action.onInternalEvent).updatedState;
25
+ case _constants.TOGGLE_ITEM_MIRROR:
26
+ if (!(0, _cabinetMirror.canMirrorCabinet)(state.getIn(['scene', 'layers', action.layerID, 'items', action.itemID]))) return state;
27
+ state = state.merge({
28
+ sceneHistory: _export2.history.historyPush(state.sceneHistory, state.scene)
29
+ });
30
+ return _export.Item.toggleItemMirror(state, action.layerID, action.itemID, action.mirrored, action.onInternalEvent).updatedState;
24
31
  case _constants.END_CREATING_CABINET:
25
32
  return _export.Item.endCreatingCabinet(state).updatedState;
26
33
  case _constants.UPDATE_POPUP_OPEN:
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.sanitizeAssetUrl = void 0;
7
- /**
8
- * Strip stray dots from the **path portion** of a GLTF/BIN URL.
9
- * e.g. `…/B36_36x34.5x24.gltf` → `…/B36_36x345x24.gltf`
10
- *
11
- * Leaves the protocol/domain and the final file extension untouched.
7
+ /**
8
+ * Strip stray dots from the **path portion** of a GLTF/BIN URL.
9
+ * e.g. `…/B36_36x34.5x24.gltf` → `…/B36_36x345x24.gltf`
10
+ *
11
+ * Leaves the protocol/domain and the final file extension untouched.
12
12
  */
13
13
  var sanitizeAssetUrl = exports.sanitizeAssetUrl = function sanitizeAssetUrl(url) {
14
14
  if (!url) return url;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.canMirrorCabinet = canMirrorCabinet;
7
+ var _constants = require("../../constants");
8
+ var _immutable = require("../objects/immutable");
9
+ function canMirrorCabinet(item) {
10
+ var js = (0, _immutable.toJSIfNeeded)(item);
11
+ var isCabinet = (js === null || js === void 0 ? void 0 : js.category) === _constants.ITEM_TYPE.CABINET || (js === null || js === void 0 ? void 0 : js.type) === _constants.ITEM_TYPE.CABINET;
12
+ return isCabinet && (js === null || js === void 0 ? void 0 : js.can_be_mirrored) === true;
13
+ }
@@ -145,10 +145,10 @@ function isSnappedWithCornerCabient(srcItem, desItem) {
145
145
  } else return false;
146
146
  }
147
147
 
148
- /**
149
- * @param {*} faceSegs
150
- * @param {*} otherFaces
151
- * @returns
148
+ /**
149
+ * @param {*} faceSegs
150
+ * @param {*} otherFaces
151
+ * @returns
152
152
  */
153
153
  function getTrimmedFaceSegs(faceSegs, otherFaces, cnt) {
154
154
  try {
@@ -309,8 +309,8 @@ function applyGroupingRules(faces) {
309
309
  };
310
310
  }
311
311
 
312
- /**
313
- * Horizontal Grouping (for base cabinets back-to-back : BSV48 48" x 34.5")
312
+ /**
313
+ * Horizontal Grouping (for base cabinets back-to-back : BSV48 48" x 34.5")
314
314
  */
315
315
  function applyHorizontalGrouping(faces) {
316
316
  var removeIdxs = [];
@@ -352,8 +352,8 @@ function applyHorizontalGrouping(faces) {
352
352
  };
353
353
  }
354
354
 
355
- /**
356
- * Vertical Grouping (For CT3DR or CT2DR SKUs + stacked wall cabinets)
355
+ /**
356
+ * Vertical Grouping (For CT3DR or CT2DR SKUs + stacked wall cabinets)
357
357
  */
358
358
  function applyVerticalGrouping(faces) {
359
359
  var removeIdxs = [];
@@ -444,8 +444,8 @@ function buildMP3SkinPanelArray(bottomHeight, topHeight, mp3SkinPanelArray) {
444
444
  return skinPanelTypeArray;
445
445
  }
446
446
 
447
- /**
448
- * Decide which skin panel pieces are needed for a tall cabinet.
447
+ /**
448
+ * Decide which skin panel pieces are needed for a tall cabinet.
449
449
  */
450
450
  function resolveTallCabinetBundle(face) {
451
451
  var item = face.itemInfo;
@@ -465,8 +465,8 @@ function resolveTallCabinetBundle(face) {
465
465
  return face !== null && face !== void 0 && face.skinPanelSKU ? [face.skinPanelSKU] : [];
466
466
  }
467
467
 
468
- /**
469
- * Converts a face → list of SKUs
468
+ /**
469
+ * Converts a face → list of SKUs
470
470
  */
471
471
  function resolveSkinPanelSKU(face) {
472
472
  var layout = face.itemInfo.layoutpos;
@@ -476,8 +476,8 @@ function resolveSkinPanelSKU(face) {
476
476
  return [face.skinPanelSKU];
477
477
  }
478
478
 
479
- /**
480
- * Make skin panel data with grouping skinPanelSKU & doorStyle
479
+ /**
480
+ * Make skin panel data with grouping skinPanelSKU & doorStyle
481
481
  */
482
482
  function buildSkinPanelData(faces) {
483
483
  var tempResult = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "11.28.0",
3
+ "version": "11.28.2",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",