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.
Files changed (73) hide show
  1. package/es/assets/img/svg/accessories.svg +4 -4
  2. package/es/assets/img/svg/bottombar/elevation-back.svg +6 -6
  3. package/es/assets/img/svg/bottombar/elevation-front.svg +6 -6
  4. package/es/assets/img/svg/bottombar/elevation-left.svg +6 -6
  5. package/es/assets/img/svg/bottombar/elevation-right.svg +7 -7
  6. package/es/assets/img/svg/bottombar/elevation.svg +13 -13
  7. package/es/assets/img/svg/detail.svg +77 -77
  8. package/es/assets/img/svg/filtersActive.svg +19 -19
  9. package/es/assets/img/svg/invert.svg +12 -12
  10. package/es/assets/img/svg/menubar/login.svg +84 -84
  11. package/es/assets/img/svg/menubar/my_projects.svg +85 -85
  12. package/es/assets/img/svg/menubar/new_project.svg +110 -110
  13. package/es/assets/img/svg/menubar/save_project.svg +84 -84
  14. package/es/assets/img/svg/options.svg +3 -3
  15. package/es/assets/img/svg/positioning.svg +3 -3
  16. package/es/assets/img/svg/toggleFilters.svg +19 -19
  17. package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  18. package/es/assets/img/svg/wizardstep/detail_view.svg +87 -87
  19. package/es/assets/img/svg/wizardstep/tile_view.svg +95 -95
  20. package/es/components/viewer2d/viewer2d.js +7 -22
  21. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  22. package/es/components/viewer3d/scene-creator.js +11 -10
  23. package/es/constants/applianceCategories.js +19 -0
  24. package/es/constants.js +1 -0
  25. package/es/engine/2d/viewer-utils.js +20 -0
  26. package/es/events/external/handleExternalEvent.util.js +80 -66
  27. package/es/events/external/handlers.changeDoorStyle.js +8 -15
  28. package/es/events/external/handlers.loadProject.js +8 -15
  29. package/es/mappings/external-events/mapExternalEventPayload.js +4 -4
  30. package/es/mappings/external-events/mappers/addItemMapper.js +9 -9
  31. package/es/mappings/external-events/mappers/ccdfMapper.js +7 -13
  32. package/es/shared/concurrency/async-pool.js +71 -0
  33. package/es/shared/domain/asset/sanitize-asset-url.js +5 -5
  34. package/es/shared/math/line-metrics.js +11 -11
  35. package/es/utils/geometry.js +19 -16
  36. package/es/utils/skinPanelEngine.js +14 -14
  37. package/lib/assets/img/svg/accessories.svg +4 -4
  38. package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -6
  39. package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -6
  40. package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -6
  41. package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -7
  42. package/lib/assets/img/svg/bottombar/elevation.svg +13 -13
  43. package/lib/assets/img/svg/detail.svg +77 -77
  44. package/lib/assets/img/svg/filtersActive.svg +19 -19
  45. package/lib/assets/img/svg/invert.svg +12 -12
  46. package/lib/assets/img/svg/menubar/login.svg +84 -84
  47. package/lib/assets/img/svg/menubar/my_projects.svg +85 -85
  48. package/lib/assets/img/svg/menubar/new_project.svg +110 -110
  49. package/lib/assets/img/svg/menubar/save_project.svg +84 -84
  50. package/lib/assets/img/svg/options.svg +3 -3
  51. package/lib/assets/img/svg/positioning.svg +3 -3
  52. package/lib/assets/img/svg/toggleFilters.svg +19 -19
  53. package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -13
  54. package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -87
  55. package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -95
  56. package/lib/components/viewer2d/viewer2d.js +7 -22
  57. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +556 -556
  58. package/lib/components/viewer3d/scene-creator.js +11 -10
  59. package/lib/constants/applianceCategories.js +25 -0
  60. package/lib/constants.js +5 -4
  61. package/lib/engine/2d/viewer-utils.js +25 -0
  62. package/lib/events/external/handleExternalEvent.util.js +80 -66
  63. package/lib/events/external/handlers.changeDoorStyle.js +8 -15
  64. package/lib/events/external/handlers.loadProject.js +8 -15
  65. package/lib/mappings/external-events/mapExternalEventPayload.js +4 -4
  66. package/lib/mappings/external-events/mappers/addItemMapper.js +9 -9
  67. package/lib/mappings/external-events/mappers/ccdfMapper.js +7 -13
  68. package/lib/shared/concurrency/async-pool.js +78 -0
  69. package/lib/shared/domain/asset/sanitize-asset-url.js +5 -5
  70. package/lib/shared/math/line-metrics.js +11 -11
  71. package/lib/utils/geometry.js +18 -15
  72. package/lib/utils/skinPanelEngine.js +14 -14
  73. 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('Dishwasher') && ct1.catid.includes('BF')) {
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('Dishwasher') && !ct2.catid.includes('BF') && ct1.catid != ct2.catid) return false;
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('Dishwasher')) return undefined;
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('Dishwasher') && !ct.type.includes('BF');
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('Dishwasher') && !ct.type.includes('BF');
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.rotRad),
3095
- y: v0.y + disD0 * Math.sin(hole.rotRad)
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.rotRad),
3099
- y: v0.y + disD1 * Math.sin(hole.rotRad)
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.MODE_CONFIGURING_PROJECT = 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_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_PAN = 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 = void 0;
9
- exports.UNSELECT_GROUP = 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 = 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 = 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 _callee3(cabinetPayload) {
61
- var link, keys, temp, i, _cabinetPayload$struc, _cabinetPayload$struc2, tempPlaceholdersData, k, _cabinetPayload$struc3, el, tempData, doorKey, drawerKey, fixedKey, doorPHs, drawerPHs, has_single_door, fixedPHs, _t2, _t3, _t4;
62
- return _regenerator["default"].wrap(function (_context3) {
63
- while (1) switch (_context3.prev = _context3.next) {
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
- link = '';
66
- keys = Object.keys(cabinetPayload.structure_json);
67
- temp = [];
68
- i = 0;
69
- case 1:
70
- if (!(i < keys.length)) {
71
- _context3.next = 4;
72
- break;
73
- }
74
- if (!((_cabinetPayload$struc = cabinetPayload.structure_json[keys[i]]) !== null && _cabinetPayload$struc !== void 0 && (_cabinetPayload$struc = _cabinetPayload$struc.toString()) !== null && _cabinetPayload$struc !== void 0 && _cabinetPayload$struc.includes('.gltf') && (_cabinetPayload$struc2 = cabinetPayload.structure_json[keys[i]]) !== null && _cabinetPayload$struc2 !== void 0 && (_cabinetPayload$struc2 = _cabinetPayload$struc2.toString()) !== null && _cabinetPayload$struc2 !== void 0 && _cabinetPayload$struc2.startsWith('http'))) {
75
- _context3.next = 3;
76
- break;
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
- case 3:
90
- i++;
91
- _context3.next = 1;
92
- break;
93
- case 4:
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 _context3.abrupt("return", tempPlaceholdersData);
403
- case 5:
416
+ return _context4.abrupt("return", tempPlaceholdersData);
417
+ case 2:
404
418
  case "end":
405
- return _context3.stop();
419
+ return _context4.stop();
406
420
  }
407
- }, _callee3);
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 _callee4(cabinetPayload) {
429
+ _updateCabinetPayload = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(cabinetPayload) {
416
430
  var tempPlaceholders, cabinetPayloadKeys, i;
417
- return _regenerator["default"].wrap(function (_context4) {
418
- while (1) switch (_context4.prev = _context4.next) {
431
+ return _regenerator["default"].wrap(function (_context5) {
432
+ while (1) switch (_context5.prev = _context5.next) {
419
433
  case 0:
420
434
  tempPlaceholders = [];
421
- _context4.next = 1;
435
+ _context5.next = 1;
422
436
  return parseTempPlaceholdersFromCabinetPayload(cabinetPayload);
423
437
  case 1:
424
- tempPlaceholders = _context4.sent;
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 _context4.abrupt("return", cabinetPayload);
450
+ return _context5.abrupt("return", cabinetPayload);
437
451
  case 2:
438
452
  case "end":
439
- return _context4.stop();
453
+ return _context5.stop();
440
454
  }
441
- }, _callee4);
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 _callee5(element, state, catalogInstance, projectActions) {
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 (_context5) {
544
- while (1) switch (_context5.prev = _context5.next) {
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
- _context5.next = 1;
561
+ _context6.next = 1;
548
562
  break;
549
563
  }
550
- return _context5.abrupt("return");
564
+ return _context6.abrupt("return");
551
565
  case 1:
552
566
  elementJs = populateCCDFList(element); // if (isEmpty(catalog?.elements[element.name])) {
553
- _context5.next = 2;
567
+ _context6.next = 2;
554
568
  return loadSVGsByItem(elementJs);
555
569
  case 2:
556
- outlineSVGData = _context5.sent;
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
- _context5.next = 4;
598
+ _context6.next = 4;
585
599
  break;
586
600
  }
587
- _context5.next = 3;
601
+ _context6.next = 3;
588
602
  return updateCabinetPayload(elementJs);
589
603
  case 3:
590
- elementJs = _context5.sent;
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
- _context5.next = 7;
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
- _context5.next = 6;
625
+ _context6.next = 6;
612
626
  break;
613
627
  }
614
628
  catalogItem = catalogElements[catalogElementKeys[k]];
615
- return _context5.abrupt("continue", 7);
629
+ return _context6.abrupt("continue", 7);
616
630
  case 6:
617
631
  k++;
618
- _context5.next = 5;
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 _context5.stop();
663
+ return _context6.stop();
650
664
  }
651
- }, _callee5);
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 _callee6(molding) {
1016
- return _regenerator["default"].wrap(function (_context6) {
1017
- while (1) switch (_context6.prev = _context6.next) {
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 _context6.abrupt("return", new Promise(function (resolve, reject) {
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 _context6.stop();
1055
+ return _context7.stop();
1042
1056
  }
1043
- }, _callee6);
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, _i;
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
- break;
141
- case 3:
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 4:
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, i;
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
- break;
114
- case 3:
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 4:
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;