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/es/class/item.js CHANGED
@@ -8,11 +8,12 @@ import { convert } from "../utils/convert-units-lite";
8
8
  import { Group, Hole, Layer } from "./export";
9
9
  import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
10
10
  import { fromJS, Map } from 'immutable';
11
- import { INSTALLATION_SUFFIX_TYPE, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
12
- import { debugUtil } from "../utils/helper";
11
+ import { INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
12
+ import { debugUtil, updatePayloadOfInternalEvent } from "../utils/helper";
13
13
  import { isUndefined } from 'util';
14
14
  import { hasMoldingLayout } from "../utils/molding";
15
- import { getInstallationSuffix } from "../components/viewer2d/utils";
15
+ import { getInstallationSuffix, isEmpty } from "../components/viewer2d/utils";
16
+ import { historyPush } from "../utils/history";
16
17
  var allItemRect;
17
18
  var allItemSnap;
18
19
  var allLines;
@@ -28,7 +29,11 @@ var Item = /*#__PURE__*/function () {
28
29
  return _createClass(Item, null, [{
29
30
  key: "create",
30
31
  value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
32
+ var _item;
31
33
  var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
34
+ var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
35
+ var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
36
+ var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
32
37
  var itemID = IDBroker.acquireID();
33
38
  var item = state.catalog.factoryElement(type, {
34
39
  id: itemID,
@@ -45,18 +50,28 @@ var Item = /*#__PURE__*/function () {
45
50
  x: x,
46
51
  y: y,
47
52
  rotation: rotation,
48
- isDuplication: isDuplication
53
+ isDuplication: isDuplication,
54
+ isInitialPos: isInitialPos ? isInitialPos : false
49
55
  }, null, state);
50
56
  if (item.category === 'cabinet') {
51
- var layer = state.getIn(['scene', 'layers', layerID]);
52
- if (state.doorStyle !== null && state.doorStyle !== undefined) {
53
- var _state$doorStyle, _temp$doorStyles;
54
- var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
55
- 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) {
56
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
57
+ if (isDuplication && refItem) {
58
+ item = item.merge({
59
+ doorStyle: refItem.doorStyle
57
60
  });
61
+ } else {
62
+ var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
63
+ var layer = state.getIn(['scene', 'layers', layerID]);
64
+ var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
65
+ 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) {
66
+ var _state;
67
+ return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
68
+ })) !== 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) {
69
+ var _state2;
70
+ return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
71
+ })) !== 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']);
58
72
  if (cds) {
59
- var updatedDoorStyles = _objectSpread(_objectSpread(_objectSpread({}, temp.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
73
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
74
+ cds: [cds],
60
75
  cabinet_door_style_id: cds.cabinet_door_style_id
61
76
  });
62
77
  item = item.merge({
@@ -64,48 +79,6 @@ var Item = /*#__PURE__*/function () {
64
79
  doorStyles: updatedDoorStyles
65
80
  }))
66
81
  });
67
- } else {
68
- var _state$oStyle;
69
- 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;
70
- if (styleObj) {
71
- for (var _x in styleObj) {
72
- cds = styleObj[_x].data.doorStyles.cds.find(function (elem) {
73
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
74
- });
75
- if (cds) {
76
- var tmpDS = styleObj[_x].data;
77
- tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, tmpDS.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
78
- cabinet_door_style_id: cds.cabinet_door_style_id
79
- });
80
- item = item.merge({
81
- doorStyle: fromJS(tmpDS)
82
- });
83
- break;
84
- }
85
- }
86
- }
87
- }
88
- } else {
89
- var _state$oStyle2;
90
- 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;
91
- if (_styleObj) {
92
- for (var _x2 in _styleObj) {
93
- var _styleObj$_x;
94
- 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) {
95
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
96
- });
97
- if (_cds) {
98
- var _styleObj$_x2;
99
- var _tmpDS = (_styleObj$_x2 = _styleObj[_x2]) === null || _styleObj$_x2 === void 0 ? void 0 : _styleObj$_x2.data;
100
- _tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, _tmpDS.doorStyles), _cds.data && _cds.data[0] ? _cds.data[0] : {}), {}, {
101
- cabinet_door_style_id: _cds.cabinet_door_style_id
102
- });
103
- item = item.merge({
104
- doorStyle: fromJS(_tmpDS)
105
- });
106
- break;
107
- }
108
- }
109
82
  }
110
83
  }
111
84
  }
@@ -116,15 +89,11 @@ var Item = /*#__PURE__*/function () {
116
89
  };
117
90
  }
118
91
  var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
119
- var _doorStyle$doorStyles, _cds$data;
120
92
  var doorStyle = item.get('doorStyle').toJS();
121
- 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) {
122
- return elem.itemID === item.itemID;
123
- });
124
- var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
93
+ var euroCDS = state.catalog.getIn(['elements', type, 'cds']).data.filter(function (element) {
125
94
  return element && element.is_euro_cds;
126
- })) || [];
127
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
95
+ });
96
+ if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
128
97
  var newProperties = item.get('properties').toJS();
129
98
  if (newProperties.hasOwnProperty('depth')) {
130
99
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -135,8 +104,8 @@ var Item = /*#__PURE__*/function () {
135
104
  });
136
105
  }
137
106
  newProperties['depth'] = new Map({
138
- length: convert(euro_cds[0].euro_length).from('in').to('cm'),
139
- _length: euro_cds[0].euro_length,
107
+ length: convert(euroCDS[0].euro_length).from('in').to('cm'),
108
+ _length: euroCDS[0].euro_length,
140
109
  _unit: 'in'
141
110
  });
142
111
  }
@@ -149,8 +118,8 @@ var Item = /*#__PURE__*/function () {
149
118
  });
150
119
  }
151
120
  newProperties['height'] = new Map({
152
- length: convert(euro_cds[0].euro_height).from('in').to('cm'),
153
- _length: euro_cds[0].euro_height,
121
+ length: convert(euroCDS[0].euro_height).from('in').to('cm'),
122
+ _length: euroCDS[0].euro_height,
154
123
  _unit: 'in'
155
124
  });
156
125
  }
@@ -163,8 +132,8 @@ var Item = /*#__PURE__*/function () {
163
132
  });
164
133
  }
165
134
  newProperties['width'] = new Map({
166
- length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
167
- _length: euro_cds[0].euro_width,
135
+ length: convert(euroCDS[0].euro_width).from('in').to('cm') - 10,
136
+ _length: euroCDS[0].euro_width,
168
137
  _unit: 'in'
169
138
  });
170
139
  }
@@ -200,6 +169,9 @@ var Item = /*#__PURE__*/function () {
200
169
  }
201
170
  };
202
171
  item.category === 'cabinet' && setSizeOfItemByDoorStyle();
172
+ if (counterTopURI || (_item = item) !== null && _item !== void 0 && _item.counterTop) {
173
+ item.counterTop.uri = counterTopURI;
174
+ }
203
175
  item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
204
176
  state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
205
177
  if (item.type.includes('Light')) {
@@ -312,6 +284,7 @@ var Item = /*#__PURE__*/function () {
312
284
  }, {
313
285
  key: "duplicateSelected",
314
286
  value: function duplicateSelected(state, currentObject) {
287
+ var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
315
288
  var layerID = state.getIn(['scene', 'selectedLayer']);
316
289
  var layer = state.getIn(['scene', 'layers', layerID]);
317
290
  var objectID = currentObject.id;
@@ -319,6 +292,7 @@ var Item = /*#__PURE__*/function () {
319
292
  var x = currentObject.x;
320
293
  var y = currentObject.y;
321
294
  var sceneComponentType, width, depth, rotRad;
295
+ var duplicatedElement = null;
322
296
  switch (currentObject.prototype) {
323
297
  case 'items':
324
298
  myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
@@ -340,9 +314,10 @@ var Item = /*#__PURE__*/function () {
340
314
  var isrectSect = GeometryUtils.validInterSect(allRect, val);
341
315
  if (isrectSect) {
342
316
  // Duplicated object has a original object's molding property
343
- 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),
317
+ 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),
344
318
  stateI = _this$create.updatedState,
345
319
  item = _this$create.item;
320
+ duplicatedElement = item;
346
321
  if (item === null) {
347
322
  alert('There are no Door Colors in this cabinet.');
348
323
  state = state.merge({
@@ -366,18 +341,19 @@ var Item = /*#__PURE__*/function () {
366
341
  _val.is_corner = allItemRect.cur.is_corner;
367
342
  var isRect = GeometryUtils.validInterSect(allRect, _val);
368
343
  if (isRect) {
369
- 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),
344
+ 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),
370
345
  _stateI = _this$create2.updatedState,
371
- _item = _this$create2.item;
372
- if (_item === null) {
346
+ _item2 = _this$create2.item;
347
+ duplicatedElement = _item2;
348
+ if (_item2 === null) {
373
349
  alert('There are no Door Colors in this cabinet.');
374
350
  state = state.merge({
375
351
  mode: MODE_IDLE,
376
352
  drawingSupport: new Map()
377
353
  });
378
354
  } else {
379
- state = Item.select(_stateI, layerID, _item.id).updatedState;
380
- state = state.setIn(['drawingSupport', 'currentID'], _item.id);
355
+ state = Item.select(_stateI, layerID, _item2.id).updatedState;
356
+ state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
381
357
  }
382
358
  } else {
383
359
  var _val2 = {
@@ -392,18 +368,19 @@ var Item = /*#__PURE__*/function () {
392
368
  _val2.is_corner = allItemRect.cur.is_corner;
393
369
  var isRectDown = GeometryUtils.validInterSect(allRect, _val2);
394
370
  if (isRectDown) {
395
- 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),
371
+ 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),
396
372
  _stateI2 = _this$create3.updatedState,
397
- _item2 = _this$create3.item;
398
- if (_item2 === null) {
373
+ _item3 = _this$create3.item;
374
+ duplicatedElement = _item3;
375
+ if (_item3 === null) {
399
376
  alert('There are no Door Colors in this cabinet.');
400
377
  state = state.merge({
401
378
  mode: MODE_IDLE,
402
379
  drawingSupport: new Map()
403
380
  });
404
381
  } else {
405
- state = Item.select(_stateI2, layerID, _item2.id).updatedState;
406
- state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
382
+ state = Item.select(_stateI2, layerID, _item3.id).updatedState;
383
+ state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
407
384
  }
408
385
  } else {
409
386
  var _val3 = {
@@ -418,18 +395,19 @@ var Item = /*#__PURE__*/function () {
418
395
  _val3.is_corner = allItemRect.cur.is_corner;
419
396
  var isRectUp = GeometryUtils.validInterSect(allRect, _val3);
420
397
  if (isRectUp) {
421
- 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),
398
+ 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),
422
399
  _stateI3 = _this$create4.updatedState,
423
- _item3 = _this$create4.item;
424
- if (_item3 === null) {
400
+ _item4 = _this$create4.item;
401
+ duplicatedElement = _item4;
402
+ if (_item4 === null) {
425
403
  alert('There are no Door Colors in this cabinet.');
426
404
  state = state.merge({
427
405
  mode: MODE_IDLE,
428
406
  drawingSupport: new Map()
429
407
  });
430
408
  } else {
431
- state = Item.select(_stateI3, layerID, _item3.id).updatedState;
432
- state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
409
+ state = Item.select(_stateI3, layerID, _item4.id).updatedState;
410
+ state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
433
411
  }
434
412
  } else {
435
413
  console.log('there is no space');
@@ -498,6 +476,15 @@ var Item = /*#__PURE__*/function () {
498
476
  default:
499
477
  break;
500
478
  }
479
+ if (onInternalEvent && duplicatedElement) {
480
+ var _state$get;
481
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
482
+ var jsElement = updatePayloadOfInternalEvent(duplicatedElement, layer, catalog);
483
+ onInternalEvent({
484
+ type: INTERNAL_EVENT_DRAW_ELEMENT,
485
+ value: jsElement
486
+ });
487
+ }
501
488
  return {
502
489
  updatedState: state
503
490
  };
@@ -506,6 +493,9 @@ var Item = /*#__PURE__*/function () {
506
493
  key: "storeDistArray",
507
494
  value: function storeDistArray(state, layerID, itemID, distArray) {
508
495
  var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
496
+ distArray.forEach(function (dist) {
497
+ dist[0] < 0 ? dist[0] = 0 : dist[0];
498
+ });
509
499
  var isEqualDist = function isEqualDist(a, b) {
510
500
  return a == b;
511
501
  };
@@ -554,8 +544,14 @@ var Item = /*#__PURE__*/function () {
554
544
  }, {
555
545
  key: "replaceItem",
556
546
  value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
547
+ var _currentObject$counte;
548
+ var counterTopURI = '';
549
+ if (!isEmpty(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
550
+ var _currentObject$counte2;
551
+ counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
552
+ } else if (!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';
557
553
  state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
558
- state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
554
+ 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;
559
555
  // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
560
556
  return {
561
557
  updatedState: state
@@ -624,13 +620,15 @@ var Item = /*#__PURE__*/function () {
624
620
  }, {
625
621
  key: "updateDrawingItem",
626
622
  value: function updateDrawingItem(state, layerID, x, y) {
623
+ var isInitialPos = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
627
624
  if (state.hasIn(['drawingSupport', 'currentID'])) {
628
625
  var mode = state.get('mode');
629
626
  if ([MODE_DRAWING_ITEM_3D].includes(mode)) {
630
627
  state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
631
628
  return item && item.merge({
632
629
  x: x,
633
- y: y
630
+ y: y,
631
+ isInitialPos: isInitialPos ? isInitialPos : false
634
632
  });
635
633
  });
636
634
  state = state.merge({
@@ -644,12 +642,13 @@ var Item = /*#__PURE__*/function () {
644
642
  state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
645
643
  return item && item.merge({
646
644
  x: x,
647
- y: y
645
+ y: y,
646
+ isInitialPos: isInitialPos ? isInitialPos : false
648
647
  });
649
648
  });
650
649
  }
651
650
  } else {
652
- var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false),
651
+ var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false, [], isInitialPos),
653
652
  stateI = _this$create5.updatedState,
654
653
  item = _this$create5.item;
655
654
  if (item === null) {
@@ -670,8 +669,8 @@ var Item = /*#__PURE__*/function () {
670
669
  }, {
671
670
  key: "updateDraggingItemChanged",
672
671
  value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
673
- var _state = state,
674
- scene = _state.scene;
672
+ var _state4 = state,
673
+ scene = _state4.scene;
675
674
  // let originalX = draggingSupport.get('originalX');
676
675
  // let originalY = draggingSupport.get('originalY');
677
676
 
@@ -685,7 +684,8 @@ var Item = /*#__PURE__*/function () {
685
684
  // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
686
685
  item = item.merge({
687
686
  x: x,
688
- y: y
687
+ y: y,
688
+ isInitialPos: false
689
689
  });
690
690
  state = state.merge({
691
691
  scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
@@ -699,8 +699,8 @@ var Item = /*#__PURE__*/function () {
699
699
  }, {
700
700
  key: "endDrawingItem",
701
701
  value: function endDrawingItem(state, layerID, x, y) {
702
- var catalog = state.catalog;
703
- state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;
702
+ // let catalog = state.catalog;
703
+ state = this.updateDrawingItem(state, layerID, x, y).updatedState;
704
704
  state = Layer.unselectAll(state, layerID).updatedState;
705
705
  var popup = state.get('popup');
706
706
  state = state.merge({
@@ -762,9 +762,9 @@ var Item = /*#__PURE__*/function () {
762
762
  }, {
763
763
  key: "updateDraggingItem",
764
764
  value: function updateDraggingItem(state, x, y) {
765
- var _state2 = state,
766
- draggingSupport = _state2.draggingSupport,
767
- scene = _state2.scene;
765
+ var _state5 = state,
766
+ draggingSupport = _state5.draggingSupport,
767
+ scene = _state5.scene;
768
768
  var layerID = draggingSupport.get('layerID');
769
769
  var itemID = draggingSupport.get('itemID');
770
770
  var startPointX = draggingSupport.get('startPointX');
@@ -783,7 +783,8 @@ var Item = /*#__PURE__*/function () {
783
783
  tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;
784
784
  item = item.merge({
785
785
  x: tX,
786
- y: tY
786
+ y: tY,
787
+ isInitialPos: false
787
788
  });
788
789
  state = state.merge({
789
790
  scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
@@ -795,9 +796,9 @@ var Item = /*#__PURE__*/function () {
795
796
  }, {
796
797
  key: "updateDraggingItem3DX",
797
798
  value: function updateDraggingItem3DX(state, x) {
798
- var _state3 = state,
799
- draggingSupport = _state3.draggingSupport,
800
- scene = _state3.scene;
799
+ var _state6 = state,
800
+ draggingSupport = _state6.draggingSupport,
801
+ scene = _state6.scene;
801
802
  var layerID = draggingSupport.get('layerID');
802
803
  var itemID = draggingSupport.get('itemID');
803
804
  var startPointX = draggingSupport.get('startPointX');
@@ -817,9 +818,9 @@ var Item = /*#__PURE__*/function () {
817
818
  }, {
818
819
  key: "updateDraggingItem3DY",
819
820
  value: function updateDraggingItem3DY(state, y) {
820
- var _state4 = state,
821
- draggingSupport = _state4.draggingSupport,
822
- scene = _state4.scene;
821
+ var _state7 = state,
822
+ draggingSupport = _state7.draggingSupport,
823
+ scene = _state7.scene;
823
824
  var layerID = draggingSupport.get('layerID');
824
825
  var itemID = draggingSupport.get('itemID');
825
826
  var startPointY = draggingSupport.get('startPointY');
@@ -900,9 +901,9 @@ var Item = /*#__PURE__*/function () {
900
901
  }, {
901
902
  key: "updateRotatingItem",
902
903
  value: function updateRotatingItem(state, x, y) {
903
- var _state5 = state,
904
- rotatingSupport = _state5.rotatingSupport,
905
- scene = _state5.scene;
904
+ var _state8 = state,
905
+ rotatingSupport = _state8.rotatingSupport,
906
+ scene = _state8.scene;
906
907
  var layerID = rotatingSupport.get('layerID');
907
908
  var itemID = rotatingSupport.get('itemID');
908
909
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -985,9 +986,9 @@ var Item = /*#__PURE__*/function () {
985
986
  }, {
986
987
  key: "replaceSubmodule",
987
988
  value: function replaceSubmodule(state, url) {
988
- var _state6 = state,
989
- replacingSupport = _state6.replacingSupport,
990
- scene = _state6.scene;
989
+ var _state9 = state,
990
+ replacingSupport = _state9.replacingSupport,
991
+ scene = _state9.scene;
991
992
  url = 'catalog/texture.png';
992
993
  var urlData = url.split('/');
993
994
  var newURL = '';
@@ -1088,9 +1089,9 @@ var Item = /*#__PURE__*/function () {
1088
1089
  }, {
1089
1090
  key: "animateObject",
1090
1091
  value: function animateObject(state, value) {
1091
- var _state7 = state,
1092
- replacingSupport = _state7.replacingSupport,
1093
- scene = _state7.scene;
1092
+ var _state0 = state,
1093
+ replacingSupport = _state0.replacingSupport,
1094
+ scene = _state0.scene;
1094
1095
  var layerID = replacingSupport.get('layerID');
1095
1096
  var itemID = replacingSupport.get('itemID');
1096
1097
  var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1123,48 +1124,41 @@ var Item = /*#__PURE__*/function () {
1123
1124
  }
1124
1125
  }, {
1125
1126
  key: "setInitialDoorStyle",
1126
- value: function setInitialDoorStyle(state, doorStyle, oStyle) {
1127
- if (doorStyle === undefined) {
1128
- state = state.merge({
1129
- oStyle: new Map({
1130
- oStyle: oStyle
1131
- })
1132
- });
1133
- } else {
1134
- state = state.merge({
1135
- doorStyle: doorStyle,
1136
- oStyle: new Map({
1137
- oStyle: oStyle
1138
- })
1139
- });
1140
- var _state8 = state,
1141
- scene = _state8.scene;
1142
- var layerID = scene.get('selectedLayer');
1143
- var layers = scene.layers.get(layerID);
1144
- var items = layers.items;
1145
- items.forEach(function (data) {
1146
- {
1147
- var itemID = data.id;
1148
- var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1149
- doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1150
- counttop: doorStyle.doorStyles.counttop
1151
- })
1152
- });
1153
- data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1154
- layers = layers.mergeIn(['items', itemID], data);
1155
- state = state.merge({
1156
- scene: scene.mergeIn(['layers', layerID], layers)
1157
- });
1158
- }
1159
- });
1160
- }
1127
+ value: function setInitialDoorStyle(state, doorStyle) {
1128
+ state = state.merge({
1129
+ doorStyle: doorStyle
1130
+ });
1131
+ var _state1 = state,
1132
+ scene = _state1.scene;
1133
+ var layerID = scene.get('selectedLayer');
1134
+ var layers = scene.layers.get(layerID);
1135
+ var items = layers.items;
1136
+ layers = layers.setIn(['doorStyle'], fromJS(doorStyle));
1137
+ state = state.merge({
1138
+ scene: state.scene.mergeIn(['layers', layerID], layers)
1139
+ });
1140
+ items.forEach(function (data) {
1141
+ {
1142
+ var itemID = data.id;
1143
+ var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1144
+ doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1145
+ counttop: doorStyle.doorStyles.counttop
1146
+ })
1147
+ });
1148
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1149
+ layers = layers.mergeIn(['items', itemID], data);
1150
+ state = state.merge({
1151
+ scene: scene.mergeIn(['layers', layerID], layers)
1152
+ });
1153
+ }
1154
+ });
1161
1155
  return {
1162
1156
  updatedState: state
1163
1157
  };
1164
1158
  }
1165
1159
  }, {
1166
1160
  key: "setDoorStyle",
1167
- value: function setDoorStyle(state, doorStyle, isAll) {
1161
+ value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
1168
1162
  var _this2 = this;
1169
1163
  var keys = Object.keys(doorStyle.doorStyles);
1170
1164
  keys = keys.filter(function (elem) {
@@ -1174,6 +1168,7 @@ var Item = /*#__PURE__*/function () {
1174
1168
  for (var x in keys) {
1175
1169
  tmp[keys[x]] = doorStyle.doorStyles[keys[x]];
1176
1170
  }
1171
+ doorStyle.cds = itemCDS;
1177
1172
  state = state.setIn(['scene', 'layers', state.scene.selectedLayer, 'doorStyle'], doorStyle);
1178
1173
  state = state.merge({
1179
1174
  doorStyle: doorStyle
@@ -1181,14 +1176,14 @@ var Item = /*#__PURE__*/function () {
1181
1176
  var layerID = state.scene.get('selectedLayer');
1182
1177
  var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1183
1178
  temp_layer_molding = temp_layer_molding.filter(function (md) {
1184
- return doorStyle.doorStyles.cds.some(function (ds) {
1179
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1185
1180
  return md.itemID === ds.itemID;
1186
1181
  });
1187
1182
  });
1188
1183
  state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1189
1184
  var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1190
1185
  var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1191
- var _cds$data2;
1186
+ var _cds$data;
1192
1187
  if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1193
1188
  var itemID = data.id;
1194
1189
  var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
@@ -1196,7 +1191,7 @@ var Item = /*#__PURE__*/function () {
1196
1191
  var tmpMolding = _toConsumableArray(curItem.molding);
1197
1192
  var temp_item_molding = _toConsumableArray(curItem.molding);
1198
1193
  temp_item_molding = temp_item_molding.filter(function (md) {
1199
- return doorStyle.doorStyles.cds.some(function (ds) {
1194
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1200
1195
  return ds.itemID === md.itemID;
1201
1196
  });
1202
1197
  });
@@ -1206,17 +1201,16 @@ var Item = /*#__PURE__*/function () {
1206
1201
  state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1207
1202
  });
1208
1203
  });
1209
- var cds = doorStyle.doorStyles.cds.find(function (elem) {
1204
+ var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
1210
1205
  return elem.itemID === data.itemID;
1211
1206
  });
1212
- var euro_cds = (cds === null || cds === void 0 || (_cds$data2 = cds.data) === null || _cds$data2 === void 0 ? void 0 : _cds$data2.filter(function (element) {
1207
+ var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
1213
1208
  return element && element.is_euro_cds;
1214
1209
  })) || [];
1215
- var cds_data;
1216
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
1217
- cds_data = cds ? _objectSpread(_objectSpread({}, euro_cds[0]), {}, {
1218
- cabinet_door_style_id: cds.cabinet_door_style_id
1219
- }) : {};
1210
+ var cds_data = cds ? [cds] : [];
1211
+ if (
1212
+ // doorStyle.door_style_name === 'Euro & Frameless' &&
1213
+ euro_cds.length > 0) {
1220
1214
  var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1221
1215
  if (newProperties.hasOwnProperty('depth')) {
1222
1216
  if (!newProperties.hasOwnProperty('oldDepth')) {
@@ -1262,9 +1256,6 @@ var Item = /*#__PURE__*/function () {
1262
1256
  }
1263
1257
  state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1264
1258
  } else {
1265
- cds_data = cds ? _objectSpread(_objectSpread({}, cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
1266
- cabinet_door_style_id: cds.cabinet_door_style_id
1267
- }) : {};
1268
1259
  var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1269
1260
  if (properties.hasOwnProperty('oldDepth')) {
1270
1261
  properties['depth'] = new Map({
@@ -1303,7 +1294,9 @@ var Item = /*#__PURE__*/function () {
1303
1294
  color_sku_alias: doorStyle.color_sku_alias,
1304
1295
  // alias name of color_sku for the current dealer
1305
1296
  install: getInstallationSuffix(INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1306
- doorStyles: _objectSpread(_objectSpread({}, tmp), cds_data)
1297
+ doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
1298
+ cds: cds_data
1299
+ })
1307
1300
  };
1308
1301
  state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], fromJS(tmpDS));
1309
1302
  };
@@ -1333,8 +1326,8 @@ var Item = /*#__PURE__*/function () {
1333
1326
  }, {
1334
1327
  key: "setCounterTop",
1335
1328
  value: function setCounterTop(state, counterTop) {
1336
- var _state9 = state,
1337
- scene = _state9.scene;
1329
+ var _state10 = state,
1330
+ scene = _state10.scene;
1338
1331
  var layerID = scene.get('selectedLayer');
1339
1332
  var layers = scene.layers.get(layerID);
1340
1333
  layers = layers.mergeIn(['counterTop'], counterTop);
@@ -1378,8 +1371,8 @@ var Item = /*#__PURE__*/function () {
1378
1371
  }, {
1379
1372
  key: "setDoorHandle",
1380
1373
  value: function setDoorHandle(state, doorHandle) {
1381
- var _state0 = state,
1382
- scene = _state0.scene;
1374
+ var _state11 = state,
1375
+ scene = _state11.scene;
1383
1376
  var layerID = scene.get('selectedLayer');
1384
1377
  var layer = scene.layers.get(layerID);
1385
1378
  layer = layer.mergeIn(['doorHandle'], doorHandle);
@@ -1403,8 +1396,8 @@ var Item = /*#__PURE__*/function () {
1403
1396
  }, {
1404
1397
  key: "setHandleMaterial",
1405
1398
  value: function setHandleMaterial(state, material) {
1406
- var _state1 = state,
1407
- scene = _state1.scene;
1399
+ var _state12 = state,
1400
+ scene = _state12.scene;
1408
1401
  var layerID = scene.get('selectedLayer');
1409
1402
  var layers = scene.layers.get(layerID);
1410
1403
  var items = layers.items;
@@ -1429,8 +1422,8 @@ var Item = /*#__PURE__*/function () {
1429
1422
  }, {
1430
1423
  key: "setWallColor",
1431
1424
  value: function setWallColor(state, wallColor) {
1432
- var _state10 = state,
1433
- scene = _state10.scene;
1425
+ var _state13 = state,
1426
+ scene = _state13.scene;
1434
1427
  var layerID = scene.get('selectedLayer');
1435
1428
  var layer = scene.layers.get(layerID);
1436
1429
  layer = layer.merge({
@@ -1456,8 +1449,8 @@ var Item = /*#__PURE__*/function () {
1456
1449
  }, {
1457
1450
  key: "setBacksplash",
1458
1451
  value: function setBacksplash(state, backsplash) {
1459
- var _state11 = state,
1460
- scene = _state11.scene;
1452
+ var _state14 = state,
1453
+ scene = _state14.scene;
1461
1454
  var layerID = scene.get('selectedLayer');
1462
1455
  var layer = scene.layers.get(layerID);
1463
1456
  var dataJSON = layer.toJS();
@@ -1485,8 +1478,8 @@ var Item = /*#__PURE__*/function () {
1485
1478
  }, {
1486
1479
  key: "setMolding",
1487
1480
  value: function setMolding(state, molding, isAll) {
1488
- var _state12 = state,
1489
- scene = _state12.scene;
1481
+ var _state15 = state,
1482
+ scene = _state15.scene;
1490
1483
  var layerID = scene.get('selectedLayer');
1491
1484
  var layer = scene.layers.get(layerID);
1492
1485
  if (isAll) {
@@ -1568,6 +1561,9 @@ var Item = /*#__PURE__*/function () {
1568
1561
  });
1569
1562
  }
1570
1563
  }
1564
+ state = state.merge({
1565
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1566
+ });
1571
1567
  return {
1572
1568
  updatedState: state
1573
1569
  };
@@ -1575,8 +1571,8 @@ var Item = /*#__PURE__*/function () {
1575
1571
  }, {
1576
1572
  key: "updateMolding",
1577
1573
  value: function updateMolding(state) {
1578
- var _state13 = state,
1579
- scene = _state13.scene;
1574
+ var _state16 = state,
1575
+ scene = _state16.scene;
1580
1576
  var layerID = scene.get('selectedLayer');
1581
1577
  var layer = scene.layers.get(layerID);
1582
1578
  var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
@@ -1690,6 +1686,9 @@ var Item = /*#__PURE__*/function () {
1690
1686
  updateSelectItemMolding();
1691
1687
  }
1692
1688
  }
1689
+ state = state.merge({
1690
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1691
+ });
1693
1692
  return {
1694
1693
  updatedState: state
1695
1694
  };
@@ -1697,8 +1696,8 @@ var Item = /*#__PURE__*/function () {
1697
1696
  }, {
1698
1697
  key: "setBacksplashVisible",
1699
1698
  value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1700
- var _state14 = state,
1701
- scene = _state14.scene;
1699
+ var _state17 = state,
1700
+ scene = _state17.scene;
1702
1701
  var layerID = scene.get('selectedLayer');
1703
1702
  var layer = scene.layers.get(layerID);
1704
1703
  layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
@@ -1718,8 +1717,8 @@ var Item = /*#__PURE__*/function () {
1718
1717
  }, {
1719
1718
  key: "setApplianceMaterial",
1720
1719
  value: function setApplianceMaterial(state, material) {
1721
- var _state15 = state,
1722
- scene = _state15.scene;
1720
+ var _state18 = state,
1721
+ scene = _state18.scene;
1723
1722
  var layerID = scene.get('selectedLayer');
1724
1723
  var layers = scene.layers.get(layerID);
1725
1724
  var items = layers.items;
@@ -1743,8 +1742,8 @@ var Item = /*#__PURE__*/function () {
1743
1742
  }, {
1744
1743
  key: "setModelling",
1745
1744
  value: function setModelling(state, molding) {
1746
- var _state16 = state,
1747
- scene = _state16.scene;
1745
+ var _state19 = state,
1746
+ scene = _state19.scene;
1748
1747
  var layerID = scene.get('selectedLayer');
1749
1748
  var layers = scene.layers.get(layerID);
1750
1749
  var items = layers.items;
@@ -1854,8 +1853,8 @@ var Item = /*#__PURE__*/function () {
1854
1853
  }, {
1855
1854
  key: "toggleLoadingCabinet",
1856
1855
  value: function toggleLoadingCabinet(state) {
1857
- var _state17 = state,
1858
- scene = _state17.scene;
1856
+ var _state20 = state,
1857
+ scene = _state20.scene;
1859
1858
  console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1860
1859
  // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1861
1860
  // state = state.set('scene', scene);
@@ -1867,8 +1866,8 @@ var Item = /*#__PURE__*/function () {
1867
1866
  }, {
1868
1867
  key: "endLoading",
1869
1868
  value: function endLoading(state) {
1870
- var _state18 = state,
1871
- scene = _state18.scene;
1869
+ var _state21 = state,
1870
+ scene = _state21.scene;
1872
1871
  state = state.setIn(['scene', 'loadFlag'], true);
1873
1872
  return {
1874
1873
  updatedState: state