kitchen-simulator 10.1.0 → 10.2.0

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.
package/es/class/item.js CHANGED
@@ -15,7 +15,6 @@ import { hasMoldingLayout } from "../utils/molding";
15
15
  import { getInstallationSuffix, isEmpty } from "../components/viewer2d/utils";
16
16
  import { historyPush } from "../utils/history";
17
17
  import { toJSIfNeeded } from "../shared/objects/immutable";
18
- import { normalizeLongName } from "../shared/domain/cabinet-identity";
19
18
  var allItemRect;
20
19
  var allItemSnap;
21
20
  var allLines;
@@ -269,15 +268,13 @@ var Item = /*#__PURE__*/function () {
269
268
  idSet = new Set(targetItemIDs);
270
269
  }
271
270
  layer.items.forEach(function (it) {
272
- var _idSet, _ccdf_list$find, _picked$door_finish_i;
271
+ var _idSet, _picked$door_finish_i;
273
272
  var should = applyScope === DOORSTYLE_SCOPE_ALL ? true : (_idSet = idSet) === null || _idSet === void 0 ? void 0 : _idSet.has(it.id);
274
273
  if (!should) return;
275
274
 
276
- // Prefer stable join key: long_name. Fall back to cabinet_id for older payloads.
277
- var picked = (_ccdf_list$find = ccdf_list.find(function (c) {
278
- return (c === null || c === void 0 ? void 0 : c.long_name) && (it === null || it === void 0 ? void 0 : it.long_name) && normalizeLongName(c.long_name) === normalizeLongName(it.long_name);
279
- })) !== null && _ccdf_list$find !== void 0 ? _ccdf_list$find : ccdf_list.find(function (c) {
280
- return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
275
+ // Join key: scene_cabinet_id (instance id).
276
+ var picked = ccdf_list.find(function (c) {
277
+ return (c === null || c === void 0 ? void 0 : c.scene_cabinet_id) && c.scene_cabinet_id === it.id;
281
278
  });
282
279
  if (!picked) return;
283
280
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'ccdf'], _objectSpread(_objectSpread({}, picked), {}, {
@@ -4,12 +4,14 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import React, { useState, useEffect } from 'react';
5
5
  import { Map } from 'immutable';
6
6
  import ContainerDimensions from 'react-container-dimensions';
7
- import projectItemsCatalog from "./mocks/projectItemsCatalog.json";
7
+ import ccdfPayload1 from "./mocks/get_ccdf_of_b12_brilliant.json";
8
+ import ccdfPayload2 from "./mocks/get_ccdf_of_b12_cambridge.json";
8
9
  import configData from "./mocks/configData.json";
9
10
  import projectJson from "./mocks/project.json";
10
11
  import cabinetPaylod from "./mocks/cabinetPayload.json";
11
12
  import appliancePaylod from "./mocks/appliancePayload.json";
12
- import doorStylePayload from "./mocks/doorStylePayload.json";
13
+ import doorStylePayload_brilliant from "./mocks/doorStylePayload_brilliant.json";
14
+ import doorStylePayload_cambridge from "./mocks/doorStylePayload_cambridge.json";
13
15
  import roomShapePayload from "./mocks/roomShapePayload.json";
14
16
  import lightingPayload from "./mocks/lightingPayload.json";
15
17
  import furnishingPayload from "./mocks/furnishingPayload.json";
@@ -27,6 +29,7 @@ var options = {
27
29
  unit: 'in',
28
30
  enable3D: true
29
31
  };
32
+ var test_num = 0;
30
33
  var onInternalEvent = /*#__PURE__*/function () {
31
34
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(evt, callback) {
32
35
  var _t;
@@ -38,8 +41,9 @@ var onInternalEvent = /*#__PURE__*/function () {
38
41
  _context.next = _t === INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
39
42
  break;
40
43
  case 1:
44
+ console.log("Use ".concat(test_num % 2 === 1 ? 'Brilliant' : 'Cambridge'));
41
45
  _context.next = 2;
42
- return callback(projectItemsCatalog);
46
+ return callback(test_num % 2 === 1 ? ccdfPayload1 : ccdfPayload2);
43
47
  case 2:
44
48
  return _context.abrupt("continue", 3);
45
49
  case 3:
@@ -217,18 +221,40 @@ function WorkSpace(props) {
217
221
  setExternalEvent(evt);
218
222
  }
219
223
  }, "Add B12 Cabinet"), /*#__PURE__*/React.createElement(Button, {
224
+ actionType: "danger",
225
+ onClick: function onClick() {
226
+ test_num = 1;
227
+ }
228
+ }, "Use Brilliant for ITEMS_CATALOG"), /*#__PURE__*/React.createElement(Button, {
229
+ actionType: "danger",
230
+ onClick: function onClick() {
231
+ var evt = {
232
+ type: EXTERNAL_EVENT_CHANGE_DOORSTYLE,
233
+ payload: {
234
+ doorStyle: doorStylePayload_brilliant === null || doorStylePayload_brilliant === void 0 ? void 0 : doorStylePayload_brilliant.doorStyle,
235
+ applyScope: doorStylePayload_brilliant === null || doorStylePayload_brilliant === void 0 ? void 0 : doorStylePayload_brilliant.applyScope
236
+ }
237
+ };
238
+ setExternalEvent(evt);
239
+ }
240
+ }, "DoorStyle Change(Brilliant)"), /*#__PURE__*/React.createElement(Button, {
241
+ actionType: "danger",
242
+ onClick: function onClick() {
243
+ test_num = 2;
244
+ }
245
+ }, "Use Cambridge for ITEMS_CATALOG"), /*#__PURE__*/React.createElement(Button, {
220
246
  actionType: "danger",
221
247
  onClick: function onClick() {
222
248
  var evt = {
223
249
  type: EXTERNAL_EVENT_CHANGE_DOORSTYLE,
224
250
  payload: {
225
- doorStyle: doorStylePayload === null || doorStylePayload === void 0 ? void 0 : doorStylePayload.doorStyle,
226
- applyScope: doorStylePayload === null || doorStylePayload === void 0 ? void 0 : doorStylePayload.applyScope
251
+ doorStyle: doorStylePayload_cambridge === null || doorStylePayload_cambridge === void 0 ? void 0 : doorStylePayload_cambridge.doorStyle,
252
+ applyScope: doorStylePayload_cambridge === null || doorStylePayload_cambridge === void 0 ? void 0 : doorStylePayload_cambridge.applyScope
227
253
  }
228
254
  };
229
255
  setExternalEvent(evt);
230
256
  }
231
- }, "DoorStyle Change(New-Cambriage)"), /*#__PURE__*/React.createElement(Button, {
257
+ }, "DoorStyle Change(Cambriage)"), /*#__PURE__*/React.createElement(Button, {
232
258
  actionType: "danger",
233
259
  onClick: function onClick() {
234
260
  var evt = {
@@ -40,19 +40,22 @@ function _handleChangeDoorStyleEvent() {
40
40
  case 4:
41
41
  ccdf_list = [];
42
42
  _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
43
- var item;
43
+ var item, _doorStyle$id2, _item$long_name;
44
44
  return _regeneratorRuntime.wrap(function (_context2) {
45
45
  while (1) switch (_context2.prev = _context2.next) {
46
46
  case 0:
47
47
  item = targetItems[i];
48
48
  if (!ccdf_list.some(function (v) {
49
- return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
49
+ return v.scene_cabinet_id === item.id;
50
50
  })) {
51
51
  ccdf_list.push({
52
- cabinetSku: item.type,
53
- sizeInfo: item.sizeinfo,
54
- catalogSku: item.sku_number,
55
- ccdf: item.ccdf
52
+ cabinet_sku: item.type,
53
+ sizeinfo: item.sizeinfo,
54
+ catalog_cabinet_sku: item.sku_number,
55
+ ccdf: item.ccdf,
56
+ door_finish_id: (_doorStyle$id2 = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id2 !== void 0 ? _doorStyle$id2 : null,
57
+ long_name: (_item$long_name = item === null || item === void 0 ? void 0 : item.long_name) !== null && _item$long_name !== void 0 ? _item$long_name : null,
58
+ scene_cabinet_id: item.id
56
59
  });
57
60
  }
58
61
  case 1:
@@ -109,7 +112,7 @@ function _handleChangeDoorStyleEvent() {
109
112
  case 3:
110
113
  // Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
111
114
  // IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
112
- // Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
115
+ // Use request door_finish_id (doorStyle.id) as the source of truth for door_finish_id.
113
116
  props.itemsActions.setItemsCCDF((_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [], applyScope, itemIds, (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null);
114
117
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
115
118
  case 4:
@@ -6,7 +6,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
6
6
  import { convert } from "../../utils/convert-units-lite";
7
7
  import { INTERNAL_EVENT_ITEMS_CATALOG } from "../../constants";
8
8
  import { Scene, State } from "../../models";
9
- import { normalizeLongName } from "../../shared/domain/cabinet-identity";
10
9
  export function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
11
10
  return _handleLoadProjectEvent.apply(this, arguments);
12
11
  }
@@ -30,14 +29,19 @@ function _handleLoadProjectEvent() {
30
29
  }
31
30
  /////////
32
31
  if (!ccdf_list.some(function (v) {
33
- var _it$doorStyle;
34
- return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) === v.doorFinishId;
35
- })) ccdf_list.push({
36
- cabinetSku: it.type,
37
- sizeInfo: it.sizeinfo,
38
- catalogSku: it.sku_number,
39
- ccdf: it.ccdf
40
- });
32
+ return v.scene_cabinet_id === it.id;
33
+ })) {
34
+ var _it$long_name;
35
+ ccdf_list.push({
36
+ cabinet_sku: it.type,
37
+ sizeinfo: it.sizeinfo,
38
+ catalog_cabinet_sku: it.sku_number,
39
+ ccdf: it.ccdf,
40
+ door_finish_id: door_finish_id,
41
+ long_name: (_it$long_name = it === null || it === void 0 ? void 0 : it.long_name) !== null && _it$long_name !== void 0 ? _it$long_name : null,
42
+ scene_cabinet_id: scene_cabinet_id
43
+ });
44
+ }
41
45
  });
42
46
  newScene = new Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
43
47
  tempState = new State({
@@ -63,18 +67,16 @@ function _handleLoadProjectEvent() {
63
67
  // Attach matched ccdf to each scene instance before loading into state,
64
68
  // so SYNC payload includes `scene.layers[].items[].ccdf.id`.
65
69
  // IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
66
- // Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
70
+ // Use request payload (`ccdf_list[].door_finish_id`) / scene doorStyle.id as door_finish_id source.
67
71
  try {
68
72
  resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
69
73
  Object.keys(items).forEach(function (k) {
70
- var _it$doorStyle$id, _it$doorStyle2, _resp$find;
74
+ var _it$doorStyle$id, _it$doorStyle;
71
75
  var it = items[k];
72
- var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
76
+ var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
73
77
  if (!desiredDoorFinishId) return;
74
- var picked = (_resp$find = resp.find(function (c) {
75
- return (c === null || c === void 0 ? void 0 : c.long_name) && (it === null || it === void 0 ? void 0 : it.long_name) && normalizeLongName(c.long_name) === normalizeLongName(it.long_name);
76
- })) !== null && _resp$find !== void 0 ? _resp$find : resp.find(function (c) {
77
- return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
78
+ var picked = resp.find(function (c) {
79
+ return (c === null || c === void 0 ? void 0 : c.scene_cabinet_id) && c.scene_cabinet_id === it.id;
78
80
  });
79
81
  if (picked) {
80
82
  var _picked$door_finish_i;
@@ -1,7 +1,6 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import { isEmpty } from "../../../components/viewer2d/utils";
3
3
  import { toJSIfNeeded } from "../../../shared/objects/immutable";
4
- import { normalizeLongName } from "../../../shared/domain/cabinet-identity";
5
4
  export function ccdfMapper(ccdf_list, layer) {
6
5
  // This function make cabinet definition using ccdf, layer's item information and catalog
7
6
  // console.log(ccdf_list, catalog);
@@ -22,11 +21,11 @@ export function ccdfMapper(ccdf_list, layer) {
22
21
  var correctItemId = '';
23
22
  for (var i = 0; i < itemKeys.length; i++) {
24
23
  var it = layerJS.items[itemKeys[i]];
25
- // Prefer stable join key: long_name. Fall back to cabinet_id.
26
- if (!isEmpty(ccdf === null || ccdf === void 0 ? void 0 : ccdf.long_name) && !isEmpty(it === null || it === void 0 ? void 0 : it.long_name) && normalizeLongName(it.long_name) === normalizeLongName(ccdf.long_name) || it.itemID === ccdf.cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
24
+ // Join key: scene_cabinet_id (instance id).
25
+ if (!!(ccdf !== null && ccdf !== void 0 && ccdf.scene_cabinet_id) && (it === null || it === void 0 ? void 0 : it.id) === ccdf.scene_cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
27
26
  }
28
27
  var cd = layerJS.items[correctItemId];
29
- if (cd && (!isEmpty(ccdf === null || ccdf === void 0 ? void 0 : ccdf.long_name) && !isEmpty(cd === null || cd === void 0 ? void 0 : cd.long_name) && normalizeLongName(cd.long_name) === normalizeLongName(ccdf.long_name) || cd.itemID === ccdf.cabinet_id)) {
28
+ if (cd && !!(ccdf !== null && ccdf !== void 0 && ccdf.scene_cabinet_id) && (cd === null || cd === void 0 ? void 0 : cd.id) === ccdf.scene_cabinet_id) {
30
29
  if (!isEmpty(ccdf === null || ccdf === void 0 ? void 0 : ccdf.id)) {
31
30
  cdfId = ccdf.id;
32
31
  }
@@ -1,5 +1,4 @@
1
1
  import { isEmpty } from "../../../components/viewer2d/utils";
2
- import { normalizeLongName } from "../../../shared/domain/cabinet-identity";
3
2
  export function mapFromCCDFToCDS(ccdf_list) {
4
3
  var sceneItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
5
4
  // This function make CDS from CCDF_List
@@ -33,11 +32,9 @@ export function mapFromCCDFToCDS(ccdf_list) {
33
32
  // Prefer stable join key: long_name -> scene item's itemID.
34
33
  // Fall back to host cabinet_id for backward compatibility.
35
34
  var resolvedItemID = asItem === null || asItem === void 0 ? void 0 : asItem.cabinet_id;
36
- var ln = asItem === null || asItem === void 0 ? void 0 : asItem.long_name;
37
- if (itemsArray && !isEmpty(ln)) {
38
- var nl = normalizeLongName(ln);
35
+ if (itemsArray) {
39
36
  var match = itemsArray.find(function (it) {
40
- return normalizeLongName(it === null || it === void 0 ? void 0 : it.long_name) === nl;
37
+ return it.id === asItem.scene_cabinet_id;
41
38
  });
42
39
  if (match !== null && match !== void 0 && match.itemID) resolvedItemID = match.itemID;
43
40
  }
package/lib/class/item.js CHANGED
@@ -20,7 +20,6 @@ var _molding = require("../utils/molding");
20
20
  var _utils = require("../components/viewer2d/utils");
21
21
  var _history = require("../utils/history");
22
22
  var _immutable2 = require("../shared/objects/immutable");
23
- var _cabinetIdentity = require("../shared/domain/cabinet-identity");
24
23
  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; }
25
24
  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; }
26
25
  var allItemRect;
@@ -276,15 +275,13 @@ var Item = exports["default"] = /*#__PURE__*/function () {
276
275
  idSet = new Set(targetItemIDs);
277
276
  }
278
277
  layer.items.forEach(function (it) {
279
- var _idSet, _ccdf_list$find, _picked$door_finish_i;
278
+ var _idSet, _picked$door_finish_i;
280
279
  var should = applyScope === _constants.DOORSTYLE_SCOPE_ALL ? true : (_idSet = idSet) === null || _idSet === void 0 ? void 0 : _idSet.has(it.id);
281
280
  if (!should) return;
282
281
 
283
- // Prefer stable join key: long_name. Fall back to cabinet_id for older payloads.
284
- var picked = (_ccdf_list$find = ccdf_list.find(function (c) {
285
- return (c === null || c === void 0 ? void 0 : c.long_name) && (it === null || it === void 0 ? void 0 : it.long_name) && (0, _cabinetIdentity.normalizeLongName)(c.long_name) === (0, _cabinetIdentity.normalizeLongName)(it.long_name);
286
- })) !== null && _ccdf_list$find !== void 0 ? _ccdf_list$find : ccdf_list.find(function (c) {
287
- return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
282
+ // Join key: scene_cabinet_id (instance id).
283
+ var picked = ccdf_list.find(function (c) {
284
+ return (c === null || c === void 0 ? void 0 : c.scene_cabinet_id) && c.scene_cabinet_id === it.id;
288
285
  });
289
286
  if (!picked) return;
290
287
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'ccdf'], _objectSpread(_objectSpread({}, picked), {}, {
@@ -8,12 +8,14 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _immutable = require("immutable");
10
10
  var _reactContainerDimensions = _interopRequireDefault(require("react-container-dimensions"));
11
- var _projectItemsCatalog = _interopRequireDefault(require("./mocks/projectItemsCatalog.json"));
11
+ var _get_ccdf_of_b12_brilliant = _interopRequireDefault(require("./mocks/get_ccdf_of_b12_brilliant.json"));
12
+ var _get_ccdf_of_b12_cambridge = _interopRequireDefault(require("./mocks/get_ccdf_of_b12_cambridge.json"));
12
13
  var _configData = _interopRequireDefault(require("./mocks/configData.json"));
13
14
  var _project = _interopRequireDefault(require("./mocks/project.json"));
14
15
  var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
15
16
  var _appliancePayload = _interopRequireDefault(require("./mocks/appliancePayload.json"));
16
- var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload.json"));
17
+ var _doorStylePayload_brilliant = _interopRequireDefault(require("./mocks/doorStylePayload_brilliant.json"));
18
+ var _doorStylePayload_cambridge = _interopRequireDefault(require("./mocks/doorStylePayload_cambridge.json"));
17
19
  var _roomShapePayload = _interopRequireDefault(require("./mocks/roomShapePayload.json"));
18
20
  var _lightingPayload = _interopRequireDefault(require("./mocks/lightingPayload.json"));
19
21
  var _furnishingPayload = _interopRequireDefault(require("./mocks/furnishingPayload.json"));
@@ -31,6 +33,7 @@ var options = {
31
33
  unit: 'in',
32
34
  enable3D: true
33
35
  };
36
+ var test_num = 0;
34
37
  var onInternalEvent = /*#__PURE__*/function () {
35
38
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(evt, callback) {
36
39
  var _t;
@@ -42,8 +45,9 @@ var onInternalEvent = /*#__PURE__*/function () {
42
45
  _context.next = _t === _constants.INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
43
46
  break;
44
47
  case 1:
48
+ console.log("Use ".concat(test_num % 2 === 1 ? 'Brilliant' : 'Cambridge'));
45
49
  _context.next = 2;
46
- return callback(_projectItemsCatalog["default"]);
50
+ return callback(test_num % 2 === 1 ? _get_ccdf_of_b12_brilliant["default"] : _get_ccdf_of_b12_cambridge["default"]);
47
51
  case 2:
48
52
  return _context.abrupt("continue", 3);
49
53
  case 3:
@@ -221,18 +225,40 @@ function WorkSpace(props) {
221
225
  setExternalEvent(evt);
222
226
  }
223
227
  }, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
228
+ actionType: "danger",
229
+ onClick: function onClick() {
230
+ test_num = 1;
231
+ }
232
+ }, "Use Brilliant for ITEMS_CATALOG"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
233
+ actionType: "danger",
234
+ onClick: function onClick() {
235
+ var evt = {
236
+ type: _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE,
237
+ payload: {
238
+ doorStyle: _doorStylePayload_brilliant["default"] === null || _doorStylePayload_brilliant["default"] === void 0 ? void 0 : _doorStylePayload_brilliant["default"].doorStyle,
239
+ applyScope: _doorStylePayload_brilliant["default"] === null || _doorStylePayload_brilliant["default"] === void 0 ? void 0 : _doorStylePayload_brilliant["default"].applyScope
240
+ }
241
+ };
242
+ setExternalEvent(evt);
243
+ }
244
+ }, "DoorStyle Change(Brilliant)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
245
+ actionType: "danger",
246
+ onClick: function onClick() {
247
+ test_num = 2;
248
+ }
249
+ }, "Use Cambridge for ITEMS_CATALOG"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
224
250
  actionType: "danger",
225
251
  onClick: function onClick() {
226
252
  var evt = {
227
253
  type: _constants.EXTERNAL_EVENT_CHANGE_DOORSTYLE,
228
254
  payload: {
229
- doorStyle: _doorStylePayload["default"] === null || _doorStylePayload["default"] === void 0 ? void 0 : _doorStylePayload["default"].doorStyle,
230
- applyScope: _doorStylePayload["default"] === null || _doorStylePayload["default"] === void 0 ? void 0 : _doorStylePayload["default"].applyScope
255
+ doorStyle: _doorStylePayload_cambridge["default"] === null || _doorStylePayload_cambridge["default"] === void 0 ? void 0 : _doorStylePayload_cambridge["default"].doorStyle,
256
+ applyScope: _doorStylePayload_cambridge["default"] === null || _doorStylePayload_cambridge["default"] === void 0 ? void 0 : _doorStylePayload_cambridge["default"].applyScope
231
257
  }
232
258
  };
233
259
  setExternalEvent(evt);
234
260
  }
235
- }, "DoorStyle Change(New-Cambriage)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
261
+ }, "DoorStyle Change(Cambriage)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
236
262
  actionType: "danger",
237
263
  onClick: function onClick() {
238
264
  var evt = {
@@ -47,19 +47,22 @@ function _handleChangeDoorStyleEvent() {
47
47
  case 4:
48
48
  ccdf_list = [];
49
49
  _loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
50
- var item;
50
+ var item, _doorStyle$id2, _item$long_name;
51
51
  return _regenerator["default"].wrap(function (_context2) {
52
52
  while (1) switch (_context2.prev = _context2.next) {
53
53
  case 0:
54
54
  item = targetItems[i];
55
55
  if (!ccdf_list.some(function (v) {
56
- return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
56
+ return v.scene_cabinet_id === item.id;
57
57
  })) {
58
58
  ccdf_list.push({
59
- cabinetSku: item.type,
60
- sizeInfo: item.sizeinfo,
61
- catalogSku: item.sku_number,
62
- ccdf: item.ccdf
59
+ cabinet_sku: item.type,
60
+ sizeinfo: item.sizeinfo,
61
+ catalog_cabinet_sku: item.sku_number,
62
+ ccdf: item.ccdf,
63
+ door_finish_id: (_doorStyle$id2 = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id2 !== void 0 ? _doorStyle$id2 : null,
64
+ long_name: (_item$long_name = item === null || item === void 0 ? void 0 : item.long_name) !== null && _item$long_name !== void 0 ? _item$long_name : null,
65
+ scene_cabinet_id: item.id
63
66
  });
64
67
  }
65
68
  case 1:
@@ -116,7 +119,7 @@ function _handleChangeDoorStyleEvent() {
116
119
  case 3:
117
120
  // Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
118
121
  // IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
119
- // Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
122
+ // Use request door_finish_id (doorStyle.id) as the source of truth for door_finish_id.
120
123
  props.itemsActions.setItemsCCDF((_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [], applyScope, itemIds, (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null);
121
124
  props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
122
125
  case 4:
@@ -11,7 +11,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _convertUnitsLite = require("../../utils/convert-units-lite");
12
12
  var _constants = require("../../constants");
13
13
  var _models = require("../../models");
14
- var _cabinetIdentity = require("../../shared/domain/cabinet-identity");
15
14
  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; }
16
15
  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; }
17
16
  function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
@@ -37,14 +36,19 @@ function _handleLoadProjectEvent() {
37
36
  }
38
37
  /////////
39
38
  if (!ccdf_list.some(function (v) {
40
- var _it$doorStyle;
41
- return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) === v.doorFinishId;
42
- })) ccdf_list.push({
43
- cabinetSku: it.type,
44
- sizeInfo: it.sizeinfo,
45
- catalogSku: it.sku_number,
46
- ccdf: it.ccdf
47
- });
39
+ return v.scene_cabinet_id === it.id;
40
+ })) {
41
+ var _it$long_name;
42
+ ccdf_list.push({
43
+ cabinet_sku: it.type,
44
+ sizeinfo: it.sizeinfo,
45
+ catalog_cabinet_sku: it.sku_number,
46
+ ccdf: it.ccdf,
47
+ door_finish_id: door_finish_id,
48
+ long_name: (_it$long_name = it === null || it === void 0 ? void 0 : it.long_name) !== null && _it$long_name !== void 0 ? _it$long_name : null,
49
+ scene_cabinet_id: scene_cabinet_id
50
+ });
51
+ }
48
52
  });
49
53
  newScene = new _models.Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
50
54
  tempState = new _models.State({
@@ -70,18 +74,16 @@ function _handleLoadProjectEvent() {
70
74
  // Attach matched ccdf to each scene instance before loading into state,
71
75
  // so SYNC payload includes `scene.layers[].items[].ccdf.id`.
72
76
  // IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
73
- // Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
77
+ // Use request payload (`ccdf_list[].door_finish_id`) / scene doorStyle.id as door_finish_id source.
74
78
  try {
75
79
  resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
76
80
  Object.keys(items).forEach(function (k) {
77
- var _it$doorStyle$id, _it$doorStyle2, _resp$find;
81
+ var _it$doorStyle$id, _it$doorStyle;
78
82
  var it = items[k];
79
- var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
83
+ var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
80
84
  if (!desiredDoorFinishId) return;
81
- var picked = (_resp$find = resp.find(function (c) {
82
- return (c === null || c === void 0 ? void 0 : c.long_name) && (it === null || it === void 0 ? void 0 : it.long_name) && (0, _cabinetIdentity.normalizeLongName)(c.long_name) === (0, _cabinetIdentity.normalizeLongName)(it.long_name);
83
- })) !== null && _resp$find !== void 0 ? _resp$find : resp.find(function (c) {
84
- return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
85
+ var picked = resp.find(function (c) {
86
+ return (c === null || c === void 0 ? void 0 : c.scene_cabinet_id) && c.scene_cabinet_id === it.id;
85
87
  });
86
88
  if (picked) {
87
89
  var _picked$door_finish_i;
@@ -8,7 +8,6 @@ exports.ccdfMapper = ccdfMapper;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _utils = require("../../../components/viewer2d/utils");
10
10
  var _immutable = require("../../../shared/objects/immutable");
11
- var _cabinetIdentity = require("../../../shared/domain/cabinet-identity");
12
11
  function ccdfMapper(ccdf_list, layer) {
13
12
  // This function make cabinet definition using ccdf, layer's item information and catalog
14
13
  // console.log(ccdf_list, catalog);
@@ -29,11 +28,11 @@ function ccdfMapper(ccdf_list, layer) {
29
28
  var correctItemId = '';
30
29
  for (var i = 0; i < itemKeys.length; i++) {
31
30
  var it = layerJS.items[itemKeys[i]];
32
- // Prefer stable join key: long_name. Fall back to cabinet_id.
33
- if (!(0, _utils.isEmpty)(ccdf === null || ccdf === void 0 ? void 0 : ccdf.long_name) && !(0, _utils.isEmpty)(it === null || it === void 0 ? void 0 : it.long_name) && (0, _cabinetIdentity.normalizeLongName)(it.long_name) === (0, _cabinetIdentity.normalizeLongName)(ccdf.long_name) || it.itemID === ccdf.cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
31
+ // Join key: scene_cabinet_id (instance id).
32
+ if (!!(ccdf !== null && ccdf !== void 0 && ccdf.scene_cabinet_id) && (it === null || it === void 0 ? void 0 : it.id) === ccdf.scene_cabinet_id) correctItemId = layerJS.items[itemKeys[i]].id;
34
33
  }
35
34
  var cd = layerJS.items[correctItemId];
36
- if (cd && (!(0, _utils.isEmpty)(ccdf === null || ccdf === void 0 ? void 0 : ccdf.long_name) && !(0, _utils.isEmpty)(cd === null || cd === void 0 ? void 0 : cd.long_name) && (0, _cabinetIdentity.normalizeLongName)(cd.long_name) === (0, _cabinetIdentity.normalizeLongName)(ccdf.long_name) || cd.itemID === ccdf.cabinet_id)) {
35
+ if (cd && !!(ccdf !== null && ccdf !== void 0 && ccdf.scene_cabinet_id) && (cd === null || cd === void 0 ? void 0 : cd.id) === ccdf.scene_cabinet_id) {
37
36
  if (!(0, _utils.isEmpty)(ccdf === null || ccdf === void 0 ? void 0 : ccdf.id)) {
38
37
  cdfId = ccdf.id;
39
38
  }
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.mapFromCCDFToCDS = mapFromCCDFToCDS;
7
7
  var _utils = require("../../../components/viewer2d/utils");
8
- var _cabinetIdentity = require("../../../shared/domain/cabinet-identity");
9
8
  function mapFromCCDFToCDS(ccdf_list) {
10
9
  var sceneItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
11
10
  // This function make CDS from CCDF_List
@@ -39,11 +38,9 @@ function mapFromCCDFToCDS(ccdf_list) {
39
38
  // Prefer stable join key: long_name -> scene item's itemID.
40
39
  // Fall back to host cabinet_id for backward compatibility.
41
40
  var resolvedItemID = asItem === null || asItem === void 0 ? void 0 : asItem.cabinet_id;
42
- var ln = asItem === null || asItem === void 0 ? void 0 : asItem.long_name;
43
- if (itemsArray && !(0, _utils.isEmpty)(ln)) {
44
- var nl = (0, _cabinetIdentity.normalizeLongName)(ln);
41
+ if (itemsArray) {
45
42
  var match = itemsArray.find(function (it) {
46
- return (0, _cabinetIdentity.normalizeLongName)(it === null || it === void 0 ? void 0 : it.long_name) === nl;
43
+ return it.id === asItem.scene_cabinet_id;
47
44
  });
48
45
  if (match !== null && match !== void 0 && match.itemID) resolvedItemID = match.itemID;
49
46
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitchen-simulator",
3
- "version": "10.1.0",
3
+ "version": "10.2.0",
4
4
  "description": "It is a kitchen simulator (self-contained micro-frontend).",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -1,6 +0,0 @@
1
- // Domain utilities for identifying cabinets across backend responses and scene state.
2
- // We normalize `long_name` because it is the stable identity across door-style changes.
3
-
4
- export function normalizeLongName(value) {
5
- return (value !== null && value !== void 0 ? value : '').toString().trim().toLowerCase();
6
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.normalizeLongName = normalizeLongName;
7
- // Domain utilities for identifying cabinets across backend responses and scene state.
8
- // We normalize `long_name` because it is the stable identity across door-style changes.
9
-
10
- function normalizeLongName(value) {
11
- return (value !== null && value !== void 0 ? value : '').toString().trim().toLowerCase();
12
- }