kitchen-simulator 10.0.4 → 10.0.7
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 +1 -1
- package/es/constants.js +2 -1
- package/es/events/external/handlers.changeDoorStyle.js +9 -17
- package/es/events/external/handlers.loadProject.js +9 -13
- package/es/mappings/external-events/mappers/ccdfMapper.js +9 -5
- package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +5 -2
- package/lib/class/item.js +1 -1
- package/lib/constants.js +2 -1
- package/lib/events/external/handlers.changeDoorStyle.js +9 -17
- package/lib/events/external/handlers.loadProject.js +9 -13
- package/lib/mappings/external-events/mappers/ccdfMapper.js +9 -5
- package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +5 -2
- package/package.json +1 -1
package/es/class/item.js
CHANGED
|
@@ -272,7 +272,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
272
272
|
var should = applyScope === DOORSTYLE_SCOPE_ALL ? true : (_idSet = idSet) === null || _idSet === void 0 ? void 0 : _idSet.has(it.id);
|
|
273
273
|
if (!should) return;
|
|
274
274
|
var picked = ccdf_list.find(function (c) {
|
|
275
|
-
return (c === null || c === void 0 ? void 0 : c.cabinet_id)
|
|
275
|
+
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
276
276
|
});
|
|
277
277
|
if (!picked) return;
|
|
278
278
|
state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'ccdf'], _objectSpread(_objectSpread({}, picked), {}, {
|
package/es/constants.js
CHANGED
|
@@ -317,7 +317,8 @@ export var ITEMS_ACTIONS = {
|
|
|
317
317
|
END_LOADING: END_LOADING,
|
|
318
318
|
STORE_DIST_ARRAY: STORE_DIST_ARRAY,
|
|
319
319
|
VALIDATE_ITEM_POSTIONS: VALIDATE_ITEM_POSTIONS,
|
|
320
|
-
REPLACE_ITEM: REPLACE_ITEM
|
|
320
|
+
REPLACE_ITEM: REPLACE_ITEM,
|
|
321
|
+
SET_ITEMS_CCDF: SET_ITEMS_CCDF
|
|
321
322
|
};
|
|
322
323
|
export var HOLE_ACTIONS = {
|
|
323
324
|
SELECT_HOLE: SELECT_HOLE,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
1
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
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; }
|
|
4
|
+
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) { _defineProperty(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; }
|
|
2
5
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
6
|
export function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
4
7
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
@@ -48,15 +51,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
48
51
|
if (!ccdf_list.some(function (v) {
|
|
49
52
|
return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
|
|
50
53
|
})) {
|
|
51
|
-
ccdf_list.push({
|
|
52
|
-
itemID: item.itemID,
|
|
53
|
-
prototype: item.prototype,
|
|
54
|
-
category: item.category,
|
|
55
|
-
name: item.name,
|
|
56
|
-
type: item.type,
|
|
57
|
-
sku_number: item.sku_number,
|
|
58
|
-
doorFinishId: doorStyle.id
|
|
59
|
-
});
|
|
54
|
+
ccdf_list.push(_objectSpread({}, item));
|
|
60
55
|
}
|
|
61
56
|
case 1:
|
|
62
57
|
case "end":
|
|
@@ -87,7 +82,8 @@ function _handleChangeDoorStyleEvent() {
|
|
|
87
82
|
// result is ccdf_list
|
|
88
83
|
function () {
|
|
89
84
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
90
|
-
var
|
|
85
|
+
var _result$ccdf_list, _doorStyle$id;
|
|
86
|
+
var mappedCabinetDefinitionList, rt, _i;
|
|
91
87
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
92
88
|
while (1) switch (_context.prev = _context.next) {
|
|
93
89
|
case 0:
|
|
@@ -107,14 +103,10 @@ function _handleChangeDoorStyleEvent() {
|
|
|
107
103
|
_context.next = 1;
|
|
108
104
|
break;
|
|
109
105
|
case 3:
|
|
110
|
-
// Persist ccdf on affected instances so SYNC includes ccdf.id for each item.
|
|
106
|
+
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
111
107
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
112
|
-
// Use request doorFinishId (doorStyle.id) as source of truth.
|
|
113
|
-
|
|
114
|
-
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);
|
|
115
|
-
} catch (e) {
|
|
116
|
-
// best-effort only
|
|
117
|
-
}
|
|
108
|
+
// Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
|
|
109
|
+
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);
|
|
118
110
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
119
111
|
case 4:
|
|
120
112
|
case "end":
|
|
@@ -55,7 +55,7 @@ function _handleLoadProjectEvent() {
|
|
|
55
55
|
}, /*#__PURE__*/function () {
|
|
56
56
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
57
57
|
var _evt$payload2;
|
|
58
|
-
var cdsList, _result$ccdf_list,
|
|
58
|
+
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt, i;
|
|
59
59
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
60
60
|
while (1) switch (_context.prev = _context.next) {
|
|
61
61
|
case 0:
|
|
@@ -67,23 +67,19 @@ function _handleLoadProjectEvent() {
|
|
|
67
67
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
68
68
|
// Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
|
|
69
69
|
try {
|
|
70
|
-
|
|
71
|
-
doorFinishIdByCabinetId = new Map(ccdf_list.filter(function (x) {
|
|
72
|
-
return (x === null || x === void 0 ? void 0 : x.itemID) != null && (x === null || x === void 0 ? void 0 : x.doorFinishId) != null;
|
|
73
|
-
}).map(function (x) {
|
|
74
|
-
return [x.itemID, x.doorFinishId];
|
|
75
|
-
}));
|
|
70
|
+
resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
|
|
76
71
|
Object.keys(items).forEach(function (k) {
|
|
77
|
-
var
|
|
72
|
+
var _it$doorStyle$id, _it$doorStyle3;
|
|
78
73
|
var it = items[k];
|
|
79
|
-
var desiredDoorFinishId = (
|
|
74
|
+
var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle3 = it.doorStyle) === null || _it$doorStyle3 === void 0 ? void 0 : _it$doorStyle3.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
|
|
80
75
|
if (!desiredDoorFinishId) return;
|
|
81
|
-
var
|
|
76
|
+
var picked = resp.find(function (c) {
|
|
82
77
|
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
83
78
|
});
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
if (picked) {
|
|
80
|
+
var _picked$door_finish_i;
|
|
81
|
+
it.ccdf = _objectSpread(_objectSpread({}, picked), {}, {
|
|
82
|
+
door_finish_id: (_picked$door_finish_i = picked === null || picked === void 0 ? void 0 : picked.door_finish_id) !== null && _picked$door_finish_i !== void 0 ? _picked$door_finish_i : desiredDoorFinishId
|
|
87
83
|
});
|
|
88
84
|
}
|
|
89
85
|
});
|
|
@@ -6,13 +6,17 @@ export function ccdfMapper(ccdf_list, layer) {
|
|
|
6
6
|
// console.log(ccdf_list, catalog);
|
|
7
7
|
// make structure_json list using ccdf-list
|
|
8
8
|
var cabinetDefinitionList = [];
|
|
9
|
-
var tempPlaceholders = [];
|
|
10
|
-
var structure = {};
|
|
11
|
-
var cdfId;
|
|
12
|
-
var structure_json = {};
|
|
13
|
-
var cabinetDefinition = {};
|
|
14
9
|
var layerJS = toJSIfNeeded(layer);
|
|
15
10
|
ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (ccdf) {
|
|
11
|
+
// IMPORTANT: DIY-834-43
|
|
12
|
+
// Each CCDF row must produce its own independent structure/tempPlaceholders objects.
|
|
13
|
+
// Reusing the same object across iterations causes cross-cabinet mutation bugs
|
|
14
|
+
// (e.g. B12's `structure.base` being overwritten by W1218's gltf).
|
|
15
|
+
var tempPlaceholders = [];
|
|
16
|
+
var structure = {};
|
|
17
|
+
var cdfId;
|
|
18
|
+
var structure_json = {};
|
|
19
|
+
var cabinetDefinition = {};
|
|
16
20
|
var itemKeys = Object.keys(layerJS.items);
|
|
17
21
|
var correctItemId = '';
|
|
18
22
|
for (var i = 0; i < itemKeys.length; i++) {
|
|
@@ -2,9 +2,12 @@ import { isEmpty } from "../../../components/viewer2d/utils";
|
|
|
2
2
|
export function mapFromCCDFToCDS(ccdf_list) {
|
|
3
3
|
// This function make CDS from CCDF_List
|
|
4
4
|
var itemCDSList = [];
|
|
5
|
-
var itemCDSData = {};
|
|
6
|
-
var cabitnetDoorStyleId;
|
|
7
5
|
ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (asItem) {
|
|
6
|
+
// IMPORTANT: DIY-834-43
|
|
7
|
+
// `itemCDSData` must be recreated per asItem. Reusing it across iterations
|
|
8
|
+
// can leak one cabinet's door/drawer mappings into another.
|
|
9
|
+
var itemCDSData = {};
|
|
10
|
+
var cabitnetDoorStyleId;
|
|
8
11
|
if (!isEmpty(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
|
|
9
12
|
cabitnetDoorStyleId = asItem.id;
|
|
10
13
|
}
|
package/lib/class/item.js
CHANGED
|
@@ -279,7 +279,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
279
279
|
var should = applyScope === _constants.DOORSTYLE_SCOPE_ALL ? true : (_idSet = idSet) === null || _idSet === void 0 ? void 0 : _idSet.has(it.id);
|
|
280
280
|
if (!should) return;
|
|
281
281
|
var picked = ccdf_list.find(function (c) {
|
|
282
|
-
return (c === null || c === void 0 ? void 0 : c.cabinet_id)
|
|
282
|
+
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
283
283
|
});
|
|
284
284
|
if (!picked) return;
|
|
285
285
|
state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'ccdf'], _objectSpread(_objectSpread({}, picked), {}, {
|
package/lib/constants.js
CHANGED
|
@@ -327,7 +327,8 @@ var ITEMS_ACTIONS = exports.ITEMS_ACTIONS = {
|
|
|
327
327
|
END_LOADING: END_LOADING,
|
|
328
328
|
STORE_DIST_ARRAY: STORE_DIST_ARRAY,
|
|
329
329
|
VALIDATE_ITEM_POSTIONS: VALIDATE_ITEM_POSTIONS,
|
|
330
|
-
REPLACE_ITEM: REPLACE_ITEM
|
|
330
|
+
REPLACE_ITEM: REPLACE_ITEM,
|
|
331
|
+
SET_ITEMS_CCDF: SET_ITEMS_CCDF
|
|
331
332
|
};
|
|
332
333
|
var HOLE_ACTIONS = exports.HOLE_ACTIONS = {
|
|
333
334
|
SELECT_HOLE: SELECT_HOLE,
|
|
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.handleChangeDoorStyleEvent = handleChangeDoorStyleEvent;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
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; }
|
|
10
13
|
function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
11
14
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
12
15
|
}
|
|
@@ -55,15 +58,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
55
58
|
if (!ccdf_list.some(function (v) {
|
|
56
59
|
return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
|
|
57
60
|
})) {
|
|
58
|
-
ccdf_list.push({
|
|
59
|
-
itemID: item.itemID,
|
|
60
|
-
prototype: item.prototype,
|
|
61
|
-
category: item.category,
|
|
62
|
-
name: item.name,
|
|
63
|
-
type: item.type,
|
|
64
|
-
sku_number: item.sku_number,
|
|
65
|
-
doorFinishId: doorStyle.id
|
|
66
|
-
});
|
|
61
|
+
ccdf_list.push(_objectSpread({}, item));
|
|
67
62
|
}
|
|
68
63
|
case 1:
|
|
69
64
|
case "end":
|
|
@@ -94,7 +89,8 @@ function _handleChangeDoorStyleEvent() {
|
|
|
94
89
|
// result is ccdf_list
|
|
95
90
|
function () {
|
|
96
91
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
97
|
-
var
|
|
92
|
+
var _result$ccdf_list, _doorStyle$id;
|
|
93
|
+
var mappedCabinetDefinitionList, rt, _i;
|
|
98
94
|
return _regenerator["default"].wrap(function (_context) {
|
|
99
95
|
while (1) switch (_context.prev = _context.next) {
|
|
100
96
|
case 0:
|
|
@@ -114,14 +110,10 @@ function _handleChangeDoorStyleEvent() {
|
|
|
114
110
|
_context.next = 1;
|
|
115
111
|
break;
|
|
116
112
|
case 3:
|
|
117
|
-
// Persist ccdf on affected instances so SYNC includes ccdf.id for each item.
|
|
113
|
+
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
118
114
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
119
|
-
// Use request doorFinishId (doorStyle.id) as source of truth.
|
|
120
|
-
|
|
121
|
-
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);
|
|
122
|
-
} catch (e) {
|
|
123
|
-
// best-effort only
|
|
124
|
-
}
|
|
115
|
+
// Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
|
|
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);
|
|
125
117
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
126
118
|
case 4:
|
|
127
119
|
case "end":
|
|
@@ -62,7 +62,7 @@ function _handleLoadProjectEvent() {
|
|
|
62
62
|
}, /*#__PURE__*/function () {
|
|
63
63
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
64
64
|
var _evt$payload2;
|
|
65
|
-
var cdsList, _result$ccdf_list,
|
|
65
|
+
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt, i;
|
|
66
66
|
return _regenerator["default"].wrap(function (_context) {
|
|
67
67
|
while (1) switch (_context.prev = _context.next) {
|
|
68
68
|
case 0:
|
|
@@ -74,23 +74,19 @@ function _handleLoadProjectEvent() {
|
|
|
74
74
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
75
75
|
// Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
|
|
76
76
|
try {
|
|
77
|
-
|
|
78
|
-
doorFinishIdByCabinetId = new Map(ccdf_list.filter(function (x) {
|
|
79
|
-
return (x === null || x === void 0 ? void 0 : x.itemID) != null && (x === null || x === void 0 ? void 0 : x.doorFinishId) != null;
|
|
80
|
-
}).map(function (x) {
|
|
81
|
-
return [x.itemID, x.doorFinishId];
|
|
82
|
-
}));
|
|
77
|
+
resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
|
|
83
78
|
Object.keys(items).forEach(function (k) {
|
|
84
|
-
var
|
|
79
|
+
var _it$doorStyle$id, _it$doorStyle3;
|
|
85
80
|
var it = items[k];
|
|
86
|
-
var desiredDoorFinishId = (
|
|
81
|
+
var desiredDoorFinishId = (_it$doorStyle$id = it === null || it === void 0 || (_it$doorStyle3 = it.doorStyle) === null || _it$doorStyle3 === void 0 ? void 0 : _it$doorStyle3.id) !== null && _it$doorStyle$id !== void 0 ? _it$doorStyle$id : null;
|
|
87
82
|
if (!desiredDoorFinishId) return;
|
|
88
|
-
var
|
|
83
|
+
var picked = resp.find(function (c) {
|
|
89
84
|
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
90
85
|
});
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
if (picked) {
|
|
87
|
+
var _picked$door_finish_i;
|
|
88
|
+
it.ccdf = _objectSpread(_objectSpread({}, picked), {}, {
|
|
89
|
+
door_finish_id: (_picked$door_finish_i = picked === null || picked === void 0 ? void 0 : picked.door_finish_id) !== null && _picked$door_finish_i !== void 0 ? _picked$door_finish_i : desiredDoorFinishId
|
|
94
90
|
});
|
|
95
91
|
}
|
|
96
92
|
});
|
|
@@ -13,13 +13,17 @@ function ccdfMapper(ccdf_list, layer) {
|
|
|
13
13
|
// console.log(ccdf_list, catalog);
|
|
14
14
|
// make structure_json list using ccdf-list
|
|
15
15
|
var cabinetDefinitionList = [];
|
|
16
|
-
var tempPlaceholders = [];
|
|
17
|
-
var structure = {};
|
|
18
|
-
var cdfId;
|
|
19
|
-
var structure_json = {};
|
|
20
|
-
var cabinetDefinition = {};
|
|
21
16
|
var layerJS = (0, _immutable.toJSIfNeeded)(layer);
|
|
22
17
|
ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (ccdf) {
|
|
18
|
+
// IMPORTANT: DIY-834-43
|
|
19
|
+
// Each CCDF row must produce its own independent structure/tempPlaceholders objects.
|
|
20
|
+
// Reusing the same object across iterations causes cross-cabinet mutation bugs
|
|
21
|
+
// (e.g. B12's `structure.base` being overwritten by W1218's gltf).
|
|
22
|
+
var tempPlaceholders = [];
|
|
23
|
+
var structure = {};
|
|
24
|
+
var cdfId;
|
|
25
|
+
var structure_json = {};
|
|
26
|
+
var cabinetDefinition = {};
|
|
23
27
|
var itemKeys = Object.keys(layerJS.items);
|
|
24
28
|
var correctItemId = '';
|
|
25
29
|
for (var i = 0; i < itemKeys.length; i++) {
|
|
@@ -8,9 +8,12 @@ var _utils = require("../../../components/viewer2d/utils");
|
|
|
8
8
|
function mapFromCCDFToCDS(ccdf_list) {
|
|
9
9
|
// This function make CDS from CCDF_List
|
|
10
10
|
var itemCDSList = [];
|
|
11
|
-
var itemCDSData = {};
|
|
12
|
-
var cabitnetDoorStyleId;
|
|
13
11
|
ccdf_list === null || ccdf_list === void 0 || ccdf_list.forEach(function (asItem) {
|
|
12
|
+
// IMPORTANT: DIY-834-43
|
|
13
|
+
// `itemCDSData` must be recreated per asItem. Reusing it across iterations
|
|
14
|
+
// can leak one cabinet's door/drawer mappings into another.
|
|
15
|
+
var itemCDSData = {};
|
|
16
|
+
var cabitnetDoorStyleId;
|
|
14
17
|
if (!(0, _utils.isEmpty)(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
|
|
15
18
|
cabitnetDoorStyleId = asItem.id;
|
|
16
19
|
}
|