kitchen-simulator 11.37.0 → 11.38.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/actions/items-actions.js +3 -1
- package/es/class/item.js +64 -4
- package/es/events/external/handleExternalEvent.util.js +17 -0
- package/es/events/external/handlers.changeDoorStyle.js +5 -21
- package/es/events/external/handlers.loadProject.js +9 -3
- package/es/events/external/handlers.molding.js +1 -1
- package/es/reducers/items-reducer.js +1 -1
- package/es/utils/molding.js +8 -99
- package/lib/actions/items-actions.js +3 -1
- package/lib/class/item.js +63 -3
- package/lib/events/external/handleExternalEvent.util.js +18 -0
- package/lib/events/external/handlers.changeDoorStyle.js +6 -22
- package/lib/events/external/handlers.loadProject.js +9 -3
- package/lib/events/external/handlers.molding.js +1 -1
- package/lib/reducers/items-reducer.js +1 -1
- package/lib/utils/molding.js +8 -100
- package/package.json +1 -1
|
@@ -273,10 +273,12 @@ export function setWallColor(texture) {
|
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
275
|
export function setMolding(texture, isAll) {
|
|
276
|
+
var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
276
277
|
return {
|
|
277
278
|
type: SET_MOLDING,
|
|
278
279
|
molding: texture,
|
|
279
|
-
isAll: isAll
|
|
280
|
+
isAll: isAll,
|
|
281
|
+
onInternalEvent: onInternalEvent
|
|
280
282
|
};
|
|
281
283
|
}
|
|
282
284
|
export function updateMolding() {
|
package/es/class/item.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
1
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
4
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
5
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
7
|
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; }
|
|
6
8
|
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; }
|
|
7
9
|
import { convert } from "../utils/convert-units-lite";
|
|
8
10
|
import { Group, Hole, Layer } from "./export";
|
|
9
11
|
import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
|
|
10
12
|
import { fromJS, Map } from 'immutable';
|
|
11
|
-
import { DOORSTYLE_SCOPE_ALL, DOORSTYLE_SCOPE_MULTIPLE, DOORSTYLE_SCOPE_SINGLE, INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_MIRROR_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
|
|
13
|
+
import { DOORSTYLE_SCOPE_ALL, DOORSTYLE_SCOPE_MULTIPLE, DOORSTYLE_SCOPE_SINGLE, INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ITEMS_CATALOG, INTERNAL_EVENT_MIRROR_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
|
|
12
14
|
import { debugUtil, updatePayloadOfInternalEvent } from "../utils/helper";
|
|
13
15
|
import { isUndefined } from 'util';
|
|
14
16
|
import { hasMoldingLayout } from "../utils/molding";
|
|
@@ -18,6 +20,7 @@ import { toJSIfNeeded } from "../shared/objects/immutable";
|
|
|
18
20
|
import { canMirrorCabinet } from "../shared/domain/cabinet-mirror";
|
|
19
21
|
import { isWarningCabinet } from "../shared/domain/cabinet-warning";
|
|
20
22
|
import { mapFromCCDFToCDS } from "../mappings/external-events/mappers/ccdfToCDSMapper";
|
|
23
|
+
import { prepareMoldingCCDFList } from "../events/external/handleExternalEvent.util";
|
|
21
24
|
var allItemRect;
|
|
22
25
|
var allItemSnap;
|
|
23
26
|
var allLines;
|
|
@@ -310,7 +313,7 @@ var Item = /*#__PURE__*/function () {
|
|
|
310
313
|
updatedState: state
|
|
311
314
|
};
|
|
312
315
|
var idSet = null;
|
|
313
|
-
if (applyScope === DOORSTYLE_SCOPE_SINGLE) {
|
|
316
|
+
if (applyScope === DOORSTYLE_SCOPE_SINGLE || applyScope === false) {
|
|
314
317
|
var selectedItemIds = state.getIn(['scene', 'layers', layerID, 'selected', 'items']).toJS();
|
|
315
318
|
idSet = new Set(selectedItemIds);
|
|
316
319
|
}
|
|
@@ -330,14 +333,15 @@ var Item = /*#__PURE__*/function () {
|
|
|
330
333
|
layer.items.forEach(function (it) {
|
|
331
334
|
var _idSet2;
|
|
332
335
|
// if (isEmpty(it?.molding)) return;
|
|
333
|
-
var should = applyScope === DOORSTYLE_SCOPE_ALL ? true : (_idSet2 = idSet) === null || _idSet2 === void 0 ? void 0 : _idSet2.has(it.id);
|
|
336
|
+
var should = applyScope === DOORSTYLE_SCOPE_ALL || applyScope === true ? true : (_idSet2 = idSet) === null || _idSet2 === void 0 ? void 0 : _idSet2.has(it.id);
|
|
334
337
|
if (!should) return;
|
|
335
338
|
var itemMoldings = it.molding;
|
|
339
|
+
var itemDoorFinish = it.doorStyle;
|
|
336
340
|
var updatedItemMoldings = [];
|
|
337
341
|
itemMoldings === null || itemMoldings === void 0 || itemMoldings.forEach(function (md) {
|
|
338
342
|
var itemMoldingID = md.itemID;
|
|
339
343
|
var picked = ccdf_list.find(function (c) {
|
|
340
|
-
return (c === null || c === void 0 ? void 0 : c.cabinet_id) && c.cabinet_id === itemMoldingID;
|
|
344
|
+
return (c === null || c === void 0 ? void 0 : c.cabinet_id) && (c === null || c === void 0 ? void 0 : c.door_finish_id) && c.cabinet_id === itemMoldingID && c.door_finish_id === (itemDoorFinish === null || itemDoorFinish === void 0 ? void 0 : itemDoorFinish.id);
|
|
341
345
|
});
|
|
342
346
|
if (!picked) return;
|
|
343
347
|
md.ccdf = picked;
|
|
@@ -1671,6 +1675,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1671
1675
|
}, {
|
|
1672
1676
|
key: "setMolding",
|
|
1673
1677
|
value: function setMolding(state, molding, isAll) {
|
|
1678
|
+
var _this4 = this;
|
|
1679
|
+
var onInternalEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1674
1680
|
var _state14 = state,
|
|
1675
1681
|
scene = _state14.scene;
|
|
1676
1682
|
var layerID = scene.get('selectedLayer');
|
|
@@ -1754,6 +1760,60 @@ var Item = /*#__PURE__*/function () {
|
|
|
1754
1760
|
});
|
|
1755
1761
|
}
|
|
1756
1762
|
}
|
|
1763
|
+
var layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1764
|
+
var allItems = state.getIn(['scene', 'layers', layerId, 'items']).toJS();
|
|
1765
|
+
var targetItems = [],
|
|
1766
|
+
molding_ccdf_list = [];
|
|
1767
|
+
switch (isAll) {
|
|
1768
|
+
case true:
|
|
1769
|
+
targetItems = Object.values(allItems);
|
|
1770
|
+
break;
|
|
1771
|
+
case false:
|
|
1772
|
+
targetItems = Object.values(allItems.filter(function (item) {
|
|
1773
|
+
var _item$molding;
|
|
1774
|
+
return !isEmpty(item === null || item === void 0 || (_item$molding = item.molding) === null || _item$molding === void 0 ? void 0 : _item$molding.find(function (md) {
|
|
1775
|
+
return md.itemID === molding.itemID;
|
|
1776
|
+
}));
|
|
1777
|
+
}));
|
|
1778
|
+
default:
|
|
1779
|
+
break;
|
|
1780
|
+
}
|
|
1781
|
+
for (var i = 0; i < targetItems.length; i++) {
|
|
1782
|
+
var _item$molding2;
|
|
1783
|
+
var item = targetItems[i];
|
|
1784
|
+
molding_ccdf_list.push.apply(molding_ccdf_list, _toConsumableArray(prepareMoldingCCDFList(item === null || item === void 0 ? void 0 : item.doorStyle, item === null || item === void 0 || (_item$molding2 = item.molding) === null || _item$molding2 === void 0 ? void 0 : _item$molding2.filter(function (md) {
|
|
1785
|
+
return md.itemID === molding.itemID;
|
|
1786
|
+
}))));
|
|
1787
|
+
}
|
|
1788
|
+
if (molding_ccdf_list.length > 0) {
|
|
1789
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1790
|
+
type: INTERNAL_EVENT_ITEMS_CATALOG,
|
|
1791
|
+
value: {
|
|
1792
|
+
event_type: 'change_door_style',
|
|
1793
|
+
ccdf_list: [],
|
|
1794
|
+
molding_ccdf_list: molding_ccdf_list
|
|
1795
|
+
}
|
|
1796
|
+
},
|
|
1797
|
+
/*#__PURE__*/
|
|
1798
|
+
// result is ccdf_list
|
|
1799
|
+
function () {
|
|
1800
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
1801
|
+
var _this4$setMoldingsCCD, _result$molding_ccdf_;
|
|
1802
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
1803
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1804
|
+
case 0:
|
|
1805
|
+
state = (_this4$setMoldingsCCD = _this4.setMoldingsCCDF(state, (_result$molding_ccdf_ = result === null || result === void 0 ? void 0 : result.molding_ccdf_list) !== null && _result$molding_ccdf_ !== void 0 ? _result$molding_ccdf_ : [], isAll)) === null || _this4$setMoldingsCCD === void 0 ? void 0 : _this4$setMoldingsCCD.updatedState;
|
|
1806
|
+
case 1:
|
|
1807
|
+
case "end":
|
|
1808
|
+
return _context.stop();
|
|
1809
|
+
}
|
|
1810
|
+
}, _callee);
|
|
1811
|
+
}));
|
|
1812
|
+
return function (_x) {
|
|
1813
|
+
return _ref.apply(this, arguments);
|
|
1814
|
+
};
|
|
1815
|
+
}());
|
|
1816
|
+
}
|
|
1757
1817
|
state = state.merge({
|
|
1758
1818
|
sceneHistory: historyPush(state.sceneHistory, state.scene)
|
|
1759
1819
|
});
|
|
@@ -1079,4 +1079,21 @@ export function mergeSameElements(projectItemsCatalog) {
|
|
|
1079
1079
|
_loop(i);
|
|
1080
1080
|
}
|
|
1081
1081
|
return result;
|
|
1082
|
+
}
|
|
1083
|
+
export function prepareMoldingCCDFList(doorStyle, moldingData) {
|
|
1084
|
+
var moldingCCDFs = [];
|
|
1085
|
+
for (var i = 0; i < moldingData.length; i++) {
|
|
1086
|
+
var _molding$ccdf$catalog, _molding$ccdf, _molding$ccdf$cabinet, _molding$ccdf2, _doorStyle$id, _molding$long_name;
|
|
1087
|
+
var molding = moldingData[i];
|
|
1088
|
+
moldingCCDFs.push({
|
|
1089
|
+
sizeinfo: molding.sizeinfo,
|
|
1090
|
+
catalog_cabinet_sku: (_molding$ccdf$catalog = molding === null || molding === void 0 || (_molding$ccdf = molding.ccdf) === null || _molding$ccdf === void 0 ? void 0 : _molding$ccdf.catalog_cabinet_sku) !== null && _molding$ccdf$catalog !== void 0 ? _molding$ccdf$catalog : molding.sku_number,
|
|
1091
|
+
cabinet_id: (_molding$ccdf$cabinet = molding === null || molding === void 0 || (_molding$ccdf2 = molding.ccdf) === null || _molding$ccdf2 === void 0 ? void 0 : _molding$ccdf2.cabinet_id) !== null && _molding$ccdf$cabinet !== void 0 ? _molding$ccdf$cabinet : molding.itemID,
|
|
1092
|
+
ccdf: molding.ccdf,
|
|
1093
|
+
target_door_finish_id: (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null,
|
|
1094
|
+
long_name: (_molding$long_name = molding === null || molding === void 0 ? void 0 : molding.long_name) !== null && _molding$long_name !== void 0 ? _molding$long_name : null,
|
|
1095
|
+
id: molding.itemID
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
return moldingCCDFs;
|
|
1082
1099
|
}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { asyncPool } from "../../shared/concurrency/async-pool";
|
|
4
|
-
|
|
5
|
-
var moldingCCDFs = [];
|
|
6
|
-
for (var i = 0; i < moldingData.length; i++) {
|
|
7
|
-
var _molding$ccdf$catalog, _molding$ccdf, _molding$ccdf$cabinet, _molding$ccdf2, _doorStyle$id, _molding$long_name;
|
|
8
|
-
var molding = moldingData[i];
|
|
9
|
-
moldingCCDFs.push({
|
|
10
|
-
sizeinfo: molding.sizeinfo,
|
|
11
|
-
catalog_cabinet_sku: (_molding$ccdf$catalog = molding === null || molding === void 0 || (_molding$ccdf = molding.ccdf) === null || _molding$ccdf === void 0 ? void 0 : _molding$ccdf.catalog_cabinet_sku) !== null && _molding$ccdf$catalog !== void 0 ? _molding$ccdf$catalog : molding.sku_number,
|
|
12
|
-
cabinet_id: (_molding$ccdf$cabinet = molding === null || molding === void 0 || (_molding$ccdf2 = molding.ccdf) === null || _molding$ccdf2 === void 0 ? void 0 : _molding$ccdf2.cabinet_id) !== null && _molding$ccdf$cabinet !== void 0 ? _molding$ccdf$cabinet : molding.itemID,
|
|
13
|
-
ccdf: molding.ccdf,
|
|
14
|
-
target_door_finish_id: (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null,
|
|
15
|
-
long_name: (_molding$long_name = molding === null || molding === void 0 ? void 0 : molding.long_name) !== null && _molding$long_name !== void 0 ? _molding$long_name : null,
|
|
16
|
-
id: molding.itemID
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return moldingCCDFs;
|
|
20
|
-
}
|
|
4
|
+
import { prepareMoldingCCDFList } from "./handleExternalEvent.util";
|
|
21
5
|
export function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
22
6
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
23
7
|
}
|
|
@@ -59,7 +43,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
59
43
|
case 4:
|
|
60
44
|
ccdf_list = [];
|
|
61
45
|
_loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
|
|
62
|
-
var item, _item$ccdf$catalog_ca, _item$ccdf, _item$ccdf$cabinet_id, _item$ccdf2, _doorStyle$
|
|
46
|
+
var item, _item$ccdf$catalog_ca, _item$ccdf, _item$ccdf$cabinet_id, _item$ccdf2, _doorStyle$id2, _item$long_name;
|
|
63
47
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
64
48
|
while (1) switch (_context2.prev = _context2.next) {
|
|
65
49
|
case 0:
|
|
@@ -73,7 +57,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
73
57
|
catalog_cabinet_sku: (_item$ccdf$catalog_ca = item === null || item === void 0 || (_item$ccdf = item.ccdf) === null || _item$ccdf === void 0 ? void 0 : _item$ccdf.catalog_cabinet_sku) !== null && _item$ccdf$catalog_ca !== void 0 ? _item$ccdf$catalog_ca : item.sku_number,
|
|
74
58
|
cabinet_id: (_item$ccdf$cabinet_id = item === null || item === void 0 || (_item$ccdf2 = item.ccdf) === null || _item$ccdf2 === void 0 ? void 0 : _item$ccdf2.cabinet_id) !== null && _item$ccdf$cabinet_id !== void 0 ? _item$ccdf$cabinet_id : null,
|
|
75
59
|
ccdf: item.ccdf,
|
|
76
|
-
target_door_finish_id: (_doorStyle$
|
|
60
|
+
target_door_finish_id: (_doorStyle$id2 = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id2 !== void 0 ? _doorStyle$id2 : null,
|
|
77
61
|
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,
|
|
78
62
|
scene_cabinet_id: item.id
|
|
79
63
|
});
|
|
@@ -110,7 +94,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
110
94
|
// result is ccdf_list
|
|
111
95
|
function () {
|
|
112
96
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
113
|
-
var _result$ccdf_list, _doorStyle$
|
|
97
|
+
var _result$ccdf_list, _doorStyle$id, _result$molding_ccdf_;
|
|
114
98
|
var mappedCabinetDefinitionList, rt;
|
|
115
99
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
116
100
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -128,7 +112,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
128
112
|
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
129
113
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
130
114
|
// Use request door_finish_id (doorStyle.id) as the source of truth for door_finish_id.
|
|
131
|
-
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$
|
|
115
|
+
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);
|
|
132
116
|
props.itemsActions.setMoldingsCCDF((_result$molding_ccdf_ = result === null || result === void 0 ? void 0 : result.molding_ccdf_list) !== null && _result$molding_ccdf_ !== void 0 ? _result$molding_ccdf_ : [], applyScope);
|
|
133
117
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
134
118
|
case 2:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
3
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
4
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
5
|
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; }
|
|
@@ -7,19 +8,21 @@ import { convert } from "../../utils/convert-units-lite";
|
|
|
7
8
|
import { INTERNAL_EVENT_ITEMS_CATALOG } from "../../constants";
|
|
8
9
|
import { Scene, State } from "../../models";
|
|
9
10
|
import { asyncPool } from "../../shared/concurrency/async-pool";
|
|
11
|
+
import { prepareMoldingCCDFList } from "./handleExternalEvent.util";
|
|
12
|
+
import { isEmpty } from "../../components/viewer2d/utils";
|
|
10
13
|
export function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
11
14
|
return _handleLoadProjectEvent.apply(this, arguments);
|
|
12
15
|
}
|
|
13
16
|
function _handleLoadProjectEvent() {
|
|
14
17
|
_handleLoadProjectEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(props, state, evt, mapFromCCDFToCDS, updateProjectWithCDSList, ccdfMapper, mergeSameElements, addItemToCatalog) {
|
|
15
|
-
var layerName, _evt$payload$layers$l, _evt$payload, _state$catalog, ccdf_list, items, newScene, tempState, _props$onInternalEven;
|
|
18
|
+
var layerName, _evt$payload$layers$l, _evt$payload, _state$catalog, ccdf_list, molding_ccdf_list, items, newScene, tempState, _props$onInternalEven;
|
|
16
19
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
17
20
|
while (1) switch (_context2.prev = _context2.next) {
|
|
18
21
|
case 0:
|
|
19
22
|
layerName = 'layer-1';
|
|
20
23
|
if (evt !== null && evt !== void 0 && evt.payload) {
|
|
21
24
|
// prepare item data request
|
|
22
|
-
ccdf_list = [];
|
|
25
|
+
ccdf_list = [], molding_ccdf_list = [];
|
|
23
26
|
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 : {};
|
|
24
27
|
Object.keys(items).forEach(function (k) {
|
|
25
28
|
var _it$properties, _it$properties2, _it$properties3;
|
|
@@ -43,6 +46,7 @@ function _handleLoadProjectEvent() {
|
|
|
43
46
|
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,
|
|
44
47
|
scene_cabinet_id: it.id
|
|
45
48
|
});
|
|
49
|
+
if (!isEmpty(it.doorStyle) && !isEmpty(it.molding)) molding_ccdf_list.push.apply(molding_ccdf_list, _toConsumableArray(prepareMoldingCCDFList(it.doorStyle, it.molding)));
|
|
46
50
|
}
|
|
47
51
|
});
|
|
48
52
|
newScene = new Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
|
|
@@ -55,7 +59,8 @@ function _handleLoadProjectEvent() {
|
|
|
55
59
|
type: INTERNAL_EVENT_ITEMS_CATALOG,
|
|
56
60
|
value: {
|
|
57
61
|
event_type: 'load_project',
|
|
58
|
-
ccdf_list: ccdf_list
|
|
62
|
+
ccdf_list: ccdf_list,
|
|
63
|
+
molding_ccdf_list: molding_ccdf_list
|
|
59
64
|
}
|
|
60
65
|
}, /*#__PURE__*/function () {
|
|
61
66
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
|
|
@@ -99,6 +104,7 @@ function _handleLoadProjectEvent() {
|
|
|
99
104
|
});
|
|
100
105
|
case 1:
|
|
101
106
|
props.projectActions.loadProject(evt.payload);
|
|
107
|
+
props.itemsActions.setMoldingsCCDF(result === null || result === void 0 ? void 0 : result.molding_ccdf_list, 'all');
|
|
102
108
|
case 2:
|
|
103
109
|
case "end":
|
|
104
110
|
return _context.stop();
|
|
@@ -13,7 +13,7 @@ function _handleSetMolding() {
|
|
|
13
13
|
_context.next = 1;
|
|
14
14
|
return loadMoldingSvg(moldingInfo);
|
|
15
15
|
case 1:
|
|
16
|
-
props.itemsActions.setMolding(moldingInfo, isGlobal);
|
|
16
|
+
props.itemsActions.setMolding(moldingInfo, isGlobal, props.onInternalEvent);
|
|
17
17
|
case 2:
|
|
18
18
|
case "end":
|
|
19
19
|
return _context.stop();
|
|
@@ -109,7 +109,7 @@ export default function (state, action) {
|
|
|
109
109
|
state = stateHistoryPush(state).updatedState;
|
|
110
110
|
return Item.setCounterTop(state, action.counterTop).updatedState;
|
|
111
111
|
case SET_MOLDING:
|
|
112
|
-
return Item.setMolding(state, action.molding, action.isAll).updatedState;
|
|
112
|
+
return Item.setMolding(state, action.molding, action.isAll, action.onInternalEvent).updatedState;
|
|
113
113
|
case UPDATE_MOLDING:
|
|
114
114
|
return Item.updateMolding(state).updatedState;
|
|
115
115
|
case SET_WALL_COLOR:
|
package/es/utils/molding.js
CHANGED
|
@@ -699,97 +699,6 @@ function getTrimmedContourLineSegs(lineSegs, otherLines, cnt) {
|
|
|
699
699
|
return [];
|
|
700
700
|
}
|
|
701
701
|
}
|
|
702
|
-
export function getLinesFromItems(moldingGroup, layer, catalog) {
|
|
703
|
-
var allLineRects = GeometryUtils.buildRectFromLines(layer, GeometryUtils.getAllLines(layer));
|
|
704
|
-
var items = _toConsumableArray(moldingGroup.items);
|
|
705
|
-
var MGlines = getLinesOfItem(items[0], allLineRects, catalog);
|
|
706
|
-
items = sortItemsByDistance(items, items[0]);
|
|
707
|
-
var _loop7 = function _loop7() {
|
|
708
|
-
var itemLines = getLinesOfItem(items[i], allLineRects, catalog);
|
|
709
|
-
var temp_MGLines = [];
|
|
710
|
-
MGlines.forEach(function (line) {
|
|
711
|
-
var idx = itemLines.findIndex(function (itemLine) {
|
|
712
|
-
return isLinesOverlapped(line, itemLine);
|
|
713
|
-
});
|
|
714
|
-
var curItemLine = itemLines[idx];
|
|
715
|
-
if (idx > -1) {
|
|
716
|
-
if (!(GeometryUtils.samePoints(line[0], curItemLine[0]) && GeometryUtils.samePoints(line[1], curItemLine[1]) || GeometryUtils.samePoints(line[0], curItemLine[1]) && GeometryUtils.samePoints(line[1], curItemLine[0]))) {
|
|
717
|
-
var MGLine = mergeOverlappedLines(line, curItemLine);
|
|
718
|
-
temp_MGLines.push(MGLine);
|
|
719
|
-
}
|
|
720
|
-
itemLines.splice(idx, 1);
|
|
721
|
-
} else {
|
|
722
|
-
temp_MGLines.push(line);
|
|
723
|
-
}
|
|
724
|
-
});
|
|
725
|
-
itemLines.forEach(function (itemLine) {
|
|
726
|
-
return temp_MGLines.push(itemLine);
|
|
727
|
-
});
|
|
728
|
-
MGlines = [].concat(temp_MGLines);
|
|
729
|
-
};
|
|
730
|
-
for (var i = 1; i < items.length; i++) {
|
|
731
|
-
_loop7();
|
|
732
|
-
}
|
|
733
|
-
// return MGlines;
|
|
734
|
-
var snapped_other_items = layer.items.toArray().filter(function (item) {
|
|
735
|
-
if (items.some(function (it) {
|
|
736
|
-
return item.id === it.id;
|
|
737
|
-
})) return false;
|
|
738
|
-
return isItemSnappedGroup(item, items);
|
|
739
|
-
});
|
|
740
|
-
snapped_other_items.forEach(function (item) {
|
|
741
|
-
var itemAltitude = item.properties.get('altitude').get('_length');
|
|
742
|
-
var itemAltitudeUnit = item.properties.get('altitude').get('_unit');
|
|
743
|
-
itemAltitude = convert(itemAltitude).from(itemAltitudeUnit).to('cm');
|
|
744
|
-
var itemHeight = item.properties.get('height').get('_length');
|
|
745
|
-
var itemHeightUnit = item.properties.get('height').get('_unit');
|
|
746
|
-
itemHeight = convert(itemHeight).from(itemHeightUnit).to('cm');
|
|
747
|
-
var mgroupAltitude = items[0].properties.get('altitude').get('_length');
|
|
748
|
-
var mgroupAltitudeUnit = items[0].properties.get('altitude').get('_unit');
|
|
749
|
-
mgroupAltitude = convert(mgroupAltitude).from(mgroupAltitudeUnit).to('cm');
|
|
750
|
-
var mgroupHeight = items[0].properties.get('height').get('_length');
|
|
751
|
-
var mgroupHeightUnit = items[0].properties.get('height').get('_unit');
|
|
752
|
-
mgroupHeight = convert(mgroupHeight).from(mgroupHeightUnit).to('cm');
|
|
753
|
-
var flag = false;
|
|
754
|
-
switch (moldingGroup.location_type) {
|
|
755
|
-
case TOP_MOLDING_LOCATION:
|
|
756
|
-
flag = itemAltitude + itemHeight > mgroupAltitude + mgroupHeight;
|
|
757
|
-
break;
|
|
758
|
-
case MIDDLE_MOLDING_LOCATION:
|
|
759
|
-
flag = true;
|
|
760
|
-
break;
|
|
761
|
-
case BOTTOM_MOLDING_LOCATION:
|
|
762
|
-
flag = itemAltitude < mgroupAltitude;
|
|
763
|
-
break;
|
|
764
|
-
}
|
|
765
|
-
if (item.category !== 'cabinet' || ![BASE_CABINET_LAYOUTPOS, WALL_CABINET_LAYOUTPOS, TALL_CABINET_LAYOUTPOS].includes(item.layoutpos)) flag = true;
|
|
766
|
-
if (flag) {
|
|
767
|
-
var itemLines = getLinesOfItem(item, allLineRects, catalog);
|
|
768
|
-
var temp_MGLines = [];
|
|
769
|
-
MGlines.forEach(function (mgl) {
|
|
770
|
-
var idx = itemLines.findIndex(function (itl) {
|
|
771
|
-
return isLinesOverlapped(mgl, itl);
|
|
772
|
-
});
|
|
773
|
-
var curITL = itemLines[idx];
|
|
774
|
-
if (idx > -1) {
|
|
775
|
-
if (getDelta(mgl[0], mgl[1], curITL[1], curITL[0]) < EPSILON || getDelta(mgl[0], mgl[1], curITL[0], curITL[1]) < EPSILON) {
|
|
776
|
-
if (GeometryUtils.verticesDistance(mgl[0], mgl[1]) > GeometryUtils.verticesDistance(curITL[0], curITL[1])) {
|
|
777
|
-
var MGLine = mergeOverlappedLines(mgl, curITL);
|
|
778
|
-
temp_MGLines.push(MGLine);
|
|
779
|
-
}
|
|
780
|
-
itemLines.splice(idx, 1);
|
|
781
|
-
} else {
|
|
782
|
-
temp_MGLines.push(mgl);
|
|
783
|
-
}
|
|
784
|
-
} else {
|
|
785
|
-
temp_MGLines.push(mgl);
|
|
786
|
-
}
|
|
787
|
-
});
|
|
788
|
-
MGlines = [].concat(temp_MGLines);
|
|
789
|
-
}
|
|
790
|
-
});
|
|
791
|
-
return MGlines;
|
|
792
|
-
}
|
|
793
702
|
function getMDPoints(newMD) {
|
|
794
703
|
if (newMD.lines.length < 1) return _objectSpread(_objectSpread({}, newMD), {}, {
|
|
795
704
|
pointGroups: []
|
|
@@ -839,7 +748,7 @@ function getMDPoints(newMD) {
|
|
|
839
748
|
var pointGroups = [[]];
|
|
840
749
|
var flag = 1;
|
|
841
750
|
var i = 0;
|
|
842
|
-
var
|
|
751
|
+
var _loop7 = function _loop7() {
|
|
843
752
|
if (pointGroups[i].length === 0) {
|
|
844
753
|
pointGroups[i].push(new Three.Vector2(MDlines[0][0].x - cPos.x, MDlines[0][0].y - cPos.y), new Three.Vector2(MDlines[0][1].x - cPos.x, MDlines[0][1].y - cPos.y));
|
|
845
754
|
MDlines.splice(0, 1);
|
|
@@ -904,7 +813,7 @@ function getMDPoints(newMD) {
|
|
|
904
813
|
}
|
|
905
814
|
};
|
|
906
815
|
while (MDlines.length !== 0) {
|
|
907
|
-
|
|
816
|
+
_loop7();
|
|
908
817
|
}
|
|
909
818
|
var z = newMD.items[0].properties.get('altitude').get('_length');
|
|
910
819
|
var zUnit = newMD.items[0].properties.get('altitude').get('_unit') || 'cm';
|
|
@@ -1014,14 +923,14 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLe
|
|
|
1014
923
|
// filter the real molding line segments
|
|
1015
924
|
var removeLineIds = []; // remove the line that fully overlapped to other line
|
|
1016
925
|
var newLines = []; // new countour line segment that except the overlapped part
|
|
1017
|
-
var
|
|
926
|
+
var _loop8 = function _loop8(i) {
|
|
1018
927
|
var srcLine = {
|
|
1019
928
|
x1: moldingLines[i].line[0].x,
|
|
1020
929
|
y1: moldingLines[i].line[0].y,
|
|
1021
930
|
x2: moldingLines[i].line[1].x,
|
|
1022
931
|
y2: moldingLines[i].line[1].y
|
|
1023
932
|
};
|
|
1024
|
-
var
|
|
933
|
+
var _loop0 = function _loop0(_j) {
|
|
1025
934
|
if (i === _j) return 0; // continue
|
|
1026
935
|
if (Math.abs(moldingLines[i].z - moldingLines[_j].z) > EPSILON) return 0; // continue
|
|
1027
936
|
var destLine = {
|
|
@@ -1056,13 +965,13 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLe
|
|
|
1056
965
|
},
|
|
1057
966
|
_ret4;
|
|
1058
967
|
for (var _j = 0; _j < moldingLines.length; _j++) {
|
|
1059
|
-
_ret4 =
|
|
968
|
+
_ret4 = _loop0(_j);
|
|
1060
969
|
if (_ret4 === 0) continue;
|
|
1061
970
|
if (_ret4 === 1) break;
|
|
1062
971
|
}
|
|
1063
972
|
};
|
|
1064
973
|
for (var i = 0; i < moldingLines.length; i++) {
|
|
1065
|
-
|
|
974
|
+
_loop8(i);
|
|
1066
975
|
}
|
|
1067
976
|
moldingLines = moldingLines.filter(function (line, idx) {
|
|
1068
977
|
return !removeLineIds.some(function (id) {
|
|
@@ -1093,7 +1002,7 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLe
|
|
|
1093
1002
|
// console.log('moldingLines: ', moldingLines);
|
|
1094
1003
|
|
|
1095
1004
|
// make molding data with grouping molding & doorStyle
|
|
1096
|
-
var
|
|
1005
|
+
var _loop9 = function _loop9() {
|
|
1097
1006
|
var ml = moldingLines[k];
|
|
1098
1007
|
var mlLength = ml.molding.name === TOE_KICK_MOLDING ? ml.inchWidth : convert(GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1099
1008
|
var idx = moldingData.findIndex(function (v) {
|
|
@@ -1110,7 +1019,7 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLe
|
|
|
1110
1019
|
}
|
|
1111
1020
|
};
|
|
1112
1021
|
for (var k = 0; k < moldingLines.length; k++) {
|
|
1113
|
-
|
|
1022
|
+
_loop9();
|
|
1114
1023
|
}
|
|
1115
1024
|
// console.log('moldingData: ', moldingData);
|
|
1116
1025
|
|
|
@@ -326,10 +326,12 @@ function setWallColor(texture) {
|
|
|
326
326
|
};
|
|
327
327
|
}
|
|
328
328
|
function setMolding(texture, isAll) {
|
|
329
|
+
var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
329
330
|
return {
|
|
330
331
|
type: _constants.SET_MOLDING,
|
|
331
332
|
molding: texture,
|
|
332
|
-
isAll: isAll
|
|
333
|
+
isAll: isAll,
|
|
334
|
+
onInternalEvent: onInternalEvent
|
|
333
335
|
};
|
|
334
336
|
}
|
|
335
337
|
function updateMolding() {
|
package/lib/class/item.js
CHANGED
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
@@ -23,6 +25,7 @@ var _immutable2 = require("../shared/objects/immutable");
|
|
|
23
25
|
var _cabinetMirror = require("../shared/domain/cabinet-mirror");
|
|
24
26
|
var _cabinetWarning = require("../shared/domain/cabinet-warning");
|
|
25
27
|
var _ccdfToCDSMapper = require("../mappings/external-events/mappers/ccdfToCDSMapper");
|
|
28
|
+
var _handleExternalEvent = require("../events/external/handleExternalEvent.util");
|
|
26
29
|
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; }
|
|
27
30
|
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; }
|
|
28
31
|
var allItemRect;
|
|
@@ -317,7 +320,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
317
320
|
updatedState: state
|
|
318
321
|
};
|
|
319
322
|
var idSet = null;
|
|
320
|
-
if (applyScope === _constants.DOORSTYLE_SCOPE_SINGLE) {
|
|
323
|
+
if (applyScope === _constants.DOORSTYLE_SCOPE_SINGLE || applyScope === false) {
|
|
321
324
|
var selectedItemIds = state.getIn(['scene', 'layers', layerID, 'selected', 'items']).toJS();
|
|
322
325
|
idSet = new Set(selectedItemIds);
|
|
323
326
|
}
|
|
@@ -337,14 +340,15 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
337
340
|
layer.items.forEach(function (it) {
|
|
338
341
|
var _idSet2;
|
|
339
342
|
// if (isEmpty(it?.molding)) return;
|
|
340
|
-
var should = applyScope === _constants.DOORSTYLE_SCOPE_ALL ? true : (_idSet2 = idSet) === null || _idSet2 === void 0 ? void 0 : _idSet2.has(it.id);
|
|
343
|
+
var should = applyScope === _constants.DOORSTYLE_SCOPE_ALL || applyScope === true ? true : (_idSet2 = idSet) === null || _idSet2 === void 0 ? void 0 : _idSet2.has(it.id);
|
|
341
344
|
if (!should) return;
|
|
342
345
|
var itemMoldings = it.molding;
|
|
346
|
+
var itemDoorFinish = it.doorStyle;
|
|
343
347
|
var updatedItemMoldings = [];
|
|
344
348
|
itemMoldings === null || itemMoldings === void 0 || itemMoldings.forEach(function (md) {
|
|
345
349
|
var itemMoldingID = md.itemID;
|
|
346
350
|
var picked = ccdf_list.find(function (c) {
|
|
347
|
-
return (c === null || c === void 0 ? void 0 : c.cabinet_id) && c.cabinet_id === itemMoldingID;
|
|
351
|
+
return (c === null || c === void 0 ? void 0 : c.cabinet_id) && (c === null || c === void 0 ? void 0 : c.door_finish_id) && c.cabinet_id === itemMoldingID && c.door_finish_id === (itemDoorFinish === null || itemDoorFinish === void 0 ? void 0 : itemDoorFinish.id);
|
|
348
352
|
});
|
|
349
353
|
if (!picked) return;
|
|
350
354
|
md.ccdf = picked;
|
|
@@ -1678,6 +1682,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
1678
1682
|
}, {
|
|
1679
1683
|
key: "setMolding",
|
|
1680
1684
|
value: function setMolding(state, molding, isAll) {
|
|
1685
|
+
var _this4 = this;
|
|
1686
|
+
var onInternalEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1681
1687
|
var _state14 = state,
|
|
1682
1688
|
scene = _state14.scene;
|
|
1683
1689
|
var layerID = scene.get('selectedLayer');
|
|
@@ -1761,6 +1767,60 @@ var Item = exports["default"] = /*#__PURE__*/function () {
|
|
|
1761
1767
|
});
|
|
1762
1768
|
}
|
|
1763
1769
|
}
|
|
1770
|
+
var layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1771
|
+
var allItems = state.getIn(['scene', 'layers', layerId, 'items']).toJS();
|
|
1772
|
+
var targetItems = [],
|
|
1773
|
+
molding_ccdf_list = [];
|
|
1774
|
+
switch (isAll) {
|
|
1775
|
+
case true:
|
|
1776
|
+
targetItems = Object.values(allItems);
|
|
1777
|
+
break;
|
|
1778
|
+
case false:
|
|
1779
|
+
targetItems = Object.values(allItems.filter(function (item) {
|
|
1780
|
+
var _item$molding;
|
|
1781
|
+
return !(0, _utils.isEmpty)(item === null || item === void 0 || (_item$molding = item.molding) === null || _item$molding === void 0 ? void 0 : _item$molding.find(function (md) {
|
|
1782
|
+
return md.itemID === molding.itemID;
|
|
1783
|
+
}));
|
|
1784
|
+
}));
|
|
1785
|
+
default:
|
|
1786
|
+
break;
|
|
1787
|
+
}
|
|
1788
|
+
for (var i = 0; i < targetItems.length; i++) {
|
|
1789
|
+
var _item$molding2;
|
|
1790
|
+
var item = targetItems[i];
|
|
1791
|
+
molding_ccdf_list.push.apply(molding_ccdf_list, (0, _toConsumableArray2["default"])((0, _handleExternalEvent.prepareMoldingCCDFList)(item === null || item === void 0 ? void 0 : item.doorStyle, item === null || item === void 0 || (_item$molding2 = item.molding) === null || _item$molding2 === void 0 ? void 0 : _item$molding2.filter(function (md) {
|
|
1792
|
+
return md.itemID === molding.itemID;
|
|
1793
|
+
}))));
|
|
1794
|
+
}
|
|
1795
|
+
if (molding_ccdf_list.length > 0) {
|
|
1796
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1797
|
+
type: _constants.INTERNAL_EVENT_ITEMS_CATALOG,
|
|
1798
|
+
value: {
|
|
1799
|
+
event_type: 'change_door_style',
|
|
1800
|
+
ccdf_list: [],
|
|
1801
|
+
molding_ccdf_list: molding_ccdf_list
|
|
1802
|
+
}
|
|
1803
|
+
},
|
|
1804
|
+
/*#__PURE__*/
|
|
1805
|
+
// result is ccdf_list
|
|
1806
|
+
function () {
|
|
1807
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
1808
|
+
var _this4$setMoldingsCCD, _result$molding_ccdf_;
|
|
1809
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
1810
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1811
|
+
case 0:
|
|
1812
|
+
state = (_this4$setMoldingsCCD = _this4.setMoldingsCCDF(state, (_result$molding_ccdf_ = result === null || result === void 0 ? void 0 : result.molding_ccdf_list) !== null && _result$molding_ccdf_ !== void 0 ? _result$molding_ccdf_ : [], isAll)) === null || _this4$setMoldingsCCD === void 0 ? void 0 : _this4$setMoldingsCCD.updatedState;
|
|
1813
|
+
case 1:
|
|
1814
|
+
case "end":
|
|
1815
|
+
return _context.stop();
|
|
1816
|
+
}
|
|
1817
|
+
}, _callee);
|
|
1818
|
+
}));
|
|
1819
|
+
return function (_x) {
|
|
1820
|
+
return _ref.apply(this, arguments);
|
|
1821
|
+
};
|
|
1822
|
+
}());
|
|
1823
|
+
}
|
|
1764
1824
|
state = state.merge({
|
|
1765
1825
|
sceneHistory: (0, _history.historyPush)(state.sceneHistory, state.scene)
|
|
1766
1826
|
});
|
|
@@ -9,6 +9,7 @@ exports.getElement = getElement;
|
|
|
9
9
|
exports.getPlannerStateFromProps = getPlannerStateFromProps;
|
|
10
10
|
exports.loadMoldingSvg = loadMoldingSvg;
|
|
11
11
|
exports.mergeSameElements = mergeSameElements;
|
|
12
|
+
exports.prepareMoldingCCDFList = prepareMoldingCCDFList;
|
|
12
13
|
exports.updateAttributeOfSelectedElement = updateAttributeOfSelectedElement;
|
|
13
14
|
exports.updatePropertyOfSelectedElement = updatePropertyOfSelectedElement;
|
|
14
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -1090,4 +1091,21 @@ function mergeSameElements(projectItemsCatalog) {
|
|
|
1090
1091
|
_loop(i);
|
|
1091
1092
|
}
|
|
1092
1093
|
return result;
|
|
1094
|
+
}
|
|
1095
|
+
function prepareMoldingCCDFList(doorStyle, moldingData) {
|
|
1096
|
+
var moldingCCDFs = [];
|
|
1097
|
+
for (var i = 0; i < moldingData.length; i++) {
|
|
1098
|
+
var _molding$ccdf$catalog, _molding$ccdf, _molding$ccdf$cabinet, _molding$ccdf2, _doorStyle$id, _molding$long_name;
|
|
1099
|
+
var molding = moldingData[i];
|
|
1100
|
+
moldingCCDFs.push({
|
|
1101
|
+
sizeinfo: molding.sizeinfo,
|
|
1102
|
+
catalog_cabinet_sku: (_molding$ccdf$catalog = molding === null || molding === void 0 || (_molding$ccdf = molding.ccdf) === null || _molding$ccdf === void 0 ? void 0 : _molding$ccdf.catalog_cabinet_sku) !== null && _molding$ccdf$catalog !== void 0 ? _molding$ccdf$catalog : molding.sku_number,
|
|
1103
|
+
cabinet_id: (_molding$ccdf$cabinet = molding === null || molding === void 0 || (_molding$ccdf2 = molding.ccdf) === null || _molding$ccdf2 === void 0 ? void 0 : _molding$ccdf2.cabinet_id) !== null && _molding$ccdf$cabinet !== void 0 ? _molding$ccdf$cabinet : molding.itemID,
|
|
1104
|
+
ccdf: molding.ccdf,
|
|
1105
|
+
target_door_finish_id: (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null,
|
|
1106
|
+
long_name: (_molding$long_name = molding === null || molding === void 0 ? void 0 : molding.long_name) !== null && _molding$long_name !== void 0 ? _molding$long_name : null,
|
|
1107
|
+
id: molding.itemID
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1110
|
+
return moldingCCDFs;
|
|
1093
1111
|
}
|
|
@@ -8,23 +8,7 @@ exports.handleChangeDoorStyleEvent = handleChangeDoorStyleEvent;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _asyncPool = require("../../shared/concurrency/async-pool");
|
|
11
|
-
|
|
12
|
-
var moldingCCDFs = [];
|
|
13
|
-
for (var i = 0; i < moldingData.length; i++) {
|
|
14
|
-
var _molding$ccdf$catalog, _molding$ccdf, _molding$ccdf$cabinet, _molding$ccdf2, _doorStyle$id, _molding$long_name;
|
|
15
|
-
var molding = moldingData[i];
|
|
16
|
-
moldingCCDFs.push({
|
|
17
|
-
sizeinfo: molding.sizeinfo,
|
|
18
|
-
catalog_cabinet_sku: (_molding$ccdf$catalog = molding === null || molding === void 0 || (_molding$ccdf = molding.ccdf) === null || _molding$ccdf === void 0 ? void 0 : _molding$ccdf.catalog_cabinet_sku) !== null && _molding$ccdf$catalog !== void 0 ? _molding$ccdf$catalog : molding.sku_number,
|
|
19
|
-
cabinet_id: (_molding$ccdf$cabinet = molding === null || molding === void 0 || (_molding$ccdf2 = molding.ccdf) === null || _molding$ccdf2 === void 0 ? void 0 : _molding$ccdf2.cabinet_id) !== null && _molding$ccdf$cabinet !== void 0 ? _molding$ccdf$cabinet : molding.itemID,
|
|
20
|
-
ccdf: molding.ccdf,
|
|
21
|
-
target_door_finish_id: (_doorStyle$id = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id !== void 0 ? _doorStyle$id : null,
|
|
22
|
-
long_name: (_molding$long_name = molding === null || molding === void 0 ? void 0 : molding.long_name) !== null && _molding$long_name !== void 0 ? _molding$long_name : null,
|
|
23
|
-
id: molding.itemID
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return moldingCCDFs;
|
|
27
|
-
}
|
|
11
|
+
var _handleExternalEvent = require("./handleExternalEvent.util");
|
|
28
12
|
function handleChangeDoorStyleEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10) {
|
|
29
13
|
return _handleChangeDoorStyleEvent.apply(this, arguments);
|
|
30
14
|
}
|
|
@@ -66,7 +50,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
66
50
|
case 4:
|
|
67
51
|
ccdf_list = [];
|
|
68
52
|
_loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
|
|
69
|
-
var item, _item$ccdf$catalog_ca, _item$ccdf, _item$ccdf$cabinet_id, _item$ccdf2, _doorStyle$
|
|
53
|
+
var item, _item$ccdf$catalog_ca, _item$ccdf, _item$ccdf$cabinet_id, _item$ccdf2, _doorStyle$id2, _item$long_name;
|
|
70
54
|
return _regenerator["default"].wrap(function (_context2) {
|
|
71
55
|
while (1) switch (_context2.prev = _context2.next) {
|
|
72
56
|
case 0:
|
|
@@ -80,7 +64,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
80
64
|
catalog_cabinet_sku: (_item$ccdf$catalog_ca = item === null || item === void 0 || (_item$ccdf = item.ccdf) === null || _item$ccdf === void 0 ? void 0 : _item$ccdf.catalog_cabinet_sku) !== null && _item$ccdf$catalog_ca !== void 0 ? _item$ccdf$catalog_ca : item.sku_number,
|
|
81
65
|
cabinet_id: (_item$ccdf$cabinet_id = item === null || item === void 0 || (_item$ccdf2 = item.ccdf) === null || _item$ccdf2 === void 0 ? void 0 : _item$ccdf2.cabinet_id) !== null && _item$ccdf$cabinet_id !== void 0 ? _item$ccdf$cabinet_id : null,
|
|
82
66
|
ccdf: item.ccdf,
|
|
83
|
-
target_door_finish_id: (_doorStyle$
|
|
67
|
+
target_door_finish_id: (_doorStyle$id2 = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id2 !== void 0 ? _doorStyle$id2 : null,
|
|
84
68
|
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,
|
|
85
69
|
scene_cabinet_id: item.id
|
|
86
70
|
});
|
|
@@ -103,7 +87,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
103
87
|
_context3.next = 5;
|
|
104
88
|
break;
|
|
105
89
|
case 7:
|
|
106
|
-
moldingCCDFList = prepareMoldingCCDFList(doorStyle, moldingData);
|
|
90
|
+
moldingCCDFList = (0, _handleExternalEvent.prepareMoldingCCDFList)(doorStyle, moldingData);
|
|
107
91
|
if (ccdf_list.length > 0) {
|
|
108
92
|
(_props$onInternalEven = props.onInternalEvent) === null || _props$onInternalEven === void 0 || _props$onInternalEven.call(props, {
|
|
109
93
|
type: INTERNAL_EVENT_ITEMS_CATALOG,
|
|
@@ -117,7 +101,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
117
101
|
// result is ccdf_list
|
|
118
102
|
function () {
|
|
119
103
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
120
|
-
var _result$ccdf_list, _doorStyle$
|
|
104
|
+
var _result$ccdf_list, _doorStyle$id, _result$molding_ccdf_;
|
|
121
105
|
var mappedCabinetDefinitionList, rt;
|
|
122
106
|
return _regenerator["default"].wrap(function (_context) {
|
|
123
107
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -135,7 +119,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
135
119
|
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
136
120
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
137
121
|
// Use request door_finish_id (doorStyle.id) as the source of truth for door_finish_id.
|
|
138
|
-
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$
|
|
122
|
+
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);
|
|
139
123
|
props.itemsActions.setMoldingsCCDF((_result$molding_ccdf_ = result === null || result === void 0 ? void 0 : result.molding_ccdf_list) !== null && _result$molding_ccdf_ !== void 0 ? _result$molding_ccdf_ : [], applyScope);
|
|
140
124
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
141
125
|
case 2:
|
|
@@ -7,11 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.handleLoadProjectEvent = handleLoadProjectEvent;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
12
|
var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
12
13
|
var _constants = require("../../constants");
|
|
13
14
|
var _models = require("../../models");
|
|
14
15
|
var _asyncPool = require("../../shared/concurrency/async-pool");
|
|
16
|
+
var _handleExternalEvent = require("./handleExternalEvent.util");
|
|
17
|
+
var _utils = require("../../components/viewer2d/utils");
|
|
15
18
|
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
19
|
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
20
|
function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
@@ -19,14 +22,14 @@ function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
|
19
22
|
}
|
|
20
23
|
function _handleLoadProjectEvent() {
|
|
21
24
|
_handleLoadProjectEvent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(props, state, evt, mapFromCCDFToCDS, updateProjectWithCDSList, ccdfMapper, mergeSameElements, addItemToCatalog) {
|
|
22
|
-
var layerName, _evt$payload$layers$l, _evt$payload, _state$catalog, ccdf_list, items, newScene, tempState, _props$onInternalEven;
|
|
25
|
+
var layerName, _evt$payload$layers$l, _evt$payload, _state$catalog, ccdf_list, molding_ccdf_list, items, newScene, tempState, _props$onInternalEven;
|
|
23
26
|
return _regenerator["default"].wrap(function (_context2) {
|
|
24
27
|
while (1) switch (_context2.prev = _context2.next) {
|
|
25
28
|
case 0:
|
|
26
29
|
layerName = 'layer-1';
|
|
27
30
|
if (evt !== null && evt !== void 0 && evt.payload) {
|
|
28
31
|
// prepare item data request
|
|
29
|
-
ccdf_list = [];
|
|
32
|
+
ccdf_list = [], molding_ccdf_list = [];
|
|
30
33
|
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 : {};
|
|
31
34
|
Object.keys(items).forEach(function (k) {
|
|
32
35
|
var _it$properties, _it$properties2, _it$properties3;
|
|
@@ -50,6 +53,7 @@ function _handleLoadProjectEvent() {
|
|
|
50
53
|
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,
|
|
51
54
|
scene_cabinet_id: it.id
|
|
52
55
|
});
|
|
56
|
+
if (!(0, _utils.isEmpty)(it.doorStyle) && !(0, _utils.isEmpty)(it.molding)) molding_ccdf_list.push.apply(molding_ccdf_list, (0, _toConsumableArray2["default"])((0, _handleExternalEvent.prepareMoldingCCDFList)(it.doorStyle, it.molding)));
|
|
53
57
|
}
|
|
54
58
|
});
|
|
55
59
|
newScene = new _models.Scene(evt === null || evt === void 0 ? void 0 : evt.payload);
|
|
@@ -62,7 +66,8 @@ function _handleLoadProjectEvent() {
|
|
|
62
66
|
type: _constants.INTERNAL_EVENT_ITEMS_CATALOG,
|
|
63
67
|
value: {
|
|
64
68
|
event_type: 'load_project',
|
|
65
|
-
ccdf_list: ccdf_list
|
|
69
|
+
ccdf_list: ccdf_list,
|
|
70
|
+
molding_ccdf_list: molding_ccdf_list
|
|
66
71
|
}
|
|
67
72
|
}, /*#__PURE__*/function () {
|
|
68
73
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
@@ -106,6 +111,7 @@ function _handleLoadProjectEvent() {
|
|
|
106
111
|
});
|
|
107
112
|
case 1:
|
|
108
113
|
props.projectActions.loadProject(evt.payload);
|
|
114
|
+
props.itemsActions.setMoldingsCCDF(result === null || result === void 0 ? void 0 : result.molding_ccdf_list, 'all');
|
|
109
115
|
case 2:
|
|
110
116
|
case "end":
|
|
111
117
|
return _context.stop();
|
|
@@ -20,7 +20,7 @@ function _handleSetMolding() {
|
|
|
20
20
|
_context.next = 1;
|
|
21
21
|
return loadMoldingSvg(moldingInfo);
|
|
22
22
|
case 1:
|
|
23
|
-
props.itemsActions.setMolding(moldingInfo, isGlobal);
|
|
23
|
+
props.itemsActions.setMolding(moldingInfo, isGlobal, props.onInternalEvent);
|
|
24
24
|
case 2:
|
|
25
25
|
case "end":
|
|
26
26
|
return _context.stop();
|
|
@@ -112,7 +112,7 @@ function _default(state, action) {
|
|
|
112
112
|
state = stateHistoryPush(state).updatedState;
|
|
113
113
|
return _export.Item.setCounterTop(state, action.counterTop).updatedState;
|
|
114
114
|
case _constants.SET_MOLDING:
|
|
115
|
-
return _export.Item.setMolding(state, action.molding, action.isAll).updatedState;
|
|
115
|
+
return _export.Item.setMolding(state, action.molding, action.isAll, action.onInternalEvent).updatedState;
|
|
116
116
|
case _constants.UPDATE_MOLDING:
|
|
117
117
|
return _export.Item.updateMolding(state).updatedState;
|
|
118
118
|
case _constants.SET_WALL_COLOR:
|
package/lib/utils/molding.js
CHANGED
|
@@ -9,7 +9,6 @@ exports.createMonldingGroup = createMonldingGroup;
|
|
|
9
9
|
exports.getAllMoldingGroups = getAllMoldingGroups;
|
|
10
10
|
exports.getItemGroupFromMolding = getItemGroupFromMolding;
|
|
11
11
|
exports.getItemRect = getItemRect;
|
|
12
|
-
exports.getLinesFromItems = getLinesFromItems;
|
|
13
12
|
exports.getLinesFromItems2 = getLinesFromItems2;
|
|
14
13
|
exports.getLinesOfItem = getLinesOfItem;
|
|
15
14
|
exports.getLinesOfItem2 = getLinesOfItem2;
|
|
@@ -727,97 +726,6 @@ function getTrimmedContourLineSegs(lineSegs, otherLines, cnt) {
|
|
|
727
726
|
return [];
|
|
728
727
|
}
|
|
729
728
|
}
|
|
730
|
-
function getLinesFromItems(moldingGroup, layer, catalog) {
|
|
731
|
-
var allLineRects = _export.GeometryUtils.buildRectFromLines(layer, _export.GeometryUtils.getAllLines(layer));
|
|
732
|
-
var items = (0, _toConsumableArray2["default"])(moldingGroup.items);
|
|
733
|
-
var MGlines = getLinesOfItem(items[0], allLineRects, catalog);
|
|
734
|
-
items = sortItemsByDistance(items, items[0]);
|
|
735
|
-
var _loop7 = function _loop7() {
|
|
736
|
-
var itemLines = getLinesOfItem(items[i], allLineRects, catalog);
|
|
737
|
-
var temp_MGLines = [];
|
|
738
|
-
MGlines.forEach(function (line) {
|
|
739
|
-
var idx = itemLines.findIndex(function (itemLine) {
|
|
740
|
-
return isLinesOverlapped(line, itemLine);
|
|
741
|
-
});
|
|
742
|
-
var curItemLine = itemLines[idx];
|
|
743
|
-
if (idx > -1) {
|
|
744
|
-
if (!(_export.GeometryUtils.samePoints(line[0], curItemLine[0]) && _export.GeometryUtils.samePoints(line[1], curItemLine[1]) || _export.GeometryUtils.samePoints(line[0], curItemLine[1]) && _export.GeometryUtils.samePoints(line[1], curItemLine[0]))) {
|
|
745
|
-
var MGLine = mergeOverlappedLines(line, curItemLine);
|
|
746
|
-
temp_MGLines.push(MGLine);
|
|
747
|
-
}
|
|
748
|
-
itemLines.splice(idx, 1);
|
|
749
|
-
} else {
|
|
750
|
-
temp_MGLines.push(line);
|
|
751
|
-
}
|
|
752
|
-
});
|
|
753
|
-
itemLines.forEach(function (itemLine) {
|
|
754
|
-
return temp_MGLines.push(itemLine);
|
|
755
|
-
});
|
|
756
|
-
MGlines = [].concat(temp_MGLines);
|
|
757
|
-
};
|
|
758
|
-
for (var i = 1; i < items.length; i++) {
|
|
759
|
-
_loop7();
|
|
760
|
-
}
|
|
761
|
-
// return MGlines;
|
|
762
|
-
var snapped_other_items = layer.items.toArray().filter(function (item) {
|
|
763
|
-
if (items.some(function (it) {
|
|
764
|
-
return item.id === it.id;
|
|
765
|
-
})) return false;
|
|
766
|
-
return isItemSnappedGroup(item, items);
|
|
767
|
-
});
|
|
768
|
-
snapped_other_items.forEach(function (item) {
|
|
769
|
-
var itemAltitude = item.properties.get('altitude').get('_length');
|
|
770
|
-
var itemAltitudeUnit = item.properties.get('altitude').get('_unit');
|
|
771
|
-
itemAltitude = (0, _convertUnitsLite.convert)(itemAltitude).from(itemAltitudeUnit).to('cm');
|
|
772
|
-
var itemHeight = item.properties.get('height').get('_length');
|
|
773
|
-
var itemHeightUnit = item.properties.get('height').get('_unit');
|
|
774
|
-
itemHeight = (0, _convertUnitsLite.convert)(itemHeight).from(itemHeightUnit).to('cm');
|
|
775
|
-
var mgroupAltitude = items[0].properties.get('altitude').get('_length');
|
|
776
|
-
var mgroupAltitudeUnit = items[0].properties.get('altitude').get('_unit');
|
|
777
|
-
mgroupAltitude = (0, _convertUnitsLite.convert)(mgroupAltitude).from(mgroupAltitudeUnit).to('cm');
|
|
778
|
-
var mgroupHeight = items[0].properties.get('height').get('_length');
|
|
779
|
-
var mgroupHeightUnit = items[0].properties.get('height').get('_unit');
|
|
780
|
-
mgroupHeight = (0, _convertUnitsLite.convert)(mgroupHeight).from(mgroupHeightUnit).to('cm');
|
|
781
|
-
var flag = false;
|
|
782
|
-
switch (moldingGroup.location_type) {
|
|
783
|
-
case _constants.TOP_MOLDING_LOCATION:
|
|
784
|
-
flag = itemAltitude + itemHeight > mgroupAltitude + mgroupHeight;
|
|
785
|
-
break;
|
|
786
|
-
case _constants.MIDDLE_MOLDING_LOCATION:
|
|
787
|
-
flag = true;
|
|
788
|
-
break;
|
|
789
|
-
case _constants.BOTTOM_MOLDING_LOCATION:
|
|
790
|
-
flag = itemAltitude < mgroupAltitude;
|
|
791
|
-
break;
|
|
792
|
-
}
|
|
793
|
-
if (item.category !== 'cabinet' || ![_constants.BASE_CABINET_LAYOUTPOS, _constants.WALL_CABINET_LAYOUTPOS, _constants.TALL_CABINET_LAYOUTPOS].includes(item.layoutpos)) flag = true;
|
|
794
|
-
if (flag) {
|
|
795
|
-
var itemLines = getLinesOfItem(item, allLineRects, catalog);
|
|
796
|
-
var temp_MGLines = [];
|
|
797
|
-
MGlines.forEach(function (mgl) {
|
|
798
|
-
var idx = itemLines.findIndex(function (itl) {
|
|
799
|
-
return isLinesOverlapped(mgl, itl);
|
|
800
|
-
});
|
|
801
|
-
var curITL = itemLines[idx];
|
|
802
|
-
if (idx > -1) {
|
|
803
|
-
if (getDelta(mgl[0], mgl[1], curITL[1], curITL[0]) < _constants.EPSILON || getDelta(mgl[0], mgl[1], curITL[0], curITL[1]) < _constants.EPSILON) {
|
|
804
|
-
if (_export.GeometryUtils.verticesDistance(mgl[0], mgl[1]) > _export.GeometryUtils.verticesDistance(curITL[0], curITL[1])) {
|
|
805
|
-
var MGLine = mergeOverlappedLines(mgl, curITL);
|
|
806
|
-
temp_MGLines.push(MGLine);
|
|
807
|
-
}
|
|
808
|
-
itemLines.splice(idx, 1);
|
|
809
|
-
} else {
|
|
810
|
-
temp_MGLines.push(mgl);
|
|
811
|
-
}
|
|
812
|
-
} else {
|
|
813
|
-
temp_MGLines.push(mgl);
|
|
814
|
-
}
|
|
815
|
-
});
|
|
816
|
-
MGlines = [].concat(temp_MGLines);
|
|
817
|
-
}
|
|
818
|
-
});
|
|
819
|
-
return MGlines;
|
|
820
|
-
}
|
|
821
729
|
function getMDPoints(newMD) {
|
|
822
730
|
if (newMD.lines.length < 1) return _objectSpread(_objectSpread({}, newMD), {}, {
|
|
823
731
|
pointGroups: []
|
|
@@ -867,7 +775,7 @@ function getMDPoints(newMD) {
|
|
|
867
775
|
var pointGroups = [[]];
|
|
868
776
|
var flag = 1;
|
|
869
777
|
var i = 0;
|
|
870
|
-
var
|
|
778
|
+
var _loop7 = function _loop7() {
|
|
871
779
|
if (pointGroups[i].length === 0) {
|
|
872
780
|
pointGroups[i].push(new Three.Vector2(MDlines[0][0].x - cPos.x, MDlines[0][0].y - cPos.y), new Three.Vector2(MDlines[0][1].x - cPos.x, MDlines[0][1].y - cPos.y));
|
|
873
781
|
MDlines.splice(0, 1);
|
|
@@ -932,7 +840,7 @@ function getMDPoints(newMD) {
|
|
|
932
840
|
}
|
|
933
841
|
};
|
|
934
842
|
while (MDlines.length !== 0) {
|
|
935
|
-
|
|
843
|
+
_loop7();
|
|
936
844
|
}
|
|
937
845
|
var z = newMD.items[0].properties.get('altitude').get('_length');
|
|
938
846
|
var zUnit = newMD.items[0].properties.get('altitude').get('_unit') || 'cm';
|
|
@@ -1042,14 +950,14 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLength) {
|
|
|
1042
950
|
// filter the real molding line segments
|
|
1043
951
|
var removeLineIds = []; // remove the line that fully overlapped to other line
|
|
1044
952
|
var newLines = []; // new countour line segment that except the overlapped part
|
|
1045
|
-
var
|
|
953
|
+
var _loop8 = function _loop8(i) {
|
|
1046
954
|
var srcLine = {
|
|
1047
955
|
x1: moldingLines[i].line[0].x,
|
|
1048
956
|
y1: moldingLines[i].line[0].y,
|
|
1049
957
|
x2: moldingLines[i].line[1].x,
|
|
1050
958
|
y2: moldingLines[i].line[1].y
|
|
1051
959
|
};
|
|
1052
|
-
var
|
|
960
|
+
var _loop0 = function _loop0(_j) {
|
|
1053
961
|
if (i === _j) return 0; // continue
|
|
1054
962
|
if (Math.abs(moldingLines[i].z - moldingLines[_j].z) > _constants.EPSILON) return 0; // continue
|
|
1055
963
|
var destLine = {
|
|
@@ -1084,13 +992,13 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLength) {
|
|
|
1084
992
|
},
|
|
1085
993
|
_ret4;
|
|
1086
994
|
for (var _j = 0; _j < moldingLines.length; _j++) {
|
|
1087
|
-
_ret4 =
|
|
995
|
+
_ret4 = _loop0(_j);
|
|
1088
996
|
if (_ret4 === 0) continue;
|
|
1089
997
|
if (_ret4 === 1) break;
|
|
1090
998
|
}
|
|
1091
999
|
};
|
|
1092
1000
|
for (var i = 0; i < moldingLines.length; i++) {
|
|
1093
|
-
|
|
1001
|
+
_loop8(i);
|
|
1094
1002
|
}
|
|
1095
1003
|
moldingLines = moldingLines.filter(function (line, idx) {
|
|
1096
1004
|
return !removeLineIds.some(function (id) {
|
|
@@ -1121,7 +1029,7 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLength) {
|
|
|
1121
1029
|
// console.log('moldingLines: ', moldingLines);
|
|
1122
1030
|
|
|
1123
1031
|
// make molding data with grouping molding & doorStyle
|
|
1124
|
-
var
|
|
1032
|
+
var _loop9 = function _loop9() {
|
|
1125
1033
|
var ml = moldingLines[k];
|
|
1126
1034
|
var mlLength = ml.molding.name === _constants.TOE_KICK_MOLDING ? ml.inchWidth : (0, _convertUnitsLite.convert)(_export.GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1127
1035
|
var idx = moldingData.findIndex(function (v) {
|
|
@@ -1138,7 +1046,7 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle, moldingPieceLength) {
|
|
|
1138
1046
|
}
|
|
1139
1047
|
};
|
|
1140
1048
|
for (var k = 0; k < moldingLines.length; k++) {
|
|
1141
|
-
|
|
1049
|
+
_loop9();
|
|
1142
1050
|
}
|
|
1143
1051
|
// console.log('moldingData: ', moldingData);
|
|
1144
1052
|
|