kitchen-simulator 4.4.1 → 4.4.2-new-json

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 (51) hide show
  1. package/es/LiteRenderer.js +15 -53
  2. package/es/catalog/factories/area-factory-3d.js +0 -4
  3. package/es/catalog/holes/door-double/door_double.png +0 -0
  4. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  5. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  6. package/es/catalog/holes/gate/gate.jpg +0 -0
  7. package/es/catalog/holes/window-clear/texture.png +0 -0
  8. package/es/catalog/holes/window-cross/texture.png +0 -0
  9. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  10. package/es/catalog/holes/window-vertical/texture.png +0 -0
  11. package/es/catalog/utils/item-loader.js +3 -22
  12. package/es/class/item.js +1 -1
  13. package/es/constants/catalog/skinPanel.js +9 -0
  14. package/es/constants.js +11 -13
  15. package/es/devLiteRenderer.js +91 -109
  16. package/es/mappings/external-events/mapExternalEventPayload.js +21 -0
  17. package/es/mappings/external-events/mappers/addItemMapper.js +86 -0
  18. package/es/mappings/external-events/mappers/ccdfMapper.js +101 -0
  19. package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +65 -0
  20. package/es/mappings/holesToCatalog.js +139 -0
  21. package/es/models.js +3 -1
  22. package/es/utils/helper.js +18 -9
  23. package/es/utils/isolate-event-handler.js +621 -173
  24. package/es/utils/molding.js +20 -236
  25. package/es/utils/skinPanelEngine.js +230 -26
  26. package/lib/LiteRenderer.js +17 -55
  27. package/lib/catalog/factories/area-factory-3d.js +0 -4
  28. package/lib/catalog/holes/door-double/door_double.png +0 -0
  29. package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
  30. package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  31. package/lib/catalog/holes/gate/gate.jpg +0 -0
  32. package/lib/catalog/holes/window-clear/texture.png +0 -0
  33. package/lib/catalog/holes/window-cross/texture.png +0 -0
  34. package/lib/catalog/holes/window-double-hung/texture.png +0 -0
  35. package/lib/catalog/holes/window-vertical/texture.png +0 -0
  36. package/lib/catalog/utils/item-loader.js +2 -21
  37. package/lib/class/item.js +1 -1
  38. package/lib/constants/catalog/skinPanel.js +15 -0
  39. package/lib/constants.js +16 -18
  40. package/lib/devLiteRenderer.js +93 -111
  41. package/lib/mappings/external-events/mapExternalEventPayload.js +26 -0
  42. package/lib/mappings/external-events/mappers/addItemMapper.js +92 -0
  43. package/lib/mappings/external-events/mappers/ccdfMapper.js +108 -0
  44. package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +72 -0
  45. package/lib/mappings/holesToCatalog.js +148 -0
  46. package/lib/models.js +3 -1
  47. package/lib/utils/helper.js +20 -9
  48. package/lib/utils/isolate-event-handler.js +620 -172
  49. package/lib/utils/molding.js +20 -237
  50. package/lib/utils/skinPanelEngine.js +232 -28
  51. package/package.json +1 -1
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mapChangeDoorStyleEvent = mapChangeDoorStyleEvent;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _constants = require("../../../constants");
10
+ var _helper = require("../../../utils/helper");
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function mapChangeDoorStyleEvent(evt, state) {
14
+ var _evt$payload, _layer$toJS, _targetDoorStyle$ccdf;
15
+ if ((0, _helper.isEmpty)(evt)) return null;
16
+ var targetDoorStyle = evt === null || evt === void 0 || (_evt$payload = evt.payload) === null || _evt$payload === void 0 ? void 0 : _evt$payload.doorStyle;
17
+ if ((0, _helper.isEmpty)(targetDoorStyle)) return evt;
18
+ var layerId = state.getIn(['scene', 'selectedLayer']);
19
+ var layer = state.getIn(['scene', 'layers', layerId]);
20
+ if ((0, _helper.isEmpty)(layer)) return evt;
21
+ var handleTexture = layer.get('doorHandle');
22
+ var counterToptexture = layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 || (_layer$toJS = _layer$toJS.counterTop) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.uri;
23
+
24
+ // make doorStyles and update the doorStyle payload
25
+ var Max_PH = 9;
26
+ var doorStyles = {
27
+ base: targetDoorStyle.texture,
28
+ counttop: counterToptexture,
29
+ interior: _constants.DEFAULT_INTERIOR_URL
30
+ };
31
+ for (var i = 1; i <= Max_PH; i++) {
32
+ doorStyles['base_door_' + i] = targetDoorStyle.texture;
33
+ doorStyles['base_fixed_drawer_door_' + i] = targetDoorStyle.texture;
34
+ doorStyles['base_drawer_' + i] = targetDoorStyle.texture;
35
+ doorStyles['base_drawer_door_' + i] = targetDoorStyle.texture;
36
+ doorStyles['door_handle_' + i] = handleTexture;
37
+ doorStyles['fixed_drawer_door_handle_' + i] = handleTexture;
38
+ doorStyles['drawer_door_handle_' + i] = handleTexture;
39
+ }
40
+ evt.payload.doorStyle = _objectSpread(_objectSpread({}, targetDoorStyle), {}, {
41
+ doorStyles: doorStyles
42
+ });
43
+ // make itemCDS using assets3d
44
+ var itemCDS = [];
45
+ var itemCDSData = {};
46
+ var cabitnetDoorStyleId;
47
+ targetDoorStyle === null || targetDoorStyle === void 0 || (_targetDoorStyle$ccdf = targetDoorStyle.ccdf_list) === null || _targetDoorStyle$ccdf === void 0 || _targetDoorStyle$ccdf.forEach(function (asItem) {
48
+ if (!(0, _helper.isEmpty)(asItem === null || asItem === void 0 ? void 0 : asItem.id)) {
49
+ cabitnetDoorStyleId = asItem.id;
50
+ }
51
+ asItem === null || asItem === void 0 || asItem.assets3d.forEach(function (as) {
52
+ if (!(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.placeholder_name) && !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.gltf)) {
53
+ var updatedName = 'base_' + (as === null || as === void 0 ? void 0 : as.placeholder_name) + '_gltf';
54
+ itemCDSData[updatedName] = as === null || as === void 0 ? void 0 : as.gltf;
55
+ }
56
+ itemCDSData['is_euro_cds'] = !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.is_euro_cds) ? as.is_euro_cds : 0;
57
+ itemCDSData['euro_shape_svg'] = !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_shape_svg) ? as.is_euro_cds : null;
58
+ itemCDSData['euro_width'] = !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_width) ? as.is_euro_cds : null;
59
+ itemCDSData['euro_height'] = !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_height) ? as.is_euro_cds : null;
60
+ itemCDSData['euro_length'] = !(0, _helper.isEmpty)(as === null || as === void 0 ? void 0 : as.euro_length) ? as.is_euro_cds : null;
61
+ });
62
+ var data = [];
63
+ data.push(itemCDSData);
64
+ itemCDS.push({
65
+ itemID: asItem.cabinet_id,
66
+ data: data,
67
+ cabinet_door_style_id: cabitnetDoorStyleId
68
+ });
69
+ });
70
+ evt.payload.itemCDS = itemCDS;
71
+ return evt;
72
+ }
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.registerDynamicHoles = exports.buildHoleElements = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var Holes = _interopRequireWildcard(require("../catalog/holes/export"));
12
+ 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); }
13
+ 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; }
14
+ 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; }
15
+ var INCH_TO_CM = 2.54;
16
+ var normalizeKey = function normalizeKey(value) {
17
+ return (value !== null && value !== void 0 ? value : '').toString().toLowerCase().replace(/[^a-z0-9]+/g, '');
18
+ };
19
+ var safeParseJson = function safeParseJson(value) {
20
+ if (!value) return null;
21
+ try {
22
+ return JSON.parse(value);
23
+ } catch (_unused) {
24
+ return null;
25
+ }
26
+ };
27
+ var toCatalogLength = function toCatalogLength(value, prop) {
28
+ var _prop$defaultValue;
29
+ if (value == null) return null;
30
+ var unit = prop === null || prop === void 0 || (_prop$defaultValue = prop.defaultValue) === null || _prop$defaultValue === void 0 ? void 0 : _prop$defaultValue.unit;
31
+ if (unit && unit.toLowerCase() === 'in') return value;
32
+ return value * INCH_TO_CM;
33
+ };
34
+ var overrideLengthProperty = function overrideLengthProperty(prop, value) {
35
+ if (!prop || value == null) return prop;
36
+ var length = toCatalogLength(value, prop);
37
+ if (length == null) return prop;
38
+ return _objectSpread(_objectSpread({}, prop), {}, {
39
+ defaultValue: _objectSpread(_objectSpread({}, prop.defaultValue), {}, {
40
+ length: length
41
+ })
42
+ });
43
+ };
44
+ var findBaseHoleTemplate = function findBaseHoleTemplate(hole, templates) {
45
+ var target = normalizeKey(hole === null || hole === void 0 ? void 0 : hole.name);
46
+ if (!target) return null;
47
+ return templates.find(function (template) {
48
+ var _template$info, _template$info2;
49
+ var candidates = [template === null || template === void 0 ? void 0 : template.name, template === null || template === void 0 || (_template$info = template.info) === null || _template$info === void 0 ? void 0 : _template$info.title, template === null || template === void 0 || (_template$info2 = template.info) === null || _template$info2 === void 0 ? void 0 : _template$info2.description].map(normalizeKey);
50
+ return candidates.includes(target);
51
+ }) || null;
52
+ };
53
+ var buildHoleElementFromTemplate = function buildHoleElementFromTemplate(hole, base) {
54
+ var _base$info, _base$info2, _base$info3, _base$info4, _base$info5, _base$structure_json;
55
+ if (!hole || !base) return null;
56
+ var nextInfo = _objectSpread(_objectSpread({}, base.info), {}, {
57
+ title: hole.name || ((_base$info = base.info) === null || _base$info === void 0 ? void 0 : _base$info.title),
58
+ description: ((_base$info2 = base.info) === null || _base$info2 === void 0 ? void 0 : _base$info2.description) || hole.name || ((_base$info3 = base.info) === null || _base$info3 === void 0 ? void 0 : _base$info3.title),
59
+ image: hole.menu_thumbnail || ((_base$info4 = base.info) === null || _base$info4 === void 0 ? void 0 : _base$info4.image),
60
+ url: hole.gltf || ((_base$info5 = base.info) === null || _base$info5 === void 0 ? void 0 : _base$info5.url)
61
+ });
62
+ var nextProperties = _objectSpread({}, base.properties);
63
+ if (nextProperties.width) {
64
+ nextProperties.width = overrideLengthProperty(nextProperties.width, hole.width);
65
+ }
66
+ if (nextProperties.height) {
67
+ nextProperties.height = overrideLengthProperty(nextProperties.height, hole.height);
68
+ }
69
+ if (nextProperties.length) {
70
+ nextProperties.length = overrideLengthProperty(nextProperties.length, hole.length);
71
+ }
72
+ var customConfig = safeParseJson(hole.custom_config);
73
+ var customProps = (customConfig === null || customConfig === void 0 ? void 0 : customConfig.properties) || {};
74
+ Object.keys(customProps).forEach(function (key) {
75
+ if (!nextProperties[key]) return;
76
+ nextProperties[key] = overrideLengthProperty(nextProperties[key], customProps[key]);
77
+ });
78
+ return _objectSpread(_objectSpread({}, base), {}, {
79
+ name: hole.name || base.name,
80
+ info: nextInfo,
81
+ properties: nextProperties,
82
+ structure_json: _objectSpread(_objectSpread({}, base.structure_json || {}), {}, {
83
+ hole_id: hole.id || ((_base$structure_json = base.structure_json) === null || _base$structure_json === void 0 ? void 0 : _base$structure_json.hole_id)
84
+ })
85
+ });
86
+ };
87
+ var buildHoleElements = exports.buildHoleElements = function buildHoleElements(holes) {
88
+ var categories = {
89
+ Doors: [],
90
+ Windows: []
91
+ };
92
+ var elements = [];
93
+ if (!Array.isArray(holes)) return {
94
+ elements: elements,
95
+ categories: categories
96
+ };
97
+ var templates = Object.values(Holes);
98
+ var usedNames = new Set();
99
+ holes.forEach(function (hole) {
100
+ var _base$info6;
101
+ if (!hole || hole.is_deleted) return;
102
+ var base = findBaseHoleTemplate(hole, templates);
103
+ if (!base) return;
104
+ var element = buildHoleElementFromTemplate(hole, base);
105
+ if (!element || !element.name || usedNames.has(element.name)) return;
106
+ usedNames.add(element.name);
107
+ elements.push(element);
108
+ var typeKey = normalizeKey(hole.type);
109
+ if (typeKey === 'window') {
110
+ categories.Windows.push(element);
111
+ } else if (typeKey === 'door') {
112
+ categories.Doors.push(element);
113
+ } else if ((_base$info6 = base.info) !== null && _base$info6 !== void 0 && (_base$info6 = _base$info6.tag) !== null && _base$info6 !== void 0 && _base$info6.includes('window')) {
114
+ categories.Windows.push(element);
115
+ } else {
116
+ categories.Doors.push(element);
117
+ }
118
+ });
119
+ return {
120
+ elements: elements,
121
+ categories: categories
122
+ };
123
+ };
124
+ var registerDynamicHoles = exports.registerDynamicHoles = function registerDynamicHoles(catalog, holePayload) {
125
+ if (!catalog) return;
126
+ var holeElements = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.elements) || [];
127
+ holeElements.forEach(function (element) {
128
+ if (!catalog.hasElement(element.name)) {
129
+ catalog.registerElement(element);
130
+ }
131
+ });
132
+ var categories = (holePayload === null || holePayload === void 0 ? void 0 : holePayload.categories) || {};
133
+ Object.entries(categories).forEach(function (_ref) {
134
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
135
+ name = _ref2[0],
136
+ elements = _ref2[1];
137
+ if (!elements.length) return;
138
+ if (!catalog.hasCategory(name)) {
139
+ catalog.registerCategory(name, name, elements);
140
+ return;
141
+ }
142
+ elements.forEach(function (element) {
143
+ if (!catalog.categoryHasElement(name, element.name)) {
144
+ catalog.addToCategory(name, element);
145
+ }
146
+ });
147
+ });
148
+ };
package/lib/models.js CHANGED
@@ -343,13 +343,15 @@ var CatalogElement = exports.CatalogElement = /*#__PURE__*/function (_Record1) {
343
343
  }((0, _immutable.Record)({
344
344
  itemID: -1,
345
345
  name: '',
346
+ long_name: '',
346
347
  prototype: '',
347
348
  info: new _immutable.Map(),
348
349
  properties: new _immutable.Map(),
349
350
  obj: new _immutable.Map(),
350
351
  type: '',
351
352
  cds: new _immutable.Map(),
352
- structure_json: {}
353
+ structure_json: {},
354
+ gltf: ''
353
355
  }, 'CatalogElement'));
354
356
  var Catalog = exports.Catalog = /*#__PURE__*/function (_Record10) {
355
357
  function Catalog() {
@@ -12,6 +12,8 @@ exports.centering2D = centering2D;
12
12
  exports.compareSVGRect = void 0;
13
13
  exports.debugUtil = debugUtil;
14
14
  exports.getSignedUrl = exports.getPathInfo = exports.getPath = void 0;
15
+ exports.getSkuAliasFromCatalog = getSkuAliasFromCatalog;
16
+ exports.getSkuAliasFromCatalogElement = getSkuAliasFromCatalogElement;
15
17
  exports.handleCamRect = handleCamRect;
16
18
  exports.isCeilLimitation = isCeilLimitation;
17
19
  exports.isElevationView = isElevationView;
@@ -441,7 +443,6 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
441
443
  updatedPayload.length = _length;
442
444
  //////////////////////////////////////
443
445
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
444
- var _catalog$elements$cur;
445
446
  // check this cabinet has warning box
446
447
  updatedPayload.isWarning = (0, _utils.isWarningItem)(currentObject);
447
448
  // check this item is available molding
@@ -452,14 +453,7 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
452
453
  if (pointArray) updatedPayload.distArray = pointArray;
453
454
 
454
455
  // update sku_number using sku_array
455
- var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
456
- var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
457
- var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
458
- return sku.door_color_id === currentDoorColorId;
459
- });
460
- if (correctSKU) {
461
- updatedPayload.sku_number = correctSKU.sku;
462
- }
456
+ updatedPayload.sku_number = getSkuAliasFromCatalog(catalog, currentObject);
463
457
  } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'holes') {
464
458
  var _calcDistancesFromHol = (0, _geometry.calcDistancesFromHoleToNearestOneOrWall)(currentObject, layer),
465
459
  distLeft = _calcDistancesFromHol.distLeft,
@@ -476,4 +470,21 @@ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
476
470
  };
477
471
  }
478
472
  return updatedPayload;
473
+ }
474
+ function getSkuAliasFromCatalog(catalog, sceneObject) {
475
+ var _catalog$elements;
476
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
477
+ var elementName = sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.name;
478
+ var catalogElement = catalog === null || catalog === void 0 || (_catalog$elements = catalog.elements) === null || _catalog$elements === void 0 ? void 0 : _catalog$elements[elementName];
479
+ return getSkuAliasFromCatalogElement(catalogElement, sceneObjectJS);
480
+ }
481
+ function getSkuAliasFromCatalogElement(catalogElement, sceneObject) {
482
+ var _sceneObjectJS$doorSt, _catalogElement$obj, _skuAlias$sku;
483
+ var sceneObjectJS = typeof (sceneObject === null || sceneObject === void 0 ? void 0 : sceneObject.toJS) === 'function' ? sceneObject.toJS() : sceneObject;
484
+ var doorColorId = sceneObjectJS === null || sceneObjectJS === void 0 || (_sceneObjectJS$doorSt = sceneObjectJS.doorStyle) === null || _sceneObjectJS$doorSt === void 0 ? void 0 : _sceneObjectJS$doorSt.id;
485
+ var skuArray = catalogElement === null || catalogElement === void 0 || (_catalogElement$obj = catalogElement.obj) === null || _catalogElement$obj === void 0 ? void 0 : _catalogElement$obj.skuArray;
486
+ var skuAlias = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
487
+ return sku.door_color_id === doorColorId;
488
+ });
489
+ return (_skuAlias$sku = skuAlias === null || skuAlias === void 0 ? void 0 : skuAlias.sku) !== null && _skuAlias$sku !== void 0 ? _skuAlias$sku : sceneObjectJS === null || sceneObjectJS === void 0 ? void 0 : sceneObjectJS.sku_number;
479
490
  }