kitchen-simulator 10.0.6 → 10.0.8
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/catalog/utils/item-loader.js +5 -0
- package/es/class/item.js +1 -1
- package/es/constants.js +2 -1
- package/es/events/external/handlers.changeDoorStyle.js +11 -20
- package/es/events/external/handlers.loadProject.js +14 -21
- package/es/mappings/external-events/mappers/ccdfMapper.js +9 -5
- package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +5 -2
- package/lib/catalog/utils/item-loader.js +5 -0
- package/lib/class/item.js +1 -1
- package/lib/constants.js +2 -1
- package/lib/events/external/handlers.changeDoorStyle.js +11 -20
- package/lib/events/external/handlers.loadProject.js +14 -21
- 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
|
@@ -297,6 +297,11 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
|
|
|
297
297
|
}, warning_buttons)));
|
|
298
298
|
} else {
|
|
299
299
|
rendered = /*#__PURE__*/React.createElement("g", {
|
|
300
|
+
"data-element-root": true,
|
|
301
|
+
"data-prototype": element.prototype,
|
|
302
|
+
"data-id": element.id,
|
|
303
|
+
"data-selected": element.selected,
|
|
304
|
+
"data-layer": layer.id,
|
|
300
305
|
onMouseOver: function onMouseOver(event) {
|
|
301
306
|
setHover(true);
|
|
302
307
|
},
|
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,7 +1,4 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
1
|
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; }
|
|
5
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
6
3
|
export function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
7
4
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
@@ -51,15 +48,12 @@ function _handleChangeDoorStyleEvent() {
|
|
|
51
48
|
if (!ccdf_list.some(function (v) {
|
|
52
49
|
return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
|
|
53
50
|
})) {
|
|
54
|
-
ccdf_list.push(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
sku_number: item.sku_number,
|
|
61
|
-
doorFinishId: doorStyle.id
|
|
62
|
-
}));
|
|
51
|
+
ccdf_list.push({
|
|
52
|
+
cabinetSku: item.sku,
|
|
53
|
+
sizeInfo: item.sizeInfo,
|
|
54
|
+
catalogSku: item.sku_number,
|
|
55
|
+
ccdf: item.ccdf
|
|
56
|
+
});
|
|
63
57
|
}
|
|
64
58
|
case 1:
|
|
65
59
|
case "end":
|
|
@@ -90,7 +84,8 @@ function _handleChangeDoorStyleEvent() {
|
|
|
90
84
|
// result is ccdf_list
|
|
91
85
|
function () {
|
|
92
86
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
93
|
-
var
|
|
87
|
+
var _result$ccdf_list, _doorStyle$id;
|
|
88
|
+
var mappedCabinetDefinitionList, rt, _i;
|
|
94
89
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
95
90
|
while (1) switch (_context.prev = _context.next) {
|
|
96
91
|
case 0:
|
|
@@ -110,14 +105,10 @@ function _handleChangeDoorStyleEvent() {
|
|
|
110
105
|
_context.next = 1;
|
|
111
106
|
break;
|
|
112
107
|
case 3:
|
|
113
|
-
// Persist ccdf on affected instances so SYNC includes ccdf.id for each item.
|
|
108
|
+
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
114
109
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
115
|
-
// Use request doorFinishId (doorStyle.id) as source of truth.
|
|
116
|
-
|
|
117
|
-
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
|
-
} catch (e) {
|
|
119
|
-
// best-effort only
|
|
120
|
-
}
|
|
110
|
+
// Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
|
|
111
|
+
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
112
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
122
113
|
case 4:
|
|
123
114
|
case "end":
|
|
@@ -21,7 +21,7 @@ function _handleLoadProjectEvent() {
|
|
|
21
21
|
ccdf_list = [];
|
|
22
22
|
items = (_evt$payload$layers$l = evt === null || evt === void 0 || (_evt$payload = evt.payload) === null || _evt$payload === void 0 || (_evt$payload = _evt$payload.layers[layerName]) === null || _evt$payload === void 0 ? void 0 : _evt$payload.items) !== null && _evt$payload$layers$l !== void 0 ? _evt$payload$layers$l : {};
|
|
23
23
|
Object.keys(items).forEach(function (k) {
|
|
24
|
-
var _it$properties, _it$properties2, _it$properties3
|
|
24
|
+
var _it$properties, _it$properties2, _it$properties3;
|
|
25
25
|
var it = items[k];
|
|
26
26
|
//////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
27
27
|
if (it !== null && it !== void 0 && (_it$properties = it.properties) !== null && _it$properties !== void 0 && (_it$properties = _it$properties.altitude) !== null && _it$properties !== void 0 && _it$properties.length && it !== null && it !== void 0 && (_it$properties2 = it.properties) !== null && _it$properties2 !== void 0 && (_it$properties2 = _it$properties2.altitude) !== null && _it$properties2 !== void 0 && _it$properties2._unit && it !== null && it !== void 0 && (_it$properties3 = it.properties) !== null && _it$properties3 !== void 0 && (_it$properties3 = _it$properties3.altitude) !== null && _it$properties3 !== void 0 && _it$properties3._length && it.properties.altitude.length !== convert(it.properties.altitude._length).from(it.properties.altitude._unit).to('cm')) {
|
|
@@ -32,13 +32,10 @@ function _handleLoadProjectEvent() {
|
|
|
32
32
|
var _it$doorStyle;
|
|
33
33
|
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;
|
|
34
34
|
})) ccdf_list.push({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
type: it.type,
|
|
40
|
-
sku_number: it.sku_number,
|
|
41
|
-
doorFinishId: (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id
|
|
35
|
+
cabinetSku: it.sku,
|
|
36
|
+
sizeInfo: it.sizeInfo,
|
|
37
|
+
catalogSku: it.sku_number,
|
|
38
|
+
ccdf: it.ccdf
|
|
42
39
|
});
|
|
43
40
|
});
|
|
44
41
|
newScene = new Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
|
|
@@ -55,7 +52,7 @@ function _handleLoadProjectEvent() {
|
|
|
55
52
|
}, /*#__PURE__*/function () {
|
|
56
53
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
57
54
|
var _evt$payload2;
|
|
58
|
-
var cdsList, _result$ccdf_list,
|
|
55
|
+
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt, i;
|
|
59
56
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
60
57
|
while (1) switch (_context.prev = _context.next) {
|
|
61
58
|
case 0:
|
|
@@ -67,23 +64,19 @@ function _handleLoadProjectEvent() {
|
|
|
67
64
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
68
65
|
// Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
|
|
69
66
|
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
|
-
}));
|
|
67
|
+
resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
|
|
76
68
|
Object.keys(items).forEach(function (k) {
|
|
77
|
-
var
|
|
69
|
+
var _it$doorStyle$id, _it$doorStyle2;
|
|
78
70
|
var it = items[k];
|
|
79
|
-
var desiredDoorFinishId = (
|
|
71
|
+
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;
|
|
80
72
|
if (!desiredDoorFinishId) return;
|
|
81
|
-
var
|
|
73
|
+
var picked = resp.find(function (c) {
|
|
82
74
|
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
83
75
|
});
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
76
|
+
if (picked) {
|
|
77
|
+
var _picked$door_finish_i;
|
|
78
|
+
it.ccdf = _objectSpread(_objectSpread({}, picked), {}, {
|
|
79
|
+
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
80
|
});
|
|
88
81
|
}
|
|
89
82
|
});
|
|
@@ -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
|
}
|
|
@@ -311,6 +311,11 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
311
311
|
}, warning_buttons)));
|
|
312
312
|
} else {
|
|
313
313
|
rendered = /*#__PURE__*/_react["default"].createElement("g", {
|
|
314
|
+
"data-element-root": true,
|
|
315
|
+
"data-prototype": element.prototype,
|
|
316
|
+
"data-id": element.id,
|
|
317
|
+
"data-selected": element.selected,
|
|
318
|
+
"data-layer": layer.id,
|
|
314
319
|
onMouseOver: function onMouseOver(event) {
|
|
315
320
|
setHover(true);
|
|
316
321
|
},
|
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,10 +6,7 @@ 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"));
|
|
10
9
|
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; }
|
|
13
10
|
function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
14
11
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
15
12
|
}
|
|
@@ -58,15 +55,12 @@ function _handleChangeDoorStyleEvent() {
|
|
|
58
55
|
if (!ccdf_list.some(function (v) {
|
|
59
56
|
return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
|
|
60
57
|
})) {
|
|
61
|
-
ccdf_list.push(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sku_number: item.sku_number,
|
|
68
|
-
doorFinishId: doorStyle.id
|
|
69
|
-
}));
|
|
58
|
+
ccdf_list.push({
|
|
59
|
+
cabinetSku: item.sku,
|
|
60
|
+
sizeInfo: item.sizeInfo,
|
|
61
|
+
catalogSku: item.sku_number,
|
|
62
|
+
ccdf: item.ccdf
|
|
63
|
+
});
|
|
70
64
|
}
|
|
71
65
|
case 1:
|
|
72
66
|
case "end":
|
|
@@ -97,7 +91,8 @@ function _handleChangeDoorStyleEvent() {
|
|
|
97
91
|
// result is ccdf_list
|
|
98
92
|
function () {
|
|
99
93
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
100
|
-
var
|
|
94
|
+
var _result$ccdf_list, _doorStyle$id;
|
|
95
|
+
var mappedCabinetDefinitionList, rt, _i;
|
|
101
96
|
return _regenerator["default"].wrap(function (_context) {
|
|
102
97
|
while (1) switch (_context.prev = _context.next) {
|
|
103
98
|
case 0:
|
|
@@ -117,14 +112,10 @@ function _handleChangeDoorStyleEvent() {
|
|
|
117
112
|
_context.next = 1;
|
|
118
113
|
break;
|
|
119
114
|
case 3:
|
|
120
|
-
// Persist ccdf on affected instances so SYNC includes ccdf.id for each item.
|
|
115
|
+
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
121
116
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
122
|
-
// Use request doorFinishId (doorStyle.id) as source of truth.
|
|
123
|
-
|
|
124
|
-
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
|
-
} catch (e) {
|
|
126
|
-
// best-effort only
|
|
127
|
-
}
|
|
117
|
+
// Use request doorFinishId (doorStyle.id) as the source of truth for door_finish_id.
|
|
118
|
+
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);
|
|
128
119
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
129
120
|
case 4:
|
|
130
121
|
case "end":
|
|
@@ -28,7 +28,7 @@ function _handleLoadProjectEvent() {
|
|
|
28
28
|
ccdf_list = [];
|
|
29
29
|
items = (_evt$payload$layers$l = evt === null || evt === void 0 || (_evt$payload = evt.payload) === null || _evt$payload === void 0 || (_evt$payload = _evt$payload.layers[layerName]) === null || _evt$payload === void 0 ? void 0 : _evt$payload.items) !== null && _evt$payload$layers$l !== void 0 ? _evt$payload$layers$l : {};
|
|
30
30
|
Object.keys(items).forEach(function (k) {
|
|
31
|
-
var _it$properties, _it$properties2, _it$properties3
|
|
31
|
+
var _it$properties, _it$properties2, _it$properties3;
|
|
32
32
|
var it = items[k];
|
|
33
33
|
//////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
34
34
|
if (it !== null && it !== void 0 && (_it$properties = it.properties) !== null && _it$properties !== void 0 && (_it$properties = _it$properties.altitude) !== null && _it$properties !== void 0 && _it$properties.length && it !== null && it !== void 0 && (_it$properties2 = it.properties) !== null && _it$properties2 !== void 0 && (_it$properties2 = _it$properties2.altitude) !== null && _it$properties2 !== void 0 && _it$properties2._unit && it !== null && it !== void 0 && (_it$properties3 = it.properties) !== null && _it$properties3 !== void 0 && (_it$properties3 = _it$properties3.altitude) !== null && _it$properties3 !== void 0 && _it$properties3._length && it.properties.altitude.length !== (0, _convertUnitsLite.convert)(it.properties.altitude._length).from(it.properties.altitude._unit).to('cm')) {
|
|
@@ -39,13 +39,10 @@ function _handleLoadProjectEvent() {
|
|
|
39
39
|
var _it$doorStyle;
|
|
40
40
|
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;
|
|
41
41
|
})) ccdf_list.push({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
type: it.type,
|
|
47
|
-
sku_number: it.sku_number,
|
|
48
|
-
doorFinishId: (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id
|
|
42
|
+
cabinetSku: it.sku,
|
|
43
|
+
sizeInfo: it.sizeInfo,
|
|
44
|
+
catalogSku: it.sku_number,
|
|
45
|
+
ccdf: it.ccdf
|
|
49
46
|
});
|
|
50
47
|
});
|
|
51
48
|
newScene = new _models.Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
|
|
@@ -62,7 +59,7 @@ function _handleLoadProjectEvent() {
|
|
|
62
59
|
}, /*#__PURE__*/function () {
|
|
63
60
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
64
61
|
var _evt$payload2;
|
|
65
|
-
var cdsList, _result$ccdf_list,
|
|
62
|
+
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt, i;
|
|
66
63
|
return _regenerator["default"].wrap(function (_context) {
|
|
67
64
|
while (1) switch (_context.prev = _context.next) {
|
|
68
65
|
case 0:
|
|
@@ -74,23 +71,19 @@ function _handleLoadProjectEvent() {
|
|
|
74
71
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
75
72
|
// Use request payload (`ccdf_list[].doorFinishId`) as door_finish_id source.
|
|
76
73
|
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
|
-
}));
|
|
74
|
+
resp = (_result$ccdf_list = result === null || result === void 0 ? void 0 : result.ccdf_list) !== null && _result$ccdf_list !== void 0 ? _result$ccdf_list : [];
|
|
83
75
|
Object.keys(items).forEach(function (k) {
|
|
84
|
-
var
|
|
76
|
+
var _it$doorStyle$id, _it$doorStyle2;
|
|
85
77
|
var it = items[k];
|
|
86
|
-
var desiredDoorFinishId = (
|
|
78
|
+
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;
|
|
87
79
|
if (!desiredDoorFinishId) return;
|
|
88
|
-
var
|
|
80
|
+
var picked = resp.find(function (c) {
|
|
89
81
|
return (c === null || c === void 0 ? void 0 : c.cabinet_id) === it.itemID;
|
|
90
82
|
});
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
if (picked) {
|
|
84
|
+
var _picked$door_finish_i;
|
|
85
|
+
it.ccdf = _objectSpread(_objectSpread({}, picked), {}, {
|
|
86
|
+
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
87
|
});
|
|
95
88
|
}
|
|
96
89
|
});
|
|
@@ -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
|
}
|