kitchen-simulator 4.4.2 → 4.4.3

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.
@@ -12,7 +12,7 @@ import { ARROW_COLOR, BASE_CABINET_LAYOUTPOS, OBJTYPE_GROUP, OBJTYPE_MESH, SHADE
12
12
  import { Item } from "../../models";
13
13
  import * as GeomUtils from "./geom-utils";
14
14
  import { loadGLTF } from "./load-obj";
15
- import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
15
+ import { animateDoor, getSkuAliasFromCatalogElement, isEmpty, translateDrawer } from "../../utils/helper";
16
16
  import { isWarningItem } from "../../components/viewer2d/utils";
17
17
  var INITIAL_NORMAL_MAP = '';
18
18
 
@@ -122,23 +122,8 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
122
122
  var lineCount = 0; //parseInt(((newWidth) / 8 - 0.51).toFixed(), 10) - 1;
123
123
  var rowCount = 0; //parseInt((element.type.length / lineCount - 0.51).toFixed(), 10);
124
124
 
125
- // Get type
126
- var objSKU = this.obj.sku_number;
127
- if (objSKU.length !== 0) {
128
- var dcId,
129
- doorStyle = element.doorStyle;
130
- if (doorStyle instanceof Map) {
131
- dcId = doorStyle.get('id');
132
- } else {
133
- dcId = doorStyle.id;
134
- }
135
- var skuItem = this.obj.skuArray.find(function (el) {
136
- return el.door_color_id === dcId;
137
- });
138
- if (skuItem !== undefined) {
139
- objSKU = skuItem.sku;
140
- }
141
- }
125
+ // Get SKU Alias
126
+ var objSKU = getSkuAliasFromCatalogElement(this, element);
142
127
  if (rowCount > 0) {
143
128
  for (var _x = 0; _x < rowCount; _x++) {
144
129
  splitStr.push(objSKU.slice(lineCount * _x, lineCount * (_x + 1)));
package/es/constants.js CHANGED
@@ -773,7 +773,7 @@ export var DOORSTYLE_SCOPE_SINGLE = 'single';
773
773
  export var DOORSTYLE_SCOPE_MULTIPLE = 'multiple';
774
774
 
775
775
  // skin panel SKU
776
- export var SKIN_SKU_BSV_24 = 'BSV24'; // 23.25" x 34.5" : For base cabinets
776
+ export var SKIN_SKU_BSV_24 = 'BSV'; // 23.25" x 34.5" : For base cabinets
777
777
  export var SKIN_SKU_BSV_48 = 'BSV48'; // 48" x 34.5" : For base cabinets back-to-back or island backs
778
778
  export var SKIN_SKU_WSV_1242 = 'WSV1242'; // 11.25" x 42" : For 12" deep wall cabinets
779
779
  export var SKIN_SKU_WSV_2442 = 'WSV2442'; // 23.25" x 42" : For 24" deep wall cabinets
@@ -413,7 +413,6 @@ export function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
413
413
  updatedPayload.length = _length;
414
414
  //////////////////////////////////////
415
415
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
416
- var _catalog$elements$cur;
417
416
  // check this cabinet has warning box
418
417
  updatedPayload.isWarning = isWarningItem(currentObject);
419
418
  // check this item is available molding
@@ -424,14 +423,7 @@ export function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
424
423
  if (pointArray) updatedPayload.distArray = pointArray;
425
424
 
426
425
  // update sku_number using sku_array
427
- var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
428
- var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
429
- var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
430
- return sku.door_color_id === currentDoorColorId;
431
- });
432
- if (correctSKU) {
433
- updatedPayload.sku_number = correctSKU.sku;
434
- }
426
+ updatedPayload.sku_number = getSkuAliasFromCatalog(catalog, currentObject);
435
427
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'holes') {
436
428
  var _calcDistancesFromHol = calcDistancesFromHoleToNearestOneOrWall(currentObject, layer),
437
429
  distLeft = _calcDistancesFromHol.distLeft,
@@ -448,4 +440,21 @@ export function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
448
440
  };
449
441
  }
450
442
  return updatedPayload;
443
+ }
444
+ export function getSkuAliasFromCatalog(catalog, sceneObject) {
445
+ var _catalog$elements;
446
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
447
+ var elementName = sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.name;
448
+ var catalogElement = catalog === null || catalog === void 0 || (_catalog$elements = catalog.elements) === null || _catalog$elements === void 0 ? void 0 : _catalog$elements[elementName];
449
+ return getSkuAliasFromCatalogElement(catalogElement, sceneObjectJS);
450
+ }
451
+ export function getSkuAliasFromCatalogElement(catalogElement, sceneObject) {
452
+ var _sceneObjectJS$doorSt, _catalogElement$obj, _skuAlias$sku;
453
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
454
+ var doorColorId = sceneObjectJS === null || sceneObjectJS === void 0 || (_sceneObjectJS$doorSt = sceneObjectJS.doorStyle) === null || _sceneObjectJS$doorSt === void 0 ? void 0 : _sceneObjectJS$doorSt.id;
455
+ var skuArray = catalogElement === null || catalogElement === void 0 || (_catalogElement$obj = catalogElement.obj) === null || _catalogElement$obj === void 0 ? void 0 : _catalogElement$obj.skuArray;
456
+ var skuAlias = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
457
+ return sku.door_color_id === doorColorId;
458
+ });
459
+ return (_skuAlias$sku = skuAlias === null || skuAlias === void 0 ? void 0 : skuAlias.sku) !== null && _skuAlias$sku !== void 0 ? _skuAlias$sku : sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.sku_number;
451
460
  }
@@ -1612,7 +1612,7 @@ function _handleExternalEvent() {
1612
1612
 
1613
1613
  // get skin panel data
1614
1614
  skinPanelExclusionSKUs = (_props$configData$ski = props === null || props === void 0 || (_props$configData2 = props.configData) === null || _props$configData2 === void 0 ? void 0 : _props$configData2.skinPanelExclusionSKUs) !== null && _props$configData$ski !== void 0 ? _props$configData$ski : [];
1615
- sceneData.layers[layerId].skinPanelData = computeSkinPanels(layer, skinPanelExclusionSKUs);
1615
+ sceneData.layers[layerId].skinPanelData = computeSkinPanels(layer, skinPanelExclusionSKUs, props.catalog);
1616
1616
 
1617
1617
  // send scene object from 3DTool to HostApp using internalEvent
1618
1618
  (_props$onInternalEven3 = props.onInternalEvent) === null || _props$onInternalEven3 === void 0 || _props$onInternalEven3.call(props, {
@@ -6,7 +6,7 @@ import { BASE_CABINET_LAYOUTPOS, WALL_CABINET_LAYOUTPOS, TALL_CABINET_LAYOUTPOS,
6
6
  import { buildRectFromLines, getAllLines, pointsDistance, relationshipOfTwoOverlappedLines, rotatePointAroundPoint } from "./geometry";
7
7
  import { MathUtils } from "./export";
8
8
  import { convert } from "./convert-units-lite";
9
- import { isEmpty } from "./helper";
9
+ import { getSkuAliasFromCatalog, isEmpty } from "./helper";
10
10
  function toCm(item, prop) {
11
11
  var unit = item.properties.get(prop).get('_unit') || 'cm';
12
12
  var value = item.properties.get(prop).get('_length');
@@ -245,7 +245,7 @@ function resolveTallCabinetBundle(face) {
245
245
  }
246
246
 
247
247
  // fallback
248
- return [SKIN_SKU_USV245325];
248
+ return [SKIN_SKU_USV245325, SKIN_SKU_WSV_2442];
249
249
  }
250
250
 
251
251
  /**
@@ -303,15 +303,16 @@ function buildSkinPanelData(faces) {
303
303
  }
304
304
  return result;
305
305
  }
306
- function shouldExcludeSkinPanel(itemJS, exclusionSet) {
306
+ function shouldExcludeSkinPanel(itemJS, exclusionSet, catalog) {
307
307
  var _itemJS$doorStyle;
308
- var cabinetSku = itemJS === null || itemJS === void 0 ? void 0 : itemJS.sku_number;
308
+ var cabinetSku = getSkuAliasFromCatalog(catalog, itemJS);
309
309
  var doorColorSku = itemJS === null || itemJS === void 0 || (_itemJS$doorStyle = itemJS.doorStyle) === null || _itemJS$doorStyle === void 0 ? void 0 : _itemJS$doorStyle.sku;
310
310
  if (!cabinetSku || !doorColorSku) return false;
311
311
  return exclusionSet.has("".concat(cabinetSku, "-").concat(doorColorSku));
312
312
  }
313
313
  export function computeSkinPanels(layer) {
314
314
  var skinPanelExclusionSKUs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
315
+ var catalog = arguments.length > 2 ? arguments[2] : undefined;
315
316
  var exclusionSet = new Set(skinPanelExclusionSKUs);
316
317
 
317
318
  // Get candidate skin panel items and other items
@@ -319,7 +320,7 @@ export function computeSkinPanels(layer) {
319
320
  skinPanelItems = _collectLayerItems.skinPanelItems,
320
321
  otherItems = _collectLayerItems.otherItems;
321
322
  var filteredSkinPanelItems = skinPanelItems.filter(function (item) {
322
- return !shouldExcludeSkinPanel(item.toJS(), exclusionSet);
323
+ return !shouldExcludeSkinPanel(item.toJS(), exclusionSet, catalog);
323
324
  });
324
325
 
325
326
  // Get all skin face list of [skinPanelItems] & [otherItems]
@@ -136,23 +136,8 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
136
136
  var lineCount = 0; //parseInt(((newWidth) / 8 - 0.51).toFixed(), 10) - 1;
137
137
  var rowCount = 0; //parseInt((element.type.length / lineCount - 0.51).toFixed(), 10);
138
138
 
139
- // Get type
140
- var objSKU = this.obj.sku_number;
141
- if (objSKU.length !== 0) {
142
- var dcId,
143
- doorStyle = element.doorStyle;
144
- if (doorStyle instanceof _immutable.Map) {
145
- dcId = doorStyle.get('id');
146
- } else {
147
- dcId = doorStyle.id;
148
- }
149
- var skuItem = this.obj.skuArray.find(function (el) {
150
- return el.door_color_id === dcId;
151
- });
152
- if (skuItem !== undefined) {
153
- objSKU = skuItem.sku;
154
- }
155
- }
139
+ // Get SKU Alias
140
+ var objSKU = (0, _helper.getSkuAliasFromCatalogElement)(this, element);
156
141
  if (rowCount > 0) {
157
142
  for (var _x = 0; _x < rowCount; _x++) {
158
143
  splitStr.push(objSKU.slice(lineCount * _x, lineCount * (_x + 1)));
package/lib/constants.js CHANGED
@@ -783,7 +783,7 @@ var DOORSTYLE_SCOPE_SINGLE = exports.DOORSTYLE_SCOPE_SINGLE = 'single';
783
783
  var DOORSTYLE_SCOPE_MULTIPLE = exports.DOORSTYLE_SCOPE_MULTIPLE = 'multiple';
784
784
 
785
785
  // skin panel SKU
786
- var SKIN_SKU_BSV_24 = exports.SKIN_SKU_BSV_24 = 'BSV24'; // 23.25" x 34.5" : For base cabinets
786
+ var SKIN_SKU_BSV_24 = exports.SKIN_SKU_BSV_24 = 'BSV'; // 23.25" x 34.5" : For base cabinets
787
787
  var SKIN_SKU_BSV_48 = exports.SKIN_SKU_BSV_48 = 'BSV48'; // 48" x 34.5" : For base cabinets back-to-back or island backs
788
788
  var SKIN_SKU_WSV_1242 = exports.SKIN_SKU_WSV_1242 = 'WSV1242'; // 11.25" x 42" : For 12" deep wall cabinets
789
789
  var SKIN_SKU_WSV_2442 = exports.SKIN_SKU_WSV_2442 = 'WSV2442'; // 23.25" x 42" : For 24" deep wall cabinets
@@ -12,6 +12,8 @@ exports.centering2D = centering2D;
12
12
  exports.compareSVGRect = void 0;
13
13
  exports.debugUtil = debugUtil;
14
14
  exports.getSignedUrl = exports.getPathInfo = exports.getPath = void 0;
15
+ exports.getSkuAliasFromCatalog = getSkuAliasFromCatalog;
16
+ exports.getSkuAliasFromCatalogElement = getSkuAliasFromCatalogElement;
15
17
  exports.handleCamRect = handleCamRect;
16
18
  exports.isCeilLimitation = isCeilLimitation;
17
19
  exports.isElevationView = isElevationView;
@@ -441,7 +443,6 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
441
443
  updatedPayload.length = _length;
442
444
  //////////////////////////////////////
443
445
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
444
- var _catalog$elements$cur;
445
446
  // check this cabinet has warning box
446
447
  updatedPayload.isWarning = (0, _utils.isWarningItem)(currentObject);
447
448
  // check this item is available molding
@@ -452,14 +453,7 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
452
453
  if (pointArray) updatedPayload.distArray = pointArray;
453
454
 
454
455
  // update sku_number using sku_array
455
- var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
456
- var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
457
- var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
458
- return sku.door_color_id === currentDoorColorId;
459
- });
460
- if (correctSKU) {
461
- updatedPayload.sku_number = correctSKU.sku;
462
- }
456
+ updatedPayload.sku_number = getSkuAliasFromCatalog(catalog, currentObject);
463
457
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'holes') {
464
458
  var _calcDistancesFromHol = (0, _geometry.calcDistancesFromHoleToNearestOneOrWall)(currentObject, layer),
465
459
  distLeft = _calcDistancesFromHol.distLeft,
@@ -476,4 +470,21 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
476
470
  };
477
471
  }
478
472
  return updatedPayload;
473
+ }
474
+ function getSkuAliasFromCatalog(catalog, sceneObject) {
475
+ var _catalog$elements;
476
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
477
+ var elementName = sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.name;
478
+ var catalogElement = catalog === null || catalog === void 0 || (_catalog$elements = catalog.elements) === null || _catalog$elements === void 0 ? void 0 : _catalog$elements[elementName];
479
+ return getSkuAliasFromCatalogElement(catalogElement, sceneObjectJS);
480
+ }
481
+ function getSkuAliasFromCatalogElement(catalogElement, sceneObject) {
482
+ var _sceneObjectJS$doorSt, _catalogElement$obj, _skuAlias$sku;
483
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
484
+ var doorColorId = sceneObjectJS === null || sceneObjectJS === void 0 || (_sceneObjectJS$doorSt = sceneObjectJS.doorStyle) === null || _sceneObjectJS$doorSt === void 0 ? void 0 : _sceneObjectJS$doorSt.id;
485
+ var skuArray = catalogElement === null || catalogElement === void 0 || (_catalogElement$obj = catalogElement.obj) === null || _catalogElement$obj === void 0 ? void 0 : _catalogElement$obj.skuArray;
486
+ var skuAlias = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
487
+ return sku.door_color_id === doorColorId;
488
+ });
489
+ return (_skuAlias$sku = skuAlias === null || skuAlias === void 0 ? void 0 : skuAlias.sku) !== null && _skuAlias$sku !== void 0 ? _skuAlias$sku : sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.sku_number;
479
490
  }
@@ -1620,7 +1620,7 @@ function _handleExternalEvent() {
1620
1620
 
1621
1621
  // get skin panel data
1622
1622
  skinPanelExclusionSKUs = (_props$configData$ski = props === null || props === void 0 || (_props$configData2 = props.configData) === null || _props$configData2 === void 0 ? void 0 : _props$configData2.skinPanelExclusionSKUs) !== null && _props$configData$ski !== void 0 ? _props$configData$ski : [];
1623
- sceneData.layers[layerId].skinPanelData = (0, _skinPanelEngine.computeSkinPanels)(layer, skinPanelExclusionSKUs);
1623
+ sceneData.layers[layerId].skinPanelData = (0, _skinPanelEngine.computeSkinPanels)(layer, skinPanelExclusionSKUs, props.catalog);
1624
1624
 
1625
1625
  // send scene object from 3DTool to HostApp using internalEvent
1626
1626
  (_props$onInternalEven3 = props.onInternalEvent) === null || _props$onInternalEven3 === void 0 || _props$onInternalEven3.call(props, {
@@ -253,7 +253,7 @@ function resolveTallCabinetBundle(face) {
253
253
  }
254
254
 
255
255
  // fallback
256
- return [_constants.SKIN_SKU_USV245325];
256
+ return [_constants.SKIN_SKU_USV245325, _constants.SKIN_SKU_WSV_2442];
257
257
  }
258
258
 
259
259
  /**
@@ -311,15 +311,16 @@ function buildSkinPanelData(faces) {
311
311
  }
312
312
  return result;
313
313
  }
314
- function shouldExcludeSkinPanel(itemJS, exclusionSet) {
314
+ function shouldExcludeSkinPanel(itemJS, exclusionSet, catalog) {
315
315
  var _itemJS$doorStyle;
316
- var cabinetSku = itemJS === null || itemJS === void 0 ? void 0 : itemJS.sku_number;
316
+ var cabinetSku = (0, _helper.getSkuAliasFromCatalog)(catalog, itemJS);
317
317
  var doorColorSku = itemJS === null || itemJS === void 0 || (_itemJS$doorStyle = itemJS.doorStyle) === null || _itemJS$doorStyle === void 0 ? void 0 : _itemJS$doorStyle.sku;
318
318
  if (!cabinetSku || !doorColorSku) return false;
319
319
  return exclusionSet.has("".concat(cabinetSku, "-").concat(doorColorSku));
320
320
  }
321
321
  function computeSkinPanels(layer) {
322
322
  var skinPanelExclusionSKUs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
323
+ var catalog = arguments.length > 2 ? arguments[2] : undefined;
323
324
  var exclusionSet = new Set(skinPanelExclusionSKUs);
324
325
 
325
326
  // Get candidate skin panel items and other items
@@ -327,7 +328,7 @@ function computeSkinPanels(layer) {
327
328
  skinPanelItems = _collectLayerItems.skinPanelItems,
328
329
  otherItems = _collectLayerItems.otherItems;
329
330
  var filteredSkinPanelItems = skinPanelItems.filter(function (item) {
330
- return !shouldExcludeSkinPanel(item.toJS(), exclusionSet);
331
+ return !shouldExcludeSkinPanel(item.toJS(), exclusionSet, catalog);
331
332
  });
332
333
 
333
334
  // Get all skin face list of [skinPanelItems] & [otherItems]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "4.4.2",
3
+ "version": "4.4.3",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",