kitchen-simulator 4.4.4 → 5.0.0-new-api
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/LiteRenderer.js +15 -53
- package/es/catalog/factories/area-factory-3d.js +0 -4
- package/es/catalog/holes/door-double/door_double.png +0 -0
- package/es/catalog/holes/door-panic/panicDoor.png +0 -0
- package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/es/catalog/holes/gate/gate.jpg +0 -0
- package/es/catalog/holes/window-clear/texture.png +0 -0
- package/es/catalog/holes/window-cross/texture.png +0 -0
- package/es/catalog/holes/window-double-hung/texture.png +0 -0
- package/es/catalog/holes/window-vertical/texture.png +0 -0
- package/es/catalog/utils/item-loader.js +0 -4
- package/es/class/item.js +17 -6
- package/es/constants.js +12 -7
- package/es/devLiteRenderer.js +91 -109
- package/es/mappings/external-events/mapExternalEventPayload.js +28 -0
- package/es/mappings/external-events/mappers/addItemMapper.js +86 -0
- package/es/mappings/external-events/mappers/ccdfMapper.js +86 -0
- package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +31 -0
- package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +65 -0
- package/es/mappings/external-events/mappers/loadProjectMapper.js +62 -0
- package/es/mappings/holesToCatalog.js +139 -0
- package/es/models.js +12 -1
- package/es/utils/isolate-event-handler.js +55 -45
- package/es/utils/molding.js +17 -1
- package/es/utils/skinPanelEngine.js +16 -11
- package/lib/LiteRenderer.js +17 -55
- package/lib/catalog/factories/area-factory-3d.js +0 -4
- package/lib/catalog/holes/door-double/door_double.png +0 -0
- package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
- package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/lib/catalog/holes/gate/gate.jpg +0 -0
- package/lib/catalog/holes/window-clear/texture.png +0 -0
- package/lib/catalog/holes/window-cross/texture.png +0 -0
- package/lib/catalog/holes/window-double-hung/texture.png +0 -0
- package/lib/catalog/holes/window-vertical/texture.png +0 -0
- package/lib/catalog/utils/item-loader.js +0 -4
- package/lib/class/item.js +17 -6
- package/lib/constants.js +17 -12
- package/lib/devLiteRenderer.js +93 -111
- package/lib/mappings/external-events/mapExternalEventPayload.js +33 -0
- package/lib/mappings/external-events/mappers/addItemMapper.js +92 -0
- package/lib/mappings/external-events/mappers/ccdfMapper.js +93 -0
- package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +37 -0
- package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +72 -0
- package/lib/mappings/external-events/mappers/loadProjectMapper.js +70 -0
- package/lib/mappings/holesToCatalog.js +148 -0
- package/lib/models.js +12 -1
- package/lib/utils/isolate-event-handler.js +55 -45
- package/lib/utils/molding.js +17 -1
- package/lib/utils/skinPanelEngine.js +15 -10
- package/package.json +1 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
import { DEFAULT_INTERIOR_URL } from "../../../constants";
|
|
5
|
+
import { isEmpty } from "../../../utils/helper";
|
|
6
|
+
export function mapChangeDoorStyleEvent(evt, state) {
|
|
7
|
+
var _evt$payload, _layer$toJS, _targetDoorStyle$ccdf;
|
|
8
|
+
if (isEmpty(evt)) return null;
|
|
9
|
+
var targetDoorStyle = evt === null || evt === void 0 || (_evt$payload = evt.payload) === null || _evt$payload === void 0 ? void 0 : _evt$payload.doorStyle;
|
|
10
|
+
if (isEmpty(targetDoorStyle)) return evt;
|
|
11
|
+
var layerId = state.getIn(['scene', 'selectedLayer']);
|
|
12
|
+
var layer = state.getIn(['scene', 'layers', layerId]);
|
|
13
|
+
if (isEmpty(layer)) return evt;
|
|
14
|
+
var handleTexture = layer.get('doorHandle');
|
|
15
|
+
var counterToptexture = layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 || (_layer$toJS = _layer$toJS.counterTop) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.uri;
|
|
16
|
+
|
|
17
|
+
// make doorStyles and update the doorStyle payload
|
|
18
|
+
var Max_PH = 9;
|
|
19
|
+
var doorStyles = {
|
|
20
|
+
base: targetDoorStyle.texture,
|
|
21
|
+
counttop: counterToptexture,
|
|
22
|
+
interior: DEFAULT_INTERIOR_URL
|
|
23
|
+
};
|
|
24
|
+
for (var i = 1; i <= Max_PH; i++) {
|
|
25
|
+
doorStyles['base_door_' + i] = targetDoorStyle.texture;
|
|
26
|
+
doorStyles['base_fixed_drawer_door_' + i] = targetDoorStyle.texture;
|
|
27
|
+
doorStyles['base_drawer_' + i] = targetDoorStyle.texture;
|
|
28
|
+
doorStyles['base_drawer_door_' + i] = targetDoorStyle.texture;
|
|
29
|
+
doorStyles['door_handle_' + i] = handleTexture;
|
|
30
|
+
doorStyles['fixed_drawer_door_handle_' + i] = handleTexture;
|
|
31
|
+
doorStyles['drawer_door_handle_' + i] = handleTexture;
|
|
32
|
+
}
|
|
33
|
+
evt.payload.doorStyle = _objectSpread(_objectSpread({}, targetDoorStyle), {}, {
|
|
34
|
+
doorStyles: doorStyles
|
|
35
|
+
});
|
|
36
|
+
// make itemCDS using assets3d
|
|
37
|
+
var itemCDS = [];
|
|
38
|
+
var itemCDSData = {};
|
|
39
|
+
var cabitnetDoorStyleId;
|
|
40
|
+
targetDoorStyle === null || targetDoorStyle === void 0 || (_targetDoorStyle$ccdf = targetDoorStyle.ccdf_list) === null || _targetDoorStyle$ccdf === void 0 || _targetDoorStyle$ccdf.forEach(function (asItem) {
|
|
41
|
+
if (!isEmpty(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
|
|
42
|
+
cabitnetDoorStyleId = asItem.id;
|
|
43
|
+
}
|
|
44
|
+
asItem === null || asItem === void 0 || asItem.assets3d.forEach(function (as) {
|
|
45
|
+
if (!isEmpty(as === null || as === void 0 ? void 0 : as.placeholder_name) && !isEmpty(as === null || as === void 0 ? void 0 : as.gltf)) {
|
|
46
|
+
var updatedName = 'base_' + (as === null || as === void 0 ? void 0 : as.placeholder_name) + '_gltf';
|
|
47
|
+
itemCDSData[updatedName] = as === null || as === void 0 ? void 0 : as.gltf;
|
|
48
|
+
}
|
|
49
|
+
itemCDSData['is_euro_cds'] = !isEmpty(as === null || as === void 0 ? void 0 : as.is_euro_cds) ? as.is_euro_cds : 0;
|
|
50
|
+
itemCDSData['euro_shape_svg'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_shape_svg) ? as.is_euro_cds : null;
|
|
51
|
+
itemCDSData['euro_width'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_width) ? as.is_euro_cds : null;
|
|
52
|
+
itemCDSData['euro_height'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_height) ? as.is_euro_cds : null;
|
|
53
|
+
itemCDSData['euro_length'] = !isEmpty(as === null || as === void 0 ? void 0 : as.euro_length) ? as.is_euro_cds : null;
|
|
54
|
+
});
|
|
55
|
+
var data = [];
|
|
56
|
+
data.push(itemCDSData);
|
|
57
|
+
itemCDS.push({
|
|
58
|
+
itemID: asItem.cabinet_id,
|
|
59
|
+
data: data,
|
|
60
|
+
cabinet_door_style_id: cabitnetDoorStyleId
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
evt.payload.itemCDS = itemCDS;
|
|
64
|
+
return evt;
|
|
65
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
import { DEFAULT_DOOR_HANDLE_TEXTURE_URL, DEFAULT_INTERIOR_URL } from "../../../constants";
|
|
5
|
+
import { isEmpty } from "../../../utils/helper";
|
|
6
|
+
export function mapLoadProjectEvent(evt, state) {
|
|
7
|
+
// preprocessing for loading project
|
|
8
|
+
// this function make doorStyles using item's doorStyle
|
|
9
|
+
if (isEmpty(evt)) return null;
|
|
10
|
+
var layerId = evt.payload.layers['layer-1'].id;
|
|
11
|
+
var layer = evt.payload.layers;
|
|
12
|
+
var itemKeys = Object.keys(layer[layerId].items);
|
|
13
|
+
if (isEmpty(layer)) return evt;
|
|
14
|
+
var handleTexture = !isEmpty(layer.doorHandle) ? layer.doorHandle : DEFAULT_DOOR_HANDLE_TEXTURE_URL;
|
|
15
|
+
var counterToptexture = layer.counterTop;
|
|
16
|
+
// make doorStyles and update the doorStyle payload
|
|
17
|
+
var Max_PH = 9;
|
|
18
|
+
for (var i = 0; i < itemKeys.length; i++) {
|
|
19
|
+
var item = layer[layerId].items[itemKeys[i]];
|
|
20
|
+
var doorStyle = item.doorStyle;
|
|
21
|
+
var doorStyles = {
|
|
22
|
+
base: doorStyle.texture,
|
|
23
|
+
counttop: counterToptexture,
|
|
24
|
+
interior: DEFAULT_INTERIOR_URL
|
|
25
|
+
};
|
|
26
|
+
for (var _i = 1; _i <= Max_PH; _i++) {
|
|
27
|
+
doorStyles['base_door_' + _i] = doorStyle.texture;
|
|
28
|
+
doorStyles['base_fixed_drawer_door_' + _i] = doorStyle.texture;
|
|
29
|
+
doorStyles['base_drawer_' + _i] = doorStyle.texture;
|
|
30
|
+
doorStyles['base_drawer_door_' + _i] = doorStyle.texture;
|
|
31
|
+
doorStyles['door_handle_' + _i] = handleTexture;
|
|
32
|
+
doorStyles['fixed_drawer_door_handle_' + _i] = handleTexture;
|
|
33
|
+
doorStyles['drawer_door_handle_' + _i] = handleTexture;
|
|
34
|
+
}
|
|
35
|
+
item.doorStyle = _objectSpread(_objectSpread({}, doorStyle), {}, {
|
|
36
|
+
doorStyles: doorStyles
|
|
37
|
+
});
|
|
38
|
+
layer[layerId].items[itemKeys[i]] = item;
|
|
39
|
+
}
|
|
40
|
+
return evt;
|
|
41
|
+
}
|
|
42
|
+
export function updateProjectWithCDSList(project, cdsList) {
|
|
43
|
+
//This function updates the project json using CDSList
|
|
44
|
+
if (isEmpty(project) || isEmpty(cdsList)) return project;
|
|
45
|
+
var layerId = project.layers['layer-1'].id;
|
|
46
|
+
var layer = project.layers;
|
|
47
|
+
var itemKeys = Object.keys(layer[layerId].items);
|
|
48
|
+
if (isEmpty(itemKeys)) return project;
|
|
49
|
+
var _loop = function _loop(i) {
|
|
50
|
+
cdsList.forEach(function (cds) {
|
|
51
|
+
var _layer$layerId;
|
|
52
|
+
if (((_layer$layerId = layer[layerId]) === null || _layer$layerId === void 0 || (_layer$layerId = _layer$layerId.items[itemKeys[i]]) === null || _layer$layerId === void 0 ? void 0 : _layer$layerId.itemID) === (cds === null || cds === void 0 ? void 0 : cds.itemID)) {
|
|
53
|
+
layer[layerId].items[itemKeys[i]].doorStyle.cds = cds;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
for (var i = 0; i < itemKeys.length; i++) {
|
|
58
|
+
_loop(i);
|
|
59
|
+
}
|
|
60
|
+
project.layers = layer;
|
|
61
|
+
return project;
|
|
62
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
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
|
+
import * as Holes from "../catalog/holes/export";
|
|
6
|
+
var INCH_TO_CM = 2.54;
|
|
7
|
+
var normalizeKey = function normalizeKey(value) {
|
|
8
|
+
return (value !== null && value !== void 0 ? value : '').toString().toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
9
|
+
};
|
|
10
|
+
var safeParseJson = function safeParseJson(value) {
|
|
11
|
+
if (!value) return null;
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(value);
|
|
14
|
+
} catch (_unused) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var toCatalogLength = function toCatalogLength(value, prop) {
|
|
19
|
+
var _prop$defaultValue;
|
|
20
|
+
if (value == null) return null;
|
|
21
|
+
var unit = prop === null || prop === void 0 || (_prop$defaultValue = prop.defaultValue) === null || _prop$defaultValue === void 0 ? void 0 : _prop$defaultValue.unit;
|
|
22
|
+
if (unit && unit.toLowerCase() === 'in') return value;
|
|
23
|
+
return value * INCH_TO_CM;
|
|
24
|
+
};
|
|
25
|
+
var overrideLengthProperty = function overrideLengthProperty(prop, value) {
|
|
26
|
+
if (!prop || value == null) return prop;
|
|
27
|
+
var length = toCatalogLength(value, prop);
|
|
28
|
+
if (length == null) return prop;
|
|
29
|
+
return _objectSpread(_objectSpread({}, prop), {}, {
|
|
30
|
+
defaultValue: _objectSpread(_objectSpread({}, prop.defaultValue), {}, {
|
|
31
|
+
length: length
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var findBaseHoleTemplate = function findBaseHoleTemplate(hole, templates) {
|
|
36
|
+
var target = normalizeKey(hole === null || hole === void 0 ? void 0 : hole.name);
|
|
37
|
+
if (!target) return null;
|
|
38
|
+
return templates.find(function (template) {
|
|
39
|
+
var _template$info, _template$info2;
|
|
40
|
+
var candidates = [template === null || template === void 0 ? void 0 : template.name, template === null || template === void 0 || (_template$info = template.info) === null || _template$info === void 0 ? void 0 : _template$info.title, template === null || template === void 0 || (_template$info2 = template.info) === null || _template$info2 === void 0 ? void 0 : _template$info2.description].map(normalizeKey);
|
|
41
|
+
return candidates.includes(target);
|
|
42
|
+
}) || null;
|
|
43
|
+
};
|
|
44
|
+
var buildHoleElementFromTemplate = function buildHoleElementFromTemplate(hole, base) {
|
|
45
|
+
var _base$info, _base$info2, _base$info3, _base$info4, _base$info5, _base$structure_json;
|
|
46
|
+
if (!hole || !base) return null;
|
|
47
|
+
var nextInfo = _objectSpread(_objectSpread({}, base.info), {}, {
|
|
48
|
+
title: hole.name || ((_base$info = base.info) === null || _base$info === void 0 ? void 0 : _base$info.title),
|
|
49
|
+
description: ((_base$info2 = base.info) === null || _base$info2 === void 0 ? void 0 : _base$info2.description) || hole.name || ((_base$info3 = base.info) === null || _base$info3 === void 0 ? void 0 : _base$info3.title),
|
|
50
|
+
image: hole.menu_thumbnail || ((_base$info4 = base.info) === null || _base$info4 === void 0 ? void 0 : _base$info4.image),
|
|
51
|
+
url: hole.gltf || ((_base$info5 = base.info) === null || _base$info5 === void 0 ? void 0 : _base$info5.url)
|
|
52
|
+
});
|
|
53
|
+
var nextProperties = _objectSpread({}, base.properties);
|
|
54
|
+
if (nextProperties.width) {
|
|
55
|
+
nextProperties.width = overrideLengthProperty(nextProperties.width, hole.width);
|
|
56
|
+
}
|
|
57
|
+
if (nextProperties.height) {
|
|
58
|
+
nextProperties.height = overrideLengthProperty(nextProperties.height, hole.height);
|
|
59
|
+
}
|
|
60
|
+
if (nextProperties.length) {
|
|
61
|
+
nextProperties.length = overrideLengthProperty(nextProperties.length, hole.length);
|
|
62
|
+
}
|
|
63
|
+
var customConfig = safeParseJson(hole.custom_config);
|
|
64
|
+
var customProps = (customConfig === null || customConfig === void 0 ? void 0 : customConfig.properties) || {};
|
|
65
|
+
Object.keys(customProps).forEach(function (key) {
|
|
66
|
+
if (!nextProperties[key]) return;
|
|
67
|
+
nextProperties[key] = overrideLengthProperty(nextProperties[key], customProps[key]);
|
|
68
|
+
});
|
|
69
|
+
return _objectSpread(_objectSpread({}, base), {}, {
|
|
70
|
+
name: hole.name || base.name,
|
|
71
|
+
info: nextInfo,
|
|
72
|
+
properties: nextProperties,
|
|
73
|
+
structure_json: _objectSpread(_objectSpread({}, base.structure_json || {}), {}, {
|
|
74
|
+
hole_id: hole.id || ((_base$structure_json = base.structure_json) === null || _base$structure_json === void 0 ? void 0 : _base$structure_json.hole_id)
|
|
75
|
+
})
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
export var buildHoleElements = function buildHoleElements(holes) {
|
|
79
|
+
var categories = {
|
|
80
|
+
Doors: [],
|
|
81
|
+
Windows: []
|
|
82
|
+
};
|
|
83
|
+
var elements = [];
|
|
84
|
+
if (!Array.isArray(holes)) return {
|
|
85
|
+
elements: elements,
|
|
86
|
+
categories: categories
|
|
87
|
+
};
|
|
88
|
+
var templates = Object.values(Holes);
|
|
89
|
+
var usedNames = new Set();
|
|
90
|
+
holes.forEach(function (hole) {
|
|
91
|
+
var _base$info6;
|
|
92
|
+
if (!hole || hole.is_deleted) return;
|
|
93
|
+
var base = findBaseHoleTemplate(hole, templates);
|
|
94
|
+
if (!base) return;
|
|
95
|
+
var element = buildHoleElementFromTemplate(hole, base);
|
|
96
|
+
if (!element || !element.name || usedNames.has(element.name)) return;
|
|
97
|
+
usedNames.add(element.name);
|
|
98
|
+
elements.push(element);
|
|
99
|
+
var typeKey = normalizeKey(hole.type);
|
|
100
|
+
if (typeKey === 'window') {
|
|
101
|
+
categories.Windows.push(element);
|
|
102
|
+
} else if (typeKey === 'door') {
|
|
103
|
+
categories.Doors.push(element);
|
|
104
|
+
} else if ((_base$info6 = base.info) !== null && _base$info6 !== void 0 && (_base$info6 = _base$info6.tag) !== null && _base$info6 !== void 0 && _base$info6.includes('window')) {
|
|
105
|
+
categories.Windows.push(element);
|
|
106
|
+
} else {
|
|
107
|
+
categories.Doors.push(element);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
elements: elements,
|
|
112
|
+
categories: categories
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export var registerDynamicHoles = function registerDynamicHoles(catalog, holePayload) {
|
|
116
|
+
if (!catalog) return;
|
|
117
|
+
var holeElements = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.elements) || [];
|
|
118
|
+
holeElements.forEach(function (element) {
|
|
119
|
+
if (!catalog.hasElement(element.name)) {
|
|
120
|
+
catalog.registerElement(element);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
var categories = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.categories) || {};
|
|
124
|
+
Object.entries(categories).forEach(function (_ref) {
|
|
125
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
126
|
+
name = _ref2[0],
|
|
127
|
+
elements = _ref2[1];
|
|
128
|
+
if (!elements.length) return;
|
|
129
|
+
if (!catalog.hasCategory(name)) {
|
|
130
|
+
catalog.registerCategory(name, name, elements);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
elements.forEach(function (element) {
|
|
134
|
+
if (!catalog.categoryHasElement(name, element.name)) {
|
|
135
|
+
catalog.addToCategory(name, element);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
};
|
package/es/models.js
CHANGED
|
@@ -180,6 +180,15 @@ export var Item = /*#__PURE__*/function (_Record7) {
|
|
|
180
180
|
_inherits(Item, _Record7);
|
|
181
181
|
return _createClass(Item);
|
|
182
182
|
}(Record(_objectSpread(_objectSpread({}, sharedAttributes), {}, {
|
|
183
|
+
long_name: '',
|
|
184
|
+
sizeinfo: new Map(),
|
|
185
|
+
description: '',
|
|
186
|
+
base: '',
|
|
187
|
+
shape_svg: '',
|
|
188
|
+
gltf: '',
|
|
189
|
+
is_corner: -1,
|
|
190
|
+
obj_property: new Map(),
|
|
191
|
+
outline: '',
|
|
183
192
|
prototype: 'items',
|
|
184
193
|
x: 0,
|
|
185
194
|
y: 0,
|
|
@@ -336,13 +345,15 @@ export var CatalogElement = /*#__PURE__*/function (_Record1) {
|
|
|
336
345
|
}(Record({
|
|
337
346
|
itemID: -1,
|
|
338
347
|
name: '',
|
|
348
|
+
long_name: '',
|
|
339
349
|
prototype: '',
|
|
340
350
|
info: new Map(),
|
|
341
351
|
properties: new Map(),
|
|
342
352
|
obj: new Map(),
|
|
343
353
|
type: '',
|
|
344
354
|
cds: new Map(),
|
|
345
|
-
structure_json: {}
|
|
355
|
+
structure_json: {},
|
|
356
|
+
gltf: ''
|
|
346
357
|
}, 'CatalogElement'));
|
|
347
358
|
export var Catalog = /*#__PURE__*/function (_Record10) {
|
|
348
359
|
function Catalog() {
|
|
@@ -18,6 +18,10 @@ import { getMoldingDataOfScene2 } from "./molding";
|
|
|
18
18
|
import { Scene, State } from "../models";
|
|
19
19
|
import { calcDistancesFromHoleToNearestOneOrWall } from "./geometry";
|
|
20
20
|
import { computeSkinPanels } from "./skinPanelEngine";
|
|
21
|
+
import { mapExternalEventPayload } from "../mappings/external-events/mapExternalEventPayload";
|
|
22
|
+
import { ccdfMapper } from "../mappings/external-events/mappers/ccdfMapper";
|
|
23
|
+
import { mapFromCCDFToCDS } from "../mappings/external-events/mappers/ccdfToCDSMapper";
|
|
24
|
+
import { updateProjectWithCDSList } from "../mappings/external-events/mappers/loadProjectMapper";
|
|
21
25
|
var PRECISION = 2;
|
|
22
26
|
|
|
23
27
|
// ---- compatibility: supports old + optimized props shapes ----
|
|
@@ -455,27 +459,28 @@ function updateCabinetPayload(_x3) {
|
|
|
455
459
|
}
|
|
456
460
|
function _updateCabinetPayload() {
|
|
457
461
|
_updateCabinetPayload = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(cabinetPayload) {
|
|
458
|
-
var cabinetPayloadKeys, i
|
|
462
|
+
var tempPlaceholders, cabinetPayloadKeys, i;
|
|
459
463
|
return _regeneratorRuntime.wrap(function (_context6) {
|
|
460
464
|
while (1) switch (_context6.prev = _context6.next) {
|
|
461
465
|
case 0:
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
+
tempPlaceholders = [];
|
|
467
|
+
_context6.next = 1;
|
|
468
|
+
return parseTempPlaceholdersFromCabinetPayload(cabinetPayload);
|
|
469
|
+
case 1:
|
|
470
|
+
tempPlaceholders = _context6.sent;
|
|
466
471
|
cabinetPayloadKeys = Object.keys(cabinetPayload);
|
|
467
472
|
for (i = 0; i < cabinetPayloadKeys.length; i++) {
|
|
468
473
|
if (cabinetPayloadKeys[i] === 'structure_json') {
|
|
469
|
-
cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] = (_cabinetPayload$cabin = (_cabinetPayload$cabin2 = cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'][0]) === null || _cabinetPayload$cabin2 === void 0 ? void 0 : _cabinetPayload$cabin2.placeholders) !== null && _cabinetPayload$cabin !== void 0 ? _cabinetPayload$cabin : [];
|
|
470
|
-
|
|
471
474
|
// cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] =
|
|
472
|
-
// tempPlaceholders[0]
|
|
473
|
-
//
|
|
474
|
-
|
|
475
|
+
// cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'][0]
|
|
476
|
+
// ?.placeholders ?? [];
|
|
477
|
+
|
|
478
|
+
cabinetPayload[cabinetPayloadKeys[i]]['placeholders'] = tempPlaceholders[0].placeholders;
|
|
479
|
+
cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'] = tempPlaceholders;
|
|
475
480
|
}
|
|
476
481
|
}
|
|
477
482
|
return _context6.abrupt("return", cabinetPayload);
|
|
478
|
-
case
|
|
483
|
+
case 2:
|
|
479
484
|
case "end":
|
|
480
485
|
return _context6.stop();
|
|
481
486
|
}
|
|
@@ -1211,13 +1216,12 @@ export function handleExternalEvent(_x0) {
|
|
|
1211
1216
|
}
|
|
1212
1217
|
function _handleExternalEvent() {
|
|
1213
1218
|
_handleExternalEvent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee0(props) {
|
|
1214
|
-
var _evt$
|
|
1215
|
-
var
|
|
1219
|
+
var _evt$payload4, _evt$payload5;
|
|
1220
|
+
var state, evt, layerId, layer, _evt$payload, _state$catalog, cdsItems, itemKeys, _loop6, i, newScene, tempState, _props$onInternalEven, sLineCnt, element, _state$viewer2D, _evt$payload$initialP, mouseX, mouseY, v2d, vPosX, vPosY, layerID, defaulTitle, _evt$payload6, doorStyle, applyScope, itemCDS, _evt$payload6$itemIds, itemIds, _layerId, allItems, targetItems, idSet, selectedItemIds, ccdf_list, _loop7, _i2, _props$onInternalEven2, _evt$payload7, roomShapeType, width, height, measurementUnit, _doorStyle, value, _value, _evt$payload8, moldingInfo, isGlobal, distElement, _distElement, _evt$payload9, option, _value2, _layerId2, _layer, _layer$getIn, selectedLines, selectedHoles, selectedItems, _i4, _i5, _i6, _evt$payload0, _evt$payload1, _evt$payload10, _evt$payload11, _layerID, _layer2, orginalItemInfo, originalItem, originalItemPos, replaceItem, _layer$doorStyle, _currentTexture, _props$configData$mol, _props$configData, _props$configData$ski, _props$configData2, _props$onInternalEven3, sceneData, currentTexture, moldingPieceLength, skinPanelExclusionSKUs, _t5, _t6, _t7;
|
|
1216
1221
|
return _regeneratorRuntime.wrap(function (_context11) {
|
|
1217
1222
|
while (1) switch (_context11.prev = _context11.next) {
|
|
1218
1223
|
case 0:
|
|
1219
1224
|
// console.log('***external event****', props.externalEvent);
|
|
1220
|
-
evt = props.externalEvent;
|
|
1221
1225
|
state = getPlannerStateFromProps(props);
|
|
1222
1226
|
if (state) {
|
|
1223
1227
|
_context11.next = 1;
|
|
@@ -1225,6 +1229,7 @@ function _handleExternalEvent() {
|
|
|
1225
1229
|
}
|
|
1226
1230
|
return _context11.abrupt("return");
|
|
1227
1231
|
case 1:
|
|
1232
|
+
evt = mapExternalEventPayload(props.externalEvent, state);
|
|
1228
1233
|
layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1229
1234
|
layer = state.getIn(['scene', 'layers', layerId]);
|
|
1230
1235
|
_t5 = evt === null || evt === void 0 ? void 0 : evt.type;
|
|
@@ -1239,19 +1244,19 @@ function _handleExternalEvent() {
|
|
|
1239
1244
|
cdsItems = [];
|
|
1240
1245
|
itemKeys = evt !== null && evt !== void 0 && (_evt$payload = evt.payload) !== null && _evt$payload !== void 0 && (_evt$payload = _evt$payload.layers['layer-1']) !== null && _evt$payload !== void 0 && _evt$payload.items ? Object.keys(evt.payload.layers['layer-1'].items) : [];
|
|
1241
1246
|
_loop6 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop6() {
|
|
1242
|
-
var _evt$
|
|
1247
|
+
var _evt$payload3, _it$properties, _it$properties2, _it$properties3, _it$doorStyle2;
|
|
1243
1248
|
var it;
|
|
1244
1249
|
return _regeneratorRuntime.wrap(function (_context0) {
|
|
1245
1250
|
while (1) switch (_context0.prev = _context0.next) {
|
|
1246
1251
|
case 0:
|
|
1247
|
-
it = evt === null || evt === void 0 || (_evt$
|
|
1252
|
+
it = evt === null || evt === void 0 || (_evt$payload3 = evt.payload) === null || _evt$payload3 === void 0 || (_evt$payload3 = _evt$payload3.layers['layer-1']) === null || _evt$payload3 === void 0 ? void 0 : _evt$payload3.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
1248
1253
|
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')) {
|
|
1249
1254
|
it.properties.altitude.length = convert(it.properties.altitude._length).from(it.properties.altitude._unit).to('cm');
|
|
1250
1255
|
}
|
|
1251
1256
|
/////////
|
|
1252
1257
|
if (!cdsItems.some(function (v) {
|
|
1253
1258
|
var _it$doorStyle;
|
|
1254
|
-
return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0
|
|
1259
|
+
return it.itemID === v.itemID && it.name === v.name && ((_it$doorStyle = it.doorStyle) === null || _it$doorStyle === void 0 ? void 0 : _it$doorStyle.id) === v.dfId;
|
|
1255
1260
|
})) cdsItems.push({
|
|
1256
1261
|
itemID: it.itemID,
|
|
1257
1262
|
prototype: it.prototype,
|
|
@@ -1259,7 +1264,7 @@ function _handleExternalEvent() {
|
|
|
1259
1264
|
name: it.name,
|
|
1260
1265
|
type: it.type,
|
|
1261
1266
|
sku_number: it.sku_number,
|
|
1262
|
-
|
|
1267
|
+
dfId: (_it$doorStyle2 = it.doorStyle) === null || _it$doorStyle2 === void 0 ? void 0 : _it$doorStyle2.id
|
|
1263
1268
|
});
|
|
1264
1269
|
case 1:
|
|
1265
1270
|
case "end":
|
|
@@ -1292,11 +1297,15 @@ function _handleExternalEvent() {
|
|
|
1292
1297
|
}
|
|
1293
1298
|
}, /*#__PURE__*/function () {
|
|
1294
1299
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(result) {
|
|
1295
|
-
var
|
|
1300
|
+
var _evt$payload2;
|
|
1301
|
+
var cdsList, cabinetDefinitionList, rt, _i;
|
|
1296
1302
|
return _regeneratorRuntime.wrap(function (_context9) {
|
|
1297
1303
|
while (1) switch (_context9.prev = _context9.next) {
|
|
1298
1304
|
case 0:
|
|
1299
|
-
|
|
1305
|
+
cdsList = mapFromCCDFToCDS(result === null || result === void 0 ? void 0 : result.ccdf_list);
|
|
1306
|
+
evt.payload = updateProjectWithCDSList(evt.payload, cdsList);
|
|
1307
|
+
cabinetDefinitionList = ccdfMapper(result === null || result === void 0 ? void 0 : result.ccdf_list, evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.layers['layer-1']);
|
|
1308
|
+
rt = mergeSameElements(cabinetDefinitionList);
|
|
1300
1309
|
_i = 0;
|
|
1301
1310
|
case 1:
|
|
1302
1311
|
if (!(_i < (rt === null || rt === void 0 ? void 0 : rt.length))) {
|
|
@@ -1373,7 +1382,7 @@ function _handleExternalEvent() {
|
|
|
1373
1382
|
case 13:
|
|
1374
1383
|
return _context11.abrupt("continue", 49);
|
|
1375
1384
|
case 14:
|
|
1376
|
-
ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$
|
|
1385
|
+
ARRAY_3D_MODES.includes(state.mode) ? props.holesActions.selectToolDrawingHole3D(evt === null || evt === void 0 || (_evt$payload4 = evt.payload) === null || _evt$payload4 === void 0 ? void 0 : _evt$payload4.holeName) : props.holesActions.selectToolDrawingHole(evt === null || evt === void 0 || (_evt$payload5 = evt.payload) === null || _evt$payload5 === void 0 ? void 0 : _evt$payload5.holeName);
|
|
1377
1386
|
return _context11.abrupt("continue", 49);
|
|
1378
1387
|
case 15:
|
|
1379
1388
|
moveAndRotatePan2D3D(evt.type, props, evt.payload, state);
|
|
@@ -1384,7 +1393,7 @@ function _handleExternalEvent() {
|
|
|
1384
1393
|
props.projectActions.rename(defaulTitle);
|
|
1385
1394
|
return _context11.abrupt("continue", 49);
|
|
1386
1395
|
case 17:
|
|
1387
|
-
_evt$
|
|
1396
|
+
_evt$payload6 = evt.payload, doorStyle = _evt$payload6.doorStyle, applyScope = _evt$payload6.applyScope, itemCDS = _evt$payload6.itemCDS, _evt$payload6$itemIds = _evt$payload6.itemIds, itemIds = _evt$payload6$itemIds === void 0 ? [] : _evt$payload6$itemIds;
|
|
1388
1397
|
_layerId = state.getIn(['scene', 'selectedLayer']);
|
|
1389
1398
|
allItems = state.getIn(['scene', 'layers', _layerId, 'items']).toJS();
|
|
1390
1399
|
targetItems = []; // Prepare idSet for SINGLE or MULTIPLE
|
|
@@ -1412,28 +1421,24 @@ function _handleExternalEvent() {
|
|
|
1412
1421
|
case 20:
|
|
1413
1422
|
return _context11.abrupt("continue", 21);
|
|
1414
1423
|
case 21:
|
|
1415
|
-
|
|
1424
|
+
ccdf_list = [];
|
|
1416
1425
|
_loop7 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop7() {
|
|
1417
|
-
var
|
|
1418
|
-
var item, cdsId;
|
|
1426
|
+
var item;
|
|
1419
1427
|
return _regeneratorRuntime.wrap(function (_context10) {
|
|
1420
1428
|
while (1) switch (_context10.prev = _context10.next) {
|
|
1421
1429
|
case 0:
|
|
1422
1430
|
item = targetItems[_i2];
|
|
1423
|
-
|
|
1424
|
-
return
|
|
1425
|
-
})) === null || _itemCDS$find === void 0 ? void 0 : _itemCDS$find.cabinet_door_style_id;
|
|
1426
|
-
if (cdsId && !_cdsItems.some(function (v) {
|
|
1427
|
-
return item.itemID === v.itemID && item.name === v.name && cdsId === v.cdsId;
|
|
1431
|
+
if (!ccdf_list.some(function (v) {
|
|
1432
|
+
return item.itemID === v.itemID && item.name === v.name && doorStyle.id === v.doorFinishId;
|
|
1428
1433
|
})) {
|
|
1429
|
-
|
|
1434
|
+
ccdf_list.push({
|
|
1430
1435
|
itemID: item.itemID,
|
|
1431
1436
|
prototype: item.prototype,
|
|
1432
1437
|
category: item.category,
|
|
1433
1438
|
name: item.name,
|
|
1434
1439
|
type: item.type,
|
|
1435
1440
|
sku_number: item.sku_number,
|
|
1436
|
-
|
|
1441
|
+
doorFinishId: doorStyle.id
|
|
1437
1442
|
});
|
|
1438
1443
|
}
|
|
1439
1444
|
case 1:
|
|
@@ -1454,19 +1459,23 @@ function _handleExternalEvent() {
|
|
|
1454
1459
|
_context11.next = 22;
|
|
1455
1460
|
break;
|
|
1456
1461
|
case 24:
|
|
1457
|
-
if (
|
|
1462
|
+
if (ccdf_list.length > 0) {
|
|
1458
1463
|
(_props$onInternalEven2 = props.onInternalEvent) === null || _props$onInternalEven2 === void 0 || _props$onInternalEven2.call(props, {
|
|
1459
1464
|
type: INTERNAL_EVENT_ITEMS_CATALOG,
|
|
1460
1465
|
value: {
|
|
1461
|
-
|
|
1466
|
+
ccdf_list: ccdf_list
|
|
1462
1467
|
}
|
|
1463
|
-
},
|
|
1468
|
+
},
|
|
1469
|
+
/*#__PURE__*/
|
|
1470
|
+
// result is ccdf_list
|
|
1471
|
+
function () {
|
|
1464
1472
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(result) {
|
|
1465
|
-
var rt, _i3;
|
|
1473
|
+
var mappedCabinetDefinitionList, rt, _i3;
|
|
1466
1474
|
return _regeneratorRuntime.wrap(function (_context1) {
|
|
1467
1475
|
while (1) switch (_context1.prev = _context1.next) {
|
|
1468
1476
|
case 0:
|
|
1469
|
-
|
|
1477
|
+
mappedCabinetDefinitionList = ccdfMapper(result.ccdf_list, layer); // result: ccdf_list
|
|
1478
|
+
rt = mergeSameElements(mappedCabinetDefinitionList);
|
|
1470
1479
|
_i3 = 0;
|
|
1471
1480
|
case 1:
|
|
1472
1481
|
if (!(_i3 < (rt === null || rt === void 0 ? void 0 : rt.length))) {
|
|
@@ -1496,7 +1505,7 @@ function _handleExternalEvent() {
|
|
|
1496
1505
|
}
|
|
1497
1506
|
return _context11.abrupt("continue", 49);
|
|
1498
1507
|
case 25:
|
|
1499
|
-
_evt$
|
|
1508
|
+
_evt$payload7 = evt.payload, roomShapeType = _evt$payload7.roomShapeType, width = _evt$payload7.width, height = _evt$payload7.height, measurementUnit = _evt$payload7.measurementUnit, _doorStyle = _evt$payload7.doorStyle;
|
|
1500
1509
|
props.projectActions.createRoomWithShape(roomShapeType, width, height, measurementUnit, _doorStyle);
|
|
1501
1510
|
return _context11.abrupt("continue", 49);
|
|
1502
1511
|
case 26:
|
|
@@ -1525,7 +1534,7 @@ function _handleExternalEvent() {
|
|
|
1525
1534
|
props.projectActions.redo();
|
|
1526
1535
|
return _context11.abrupt("continue", 49);
|
|
1527
1536
|
case 31:
|
|
1528
|
-
_evt$
|
|
1537
|
+
_evt$payload8 = evt.payload, moldingInfo = _evt$payload8.moldingInfo, isGlobal = _evt$payload8.isGlobal;
|
|
1529
1538
|
_context11.next = 32;
|
|
1530
1539
|
return loadMoldingSvg(moldingInfo);
|
|
1531
1540
|
case 32:
|
|
@@ -1540,7 +1549,7 @@ function _handleExternalEvent() {
|
|
|
1540
1549
|
if (_distElement) props.projectActions.remove(_distElement);
|
|
1541
1550
|
return _context11.abrupt("continue", 49);
|
|
1542
1551
|
case 35:
|
|
1543
|
-
_evt$
|
|
1552
|
+
_evt$payload9 = evt.payload, option = _evt$payload9.option, _value2 = _evt$payload9.value;
|
|
1544
1553
|
_t7 = option;
|
|
1545
1554
|
_context11.next = _t7 === PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT ? 36 : _t7 === PROJECT_SETTING_OPTION.UPDATE_CEIL_HEIGHT ? 37 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WALL_LENGTH_MEASURE ? 38 : _t7 === PROJECT_SETTING_OPTION.CHANGE_BASE_CABINET_MEASURE ? 39 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WALL_CABINET_MEASURE ? 40 : _t7 === PROJECT_SETTING_OPTION.CHANGE_WINDOW_DOOR_MEASURE ? 41 : 42;
|
|
1546
1555
|
break;
|
|
@@ -1581,7 +1590,7 @@ function _handleExternalEvent() {
|
|
|
1581
1590
|
case 45:
|
|
1582
1591
|
_layerID = state.scene.selectedLayer;
|
|
1583
1592
|
_layer2 = state.scene.getIn(['layers', _layerID]).toJS();
|
|
1584
|
-
orginalItemInfo = evt === null || evt === void 0 || (_evt$
|
|
1593
|
+
orginalItemInfo = evt === null || evt === void 0 || (_evt$payload0 = evt.payload) === null || _evt$payload0 === void 0 ? void 0 : _evt$payload0.orginalItemInfo;
|
|
1585
1594
|
originalItem = _layer2 === null || _layer2 === void 0 ? void 0 : _layer2.items[orginalItemInfo.id];
|
|
1586
1595
|
_context11.next = 46;
|
|
1587
1596
|
return addItemToCatalog(evt.payload.replaceItemInfo, state, props.catalog, props.projectActions);
|
|
@@ -1593,10 +1602,10 @@ function _handleExternalEvent() {
|
|
|
1593
1602
|
y: originalItem.y
|
|
1594
1603
|
};
|
|
1595
1604
|
replaceItem = {
|
|
1596
|
-
name: evt === null || evt === void 0 || (_evt$
|
|
1605
|
+
name: evt === null || evt === void 0 || (_evt$payload1 = evt.payload) === null || _evt$payload1 === void 0 || (_evt$payload1 = _evt$payload1.replaceItemInfo) === null || _evt$payload1 === void 0 ? void 0 : _evt$payload1.name,
|
|
1597
1606
|
info: {
|
|
1598
|
-
width: evt === null || evt === void 0 || (_evt$
|
|
1599
|
-
height: evt === null || evt === void 0 || (_evt$
|
|
1607
|
+
width: evt === null || evt === void 0 || (_evt$payload10 = evt.payload) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.replaceItemInfo) === null || _evt$payload10 === void 0 || (_evt$payload10 = _evt$payload10.sizeinfo) === null || _evt$payload10 === void 0 ? void 0 : _evt$payload10.width,
|
|
1608
|
+
height: evt === null || evt === void 0 || (_evt$payload11 = evt.payload) === null || _evt$payload11 === void 0 || (_evt$payload11 = _evt$payload11.replaceItemInfo) === null || _evt$payload11 === void 0 || (_evt$payload11 = _evt$payload11.sizeinfo) === null || _evt$payload11 === void 0 ? void 0 : _evt$payload11.height
|
|
1600
1609
|
}
|
|
1601
1610
|
};
|
|
1602
1611
|
props.itemsActions.replaceItem(originalItemPos, originalItem, replaceItem);
|
|
@@ -1606,7 +1615,8 @@ function _handleExternalEvent() {
|
|
|
1606
1615
|
return _context11.abrupt("continue", 49);
|
|
1607
1616
|
case 48:
|
|
1608
1617
|
sceneData = state.scene.toJS(); // get molding data for "ReviewForQuote"
|
|
1609
|
-
currentTexture =
|
|
1618
|
+
currentTexture = (_layer$doorStyle = layer === null || layer === void 0 ? void 0 : layer.doorStyle) !== null && _layer$doorStyle !== void 0 ? _layer$doorStyle : props.state.doorStyle;
|
|
1619
|
+
if (!isEmpty(currentTexture) && Map.isMap(currentTexture)) currentTexture = (_currentTexture = currentTexture) === null || _currentTexture === void 0 ? void 0 : _currentTexture.toJS();
|
|
1610
1620
|
moldingPieceLength = (_props$configData$mol = props === null || props === void 0 || (_props$configData = props.configData) === null || _props$configData === void 0 ? void 0 : _props$configData.moldingPieceLength) !== null && _props$configData$mol !== void 0 ? _props$configData$mol : DEFAULT_MOLDING_PIECE_LENGTH;
|
|
1611
1621
|
sceneData.layers[layerId].moldingData = getMoldingDataOfScene2(layer, props.catalog, currentTexture, moldingPieceLength);
|
|
1612
1622
|
|
package/es/utils/molding.js
CHANGED
|
@@ -563,7 +563,23 @@ export function getLinesFromItems2(moldingGroup, layer, catalog) {
|
|
|
563
563
|
})) return 1; // continue
|
|
564
564
|
var mergedResult = getMergedLine(MGlines[_i3], filteredMGlines, 0);
|
|
565
565
|
if (mergedResult) {
|
|
566
|
-
|
|
566
|
+
// keep origin line direction
|
|
567
|
+
var rstLine = mergedResult.mergedLine;
|
|
568
|
+
// if (
|
|
569
|
+
// (Math.abs(MGlines[i][0].x - rstLine[1].x) < EPSILON &&
|
|
570
|
+
// Math.abs(MGlines[i][0].y - rstLine[1].y) < EPSILON) ||
|
|
571
|
+
// (Math.abs(MGlines[i][1].x - rstLine[0].x) < EPSILON &&
|
|
572
|
+
// Math.abs(MGlines[i][1].y - rstLine[0].y) < EPSILON)
|
|
573
|
+
// ) {
|
|
574
|
+
// // swap two end points
|
|
575
|
+
// const tx = rstLine[0].x;
|
|
576
|
+
// const ty = rstLine[0].y;
|
|
577
|
+
// rstLine[0].x = rstLine[1].x;
|
|
578
|
+
// rstLine[0].y = rstLine[1].y;
|
|
579
|
+
// rstLine[1].x = tx;
|
|
580
|
+
// rstLine[1].y = ty;
|
|
581
|
+
// }
|
|
582
|
+
newMGlines.push(rstLine);
|
|
567
583
|
filteredMGlines = mergedResult.filteredMGlines;
|
|
568
584
|
}
|
|
569
585
|
},
|