kitchen-simulator 11.30.2 → 11.31.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/assets/img/svg/accessories.svg +4 -4
- package/es/assets/img/svg/bottombar/elevation-back.svg +6 -6
- package/es/assets/img/svg/bottombar/elevation-front.svg +6 -6
- package/es/assets/img/svg/bottombar/elevation-left.svg +6 -6
- package/es/assets/img/svg/bottombar/elevation-right.svg +7 -7
- package/es/assets/img/svg/bottombar/elevation.svg +13 -13
- package/es/assets/img/svg/detail.svg +77 -77
- package/es/assets/img/svg/filtersActive.svg +19 -19
- package/es/assets/img/svg/invert.svg +12 -12
- package/es/assets/img/svg/menubar/login.svg +84 -84
- package/es/assets/img/svg/menubar/my_projects.svg +85 -85
- package/es/assets/img/svg/menubar/new_project.svg +110 -110
- package/es/assets/img/svg/menubar/save_project.svg +84 -84
- package/es/assets/img/svg/options.svg +3 -3
- package/es/assets/img/svg/positioning.svg +3 -3
- package/es/assets/img/svg/toggleFilters.svg +19 -19
- package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -13
- package/es/assets/img/svg/wizardstep/detail_view.svg +87 -87
- package/es/assets/img/svg/wizardstep/tile_view.svg +95 -95
- package/es/components/viewer2d/viewer2d.js +7 -22
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
- package/es/components/viewer3d/scene-creator.js +11 -10
- package/es/constants/applianceCategories.js +19 -0
- package/es/constants.js +1 -0
- package/es/engine/2d/viewer-utils.js +20 -0
- package/es/events/external/handleExternalEvent.util.js +80 -66
- package/es/events/external/handlers.changeDoorStyle.js +8 -15
- package/es/events/external/handlers.loadProject.js +8 -15
- package/es/mappings/external-events/mapExternalEventPayload.js +4 -4
- package/es/mappings/external-events/mappers/addItemMapper.js +9 -9
- package/es/mappings/external-events/mappers/ccdfMapper.js +7 -13
- package/es/shared/concurrency/async-pool.js +71 -0
- package/es/shared/domain/asset/sanitize-asset-url.js +5 -5
- package/es/shared/math/line-metrics.js +11 -11
- package/es/utils/geometry.js +19 -16
- package/es/utils/skinPanelEngine.js +14 -14
- package/lib/assets/img/svg/accessories.svg +4 -4
- package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -6
- package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -6
- package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -6
- package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -7
- package/lib/assets/img/svg/bottombar/elevation.svg +13 -13
- package/lib/assets/img/svg/detail.svg +77 -77
- package/lib/assets/img/svg/filtersActive.svg +19 -19
- package/lib/assets/img/svg/invert.svg +12 -12
- package/lib/assets/img/svg/menubar/login.svg +84 -84
- package/lib/assets/img/svg/menubar/my_projects.svg +85 -85
- package/lib/assets/img/svg/menubar/new_project.svg +110 -110
- package/lib/assets/img/svg/menubar/save_project.svg +84 -84
- package/lib/assets/img/svg/options.svg +3 -3
- package/lib/assets/img/svg/positioning.svg +3 -3
- package/lib/assets/img/svg/toggleFilters.svg +19 -19
- package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -13
- package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -87
- package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -95
- package/lib/components/viewer2d/viewer2d.js +7 -22
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
- package/lib/components/viewer3d/scene-creator.js +11 -10
- package/lib/constants/applianceCategories.js +25 -0
- package/lib/constants.js +5 -4
- package/lib/engine/2d/viewer-utils.js +25 -0
- package/lib/events/external/handleExternalEvent.util.js +80 -66
- package/lib/events/external/handlers.changeDoorStyle.js +8 -15
- package/lib/events/external/handlers.loadProject.js +8 -15
- package/lib/mappings/external-events/mapExternalEventPayload.js +4 -4
- package/lib/mappings/external-events/mappers/addItemMapper.js +9 -9
- package/lib/mappings/external-events/mappers/ccdfMapper.js +7 -13
- package/lib/shared/concurrency/async-pool.js +78 -0
- package/lib/shared/domain/asset/sanitize-asset-url.js +5 -5
- package/lib/shared/math/line-metrics.js +11 -11
- package/lib/utils/geometry.js +18 -15
- package/lib/utils/skinPanelEngine.js +14 -14
- package/package.json +1 -1
|
@@ -49,6 +49,7 @@ var _helper = require("../../utils/helper");
|
|
|
49
49
|
var _math = require("../../utils/math");
|
|
50
50
|
var _immutable = require("../../shared/objects/immutable");
|
|
51
51
|
var _cabinetCorner = require("../../shared/domain/cabinet-corner");
|
|
52
|
+
var _applianceCategories = require("../../constants/applianceCategories");
|
|
52
53
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
53
54
|
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; }
|
|
54
55
|
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; }
|
|
@@ -2508,13 +2509,13 @@ function createMDFromItem(item, lines, molding) {
|
|
|
2508
2509
|
};
|
|
2509
2510
|
}
|
|
2510
2511
|
function tryAdjacent(ct1, ct2) {
|
|
2511
|
-
if (ct1.catid.includes(
|
|
2512
|
+
if (ct1.catid.includes(_applianceCategories.APPLIANCE_CATEGORY_DISHWASHER) && ct1.catid.includes('BF')) {
|
|
2512
2513
|
var temp = ct1;
|
|
2513
2514
|
ct1 = ct2;
|
|
2514
2515
|
ct2 = temp;
|
|
2515
2516
|
}
|
|
2516
2517
|
log('----tryAdjacent', ct1.id, ct2.id);
|
|
2517
|
-
if (!ct2.catid.includes(
|
|
2518
|
+
if (!ct2.catid.includes(_applianceCategories.APPLIANCE_CATEGORY_DISHWASHER) && !ct2.catid.includes('BF') && ct1.catid != ct2.catid) return false;
|
|
2518
2519
|
if (ct1.items[0].layoutpos === 'Vanity' || ct2.items[0].layoutpos === 'Vanity') return false;
|
|
2519
2520
|
if (ct1.rotRad != ct2.rotRad) return false;
|
|
2520
2521
|
log('ct1', ct1.pos.x, ct1.pos.y, ct1.size.width);
|
|
@@ -2659,7 +2660,7 @@ function showItemCT(item, CT, visible, planData, layer) {
|
|
|
2659
2660
|
});
|
|
2660
2661
|
}
|
|
2661
2662
|
function getCountertopMesh(item, visible, planData, layer) {
|
|
2662
|
-
if (item.type.includes(
|
|
2663
|
+
if (item.type.includes(_applianceCategories.APPLIANCE_CATEGORY_DISHWASHER)) return undefined;
|
|
2663
2664
|
if (item.type.includes('BF')) return undefined;
|
|
2664
2665
|
var item3D = planData.sceneGraph.layers[layer.id].items[item.id];
|
|
2665
2666
|
var countertop = null;
|
|
@@ -2729,10 +2730,10 @@ function addCTMesh(countertop, planData, layer) {
|
|
|
2729
2730
|
var pivotMat = ctMesh.parent.parent.matrix;
|
|
2730
2731
|
pivotMat.setPosition(new Three.Vector3(countertop.pos.x, 0, -countertop.pos.y));
|
|
2731
2732
|
var width = countertop.items.find(function (ct) {
|
|
2732
|
-
return !ct.type.includes(
|
|
2733
|
+
return !ct.type.includes(_applianceCategories.APPLIANCE_CATEGORY_DISHWASHER) && !ct.type.includes('BF');
|
|
2733
2734
|
}).properties.get('width').get('_length');
|
|
2734
2735
|
var unit_width = countertop.items.find(function (ct) {
|
|
2735
|
-
return !ct.type.includes(
|
|
2736
|
+
return !ct.type.includes(_applianceCategories.APPLIANCE_CATEGORY_DISHWASHER) && !ct.type.includes('BF');
|
|
2736
2737
|
}).properties.get('width').get('_unit') || 'cm';
|
|
2737
2738
|
width = (0, _convertUnitsLite.convert)(width).from(unit_width).to('cm');
|
|
2738
2739
|
pivotMat.scale(new Three.Vector3(countertop.size.width / width, 1, 1));
|
|
@@ -3091,12 +3092,12 @@ function createBacksplash(item, layer, planData, scene) {
|
|
|
3091
3092
|
var disD0 = lineLength * hole.offset - width / 2;
|
|
3092
3093
|
var disD1 = lineLength * hole.offset + width / 2;
|
|
3093
3094
|
D0 = {
|
|
3094
|
-
x: v0.x + disD0 * Math.cos(hole.
|
|
3095
|
-
y: v0.y + disD0 * Math.sin(hole.
|
|
3095
|
+
x: v0.x + disD0 * Math.cos(hole.rotation),
|
|
3096
|
+
y: v0.y + disD0 * Math.sin(hole.rotation)
|
|
3096
3097
|
};
|
|
3097
3098
|
D1 = {
|
|
3098
|
-
x: v0.x + disD1 * Math.cos(hole.
|
|
3099
|
-
y: v0.y + disD1 * Math.sin(hole.
|
|
3099
|
+
x: v0.x + disD1 * Math.cos(hole.rotation),
|
|
3100
|
+
y: v0.y + disD1 * Math.sin(hole.rotation)
|
|
3100
3101
|
};
|
|
3101
3102
|
}
|
|
3102
3103
|
if (!(0, _helper.isEmpty)(width) && !(0, _helper.isEmpty)(altitude) && hole.line === (curLine === null || curLine === void 0 ? void 0 : curLine.id)) altItems.push({
|
|
@@ -3671,7 +3672,7 @@ function updateMoldingGroupArray(MGArray, selItem, planData, layer) {
|
|
|
3671
3672
|
var _mg$items$2, _mg$items$3, _mg$items$4;
|
|
3672
3673
|
var molding = (0, _helper.isImmutable)((_mg$items$2 = mg.items[0]) === null || _mg$items$2 === void 0 ? void 0 : _mg$items$2.molding) ? (_mg$items$3 = mg.items[0]) === null || _mg$items$3 === void 0 || (_mg$items$3 = _mg$items$3.molding) === null || _mg$items$3 === void 0 ? void 0 : _mg$items$3.filter(function (mol) {
|
|
3673
3674
|
var _mol$toJS2;
|
|
3674
|
-
return (mol === null || mol === void 0 || (_mol$toJS2 = mol.toJS()) === null || _mol$toJS2 === void 0 ? void 0 : _mol$toJS2.location_type) === mg.location_type;
|
|
3675
|
+
return (0, _helper.isImmutable)(mol) ? (mol === null || mol === void 0 || (_mol$toJS2 = mol.toJS()) === null || _mol$toJS2 === void 0 ? void 0 : _mol$toJS2.location_type) === mg.location_type : (mol === null || mol === void 0 ? void 0 : mol.location_type) === mg.location_type;
|
|
3675
3676
|
}).toJS()[0] : (_mg$items$4 = mg.items[0]) === null || _mg$items$4 === void 0 || (_mg$items$4 = _mg$items$4.molding) === null || _mg$items$4 === void 0 ? void 0 : _mg$items$4.filter(function (mol) {
|
|
3676
3677
|
return (mol === null || mol === void 0 ? void 0 : mol.location_type) === mg.location_type;
|
|
3677
3678
|
})[0];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EXCLUDED_APPLIANCE_CATEGORIES = exports.APPLIANCE_CATEGORY_REFRIGERATOR = exports.APPLIANCE_CATEGORY_RANGE = exports.APPLIANCE_CATEGORY_MICROWAVE = exports.APPLIANCE_CATEGORY_HOOD = exports.APPLIANCE_CATEGORY_DISHWASHER = exports.APPLIANCE_CATEGORY_COOK_TOP = void 0;
|
|
7
|
+
// Appliance category/name constants
|
|
8
|
+
//
|
|
9
|
+
// NOTE: Keep these in a small dedicated module instead of adding more
|
|
10
|
+
// hardcoded strings into src/constants.js (which is already very large).
|
|
11
|
+
|
|
12
|
+
// wall-like appliances
|
|
13
|
+
var APPLIANCE_CATEGORY_COOK_TOP = exports.APPLIANCE_CATEGORY_COOK_TOP = 'Cook Top';
|
|
14
|
+
var APPLIANCE_CATEGORY_MICROWAVE = exports.APPLIANCE_CATEGORY_MICROWAVE = 'Microwave';
|
|
15
|
+
var APPLIANCE_CATEGORY_HOOD = exports.APPLIANCE_CATEGORY_HOOD = 'Hood';
|
|
16
|
+
|
|
17
|
+
// base-like appliances
|
|
18
|
+
var APPLIANCE_CATEGORY_DISHWASHER = exports.APPLIANCE_CATEGORY_DISHWASHER = 'Dishwasher';
|
|
19
|
+
var APPLIANCE_CATEGORY_REFRIGERATOR = exports.APPLIANCE_CATEGORY_REFRIGERATOR = 'Refrigerator';
|
|
20
|
+
var APPLIANCE_CATEGORY_RANGE = exports.APPLIANCE_CATEGORY_RANGE = 'Range';
|
|
21
|
+
|
|
22
|
+
// Categories that we exclude from some snapping/overlap logic.
|
|
23
|
+
// (exported as an array so call-sites can create their own Set and avoid
|
|
24
|
+
// accidental shared mutation)
|
|
25
|
+
var EXCLUDED_APPLIANCE_CATEGORIES = exports.EXCLUDED_APPLIANCE_CATEGORIES = Object.freeze([APPLIANCE_CATEGORY_COOK_TOP, APPLIANCE_CATEGORY_MICROWAVE, APPLIANCE_CATEGORY_HOOD]);
|
package/lib/constants.js
CHANGED
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.END_DRAGGING_VERTEX = exports.END_DRAGGING_LINE = exports.END_DRAGGING_ITEM_3D = exports.END_DRAGGING_ITEM = exports.END_DRAGGING_HOLE_3D = exports.END_DRAGGING_HOLE = exports.END_CREATING_HOLE = exports.END_CREATING_CABINET = exports.ELEVATION_VIEW_TITLE = exports.ELEVATION_VIEW_RIGHT = exports.ELEVATION_VIEW_LEFT = exports.ELEVATION_VIEW_KEYWORD = exports.ELEVATION_VIEW_FRONT = exports.ELEVATION_VIEW_BACK = exports.ELEVATION_VIEW = exports.ELEMENT_VERTEX = exports.ELEMENT_LINE = exports.ELEMENT_ITEM = exports.ELEMENT_HOLE = exports.ELEMENT_AREA = exports.EDIT_WIDTH = exports.EDIT = exports.DUPLICATE_SELECTED = exports.DOORSTYLE_SCOPE_SINGLE = exports.DOORSTYLE_SCOPE_MULTIPLE = exports.DOORSTYLE_SCOPE_ALL = exports.DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_MOLDING_PIECE_LENGTH = exports.DEFAULT_INTERIOR_TEXTURE = exports.DEFAULT_FONT_FAMILY = exports.DEFAULT_DOOR_HANDLE_TEXTURE_URL = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = exports.DASH_LINE_COLOR = exports.CREATE_ROOM_WITH_SHAPE = exports.COPY_PROPERTIES = exports.CLIENTS_NAME = exports.CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = exports.CHANGE_MEASUREMENT_UNIT = exports.CHANGE_CATALOG_PAGE = exports.CHANGE_BASE_CABINET_MEASURE = exports.CEIL_UNITS_LENGTH = exports.BROWN_COLOR = exports.BOTTOM_MOLDING_LOCATION = exports.BOTTOM = exports.BG_COLOR_OVERLAY = exports.BG_COLOR_HOVER = exports.BG_COLOR_1 = exports.BG_COLOR_0 = exports.BEGIN_UPLOADING_IMAGE = exports.BEGIN_ROTATING_ITEM_3D = exports.BEGIN_ROTATING_ITEM = exports.BEGIN_FITTING_IMAGE = exports.BEGIN_DRAWING_LINE = exports.BEGIN_DRAGGING_VERTEX = exports.BEGIN_DRAGGING_LINE = exports.BEGIN_DRAGGING_ITEM_3D = exports.BEGIN_DRAGGING_ITEM = exports.BEGIN_DRAGGING_HOLE_3D = exports.BEGIN_DRAGGING_HOLE = exports.BASE_ITEM_MEASUREMENT_LINE_COLOR = exports.BASE_CABINET_LAYOUTPOS = exports.BACK_DIST_ANG = exports.ATT_VERTEXT_TWO = exports.ATT_VERTEXT_ONE = exports.ATT_LINE_LENGTH = exports.ATT_ITEM_ROTATION = exports.ATT_ITEM_POS = exports.ATT_HOLE_OFFSET_B = exports.ATT_HOLE_OFFSET_A = exports.ARROW_TEXT_FORECOLOR = exports.ARROW_TEXT_FONTFACE = exports.ARROW_TEXT_BACKCOLOR = exports.ARROW_COLOR = exports.ARRAY_ELEVATION_VIEW_MODES = exports.ARRAY_3D_MODES = exports.AREA_ACTIONS = exports.API_SERVER_URL = exports.ANIMATE_STEP_MIN = exports.ANIMATE_STEP_MAX = exports.ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT = exports.ANIMATE_OBJECT = exports.ALTERATE_STATE = exports.ADD_VERTICAL_GUIDE = exports.ADD_TO_GROUP = exports.ADD_LAYER = exports.ADD_HORIZONTAL_GUIDE = exports.ADD_GROUP_FROM_SELECTED = exports.ADD_GROUP = exports.ADD_ELEMENT_TO_CATALOG = exports.ADD_CIRCULAR_GUIDE = exports.ADD_CABINETS = exports.ADD_APPLIANCES = exports.ACCESSORIES_LAYOUTPOS = exports.ACCENT_COLOR = void 0;
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VANITY_CABINET_LAYOUTPOS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = exports.UPDATE_DRAWING_HOLE = exports.UPDATE_DRAGGING_VERTEX = exports.UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_ITEM_CHANGED = exports.UPDATE_DRAGGING_ITEM_3DY = exports.UPDATE_DRAGGING_ITEM_3DX = exports.UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_HOLE_RULER_CHANGED = exports.UPDATE_DRAGGING_HOLE_CHANGED = exports.UPDATE_DRAGGING_HOLE_3D = exports.UPDATE_DRAGGING_HOLE = exports.UPDATE_CEIL_HEIGHT_UNIT = exports.UPDATE_CEIL_HEIGHT = exports.UPDATE_3D_CEIL_HEIGHT_UNIT = exports.UPDATE_3D_CEIL_HEIGHT = exports.UPDATE_2D_CAMERA = void 0;
|
|
7
|
+
exports.MODE_BACK_ELEVATION_VIEW = exports.MODE_3D_VIEW = exports.MODE_3D_FIRST_PERSON = exports.MODE_2D_ZOOM_OUT = exports.MODE_2D_ZOOM_IN = exports.MODE_2D_PAN = exports.MODE = exports.MIN_ANGLE_DISALLOW_DRAW_WALL = exports.MIDDLE_MOLDING_LOCATION = exports.MEPSILON = exports.MAX_ZOOM_IN_SCALE = exports.MAX_ANGLE_SCALE = exports.MAKE_FLOOR_PLAN = exports.LOGOUT = exports.LOGIN_SUCCESS = exports.LOGIN_ERROR = exports.LOCAL_STORAGE_TOKEN_VALUE = exports.LOCAL_STORAGE_TOKEN_NAME = exports.LOCAL_STORAGE_ORIGINAL_TOKEN = exports.LOCAL_STORAGE_CUSTOMER_INFO = exports.LOCAL_STORAGE_CART_ACTION = exports.LOAD_PROJECT = exports.LIST_QUANTITIES = exports.LIST_PARTS = exports.LINE_THICKNESS = exports.LINE_EPSILON = exports.LINE_ACTIONS = exports.LEFT_DIST_ANG = exports.LEFT = exports.LABEL_COLOR = exports.KITCHEN_KONFIGURATOR = exports.KEYBOARD_BUTTON_CODE = exports.ITEM_TYPE = exports.ITEM_MOVE_UP = exports.ITEMS_ACTIONS = exports.INVERT = exports.INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.INTERNAL_EVENT_SYNC_SCENE = exports.INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_REPLACE_CABINET = exports.INTERNAL_EVENT_MIRROR_ELEMENT = exports.INTERNAL_EVENT_ITEMS_CATALOG = exports.INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = exports.INSTALLATION_TYPE_SKU_SUFFIX = exports.INSTALLATION_TYPE_NAME = exports.INSTALLATION_SUFFIX_TYPE = exports.INIT_CATALOG = exports.HOLE_NAMES = exports.HOLE_ACTIONS = exports.HDR_URLS = exports.HAS_LOADINGBAR = exports.GROUP_TRANSLATE = exports.GROUP_ROTATE = exports.GROUP_ACTIONS = exports.GO_BACK_TO_CATALOG_PAGE = exports.FRONT_DIST_ANG = exports.FINISHING_TYPE = exports.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.EXTERNAL_EVENT_TOGGLE_TO_3D = exports.EXTERNAL_EVENT_TOGGLE_TO_2D = exports.EXTERNAL_EVENT_SYNC_SCENE = exports.EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_FINISHING = exports.EXTERNAL_EVENT_ROTATE_PAN = exports.EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_NEW_PROJECT = exports.EXTERNAL_EVENT_MOVE_PAN = exports.EXTERNAL_EVENT_MIRROR_ELEMENT = exports.EXTERNAL_EVENT_LOAD_PROJECT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = exports.EXTERNAL_EVENT_ADD_HOLE = exports.ERROR_DATABASE = exports.EPSILON = exports.END_UPLOADING_IMAGE = exports.END_ROTATING_ITEM_3D = exports.END_ROTATING_ITEM = exports.END_LOADING = exports.END_FITTING_IMAGE = exports.END_DRAWING_LINE = exports.END_DRAWING_ITEM = exports.END_DRAWING_HOLE_3D = exports.END_DRAWING_HOLE = void 0;
|
|
8
|
+
exports.SELECT_TOOL_EDIT = exports.SELECT_TOOL_DRAWING_LINE = exports.SELECT_TOOL_DRAWING_ITEM_3D = exports.SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_HOLE_3D = exports.SELECT_TOOL_DRAWING_HOLE = exports.SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_FIRST_PERSON = exports.SELECT_LINE = exports.SELECT_LAYER = exports.SELECT_ITEM = exports.SELECT_HOLE = exports.SELECT_GROUP = exports.SELECT_DOOR_STYLE = exports.SELECT_AREA = exports.SELECT_ALL = exports.SELECTALL = exports.SECONDARY_PURPLE_COLOR = exports.SECONDARY_BLUE_COLOR = exports.SCENE_ACTIONS = exports.SAVE_PROJECT = exports.SAVE_DESIGN = exports.ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_MEASUREMENT_LINE_COLOR = exports.ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = exports.ROLLBACK = exports.RIGHT_DIST_ANG = exports.RIGHT = exports.REVIEW_AND_QUOTE = exports.REQUEST_ASSISTANCE = exports.REPLACE_SUBMODULE = exports.REPLACE_ITEM = exports.REMOVE_VERTICAL_GUIDE = exports.REMOVE_REPLACE_SUBMODULE = exports.REMOVE_LINEAR = exports.REMOVE_LAYER = exports.REMOVE_HORIZONTAL_GUIDE = exports.REMOVE_GROUP_AND_DELETE_ELEMENTS = exports.REMOVE_GROUP = exports.REMOVE_FROM_GROUP = exports.REMOVE_DRAWING_SUPPORT = exports.REMOVE_CIRCULAR_GUIDE = exports.REMOVE = exports.REDO = exports.RECREATE = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROP_RESIZE_WIDTH = exports.PROP_RESIZE_HEIGHT = exports.PROP_RESIZE_DEPTH = exports.PROP_OPEN_DOORS = exports.PROP_FLIP_DOOR_HANDLE = exports.PROP_ALTITUDE = exports.PROJECT_SETTING_OPTION = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = exports.MODE_CONFIGURING_PROJECT = void 0;
|
|
9
|
+
exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = exports.UNIT_INCH_LONG = exports.UNIT_INCH = exports.UNIT_FOOT = exports.UNIT_CENTIMETER = exports.UNIT_ANGLE = exports.UNITS_LENGTH = exports.UNDO = exports.UNCREATE = exports.TWO_D_FLOOR_PLAN = exports.TOP_MOLDING_LOCATION = exports.TOP = exports.TOGGLE_SNAP = exports.TOGGLE_LOADING_CABINET = exports.TOGGLE_ITEM_MIRROR = exports.TOE_KICK_MOLDING = exports.TITLE_SMALL_COLOR = exports.TITLE_COLOR = exports.THROW_WARNING = exports.THROW_ERROR = exports.TEXT_COLOR_NEUTRAL_7 = exports.TEXT_COLOR_NEUTRAL_6 = exports.TEXT_COLOR_NEUTRAL_5 = exports.TEXT_COLOR_NEUTRAL_4 = exports.TEXT_COLOR_NEUTRAL_3 = exports.TEXT_COLOR_NEUTRAL_2 = exports.TEXT_COLOR_NEUTRAL_1 = exports.TEXT_COLOR_NEUTRAL_0 = exports.TEXT_COLOR = exports.TECHNICAL_VIEW = exports.TALL_CABINET_LAYOUTPOS = exports.TAKE_PICTURE = exports.SUBTOTAL = exports.SUBMIT_REQUEST_ASSIST = exports.SUBMIT_DESIGN = exports.SUBMIT_ADD_CART = exports.STORE_DIST_ARRAY = exports.STOP_DRAWING_LINE = exports.STEP_CABINET_CHOOSE_PRODUCT = exports.STATUS_WARNING_LIGHT_COLOR = exports.STATUS_WARNING_COLOR = exports.STATUS_POSITIVE_LIGHT_COLOR = exports.STATUS_POSITIVE_COLOR = exports.STATUS_OVERDUE_LIGHT_COLOR = exports.STATUS_OVERDUE_COLOR = exports.STATUS_NEGATIVE_LIGHT_COLOR = exports.STATUS_NEGATIVE_COLOR = exports.STATUS_INFO_LIGHT_COLOR = exports.STATUS_INFO_COLOR = exports.SHIFT2DON = exports.SHIFT2DOFF = exports.SHAPE_SVG_WIDTH = exports.SHAPE_SVG_PADDING = exports.SHAPE_SVG_DEPTH = exports.SHADE_LIGHT_PURPLE_COLOR = exports.SHADE_LIGHT_GREEN_COLOR = exports.SHADE_LIGHT_BLUE_COLOR = exports.SHADE_DARK_PURPLE_COLOR = exports.SHADE_DARK_GREEN_COLOR = exports.SHADE_DARK_BLUE_COLOR = exports.SET_WALL_COLOR = exports.SET_USER_DATA = exports.SET_STATE_PROPERTIES = exports.SET_ROTATE_STATUS = exports.SET_RELATED_LINE = exports.SET_PROPERTIES = exports.SET_PROJECT_PROPERTIES = exports.SET_PROJECT_ID = exports.SET_MOVE_STATUS = exports.SET_MOLDINGS_CCDF = exports.SET_MOLDING = exports.SET_MODELLING = exports.SET_MODE = exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = exports.SET_ITEMS_CCDF = exports.SET_ITEMS_ATTRIBUTES = exports.SET_IS_HELP = exports.SET_IS_CABINET_DRAWING = exports.SET_INITIAL_DOOR_STYLE = exports.SET_HOLES_ATTRIBUTES = exports.SET_HANDLE_MATERIAL = exports.SET_GROUP_PROPERTIES = exports.SET_GROUP_BARYCENTER = exports.SET_GROUP_ATTRIBUTES = exports.SET_FLOOR_STYLES = exports.SET_DOOR_STYLE = exports.SET_DOOR_HANDLE = exports.SET_DISTANT = exports.SET_COUNTER_TOP = exports.SET_BACKSPLASH_VISIBLE = exports.SET_BACKSPLASH = exports.SET_APPLIANCE_MATERIAL = exports.SELECT_TOOL_ZOOM_OUT = exports.SELECT_TOOL_ZOOM_IN = exports.SELECT_TOOL_UPLOAD_IMAGE = exports.SELECT_TOOL_PAN = void 0;
|
|
10
|
+
exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VANITY_CABINET_LAYOUTPOS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = exports.UPDATE_DRAWING_HOLE = exports.UPDATE_DRAGGING_VERTEX = exports.UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_ITEM_CHANGED = exports.UPDATE_DRAGGING_ITEM_3DY = exports.UPDATE_DRAGGING_ITEM_3DX = exports.UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_HOLE_RULER_CHANGED = exports.UPDATE_DRAGGING_HOLE_CHANGED = exports.UPDATE_DRAGGING_HOLE_3D = exports.UPDATE_DRAGGING_HOLE = exports.UPDATE_CEIL_HEIGHT_UNIT = exports.UPDATE_CEIL_HEIGHT = exports.UPDATE_3D_CEIL_HEIGHT_UNIT = exports.UPDATE_3D_CEIL_HEIGHT = exports.UPDATE_2D_CAMERA = exports.UNSELECT_GROUP = void 0;
|
|
11
11
|
//API server
|
|
12
12
|
// export const API_SERVER = 'http://localhost:3000/';
|
|
13
13
|
// ACTIONS project
|
|
@@ -469,6 +469,7 @@ var UNIT_MILE = exports.UNIT_MILE = 'mi';
|
|
|
469
469
|
var UNITS_LENGTH = exports.UNITS_LENGTH = [UNIT_MILLIMETER, UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT, UNIT_MILE];
|
|
470
470
|
var CEIL_UNITS_LENGTH = exports.CEIL_UNITS_LENGTH = [UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT];
|
|
471
471
|
var EPSILON = exports.EPSILON = 0.5;
|
|
472
|
+
var LINE_EPSILON = exports.LINE_EPSILON = 0.01;
|
|
472
473
|
|
|
473
474
|
// distance between item and wall
|
|
474
475
|
var DISTANCE_EPSILON = exports.DISTANCE_EPSILON = 5.0; //5.08; // 2 inch
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.shouldBypassItemIntersectionValidation = void 0;
|
|
7
|
+
var _applianceCategories = require("../../constants/applianceCategories");
|
|
8
|
+
/**
|
|
9
|
+
* Returns `true` for items that are intentionally allowed to overlap other
|
|
10
|
+
* elements while being placed/dragged in the 2D viewer.
|
|
11
|
+
*
|
|
12
|
+
* Why this exists:
|
|
13
|
+
* - `GeometryUtils.validInterSect(...)` is used as a collision/intersection gate.
|
|
14
|
+
* - Some appliances (e.g. cooktops/ranges/hoods) are expected to be placed "on"
|
|
15
|
+
* or "inside" cabinetry/countertops, so they must not be blocked by that gate.
|
|
16
|
+
*
|
|
17
|
+
* NOTE: This currently identifies items by the appliance category strings found
|
|
18
|
+
* in `itemInfo.name` / `itemInfo.cabinet_category`.
|
|
19
|
+
*/
|
|
20
|
+
var shouldBypassItemIntersectionValidation = exports.shouldBypassItemIntersectionValidation = function shouldBypassItemIntersectionValidation(itemRect) {
|
|
21
|
+
var itemInfo = itemRect === null || itemRect === void 0 ? void 0 : itemRect.itemInfo;
|
|
22
|
+
var name = typeof (itemInfo === null || itemInfo === void 0 ? void 0 : itemInfo.name) === 'string' ? itemInfo.name : '';
|
|
23
|
+
var cabinetCategory = typeof (itemInfo === null || itemInfo === void 0 ? void 0 : itemInfo.cabinet_category) === 'string' ? itemInfo.cabinet_category : '';
|
|
24
|
+
return name.includes(_applianceCategories.APPLIANCE_CATEGORY_HOOD) || cabinetCategory.toLowerCase().includes(_applianceCategories.APPLIANCE_CATEGORY_HOOD.toLowerCase()) || name.includes(_applianceCategories.APPLIANCE_CATEGORY_RANGE) || name.includes(_applianceCategories.APPLIANCE_CATEGORY_COOK_TOP);
|
|
25
|
+
};
|
|
@@ -57,40 +57,54 @@ function parseTempPlaceholdersFromCabinetPayload(_x) {
|
|
|
57
57
|
}
|
|
58
58
|
/***** Update cabinetPayloadData with updatedTempPlaceholders *****/
|
|
59
59
|
function _parseTempPlaceholdersFromCabinetPayload() {
|
|
60
|
-
_parseTempPlaceholdersFromCabinetPayload = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
_parseTempPlaceholdersFromCabinetPayload = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(cabinetPayload) {
|
|
61
|
+
var _cabinetPayload$struc;
|
|
62
|
+
var keys, gltfEntries, temp, tempPlaceholdersData, k, _cabinetPayload$struc3, el, tempData, doorKey, drawerKey, fixedKey, doorPHs, drawerPHs, has_single_door, fixedPHs;
|
|
63
|
+
return _regenerator["default"].wrap(function (_context4) {
|
|
64
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
64
65
|
case 0:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
link = cabinetPayload.structure_json[keys[i]];
|
|
79
|
-
_t2 = temp;
|
|
80
|
-
_t3 = keys[i];
|
|
81
|
-
_context3.next = 2;
|
|
82
|
-
return (0, _loadAssetJson.loadJSONWithFallback)(link);
|
|
83
|
-
case 2:
|
|
84
|
-
_t4 = _context3.sent;
|
|
85
|
-
_t2.push.call(_t2, {
|
|
86
|
-
name: _t3,
|
|
87
|
-
data: _t4
|
|
66
|
+
keys = Object.keys((_cabinetPayload$struc = cabinetPayload.structure_json) !== null && _cabinetPayload$struc !== void 0 ? _cabinetPayload$struc : {}); // Load all referenced .gltf JSONs in parallel.
|
|
67
|
+
// NOTE: loadJSON() already has a per-URL promise cache, so duplicates are de-duped across calls.
|
|
68
|
+
gltfEntries = keys.map(function (name) {
|
|
69
|
+
var _cabinetPayload$struc2;
|
|
70
|
+
return {
|
|
71
|
+
name: name,
|
|
72
|
+
link: (_cabinetPayload$struc2 = cabinetPayload.structure_json) === null || _cabinetPayload$struc2 === void 0 ? void 0 : _cabinetPayload$struc2[name]
|
|
73
|
+
};
|
|
74
|
+
}).filter(function (_ref3) {
|
|
75
|
+
var _link$toString, _link$toString2;
|
|
76
|
+
var link = _ref3.link;
|
|
77
|
+
return (link === null || link === void 0 || (_link$toString = link.toString) === null || _link$toString === void 0 || (_link$toString = _link$toString.call(link)) === null || _link$toString === void 0 ? void 0 : _link$toString.includes('.gltf')) && (link === null || link === void 0 || (_link$toString2 = link.toString) === null || _link$toString2 === void 0 || (_link$toString2 = _link$toString2.call(link)) === null || _link$toString2 === void 0 ? void 0 : _link$toString2.startsWith('http'));
|
|
88
78
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
79
|
+
_context4.next = 1;
|
|
80
|
+
return Promise.all(gltfEntries.map(/*#__PURE__*/function () {
|
|
81
|
+
var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref4) {
|
|
82
|
+
var name, link, _t2, _t3;
|
|
83
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
84
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
85
|
+
case 0:
|
|
86
|
+
name = _ref4.name, link = _ref4.link;
|
|
87
|
+
_t2 = name;
|
|
88
|
+
_context3.next = 1;
|
|
89
|
+
return (0, _loadAssetJson.loadJSONWithFallback)(link);
|
|
90
|
+
case 1:
|
|
91
|
+
_t3 = _context3.sent;
|
|
92
|
+
return _context3.abrupt("return", {
|
|
93
|
+
name: _t2,
|
|
94
|
+
data: _t3
|
|
95
|
+
});
|
|
96
|
+
case 2:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context3.stop();
|
|
99
|
+
}
|
|
100
|
+
}, _callee3);
|
|
101
|
+
}));
|
|
102
|
+
return function (_x9) {
|
|
103
|
+
return _ref5.apply(this, arguments);
|
|
104
|
+
};
|
|
105
|
+
}()));
|
|
106
|
+
case 1:
|
|
107
|
+
temp = _context4.sent;
|
|
94
108
|
tempPlaceholdersData = [];
|
|
95
109
|
for (k = 0; k < (cabinetPayload === null || cabinetPayload === void 0 || (_cabinetPayload$struc3 = cabinetPayload.structure_json) === null || _cabinetPayload$struc3 === void 0 || (_cabinetPayload$struc3 = _cabinetPayload$struc3.tempPlaceholders) === null || _cabinetPayload$struc3 === void 0 ? void 0 : _cabinetPayload$struc3.length); k++) {
|
|
96
110
|
el = cabinetPayload.structure_json.tempPlaceholders[k].id;
|
|
@@ -399,12 +413,12 @@ function _parseTempPlaceholdersFromCabinetPayload() {
|
|
|
399
413
|
structure: cabinetPayload.structure_json.tempPlaceholders[k].structure
|
|
400
414
|
});
|
|
401
415
|
}
|
|
402
|
-
return
|
|
403
|
-
case
|
|
416
|
+
return _context4.abrupt("return", tempPlaceholdersData);
|
|
417
|
+
case 2:
|
|
404
418
|
case "end":
|
|
405
|
-
return
|
|
419
|
+
return _context4.stop();
|
|
406
420
|
}
|
|
407
|
-
},
|
|
421
|
+
}, _callee4);
|
|
408
422
|
}));
|
|
409
423
|
return _parseTempPlaceholdersFromCabinetPayload.apply(this, arguments);
|
|
410
424
|
}
|
|
@@ -412,16 +426,16 @@ function updateCabinetPayload(_x2) {
|
|
|
412
426
|
return _updateCabinetPayload.apply(this, arguments);
|
|
413
427
|
}
|
|
414
428
|
function _updateCabinetPayload() {
|
|
415
|
-
_updateCabinetPayload = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
429
|
+
_updateCabinetPayload = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(cabinetPayload) {
|
|
416
430
|
var tempPlaceholders, cabinetPayloadKeys, i;
|
|
417
|
-
return _regenerator["default"].wrap(function (
|
|
418
|
-
while (1) switch (
|
|
431
|
+
return _regenerator["default"].wrap(function (_context5) {
|
|
432
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
419
433
|
case 0:
|
|
420
434
|
tempPlaceholders = [];
|
|
421
|
-
|
|
435
|
+
_context5.next = 1;
|
|
422
436
|
return parseTempPlaceholdersFromCabinetPayload(cabinetPayload);
|
|
423
437
|
case 1:
|
|
424
|
-
tempPlaceholders =
|
|
438
|
+
tempPlaceholders = _context5.sent;
|
|
425
439
|
cabinetPayloadKeys = Object.keys(cabinetPayload);
|
|
426
440
|
for (i = 0; i < cabinetPayloadKeys.length; i++) {
|
|
427
441
|
if (cabinetPayloadKeys[i] === 'structure_json') {
|
|
@@ -433,12 +447,12 @@ function _updateCabinetPayload() {
|
|
|
433
447
|
cabinetPayload[cabinetPayloadKeys[i]]['tempPlaceholders'] = tempPlaceholders;
|
|
434
448
|
}
|
|
435
449
|
}
|
|
436
|
-
return
|
|
450
|
+
return _context5.abrupt("return", cabinetPayload);
|
|
437
451
|
case 2:
|
|
438
452
|
case "end":
|
|
439
|
-
return
|
|
453
|
+
return _context5.stop();
|
|
440
454
|
}
|
|
441
|
-
},
|
|
455
|
+
}, _callee5);
|
|
442
456
|
}));
|
|
443
457
|
return _updateCabinetPayload.apply(this, arguments);
|
|
444
458
|
}
|
|
@@ -537,23 +551,23 @@ function addItemToCatalog(_x4, _x5, _x6, _x7) {
|
|
|
537
551
|
return _addItemToCatalog.apply(this, arguments);
|
|
538
552
|
} // Get attributs of current selected element
|
|
539
553
|
function _addItemToCatalog() {
|
|
540
|
-
_addItemToCatalog = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
554
|
+
_addItemToCatalog = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(element, state, catalogInstance, projectActions) {
|
|
541
555
|
var _elementJs, _elementJs$structure_, _elementJs$structure_2, _elementJs$structure_3, _elementJs$structure_4, _elementJs3;
|
|
542
556
|
var elementJs, outlineSVGData, _state$getIn, cds, _cds$find, _elementJs2, currentCdsId, cdsIdx, ttph, updatedStructureJson, catalogElements, catalogElementKeys, catalogItem, k, _catalogElements$cata, tempPlaceholderArray, _catalogItem$structur, newTempPlaceholderArray, mergedTempPlaceholder;
|
|
543
|
-
return _regenerator["default"].wrap(function (
|
|
544
|
-
while (1) switch (
|
|
557
|
+
return _regenerator["default"].wrap(function (_context6) {
|
|
558
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
545
559
|
case 0:
|
|
546
560
|
if (!(0, _helper.isEmpty)(element === null || element === void 0 ? void 0 : element.name)) {
|
|
547
|
-
|
|
561
|
+
_context6.next = 1;
|
|
548
562
|
break;
|
|
549
563
|
}
|
|
550
|
-
return
|
|
564
|
+
return _context6.abrupt("return");
|
|
551
565
|
case 1:
|
|
552
566
|
elementJs = populateCCDFList(element); // if (isEmpty(catalog?.elements[element.name])) {
|
|
553
|
-
|
|
567
|
+
_context6.next = 2;
|
|
554
568
|
return loadSVGsByItem(elementJs);
|
|
555
569
|
case 2:
|
|
556
|
-
outlineSVGData =
|
|
570
|
+
outlineSVGData = _context6.sent;
|
|
557
571
|
if (((_elementJs = elementJs) === null || _elementJs === void 0 ? void 0 : _elementJs.type) === 'cabinet') {
|
|
558
572
|
// move the tempPlaceholder of current door style to first of tempPlaceholders array
|
|
559
573
|
cds = (_state$getIn = state.getIn(['scene', 'layers', 'layer-1', 'doorStyle'])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.cds;
|
|
@@ -581,13 +595,13 @@ function _addItemToCatalog() {
|
|
|
581
595
|
}
|
|
582
596
|
});
|
|
583
597
|
if ((0, _helper.isEmpty)((_elementJs$structure_4 = elementJs.structure_json) === null || _elementJs$structure_4 === void 0 ? void 0 : _elementJs$structure_4.tempPlaceholders)) {
|
|
584
|
-
|
|
598
|
+
_context6.next = 4;
|
|
585
599
|
break;
|
|
586
600
|
}
|
|
587
|
-
|
|
601
|
+
_context6.next = 3;
|
|
588
602
|
return updateCabinetPayload(elementJs);
|
|
589
603
|
case 3:
|
|
590
|
-
elementJs =
|
|
604
|
+
elementJs = _context6.sent;
|
|
591
605
|
case 4:
|
|
592
606
|
elementJs = _objectSpread(_objectSpread({}, elementJs), {}, {
|
|
593
607
|
outlineSVGData: outlineSVGData,
|
|
@@ -604,18 +618,18 @@ function _addItemToCatalog() {
|
|
|
604
618
|
k = 0;
|
|
605
619
|
case 5:
|
|
606
620
|
if (!(k < catalogElementKeys.length)) {
|
|
607
|
-
|
|
621
|
+
_context6.next = 7;
|
|
608
622
|
break;
|
|
609
623
|
}
|
|
610
624
|
if (!(((_catalogElements$cata = catalogElements[catalogElementKeys[k]]) === null || _catalogElements$cata === void 0 ? void 0 : _catalogElements$cata.itemID) === elementJs.itemID)) {
|
|
611
|
-
|
|
625
|
+
_context6.next = 6;
|
|
612
626
|
break;
|
|
613
627
|
}
|
|
614
628
|
catalogItem = catalogElements[catalogElementKeys[k]];
|
|
615
|
-
return
|
|
629
|
+
return _context6.abrupt("continue", 7);
|
|
616
630
|
case 6:
|
|
617
631
|
k++;
|
|
618
|
-
|
|
632
|
+
_context6.next = 5;
|
|
619
633
|
break;
|
|
620
634
|
case 7:
|
|
621
635
|
// get old tempPlaceholder array from catalog item
|
|
@@ -646,9 +660,9 @@ function _addItemToCatalog() {
|
|
|
646
660
|
}
|
|
647
661
|
case 8:
|
|
648
662
|
case "end":
|
|
649
|
-
return
|
|
663
|
+
return _context6.stop();
|
|
650
664
|
}
|
|
651
|
-
},
|
|
665
|
+
}, _callee6);
|
|
652
666
|
}));
|
|
653
667
|
return _addItemToCatalog.apply(this, arguments);
|
|
654
668
|
}
|
|
@@ -1012,11 +1026,11 @@ function loadMoldingSvg(_x8) {
|
|
|
1012
1026
|
return _loadMoldingSvg.apply(this, arguments);
|
|
1013
1027
|
}
|
|
1014
1028
|
function _loadMoldingSvg() {
|
|
1015
|
-
_loadMoldingSvg = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1016
|
-
return _regenerator["default"].wrap(function (
|
|
1017
|
-
while (1) switch (
|
|
1029
|
+
_loadMoldingSvg = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(molding) {
|
|
1030
|
+
return _regenerator["default"].wrap(function (_context7) {
|
|
1031
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
1018
1032
|
case 0:
|
|
1019
|
-
return
|
|
1033
|
+
return _context7.abrupt("return", new Promise(function (resolve, reject) {
|
|
1020
1034
|
var url = molding === null || molding === void 0 ? void 0 : molding.shape_svg;
|
|
1021
1035
|
if (!url) {
|
|
1022
1036
|
// Skip if no SVG URL available
|
|
@@ -1038,9 +1052,9 @@ function _loadMoldingSvg() {
|
|
|
1038
1052
|
}));
|
|
1039
1053
|
case 1:
|
|
1040
1054
|
case "end":
|
|
1041
|
-
return
|
|
1055
|
+
return _context7.stop();
|
|
1042
1056
|
}
|
|
1043
|
-
},
|
|
1057
|
+
}, _callee7);
|
|
1044
1058
|
}));
|
|
1045
1059
|
return _loadMoldingSvg.apply(this, arguments);
|
|
1046
1060
|
}
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.handleChangeDoorStyleEvent = handleChangeDoorStyleEvent;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _asyncPool = require("../../shared/concurrency/async-pool");
|
|
10
11
|
function prepareMoldingCCDFList(doorStyle, moldingData) {
|
|
11
12
|
var moldingCCDFs = [];
|
|
12
13
|
for (var i = 0; i < moldingData.length; i++) {
|
|
@@ -117,7 +118,7 @@ function _handleChangeDoorStyleEvent() {
|
|
|
117
118
|
function () {
|
|
118
119
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
119
120
|
var _result$ccdf_list, _doorStyle$id2, _result$molding_ccdf_;
|
|
120
|
-
var mappedCabinetDefinitionList, rt
|
|
121
|
+
var mappedCabinetDefinitionList, rt;
|
|
121
122
|
return _regenerator["default"].wrap(function (_context) {
|
|
122
123
|
while (1) switch (_context.prev = _context.next) {
|
|
123
124
|
case 0:
|
|
@@ -125,27 +126,19 @@ function _handleChangeDoorStyleEvent() {
|
|
|
125
126
|
// because host `cabinet_id` can vary by doorstyle.
|
|
126
127
|
itemCDS = mapFromCCDFToCDS(result === null || result === void 0 ? void 0 : result.ccdf_list, targetItems);
|
|
127
128
|
mappedCabinetDefinitionList = ccdfMapper(result === null || result === void 0 ? void 0 : result.ccdf_list, layer); // result: ccdf_list
|
|
128
|
-
rt = mergeSameElements(mappedCabinetDefinitionList);
|
|
129
|
-
_i = 0;
|
|
130
|
-
case 1:
|
|
131
|
-
if (!(_i < (rt === null || rt === void 0 ? void 0 : rt.length))) {
|
|
132
|
-
_context.next = 3;
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
_context.next = 2;
|
|
136
|
-
return addItemToCatalog(rt[_i], state, props.catalog, props.projectActions);
|
|
137
|
-
case 2:
|
|
138
|
-
_i++;
|
|
129
|
+
rt = mergeSameElements(mappedCabinetDefinitionList); // Load/parse cabinet assets in parallel (but capped to avoid flooding the network/main thread)
|
|
139
130
|
_context.next = 1;
|
|
140
|
-
|
|
141
|
-
|
|
131
|
+
return (0, _asyncPool.asyncPool)(6, rt !== null && rt !== void 0 ? rt : [], function (element) {
|
|
132
|
+
return addItemToCatalog(element, state, props.catalog, props.projectActions);
|
|
133
|
+
});
|
|
134
|
+
case 1:
|
|
142
135
|
// Persist ccdf on affected instances so SYNC includes the latest ccdf.id for each item.
|
|
143
136
|
// IMPORTANT: host response `ccdf_list[]` may not include `door_finish_id`.
|
|
144
137
|
// Use request door_finish_id (doorStyle.id) as the source of truth for door_finish_id.
|
|
145
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$id2 = doorStyle === null || doorStyle === void 0 ? void 0 : doorStyle.id) !== null && _doorStyle$id2 !== void 0 ? _doorStyle$id2 : null);
|
|
146
139
|
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);
|
|
147
140
|
props.itemsActions.setDoorStyle(doorStyle, itemCDS, applyScope, itemIds);
|
|
148
|
-
case
|
|
141
|
+
case 2:
|
|
149
142
|
case "end":
|
|
150
143
|
return _context.stop();
|
|
151
144
|
}
|
|
@@ -11,6 +11,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
11
11
|
var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
12
12
|
var _constants = require("../../constants");
|
|
13
13
|
var _models = require("../../models");
|
|
14
|
+
var _asyncPool = require("../../shared/concurrency/async-pool");
|
|
14
15
|
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; }
|
|
15
16
|
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; }
|
|
16
17
|
function handleLoadProjectEvent(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
|
|
@@ -66,7 +67,7 @@ function _handleLoadProjectEvent() {
|
|
|
66
67
|
}, /*#__PURE__*/function () {
|
|
67
68
|
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(result) {
|
|
68
69
|
var _evt$payload2;
|
|
69
|
-
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt
|
|
70
|
+
var cdsList, _result$ccdf_list, resp, cabinetDefinitionList, rt;
|
|
70
71
|
return _regenerator["default"].wrap(function (_context) {
|
|
71
72
|
while (1) switch (_context.prev = _context.next) {
|
|
72
73
|
case 0:
|
|
@@ -98,22 +99,14 @@ function _handleLoadProjectEvent() {
|
|
|
98
99
|
// best-effort only
|
|
99
100
|
}
|
|
100
101
|
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']);
|
|
101
|
-
rt = mergeSameElements(cabinetDefinitionList);
|
|
102
|
-
i = 0;
|
|
103
|
-
case 1:
|
|
104
|
-
if (!(i < (rt === null || rt === void 0 ? void 0 : rt.length))) {
|
|
105
|
-
_context.next = 3;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
_context.next = 2;
|
|
109
|
-
return addItemToCatalog(rt[i], tempState, props.catalog, props.projectActions);
|
|
110
|
-
case 2:
|
|
111
|
-
i++;
|
|
102
|
+
rt = mergeSameElements(cabinetDefinitionList); // Load/parse cabinet assets in parallel (but capped to avoid flooding the network/main thread)
|
|
112
103
|
_context.next = 1;
|
|
113
|
-
|
|
114
|
-
|
|
104
|
+
return (0, _asyncPool.asyncPool)(6, rt !== null && rt !== void 0 ? rt : [], function (element) {
|
|
105
|
+
return addItemToCatalog(element, tempState, props.catalog, props.projectActions);
|
|
106
|
+
});
|
|
107
|
+
case 1:
|
|
115
108
|
props.projectActions.loadProject(evt.payload);
|
|
116
|
-
case
|
|
109
|
+
case 2:
|
|
117
110
|
case "end":
|
|
118
111
|
return _context.stop();
|
|
119
112
|
}
|
|
@@ -9,10 +9,10 @@ var _helper = require("../../utils/helper");
|
|
|
9
9
|
var _addItemMapper = require("./mappers/addItemMapper");
|
|
10
10
|
var _changeDoorStyleMapper = require("./mappers/changeDoorStyleMapper");
|
|
11
11
|
var _loadProjectMapper = require("./mappers/loadProjectMapper");
|
|
12
|
-
/**
|
|
13
|
-
* Main dispatcher for external event payload mapping.
|
|
14
|
-
* Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
|
|
15
|
-
* without changing the behavior of the existing 3D tool.
|
|
12
|
+
/**
|
|
13
|
+
* Main dispatcher for external event payload mapping.
|
|
14
|
+
* Converts new API formats into legacy internal formats (e.g. assets3d -> structure_json)
|
|
15
|
+
* without changing the behavior of the existing 3D tool.
|
|
16
16
|
*/
|
|
17
17
|
function mapExternalEventPayload(evt, state, defaultTextures) {
|
|
18
18
|
if ((0, _helper.isEmpty)(evt)) return null;
|
|
@@ -11,15 +11,15 @@ var _constants = require("../../../constants");
|
|
|
11
11
|
var _helper = require("../../../utils/helper");
|
|
12
12
|
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; }
|
|
13
13
|
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; }
|
|
14
|
-
/**
|
|
15
|
-
* Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
|
|
16
|
-
*
|
|
17
|
-
* Converts the new assets3d payload shape into the legacy structure_json format
|
|
18
|
-
* expected by the existing 3D tool.
|
|
19
|
-
*
|
|
20
|
-
* @param {Object} evt.payload External event payload
|
|
21
|
-
* @param {Immutable.Map} state Planner state
|
|
22
|
-
* @returns {Object|null} Updated event (or null when payload is empty)
|
|
14
|
+
/**
|
|
15
|
+
* Mapping logic for EXTERNAL_EVENT_ADD_ITEM.
|
|
16
|
+
*
|
|
17
|
+
* Converts the new assets3d payload shape into the legacy structure_json format
|
|
18
|
+
* expected by the existing 3D tool.
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} evt.payload External event payload
|
|
21
|
+
* @param {Immutable.Map} state Planner state
|
|
22
|
+
* @returns {Object|null} Updated event (or null when payload is empty)
|
|
23
23
|
*/
|
|
24
24
|
function mapAddItemEvent(orgEvtPayload, state) {
|
|
25
25
|
var _evtPayload, _evtPayload3;
|