kitchen-simulator 4.0.0-queuedEvents → 4.0.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 (111) hide show
  1. package/es/LiteKitchenConfigurator.js +141 -288
  2. package/es/LiteRenderer.js +159 -398
  3. package/es/actions/items-actions.js +10 -6
  4. package/es/actions/lines-actions.js +3 -1
  5. package/es/actions/project-actions.js +15 -5
  6. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  7. package/es/catalog/areas/area/planner-element.js +10 -5
  8. package/es/catalog/catalog.js +1 -4
  9. package/es/catalog/factories/area-factory-3d.js +2 -1
  10. package/es/catalog/factories/wall-factory-3d.js +2 -2
  11. package/es/catalog/factories/wall-factory.js +8 -8
  12. package/es/catalog/lines/wall/planner-element.js +18 -9
  13. package/es/catalog/utils/exporter.js +7 -3
  14. package/es/catalog/utils/item-loader.js +24 -14
  15. package/es/catalog/utils/mtl-loader.js +2 -2
  16. package/es/catalog/utils/obj-loader.js +2 -2
  17. package/es/class/hole.js +0 -2
  18. package/es/class/item.js +183 -184
  19. package/es/class/line.js +11 -3
  20. package/es/class/project.js +165 -48
  21. package/es/components/content.js +19 -6
  22. package/es/components/viewer2d/grids/grid-streak.js +1 -1
  23. package/es/components/viewer2d/item.js +84 -51
  24. package/es/components/viewer2d/line.js +315 -243
  25. package/es/components/viewer2d/ruler.js +20 -38
  26. package/es/components/viewer2d/rulerDist.js +48 -78
  27. package/es/components/viewer2d/utils.js +6 -0
  28. package/es/components/viewer2d/viewer2d.js +298 -220
  29. package/es/components/viewer3d/front3D.js +3 -2
  30. package/es/components/viewer3d/libs/mtl-loader.js +2 -2
  31. package/es/components/viewer3d/libs/obj-loader.js +2 -2
  32. package/es/components/viewer3d/libs/orbit-controls.js +3 -4
  33. package/es/components/viewer3d/libs/pointer-lock-controls.js +6 -7
  34. package/es/components/viewer3d/scene-creator.js +51 -15
  35. package/es/components/viewer3d/viewer3d.js +121 -82
  36. package/es/constants.js +111 -3
  37. package/es/devLiteRenderer.js +688 -31
  38. package/es/index.js +567 -87
  39. package/es/models.js +9 -5
  40. package/es/plugins/SVGLoader.js +7 -5
  41. package/es/plugins/console-debugger.js +0 -2
  42. package/es/plugins/keyboard.js +15 -6
  43. package/es/reducers/items-reducer.js +5 -5
  44. package/es/reducers/lines-reducer.js +1 -1
  45. package/es/reducers/project-reducer.js +5 -3
  46. package/es/shared-style.js +4 -4
  47. package/es/utils/geometry.js +163 -2
  48. package/es/utils/get-edges-of-subgraphs.js +1 -1
  49. package/es/utils/graph-cycles.js +1 -1
  50. package/es/utils/graph.js +1 -1
  51. package/es/utils/helper.js +105 -3
  52. package/es/utils/isolate-event-handler.js +1542 -164
  53. package/es/utils/molding.js +461 -11
  54. package/lib/LiteKitchenConfigurator.js +141 -289
  55. package/lib/LiteRenderer.js +159 -399
  56. package/lib/actions/items-actions.js +10 -6
  57. package/lib/actions/lines-actions.js +3 -1
  58. package/lib/actions/project-actions.js +15 -4
  59. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  60. package/lib/catalog/areas/area/planner-element.js +11 -5
  61. package/lib/catalog/catalog.js +1 -4
  62. package/lib/catalog/factories/area-factory-3d.js +2 -1
  63. package/lib/catalog/factories/wall-factory-3d.js +2 -2
  64. package/lib/catalog/factories/wall-factory.js +8 -8
  65. package/lib/catalog/lines/wall/planner-element.js +19 -9
  66. package/lib/catalog/utils/exporter.js +7 -3
  67. package/lib/catalog/utils/item-loader.js +24 -14
  68. package/lib/catalog/utils/mtl-loader.js +9 -2
  69. package/lib/catalog/utils/obj-loader.js +10 -2
  70. package/lib/class/hole.js +0 -2
  71. package/lib/class/item.js +180 -181
  72. package/lib/class/line.js +9 -1
  73. package/lib/class/project.js +164 -47
  74. package/lib/components/content.js +19 -6
  75. package/lib/components/viewer2d/grids/grid-streak.js +1 -1
  76. package/lib/components/viewer2d/item.js +83 -50
  77. package/lib/components/viewer2d/line.js +315 -242
  78. package/lib/components/viewer2d/ruler.js +19 -37
  79. package/lib/components/viewer2d/rulerDist.js +48 -78
  80. package/lib/components/viewer2d/utils.js +7 -0
  81. package/lib/components/viewer2d/viewer2d.js +296 -219
  82. package/lib/components/viewer3d/front3D.js +3 -2
  83. package/lib/components/viewer3d/libs/mtl-loader.js +9 -2
  84. package/lib/components/viewer3d/libs/obj-loader.js +9 -2
  85. package/lib/components/viewer3d/libs/orbit-controls.js +11 -5
  86. package/lib/components/viewer3d/libs/pointer-lock-controls.js +13 -7
  87. package/lib/components/viewer3d/scene-creator.js +49 -13
  88. package/lib/components/viewer3d/viewer3d.js +119 -80
  89. package/lib/constants.js +116 -7
  90. package/lib/devLiteRenderer.js +687 -30
  91. package/lib/index.js +567 -87
  92. package/lib/models.js +9 -5
  93. package/lib/plugins/SVGLoader.js +7 -5
  94. package/lib/plugins/console-debugger.js +0 -2
  95. package/lib/plugins/keyboard.js +15 -6
  96. package/lib/reducers/items-reducer.js +5 -5
  97. package/lib/reducers/lines-reducer.js +1 -1
  98. package/lib/reducers/project-reducer.js +4 -2
  99. package/lib/shared-style.js +4 -4
  100. package/lib/utils/geometry.js +164 -2
  101. package/lib/utils/get-edges-of-subgraphs.js +6 -1
  102. package/lib/utils/graph-cycles.js +7 -8
  103. package/lib/utils/graph.js +6 -1
  104. package/lib/utils/helper.js +108 -2
  105. package/lib/utils/isolate-event-handler.js +1538 -159
  106. package/lib/utils/molding.js +463 -9
  107. package/package.json +1 -1
  108. package/es/assets/Window.hdr +0 -2100
  109. package/es/assets/img/1.jpg +0 -0
  110. package/lib/assets/Window.hdr +0 -2100
  111. package/lib/assets/img/1.jpg +0 -0
package/lib/class/item.js CHANGED
@@ -18,6 +18,7 @@ var _helper = require("../utils/helper");
18
18
  var _util = require("util");
19
19
  var _molding = require("../utils/molding");
20
20
  var _utils = require("../components/viewer2d/utils");
21
+ var _history = require("../utils/history");
21
22
  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; }
22
23
  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; }
23
24
  var allItemRect;
@@ -35,7 +36,11 @@ var Item = exports["default"] = /*#__PURE__*/function () {
35
36
  return (0, _createClass2["default"])(Item, null, [{
36
37
  key: "create",
37
38
  value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
39
+ var _item;
38
40
  var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
41
+ var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
42
+ var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
43
+ var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
39
44
  var itemID = _export2.IDBroker.acquireID();
40
45
  var item = state.catalog.factoryElement(type, {
41
46
  id: itemID,
@@ -52,18 +57,28 @@ var Item = exports["default"] = /*#__PURE__*/function () {
52
57
  x: x,
53
58
  y: y,
54
59
  rotation: rotation,
55
- isDuplication: isDuplication
60
+ isDuplication: isDuplication,
61
+ isInitialPos: isInitialPos ? isInitialPos : false
56
62
  }, null, state);
57
63
  if (item.category === 'cabinet') {
58
- var layer = state.getIn(['scene', 'layers', layerID]);
59
- if (state.doorStyle !== null && state.doorStyle !== undefined) {
60
- var _state$doorStyle, _temp$doorStyles;
61
- var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
62
- var cds = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
63
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
64
+ if (isDuplication && refItem) {
65
+ item = item.merge({
66
+ doorStyle: refItem.doorStyle
64
67
  });
68
+ } else {
69
+ var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
70
+ var layer = state.getIn(['scene', 'layers', layerID]);
71
+ var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
72
+ var cds = (_ref = (_temp$doorStyles$cds$ = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
73
+ var _state;
74
+ return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
75
+ })) !== null && _temp$doorStyles$cds$ !== void 0 ? _temp$doorStyles$cds$ : temp === null || temp === void 0 || (_temp$cds = temp.cds) === null || _temp$cds === void 0 ? void 0 : _temp$cds.find(function (elem) {
76
+ var _state2;
77
+ return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
78
+ })) !== null && _ref !== void 0 ? _ref : (_state3 = state) === null || _state3 === void 0 || (_state3 = _state3.catalog) === null || _state3 === void 0 ? void 0 : _state3.getIn(['elements', type, 'cds']);
65
79
  if (cds) {
66
- var updatedDoorStyles = _objectSpread(_objectSpread(_objectSpread({}, temp.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
80
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
81
+ cds: [cds],
67
82
  cabinet_door_style_id: cds.cabinet_door_style_id
68
83
  });
69
84
  item = item.merge({
@@ -71,48 +86,6 @@ var Item = exports["default"] = /*#__PURE__*/function () {
71
86
  doorStyles: updatedDoorStyles
72
87
  }))
73
88
  });
74
- } else {
75
- var _state$oStyle;
76
- var styleObj = (_state$oStyle = state.oStyle) === null || _state$oStyle === void 0 || (_state$oStyle = _state$oStyle.toJS()) === null || _state$oStyle === void 0 ? void 0 : _state$oStyle.oStyle;
77
- if (styleObj) {
78
- for (var _x in styleObj) {
79
- cds = styleObj[_x].data.doorStyles.cds.find(function (elem) {
80
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
81
- });
82
- if (cds) {
83
- var tmpDS = styleObj[_x].data;
84
- tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, tmpDS.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
85
- cabinet_door_style_id: cds.cabinet_door_style_id
86
- });
87
- item = item.merge({
88
- doorStyle: (0, _immutable.fromJS)(tmpDS)
89
- });
90
- break;
91
- }
92
- }
93
- }
94
- }
95
- } else {
96
- var _state$oStyle2;
97
- var _styleObj = (_state$oStyle2 = state.oStyle) === null || _state$oStyle2 === void 0 || (_state$oStyle2 = _state$oStyle2.toJS()) === null || _state$oStyle2 === void 0 ? void 0 : _state$oStyle2.oStyle;
98
- if (_styleObj) {
99
- for (var _x2 in _styleObj) {
100
- var _styleObj$_x;
101
- var _cds = (_styleObj$_x = _styleObj[_x2]) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.data) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.doorStyles) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.cds) === null || _styleObj$_x === void 0 ? void 0 : _styleObj$_x.find(function (elem) {
102
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
103
- });
104
- if (_cds) {
105
- var _styleObj$_x2;
106
- var _tmpDS = (_styleObj$_x2 = _styleObj[_x2]) === null || _styleObj$_x2 === void 0 ? void 0 : _styleObj$_x2.data;
107
- _tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, _tmpDS.doorStyles), _cds.data && _cds.data[0] ? _cds.data[0] : {}), {}, {
108
- cabinet_door_style_id: _cds.cabinet_door_style_id
109
- });
110
- item = item.merge({
111
- doorStyle: (0, _immutable.fromJS)(_tmpDS)
112
- });
113
- break;
114
- }
115
- }
116
89
  }
117
90
  }
118
91
  }
@@ -123,15 +96,11 @@ var Item = exports["default"] = /*#__PURE__*/function () {
123
96
  };
124
97
  }
125
98
  var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
126
- var _doorStyle$doorStyles, _cds$data;
127
99
  var doorStyle = item.get('doorStyle').toJS();
128
- var cds = doorStyle === null || doorStyle === void 0 || (_doorStyle$doorStyles = doorStyle.doorStyles) === null || _doorStyle$doorStyles === void 0 || (_doorStyle$doorStyles = _doorStyle$doorStyles.cds) === null || _doorStyle$doorStyles === void 0 ? void 0 : _doorStyle$doorStyles.find(function (elem) {
129
- return elem.itemID === item.itemID;
130
- });
131
- var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
100
+ var euroCDS = state.catalog.getIn(['elements', type, 'cds']).data.filter(function (element) {
132
101
  return element && element.is_euro_cds;
133
- })) || [];
134
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
102
+ });
103
+ if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
135
104
  var newProperties = item.get('properties').toJS();
136
105
  if (newProperties.hasOwnProperty('depth')) {
137
106
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -142,8 +111,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
142
111
  });
143
112
  }
144
113
  newProperties['depth'] = new _immutable.Map({
145
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_length).from('in').to('cm'),
146
- _length: euro_cds[0].euro_length,
114
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_length).from('in').to('cm'),
115
+ _length: euroCDS[0].euro_length,
147
116
  _unit: 'in'
148
117
  });
149
118
  }
@@ -156,8 +125,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
156
125
  });
157
126
  }
158
127
  newProperties['height'] = new _immutable.Map({
159
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_height).from('in').to('cm'),
160
- _length: euro_cds[0].euro_height,
128
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_height).from('in').to('cm'),
129
+ _length: euroCDS[0].euro_height,
161
130
  _unit: 'in'
162
131
  });
163
132
  }
@@ -170,8 +139,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
170
139
  });
171
140
  }
172
141
  newProperties['width'] = new _immutable.Map({
173
- length: (0, _convertUnitsLite.convert)(euro_cds[0].euro_width).from('in').to('cm') - 10,
174
- _length: euro_cds[0].euro_width,
142
+ length: (0, _convertUnitsLite.convert)(euroCDS[0].euro_width).from('in').to('cm') - 10,
143
+ _length: euroCDS[0].euro_width,
175
144
  _unit: 'in'
176
145
  });
177
146
  }
@@ -207,6 +176,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
207
176
  }
208
177
  };
209
178
  item.category === 'cabinet' && setSizeOfItemByDoorStyle();
179
+ if (counterTopURI || (_item = item) !== null && _item !== void 0 && _item.counterTop) {
180
+ item.counterTop.uri = counterTopURI;
181
+ }
210
182
  item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
211
183
  state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
212
184
  if (item.type.includes('Light')) {
@@ -319,6 +291,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
319
291
  }, {
320
292
  key: "duplicateSelected",
321
293
  value: function duplicateSelected(state, currentObject) {
294
+ var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
322
295
  var layerID = state.getIn(['scene', 'selectedLayer']);
323
296
  var layer = state.getIn(['scene', 'layers', layerID]);
324
297
  var objectID = currentObject.id;
@@ -326,6 +299,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
326
299
  var x = currentObject.x;
327
300
  var y = currentObject.y;
328
301
  var sceneComponentType, width, depth, rotRad;
302
+ var duplicatedElement = null;
329
303
  switch (currentObject.prototype) {
330
304
  case 'items':
331
305
  myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
@@ -347,9 +321,10 @@ var Item = exports["default"] = /*#__PURE__*/function () {
347
321
  var isrectSect = _export2.GeometryUtils.validInterSect(allRect, val);
348
322
  if (isrectSect) {
349
323
  // Duplicated object has a original object's molding property
350
- var _this$create = this.create(state, layerID, sceneComponentType, x + width * Math.cos(rotRad), y + width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
324
+ var _this$create = this.create(state, layerID, sceneComponentType, x + width * Math.cos(rotRad), y + width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
351
325
  stateI = _this$create.updatedState,
352
326
  item = _this$create.item;
327
+ duplicatedElement = item;
353
328
  if (item === null) {
354
329
  alert('There are no Door Colors in this cabinet.');
355
330
  state = state.merge({
@@ -373,18 +348,19 @@ var Item = exports["default"] = /*#__PURE__*/function () {
373
348
  _val.is_corner = allItemRect.cur.is_corner;
374
349
  var isRect = _export2.GeometryUtils.validInterSect(allRect, _val);
375
350
  if (isRect) {
376
- var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
351
+ var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
377
352
  _stateI = _this$create2.updatedState,
378
- _item = _this$create2.item;
379
- if (_item === null) {
353
+ _item2 = _this$create2.item;
354
+ duplicatedElement = _item2;
355
+ if (_item2 === null) {
380
356
  alert('There are no Door Colors in this cabinet.');
381
357
  state = state.merge({
382
358
  mode: _constants.MODE_IDLE,
383
359
  drawingSupport: new _immutable.Map()
384
360
  });
385
361
  } else {
386
- state = Item.select(_stateI, layerID, _item.id).updatedState;
387
- state = state.setIn(['drawingSupport', 'currentID'], _item.id);
362
+ state = Item.select(_stateI, layerID, _item2.id).updatedState;
363
+ state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
388
364
  }
389
365
  } else {
390
366
  var _val2 = {
@@ -399,18 +375,19 @@ var Item = exports["default"] = /*#__PURE__*/function () {
399
375
  _val2.is_corner = allItemRect.cur.is_corner;
400
376
  var isRectDown = _export2.GeometryUtils.validInterSect(allRect, _val2);
401
377
  if (isRectDown) {
402
- var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
378
+ var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
403
379
  _stateI2 = _this$create3.updatedState,
404
- _item2 = _this$create3.item;
405
- if (_item2 === null) {
380
+ _item3 = _this$create3.item;
381
+ duplicatedElement = _item3;
382
+ if (_item3 === null) {
406
383
  alert('There are no Door Colors in this cabinet.');
407
384
  state = state.merge({
408
385
  mode: _constants.MODE_IDLE,
409
386
  drawingSupport: new _immutable.Map()
410
387
  });
411
388
  } else {
412
- state = Item.select(_stateI2, layerID, _item2.id).updatedState;
413
- state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
389
+ state = Item.select(_stateI2, layerID, _item3.id).updatedState;
390
+ state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
414
391
  }
415
392
  } else {
416
393
  var _val3 = {
@@ -425,18 +402,19 @@ var Item = exports["default"] = /*#__PURE__*/function () {
425
402
  _val3.is_corner = allItemRect.cur.is_corner;
426
403
  var isRectUp = _export2.GeometryUtils.validInterSect(allRect, _val3);
427
404
  if (isRectUp) {
428
- var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
405
+ var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
429
406
  _stateI3 = _this$create4.updatedState,
430
- _item3 = _this$create4.item;
431
- if (_item3 === null) {
407
+ _item4 = _this$create4.item;
408
+ duplicatedElement = _item4;
409
+ if (_item4 === null) {
432
410
  alert('There are no Door Colors in this cabinet.');
433
411
  state = state.merge({
434
412
  mode: _constants.MODE_IDLE,
435
413
  drawingSupport: new _immutable.Map()
436
414
  });
437
415
  } else {
438
- state = Item.select(_stateI3, layerID, _item3.id).updatedState;
439
- state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
416
+ state = Item.select(_stateI3, layerID, _item4.id).updatedState;
417
+ state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
440
418
  }
441
419
  } else {
442
420
  console.log('there is no space');
@@ -505,6 +483,15 @@ var Item = exports["default"] = /*#__PURE__*/function () {
505
483
  default:
506
484
  break;
507
485
  }
486
+ if (onInternalEvent && duplicatedElement) {
487
+ var _state$get;
488
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
489
+ var jsElement = (0, _helper.updatePayloadOfInternalEvent)(duplicatedElement, layer, catalog);
490
+ onInternalEvent({
491
+ type: _constants.INTERNAL_EVENT_DRAW_ELEMENT,
492
+ value: jsElement
493
+ });
494
+ }
508
495
  return {
509
496
  updatedState: state
510
497
  };
@@ -513,6 +500,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
513
500
  key: "storeDistArray",
514
501
  value: function storeDistArray(state, layerID, itemID, distArray) {
515
502
  var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
503
+ distArray.forEach(function (dist) {
504
+ dist[0] < 0 ? dist[0] = 0 : dist[0];
505
+ });
516
506
  var isEqualDist = function isEqualDist(a, b) {
517
507
  return a == b;
518
508
  };
@@ -561,8 +551,14 @@ var Item = exports["default"] = /*#__PURE__*/function () {
561
551
  }, {
562
552
  key: "replaceItem",
563
553
  value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
554
+ var _currentObject$counte;
555
+ var counterTopURI = '';
556
+ if (!(0, _utils.isEmpty)(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
557
+ var _currentObject$counte2;
558
+ counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
559
+ } else if (!(0, _utils.isEmpty)(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;else counterTopURI = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
564
560
  state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
565
- state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
561
+ state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false, [], false, null, counterTopURI).updatedState;
566
562
  // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
567
563
  return {
568
564
  updatedState: state
@@ -631,13 +627,15 @@ var Item = exports["default"] = /*#__PURE__*/function () {
631
627
  }, {
632
628
  key: "updateDrawingItem",
633
629
  value: function updateDrawingItem(state, layerID, x, y) {
630
+ var isInitialPos = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
634
631
  if (state.hasIn(['drawingSupport', 'currentID'])) {
635
632
  var mode = state.get('mode');
636
633
  if ([_constants.MODE_DRAWING_ITEM_3D].includes(mode)) {
637
634
  state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
638
635
  return item && item.merge({
639
636
  x: x,
640
- y: y
637
+ y: y,
638
+ isInitialPos: isInitialPos ? isInitialPos : false
641
639
  });
642
640
  });
643
641
  state = state.merge({
@@ -651,12 +649,13 @@ var Item = exports["default"] = /*#__PURE__*/function () {
651
649
  state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
652
650
  return item && item.merge({
653
651
  x: x,
654
- y: y
652
+ y: y,
653
+ isInitialPos: isInitialPos ? isInitialPos : false
655
654
  });
656
655
  });
657
656
  }
658
657
  } else {
659
- var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false),
658
+ var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false, [], isInitialPos),
660
659
  stateI = _this$create5.updatedState,
661
660
  item = _this$create5.item;
662
661
  if (item === null) {
@@ -677,8 +676,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
677
676
  }, {
678
677
  key: "updateDraggingItemChanged",
679
678
  value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
680
- var _state = state,
681
- scene = _state.scene;
679
+ var _state4 = state,
680
+ scene = _state4.scene;
682
681
  // let originalX = draggingSupport.get('originalX');
683
682
  // let originalY = draggingSupport.get('originalY');
684
683
 
@@ -692,7 +691,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
692
691
  // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
693
692
  item = item.merge({
694
693
  x: x,
695
- y: y
694
+ y: y,
695
+ isInitialPos: false
696
696
  });
697
697
  state = state.merge({
698
698
  scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
@@ -706,8 +706,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
706
706
  }, {
707
707
  key: "endDrawingItem",
708
708
  value: function endDrawingItem(state, layerID, x, y) {
709
- var catalog = state.catalog;
710
- state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;
709
+ // let catalog = state.catalog;
710
+ state = this.updateDrawingItem(state, layerID, x, y).updatedState;
711
711
  state = _export.Layer.unselectAll(state, layerID).updatedState;
712
712
  var popup = state.get('popup');
713
713
  state = state.merge({
@@ -769,9 +769,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
769
769
  }, {
770
770
  key: "updateDraggingItem",
771
771
  value: function updateDraggingItem(state, x, y) {
772
- var _state2 = state,
773
- draggingSupport = _state2.draggingSupport,
774
- scene = _state2.scene;
772
+ var _state5 = state,
773
+ draggingSupport = _state5.draggingSupport,
774
+ scene = _state5.scene;
775
775
  var layerID = draggingSupport.get('layerID');
776
776
  var itemID = draggingSupport.get('itemID');
777
777
  var startPointX = draggingSupport.get('startPointX');
@@ -790,7 +790,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
790
790
  tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;
791
791
  item = item.merge({
792
792
  x: tX,
793
- y: tY
793
+ y: tY,
794
+ isInitialPos: false
794
795
  });
795
796
  state = state.merge({
796
797
  scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
@@ -802,9 +803,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
802
803
  }, {
803
804
  key: "updateDraggingItem3DX",
804
805
  value: function updateDraggingItem3DX(state, x) {
805
- var _state3 = state,
806
- draggingSupport = _state3.draggingSupport,
807
- scene = _state3.scene;
806
+ var _state6 = state,
807
+ draggingSupport = _state6.draggingSupport,
808
+ scene = _state6.scene;
808
809
  var layerID = draggingSupport.get('layerID');
809
810
  var itemID = draggingSupport.get('itemID');
810
811
  var startPointX = draggingSupport.get('startPointX');
@@ -824,9 +825,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
824
825
  }, {
825
826
  key: "updateDraggingItem3DY",
826
827
  value: function updateDraggingItem3DY(state, y) {
827
- var _state4 = state,
828
- draggingSupport = _state4.draggingSupport,
829
- scene = _state4.scene;
828
+ var _state7 = state,
829
+ draggingSupport = _state7.draggingSupport,
830
+ scene = _state7.scene;
830
831
  var layerID = draggingSupport.get('layerID');
831
832
  var itemID = draggingSupport.get('itemID');
832
833
  var startPointY = draggingSupport.get('startPointY');
@@ -907,9 +908,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
907
908
  }, {
908
909
  key: "updateRotatingItem",
909
910
  value: function updateRotatingItem(state, x, y) {
910
- var _state5 = state,
911
- rotatingSupport = _state5.rotatingSupport,
912
- scene = _state5.scene;
911
+ var _state8 = state,
912
+ rotatingSupport = _state8.rotatingSupport,
913
+ scene = _state8.scene;
913
914
  var layerID = rotatingSupport.get('layerID');
914
915
  var itemID = rotatingSupport.get('itemID');
915
916
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -992,9 +993,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
992
993
  }, {
993
994
  key: "replaceSubmodule",
994
995
  value: function replaceSubmodule(state, url) {
995
- var _state6 = state,
996
- replacingSupport = _state6.replacingSupport,
997
- scene = _state6.scene;
996
+ var _state9 = state,
997
+ replacingSupport = _state9.replacingSupport,
998
+ scene = _state9.scene;
998
999
  url = 'catalog/texture.png';
999
1000
  var urlData = url.split('/');
1000
1001
  var newURL = '';
@@ -1095,9 +1096,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1095
1096
  }, {
1096
1097
  key: "animateObject",
1097
1098
  value: function animateObject(state, value) {
1098
- var _state7 = state,
1099
- replacingSupport = _state7.replacingSupport,
1100
- scene = _state7.scene;
1099
+ var _state0 = state,
1100
+ replacingSupport = _state0.replacingSupport,
1101
+ scene = _state0.scene;
1101
1102
  var layerID = replacingSupport.get('layerID');
1102
1103
  var itemID = replacingSupport.get('itemID');
1103
1104
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1130,48 +1131,41 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1130
1131
  }
1131
1132
  }, {
1132
1133
  key: "setInitialDoorStyle",
1133
- value: function setInitialDoorStyle(state, doorStyle, oStyle) {
1134
- if (doorStyle === undefined) {
1135
- state = state.merge({
1136
- oStyle: new _immutable.Map({
1137
- oStyle: oStyle
1138
- })
1139
- });
1140
- } else {
1141
- state = state.merge({
1142
- doorStyle: doorStyle,
1143
- oStyle: new _immutable.Map({
1144
- oStyle: oStyle
1145
- })
1146
- });
1147
- var _state8 = state,
1148
- scene = _state8.scene;
1149
- var layerID = scene.get('selectedLayer');
1150
- var layers = scene.layers.get(layerID);
1151
- var items = layers.items;
1152
- items.forEach(function (data) {
1153
- {
1154
- var itemID = data.id;
1155
- var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1156
- doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1157
- counttop: doorStyle.doorStyles.counttop
1158
- })
1159
- });
1160
- data = data.mergeIn(['doorStyle'], (0, _immutable.fromJS)(tmpDS));
1161
- layers = layers.mergeIn(['items', itemID], data);
1162
- state = state.merge({
1163
- scene: scene.mergeIn(['layers', layerID], layers)
1164
- });
1165
- }
1166
- });
1167
- }
1134
+ value: function setInitialDoorStyle(state, doorStyle) {
1135
+ state = state.merge({
1136
+ doorStyle: doorStyle
1137
+ });
1138
+ var _state1 = state,
1139
+ scene = _state1.scene;
1140
+ var layerID = scene.get('selectedLayer');
1141
+ var layers = scene.layers.get(layerID);
1142
+ var items = layers.items;
1143
+ layers = layers.setIn(['doorStyle'], (0, _immutable.fromJS)(doorStyle));
1144
+ state = state.merge({
1145
+ scene: state.scene.mergeIn(['layers', layerID], layers)
1146
+ });
1147
+ items.forEach(function (data) {
1148
+ {
1149
+ var itemID = data.id;
1150
+ var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1151
+ doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1152
+ counttop: doorStyle.doorStyles.counttop
1153
+ })
1154
+ });
1155
+ data = data.mergeIn(['doorStyle'], (0, _immutable.fromJS)(tmpDS));
1156
+ layers = layers.mergeIn(['items', itemID], data);
1157
+ state = state.merge({
1158
+ scene: scene.mergeIn(['layers', layerID], layers)
1159
+ });
1160
+ }
1161
+ });
1168
1162
  return {
1169
1163
  updatedState: state
1170
1164
  };
1171
1165
  }
1172
1166
  }, {
1173
1167
  key: "setDoorStyle",
1174
- value: function setDoorStyle(state, doorStyle, isAll) {
1168
+ value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
1175
1169
  var _this2 = this;
1176
1170
  var keys = Object.keys(doorStyle.doorStyles);
1177
1171
  keys = keys.filter(function (elem) {
@@ -1181,6 +1175,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1181
1175
  for (var x in keys) {
1182
1176
  tmp[keys[x]] = doorStyle.doorStyles[keys[x]];
1183
1177
  }
1178
+ doorStyle.cds = itemCDS;
1184
1179
  state = state.setIn(['scene', 'layers', state.scene.selectedLayer, 'doorStyle'], doorStyle);
1185
1180
  state = state.merge({
1186
1181
  doorStyle: doorStyle
@@ -1188,14 +1183,14 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1188
1183
  var layerID = state.scene.get('selectedLayer');
1189
1184
  var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1190
1185
  temp_layer_molding = temp_layer_molding.filter(function (md) {
1191
- return doorStyle.doorStyles.cds.some(function (ds) {
1186
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1192
1187
  return md.itemID === ds.itemID;
1193
1188
  });
1194
1189
  });
1195
1190
  state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1196
1191
  var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1197
1192
  var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1198
- var _cds$data2;
1193
+ var _cds$data;
1199
1194
  if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1200
1195
  var itemID = data.id;
1201
1196
  var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1203,7 +1198,7 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1203
1198
  var tmpMolding = (0, _toConsumableArray2["default"])(curItem.molding);
1204
1199
  var temp_item_molding = (0, _toConsumableArray2["default"])(curItem.molding);
1205
1200
  temp_item_molding = temp_item_molding.filter(function (md) {
1206
- return doorStyle.doorStyles.cds.some(function (ds) {
1201
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1207
1202
  return ds.itemID === md.itemID;
1208
1203
  });
1209
1204
  });
@@ -1213,17 +1208,16 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1213
1208
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1214
1209
  });
1215
1210
  });
1216
- var cds = doorStyle.doorStyles.cds.find(function (elem) {
1211
+ var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
1217
1212
  return elem.itemID === data.itemID;
1218
1213
  });
1219
- var euro_cds = (cds === null || cds === void 0 || (_cds$data2 = cds.data) === null || _cds$data2 === void 0 ? void 0 : _cds$data2.filter(function (element) {
1214
+ var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
1220
1215
  return element && element.is_euro_cds;
1221
1216
  })) || [];
1222
- var cds_data;
1223
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
1224
- cds_data = cds ? _objectSpread(_objectSpread({}, euro_cds[0]), {}, {
1225
- cabinet_door_style_id: cds.cabinet_door_style_id
1226
- }) : {};
1217
+ var cds_data = cds ? [cds] : [];
1218
+ if (
1219
+ // doorStyle.door_style_name === 'Euro & Frameless' &&
1220
+ euro_cds.length > 0) {
1227
1221
  var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1228
1222
  if (newProperties.hasOwnProperty('depth')) {
1229
1223
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -1269,9 +1263,6 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1269
1263
  }
1270
1264
  state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1271
1265
  } else {
1272
- cds_data = cds ? _objectSpread(_objectSpread({}, cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
1273
- cabinet_door_style_id: cds.cabinet_door_style_id
1274
- }) : {};
1275
1266
  var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1276
1267
  if (properties.hasOwnProperty('oldDepth')) {
1277
1268
  properties['depth'] = new _immutable.Map({
@@ -1310,7 +1301,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1310
1301
  color_sku_alias: doorStyle.color_sku_alias,
1311
1302
  // alias name of color_sku for the current dealer
1312
1303
  install: (0, _utils.getInstallationSuffix)(_constants.INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1313
- doorStyles: _objectSpread(_objectSpread({}, tmp), cds_data)
1304
+ doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
1305
+ cds: cds_data
1306
+ })
1314
1307
  };
1315
1308
  state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], (0, _immutable.fromJS)(tmpDS));
1316
1309
  };
@@ -1340,8 +1333,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1340
1333
  }, {
1341
1334
  key: "setCounterTop",
1342
1335
  value: function setCounterTop(state, counterTop) {
1343
- var _state9 = state,
1344
- scene = _state9.scene;
1336
+ var _state10 = state,
1337
+ scene = _state10.scene;
1345
1338
  var layerID = scene.get('selectedLayer');
1346
1339
  var layers = scene.layers.get(layerID);
1347
1340
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1385,8 +1378,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1385
1378
  }, {
1386
1379
  key: "setDoorHandle",
1387
1380
  value: function setDoorHandle(state, doorHandle) {
1388
- var _state0 = state,
1389
- scene = _state0.scene;
1381
+ var _state11 = state,
1382
+ scene = _state11.scene;
1390
1383
  var layerID = scene.get('selectedLayer');
1391
1384
  var layer = scene.layers.get(layerID);
1392
1385
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1410,8 +1403,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1410
1403
  }, {
1411
1404
  key: "setHandleMaterial",
1412
1405
  value: function setHandleMaterial(state, material) {
1413
- var _state1 = state,
1414
- scene = _state1.scene;
1406
+ var _state12 = state,
1407
+ scene = _state12.scene;
1415
1408
  var layerID = scene.get('selectedLayer');
1416
1409
  var layers = scene.layers.get(layerID);
1417
1410
  var items = layers.items;
@@ -1436,8 +1429,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1436
1429
  }, {
1437
1430
  key: "setWallColor",
1438
1431
  value: function setWallColor(state, wallColor) {
1439
- var _state10 = state,
1440
- scene = _state10.scene;
1432
+ var _state13 = state,
1433
+ scene = _state13.scene;
1441
1434
  var layerID = scene.get('selectedLayer');
1442
1435
  var layer = scene.layers.get(layerID);
1443
1436
  layer = layer.merge({
@@ -1463,8 +1456,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1463
1456
  }, {
1464
1457
  key: "setBacksplash",
1465
1458
  value: function setBacksplash(state, backsplash) {
1466
- var _state11 = state,
1467
- scene = _state11.scene;
1459
+ var _state14 = state,
1460
+ scene = _state14.scene;
1468
1461
  var layerID = scene.get('selectedLayer');
1469
1462
  var layer = scene.layers.get(layerID);
1470
1463
  var dataJSON = layer.toJS();
@@ -1492,8 +1485,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1492
1485
  }, {
1493
1486
  key: "setMolding",
1494
1487
  value: function setMolding(state, molding, isAll) {
1495
- var _state12 = state,
1496
- scene = _state12.scene;
1488
+ var _state15 = state,
1489
+ scene = _state15.scene;
1497
1490
  var layerID = scene.get('selectedLayer');
1498
1491
  var layer = scene.layers.get(layerID);
1499
1492
  if (isAll) {
@@ -1575,6 +1568,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1575
1568
  });
1576
1569
  }
1577
1570
  }
1571
+ state = state.merge({
1572
+ sceneHistory: (0, _history.historyPush)(state.sceneHistory, state.scene)
1573
+ });
1578
1574
  return {
1579
1575
  updatedState: state
1580
1576
  };
@@ -1582,8 +1578,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1582
1578
  }, {
1583
1579
  key: "updateMolding",
1584
1580
  value: function updateMolding(state) {
1585
- var _state13 = state,
1586
- scene = _state13.scene;
1581
+ var _state16 = state,
1582
+ scene = _state16.scene;
1587
1583
  var layerID = scene.get('selectedLayer');
1588
1584
  var layer = scene.layers.get(layerID);
1589
1585
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1697,6 +1693,9 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1697
1693
  updateSelectItemMolding();
1698
1694
  }
1699
1695
  }
1696
+ state = state.merge({
1697
+ sceneHistory: (0, _history.historyPush)(state.sceneHistory, state.scene)
1698
+ });
1700
1699
  return {
1701
1700
  updatedState: state
1702
1701
  };
@@ -1704,8 +1703,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1704
1703
  }, {
1705
1704
  key: "setBacksplashVisible",
1706
1705
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1707
- var _state14 = state,
1708
- scene = _state14.scene;
1706
+ var _state17 = state,
1707
+ scene = _state17.scene;
1709
1708
  var layerID = scene.get('selectedLayer');
1710
1709
  var layer = scene.layers.get(layerID);
1711
1710
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1725,8 +1724,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1725
1724
  }, {
1726
1725
  key: "setApplianceMaterial",
1727
1726
  value: function setApplianceMaterial(state, material) {
1728
- var _state15 = state,
1729
- scene = _state15.scene;
1727
+ var _state18 = state,
1728
+ scene = _state18.scene;
1730
1729
  var layerID = scene.get('selectedLayer');
1731
1730
  var layers = scene.layers.get(layerID);
1732
1731
  var items = layers.items;
@@ -1750,8 +1749,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1750
1749
  }, {
1751
1750
  key: "setModelling",
1752
1751
  value: function setModelling(state, molding) {
1753
- var _state16 = state,
1754
- scene = _state16.scene;
1752
+ var _state19 = state,
1753
+ scene = _state19.scene;
1755
1754
  var layerID = scene.get('selectedLayer');
1756
1755
  var layers = scene.layers.get(layerID);
1757
1756
  var items = layers.items;
@@ -1861,8 +1860,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1861
1860
  }, {
1862
1861
  key: "toggleLoadingCabinet",
1863
1862
  value: function toggleLoadingCabinet(state) {
1864
- var _state17 = state,
1865
- scene = _state17.scene;
1863
+ var _state20 = state,
1864
+ scene = _state20.scene;
1866
1865
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1867
1866
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1868
1867
  // state = state.set('scene', scene);
@@ -1874,8 +1873,8 @@ var Item = exports["default"] = /*#__PURE__*/function () {
1874
1873
  }, {
1875
1874
  key: "endLoading",
1876
1875
  value: function endLoading(state) {
1877
- var _state18 = state,
1878
- scene = _state18.scene;
1876
+ var _state21 = state,
1877
+ scene = _state21.scene;
1879
1878
  state = state.setIn(['scene', 'loadFlag'], true);
1880
1879
  return {
1881
1880
  updatedState: state