@crystaldesign/web-planner-logic 25.14.0-beta.27 → 25.14.0-beta.29

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 (52) hide show
  1. package/build/cjs/{DivaBoxPlanner-5e144865.js → DivaBoxPlanner-590fa04b.js} +228 -148
  2. package/build/cjs/{DivaStandardPlanner-ca043429.js → DivaStandardPlanner-14f641eb.js} +96 -87
  3. package/build/cjs/{DoorPlanner-5ded30b7.js → DoorPlanner-2fd36cbe.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-715fa957.js → Host3DSignalR-01d03fbe.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-bfb1fab3.js → LiviqueWWSHandler-ce234c4d.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-a2c9cd1f.js → PfisterWWSHandler-14763bec.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-7aa80b82.js → PlannerHandler2D-69bf367e.js} +2 -2
  8. package/build/cjs/{SeriousBasketHandler-7571d6f2.js → SeriousBasketHandler-3284d8e6.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-56e90dab.js → ShelfPlanner-fdf5c5ea.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-2e0aa185.js → StandardWWSHandler-75b86bd6.js} +1 -1
  11. package/build/cjs/{index-cf35e4c3.js → index-d851c847.js} +102 -61
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-5c85ac91.js → DivaBoxPlanner-90c95fe0.js} +228 -148
  14. package/build/esm/{DivaStandardPlanner-a5f5ecaa.js → DivaStandardPlanner-15cc1700.js} +96 -87
  15. package/build/esm/{DoorPlanner-d1401be5.js → DoorPlanner-6e3a0841.js} +1 -1
  16. package/build/esm/{Host3DSignalR-73af84d1.js → Host3DSignalR-e8cf0b3e.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-20d9ac88.js → LiviqueWWSHandler-108cb348.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-17e2bb0a.js → PfisterWWSHandler-41c995d8.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-5f12e286.js → PlannerHandler2D-67320283.js} +2 -2
  20. package/build/esm/{SeriousBasketHandler-ab9e3806.js → SeriousBasketHandler-23209e7b.js} +1 -1
  21. package/build/esm/{ShelfPlanner-a7e63d56.js → ShelfPlanner-ac57278a.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-fb4ba1bf.js → StandardWWSHandler-6959f79c.js} +1 -1
  23. package/build/esm/{index-b308b21a.js → index-8f6efc60.js} +102 -61
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +5 -0
  28. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
  30. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -0
  32. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +2 -1
  34. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +3 -2
  36. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  38. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +4 -1
  40. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +4 -1
  42. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +4 -1
  44. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +7 -1
  47. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  52. package/package.json +2 -2
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-cf35e4c3.js');
8
+ var index = require('./index-d851c847.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
- var PlannerHandler2D = require('./PlannerHandler2D-7aa80b82.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-69bf367e.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/basket-model');
@@ -2609,21 +2609,21 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2609
2609
  }
2610
2610
  }, {
2611
2611
  key: "validateDimensionRule",
2612
- value: function validateDimensionRule(dimRule, boxPlannerSize) {
2612
+ value: function validateDimensionRule(dimension, dimensionLimit, boxPlannerSize, higherLimit, lowerLimit) {
2613
2613
  var isOver = false;
2614
2614
  var isEqual = false;
2615
- if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y > dimRule.dimensionLimit) isOver = true;
2616
- if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y == dimRule.dimensionLimit) isEqual = true;
2617
- if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x > dimRule.dimensionLimit) isOver = true;
2618
- if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x == dimRule.dimensionLimit) isEqual = true;
2619
- if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z > dimRule.dimensionLimit) isOver = true;
2620
- if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z == dimRule.dimensionLimit) isEqual = true;
2615
+ if (dimension.toLowerCase() == 'height' && boxPlannerSize.y > dimensionLimit) isOver = true;
2616
+ if (dimension.toLowerCase() == 'height' && boxPlannerSize.y == dimensionLimit) isEqual = true;
2617
+ if (dimension.toLowerCase() == 'width' && boxPlannerSize.x > dimensionLimit) isOver = true;
2618
+ if (dimension.toLowerCase() == 'width' && boxPlannerSize.x == dimensionLimit) isEqual = true;
2619
+ if (dimension.toLowerCase() == 'depth' && boxPlannerSize.z > dimensionLimit) isOver = true;
2620
+ if (dimension.toLowerCase() == 'depth' && boxPlannerSize.z == dimensionLimit) isEqual = true;
2621
2621
  if (isOver) {
2622
- return dimRule.higherLimit;
2622
+ return higherLimit;
2623
2623
  } else if (isEqual) {
2624
- return dimRule.higherLimit;
2624
+ return higherLimit;
2625
2625
  } else {
2626
- return dimRule.lowerLimit;
2626
+ return lowerLimit;
2627
2627
  }
2628
2628
  }
2629
2629
 
@@ -2649,15 +2649,19 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2649
2649
  elements.forEach(function (element, idx) {
2650
2650
  if (idx < changedElementIdx) {
2651
2651
  //under the changed one
2652
- var rightNeighbours = boxPlannerGrid.getNeighborElements(element.ElementId, "RIGHT");
2652
+ var rightNeighbours = boxPlannerGrid.getNeighborElements(element.ElementId, 'RIGHT', false);
2653
2653
  var freeSpace = element.Width;
2654
2654
  rightNeighbours.forEach(function (n) {
2655
2655
  if (n.ElementId == changedElement.ElementId) return;
2656
- if (!boxPlannerGrid.getNeighborElements(n.ElementId, "TOP", false).find(function (n) {
2656
+ var topElements = boxPlannerGrid.getNeighborElements(n.ElementId, 'TOP', false).filter(function (n) {
2657
2657
  return n.ElementId != changedElement.ElementId;
2658
- })) freeSpace += n.Width;
2658
+ });
2659
+ var topWidth = topElements.reduce(function (totalwidth, e) {
2660
+ return totalwidth += e.Width;
2661
+ }, 0);
2662
+ if (topWidth < n.Width) freeSpace += n.Width - topWidth;
2659
2663
  });
2660
- if (changedElement.Width > freeSpace) _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
2664
+ if (Math.round(changedElement.Width) > Math.round(freeSpace)) _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
2661
2665
  } else {
2662
2666
  // over the changed one
2663
2667
  if (changedElement.Width < element.Width) _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
@@ -2670,7 +2674,10 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2670
2674
  var _this3 = this;
2671
2675
  var elements = boxPlannerGrid.getAllElementsInFrontGrid();
2672
2676
  elements.forEach(function (e) {
2673
- if (boxPlannerGrid.getElementHasBottomElement(e.ElementId)) _this3.setOptionValue(e.ElementId, 'OPTFUSS_SYS', 'OPVOHNE', optionHandler);
2677
+ if (boxPlannerGrid.getElementHasBottomElement(e.ElementId)) {
2678
+ _this3.setOptionValue(e.ElementId, 'OPTFUSS_SYS', 'OPVOHNE', optionHandler);
2679
+ _this3.setOptionValue(e.ElementId, 'OPTPOSSIBILITY_FUSS_OHNE', 'OPVTRUE', optionHandler);
2680
+ }
2674
2681
  });
2675
2682
  }
2676
2683
 
@@ -2684,14 +2691,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2684
2691
  if (!this.constructionRules.optionsInfluencedByDimensions) return;
2685
2692
  var boxPlannerSize = boxPlannerGrid.getSizeOfWholeSet(false);
2686
2693
  var allElements = boxPlannerGrid.getAllElementsInFrontGrid();
2687
- var setRule = function setRule(rule) {
2688
- var res = _this4.validateDimensionRule(rule, boxPlannerSize);
2694
+ var setRule = function setRule(option, res) {
2689
2695
  if (changedOPTs) {
2690
2696
  var changedOpt = Object.entries(changedOPTs).find(function (_ref) {
2691
2697
  var _ref2 = _slicedToArray__default["default"](_ref, 2),
2692
2698
  key = _ref2[0];
2693
2699
  _ref2[1];
2694
- return key == rule.option;
2700
+ return key == option;
2695
2701
  });
2696
2702
  if (changedOpt) {
2697
2703
  allElements.forEach(function (element) {
@@ -2701,13 +2707,29 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2701
2707
  }
2702
2708
  }
2703
2709
  allElements.forEach(function (element) {
2704
- return _this4.setOptionDoCustom(element.ElementId, res, rule.option, optionHandler);
2710
+ return _this4.setOptionDoCustom(element.ElementId, option, res, optionHandler);
2705
2711
  });
2706
2712
  };
2707
- this.constructionRules.optionsInfluencedByDimensions.forEach(function (dimRule) {
2708
- if (Array.isArray(dimRule)) dimRule.forEach(function (rule) {
2709
- return setRule(rule);
2710
- });else setRule(dimRule);
2713
+ var dim = this.constructionRules.optionsInfluencedByDimensions;
2714
+ dim.forEach(function (dimRule) {
2715
+ if (Array.isArray(dimRule)) {
2716
+ var res = dimRule.every(function (r) {
2717
+ return _this4.validateDimensionRule(r.dimension, r.dimensionLimit, boxPlannerSize, r.higherLimit, r.lowerLimit).toLowerCase() == 'doshow';
2718
+ });
2719
+ var t = dimRule[0];
2720
+ if (res) setRule(t.option, 'doShow');else setRule(t.option, 'doHide');
2721
+ } else {
2722
+ var seriesDimRule = dimRule;
2723
+ var baseDimRule = dimRule;
2724
+ if (seriesDimRule.series) {
2725
+ var _dimRule = seriesDimRule.series.findLast(function (r) {
2726
+ return _this4.validateDimensionRule(r.dimension, r.dimensionLimit, boxPlannerSize, '1', '2') == '1';
2727
+ });
2728
+ if (_dimRule) setRule(seriesDimRule.option, _dimRule.value);
2729
+ } else {
2730
+ setRule(baseDimRule.option, _this4.validateDimensionRule(baseDimRule.option, baseDimRule.dimensionLimit, boxPlannerSize, baseDimRule.higherLimit, baseDimRule.lowerLimit));
2731
+ }
2732
+ }
2711
2733
  });
2712
2734
  }
2713
2735
  }, {
@@ -3522,7 +3544,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3522
3544
  key: "getGridColumnWidth",
3523
3545
  value: function getGridColumnWidth(x) {
3524
3546
  var frontGrid = this.generalPlanningState.grids[0].matrix;
3525
- for (var y = 0; x < frontGrid[y].length; x++) {
3547
+ for (var y = 0; y < frontGrid[y].length; y++) {
3526
3548
  var _plannedElement$size$, _plannedElement;
3527
3549
  var cell = frontGrid[x][y];
3528
3550
  if (cell) return (_plannedElement$size$ = (_plannedElement = cell.plannedElement) === null || _plannedElement === void 0 ? void 0 : _plannedElement.size.width) !== null && _plannedElement$size$ !== void 0 ? _plannedElement$size$ : 0;
@@ -4106,7 +4128,6 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4106
4128
  key: "getNeighborElements",
4107
4129
  value: function getNeighborElements(elementId, dir) {
4108
4130
  var _this = this,
4109
- _plannedElement3,
4110
4131
  _curGrid$area$fromX,
4111
4132
  _downNeighbour$planne;
4112
4133
  var clean = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
@@ -4118,22 +4139,32 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4118
4139
  var currentRow = curGrid[plannedElement.area.fromX];
4119
4140
  var startHeight = 0;
4120
4141
  var endHeight = 0;
4121
- currentRow.forEach(function (cell) {
4122
- if (cell.index.y < res.startRowIndex) startHeight = Math.round((startHeight + cell.plannedElement.size.height) * 1000);
4123
- if (cell.index.y < res.endRowIndex) endHeight = Math.round((endHeight + cell.plannedElement.size.height) * 1000);
4124
- });
4142
+ for (var y = 0; y < currentRow.length;) {
4143
+ var cell = currentRow[y];
4144
+ if (cell.index.y < res.startRowIndex) startHeight = Math.round((startHeight + cell.plannedElement.size.height) * 1000) / 1000;
4145
+ if (cell.index.y < res.endRowIndex) endHeight = Math.round((endHeight + cell.plannedElement.size.height) * 1000) / 1000;
4146
+ y = cell.plannedElement.area.toY;
4147
+ }
4148
+ var neighbourSize = 0;
4149
+ var neighbours = [];
4125
4150
  switch (dir) {
4126
4151
  case 'RIGHT':
4127
4152
  // only clean neighbours (for docking) add property if you also need clean ones
4128
4153
 
4129
- var neighbourRow = curGrid[plannedElement.area.toX];
4130
- if (!neighbourRow) break;
4131
- var neighbourSize = 0;
4132
- var neighbours = neighbourRow.filter(function (cell) {
4133
- if (clean && neighbourSize == startHeight) return true;else if (!clean && neighbourSize > endHeight) return true;
4134
- neighbourSize = Math.round((neighbourSize + cell.plannedElement.size.height) * 1000);
4135
- return false;
4136
- });
4154
+ for (var x = plannedElement.area.toX; x < curGrid.length;) {
4155
+ var _neighbourRow$0$plann, _neighbourRow$0$plann2;
4156
+ var neighbourRow = curGrid[x];
4157
+ for (var _y = 0; _y < neighbourRow.length;) {
4158
+ var _cell5$plannedElement, _cell5$plannedElement2;
4159
+ var _cell5 = neighbourRow[_y];
4160
+ if (neighbours.includes(_cell5)) continue;
4161
+ if (clean && neighbourSize == startHeight) neighbours.push(_cell5);else if (!clean && neighbourSize >= startHeight && neighbourSize <= endHeight) neighbours.push(_cell5);
4162
+ neighbourSize = Math.round((neighbourSize + _cell5.plannedElement.size.height) * 1000) / 1000;
4163
+ _y = (_cell5$plannedElement = (_cell5$plannedElement2 = _cell5.plannedElement) === null || _cell5$plannedElement2 === void 0 ? void 0 : _cell5$plannedElement2.area.toY) !== null && _cell5$plannedElement !== void 0 ? _cell5$plannedElement : _y + 1;
4164
+ }
4165
+ neighbourSize = 0;
4166
+ x = (_neighbourRow$0$plann = (_neighbourRow$0$plann2 = neighbourRow[0].plannedElement) === null || _neighbourRow$0$plann2 === void 0 ? void 0 : _neighbourRow$0$plann2.area.toX) !== null && _neighbourRow$0$plann !== void 0 ? _neighbourRow$0$plann : x + 1;
4167
+ }
4137
4168
  neighbours.forEach(function (n) {
4138
4169
  return !result.find(function (r) {
4139
4170
  return r.ElementId == n.plannedElement.elementId;
@@ -4141,25 +4172,40 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4141
4172
  });
4142
4173
  break;
4143
4174
  case 'LEFT':
4144
- var leftNeighbourRow = curGrid[plannedElement.area.fromX - 1];
4145
- if (!leftNeighbourRow) break;
4146
- var leftNeighbourSize = 0;
4147
- var leftStartElement = leftNeighbourRow.find(function (cell) {
4148
- if (leftNeighbourSize == startHeight) return true;
4149
- leftNeighbourSize = Math.round((leftNeighbourSize + cell.plannedElement.size.height) * 1000);
4150
- return false;
4175
+ for (var _x2 = plannedElement.area.fromX - 1; _x2 > 0;) {
4176
+ var _neighbourRow = curGrid[_x2];
4177
+ for (var _y2 = 0; _y2 < _neighbourRow.length;) {
4178
+ var _cell6$plannedElement, _cell6$plannedElement2;
4179
+ var _cell6 = _neighbourRow[_y2];
4180
+ if (neighbours.includes(_cell6)) continue;
4181
+ if (clean && neighbourSize == startHeight) neighbours.push(_cell6);else if (!clean && neighbourSize >= startHeight && neighbourSize <= endHeight) neighbours.push(_cell6);
4182
+ neighbourSize = Math.round((neighbourSize + _cell6.plannedElement.size.height) * 1000) / 1000;
4183
+ _y2 = (_cell6$plannedElement = (_cell6$plannedElement2 = _cell6.plannedElement) === null || _cell6$plannedElement2 === void 0 ? void 0 : _cell6$plannedElement2.area.toY) !== null && _cell6$plannedElement !== void 0 ? _cell6$plannedElement : _y2 + 1;
4184
+ }
4185
+ neighbourSize = 0;
4186
+ _x2 = _neighbourRow[0].plannedElement ? _neighbourRow[0].plannedElement.area.fromX - 1 : _x2 + 1;
4187
+ }
4188
+ neighbours.forEach(function (n) {
4189
+ return !result.find(function (r) {
4190
+ return r.ElementId == n.plannedElement.elementId;
4191
+ }) && result.push(_this.plannerElements.get(n.plannedElement.elementId));
4151
4192
  });
4152
- if (leftStartElement) result.push(this.plannerElements.get(leftStartElement.plannedElement.elementId));
4153
4193
  break;
4154
4194
  case 'TOP':
4155
- var topNeighbour = undefined;
4156
- for (var y = plannedElement.area.toY; y < curGrid[plannedElement.area.fromX].length; y++) {
4157
- topNeighbour = curGrid[plannedElement.area.fromX][y];
4158
- break;
4195
+ var topNeighbours = [];
4196
+ for (var _x3 = plannedElement.area.fromX; _x3 < plannedElement.area.toX;) {
4197
+ var _cell7 = curGrid[_x3][plannedElement.area.toY];
4198
+ if (!_cell7) break;
4199
+ topNeighbours.push(_cell7);
4200
+ if (clean) break;
4201
+ _x3 = _cell7.plannedElement.area.toX;
4159
4202
  }
4160
- if (!topNeighbour) break;
4161
- var tElementId = (_plannedElement3 = topNeighbour.plannedElement) === null || _plannedElement3 === void 0 ? void 0 : _plannedElement3.elementId;
4162
- if (tElementId) result.push(this.plannerElements.get(tElementId));
4203
+ if (topNeighbours.length == 0) break;
4204
+ topNeighbours.forEach(function (topNeighbour) {
4205
+ var _plannedElement3;
4206
+ var tElementId = (_plannedElement3 = topNeighbour.plannedElement) === null || _plannedElement3 === void 0 ? void 0 : _plannedElement3.elementId;
4207
+ if (tElementId) result.push(_this.plannerElements.get(tElementId));
4208
+ });
4163
4209
  break;
4164
4210
  case 'DOWN':
4165
4211
  var downNeighbour = (_curGrid$area$fromX = curGrid[plannedElement.area.fromX]) === null || _curGrid$area$fromX === void 0 ? void 0 : _curGrid$area$fromX[plannedElement.area.fromY - 1];
@@ -4232,12 +4278,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4232
4278
  var curHeight = 0;
4233
4279
  var row = frontGrid[x];
4234
4280
  for (var y = 0; y < row.length;) {
4235
- var _cell5, _cell$plannedElement$, _cell$plannedElement8;
4281
+ var _cell8, _cell$plannedElement$, _cell$plannedElement8;
4236
4282
  var cell = row[y];
4237
- var elementId = (_cell5 = cell) === null || _cell5 === void 0 || (_cell5 = _cell5.plannedElement) === null || _cell5 === void 0 ? void 0 : _cell5.elementId;
4283
+ var elementId = (_cell8 = cell) === null || _cell8 === void 0 || (_cell8 = _cell8.plannedElement) === null || _cell8 === void 0 ? void 0 : _cell8.elementId;
4238
4284
  if (elementId && cell && checkedElementIds.indexOf(elementId) == -1) {
4239
4285
  curHeight += this.plannerElements.get(elementId).getHeight();
4240
- if (x == 0 && y == 0) depth = this.plannerElements.get(elementId).getDepth();
4286
+ if (x == 0 && y == 0) depth = cell.plannedElement.size.depth;
4241
4287
  }
4242
4288
  y = (_cell$plannedElement$ = (_cell$plannedElement8 = cell.plannedElement) === null || _cell$plannedElement8 === void 0 ? void 0 : _cell$plannedElement8.area.toY) !== null && _cell$plannedElement$ !== void 0 ? _cell$plannedElement$ : y + 1;
4243
4289
  }
@@ -4277,9 +4323,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4277
4323
  }
4278
4324
  if (Math.round(height) == Math.round(lastHeight) || onBottom) {
4279
4325
  if (!result[result.length - 1]) result.push([]);
4280
- result[result.length - 1].push(grid[x][row.length - 1].plannedElement);
4326
+ result[result.length - 1].push(grid[x][onBottom ? 0 : row.length - 1].plannedElement);
4281
4327
  } else if (grid[x][row.length - 1].plannedElement.area.fromX == x) {
4282
- result.push([grid[x][row.length - 1].plannedElement]);
4328
+ result.push([grid[x][onBottom ? 0 : row.length - 1].plannedElement]);
4283
4329
  }
4284
4330
  lastHeight = height;
4285
4331
  var new_x = row[row.length - 1].plannedElement.area.toX;
@@ -4347,37 +4393,52 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4347
4393
  };
4348
4394
  var curGrid = curPos.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
4349
4395
  var plannerIdsToFill = [];
4350
- var existingPlannerIds = [];
4351
- var lastFreeSpace = 0;
4352
- var _loop = function _loop(_y) {
4353
- var _curGrid$index$x$_y;
4354
- var elementToCopy = (_curGrid$index$x$_y = curGrid[index.x][_y]) === null || _curGrid$index$x$_y === void 0 ? void 0 : _curGrid$index$x$_y.plannedElement;
4355
- if (!elementToCopy) {
4356
- y = _y;
4357
- return 1;
4358
- } // break
4359
- var length = element.area.toX - element.area.fromX;
4360
- var d = dir == 'RIGHT' ? +length : -length;
4361
- var isPlanned = curGrid.find(function (x, idx) {
4362
- return idx == element.area.toX + d - 1 && x[x.length - 1].index.y >= elementToCopy.area.fromY;
4363
- });
4364
- var neighbours = _this2.getNeighborElements(elementToCopy.elementId, dir);
4365
- var freeSpace = 0;
4366
- neighbours.forEach(function (n) {
4367
- if (_this2.getNeighborElements(n.ElementId, "TOP").length == 0) freeSpace += n.Width;
4368
- });
4369
- if (neighbours.length == 0 && lastFreeSpace >= elementToCopy.size.width && !isPlanned && elementToCopy) plannerIdsToFill.push(elementToCopy.elementId);
4370
- if (neighbours.length > 0 && freeSpace > element.size.width) plannerIdsToFill.push(neighbours[neighbours.length - 1].ElementId);else if (elementToCopy) existingPlannerIds.push(elementToCopy.elementId);
4371
- _y = elementToCopy.area.toY;
4372
- lastFreeSpace = freeSpace;
4373
- y = _y;
4374
- };
4375
- for (var y = 0; y <= index.y;) {
4376
- if (_loop(y)) break;
4396
+ var length = element.area.toX - element.area.fromX;
4397
+ var d = dir == 'RIGHT' ? +length : -length;
4398
+ plannerIdsToFill.push(element.elementId);
4399
+ _objectSpread(_objectSpread({}, element.area), {}, {
4400
+ fromX: element.area.fromX + d,
4401
+ toX: element.area.toX + d
4402
+ });
4403
+ var _loop = function _loop(_y3) {
4404
+ var _curGrid$index$x$_y;
4405
+ var supportElement = (_curGrid$index$x$_y = curGrid[index.x][_y3]) === null || _curGrid$index$x$_y === void 0 ? void 0 : _curGrid$index$x$_y.plannedElement;
4406
+ if (!supportElement) {
4407
+ y = _y3;
4408
+ return 0;
4409
+ } // break
4410
+ var topElements = _this2.getNeighborElements(supportElement.elementId, 'TOP', false);
4411
+ var topWidth = 0;
4412
+ topElements.forEach(function (t) {
4413
+ return topWidth += t.Width;
4414
+ });
4415
+ var freeSpace = 0;
4416
+ if (supportElement.size.width > topWidth) freeSpace = supportElement.size.width - topWidth;
4417
+ var neighbours = _this2.getNeighborElements(supportElement.elementId, dir, false);
4418
+ neighbours.forEach(function (n) {
4419
+ if (_this2.getNeighborElements(n.ElementId, 'TOP').length > 0) return;
4420
+ freeSpace += n.Width;
4421
+ });
4422
+ if (freeSpace >= element.size.width) {
4423
+ y = _y3;
4424
+ return 0;
4425
+ } // break
4426
+ var missingWidth = element.size.width - freeSpace;
4427
+ while (missingWidth > 0) {
4428
+ plannerIdsToFill.push(supportElement.elementId);
4429
+ missingWidth = Math.round(missingWidth - supportElement.size.width);
4430
+ }
4431
+ _y3 = supportElement.area.fromY - 1;
4432
+ y = _y3;
4433
+ },
4434
+ _ret;
4435
+ for (var y = index.y - 1; y >= 0;) {
4436
+ _ret = _loop(y);
4437
+ if (_ret === 0) break;
4377
4438
  }
4378
4439
  // if there is nothing to fill we copy everyting
4379
4440
  return {
4380
- elements: plannerIdsToFill.length == 0 ? existingPlannerIds : plannerIdsToFill,
4441
+ elements: plannerIdsToFill.reverse(),
4381
4442
  backside: curPos.backside
4382
4443
  };
4383
4444
  }
@@ -4473,11 +4534,32 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4473
4534
  // [][] -> | [][][]
4474
4535
  // [][] | [][][]
4475
4536
  // [][][] | [][][][]
4476
- function moveGrid(plannedCells) {
4537
+ var moveGrid = function moveGrid(plannedCells) {
4477
4538
  var grid = new Array();
4478
4539
  var rightNeighbour = plannedCells.filter(function (c) {
4479
4540
  return c.index.x == element.area.toX;
4480
4541
  });
4542
+ var col = [];
4543
+ var support = [];
4544
+ var _loop2 = function _loop2() {
4545
+ var c = frontGrid[x][element.area.fromY];
4546
+ var s = frontGrid[x][element.area.fromY - 1];
4547
+ if (c && !col.find(function (_c) {
4548
+ return _c.plannedElement.elementId == c.plannedElement.elementId;
4549
+ })) col.push(frontGrid[x][element.area.fromY]);
4550
+ if (s && !support.find(function (_c) {
4551
+ return _c.plannedElement.elementId == s.plannedElement.elementId;
4552
+ })) support.push(frontGrid[x][element.area.fromY - 1]);
4553
+ };
4554
+ for (var x = 0; x < frontGrid.length; x++) {
4555
+ _loop2();
4556
+ }
4557
+ var sizeXTop = col.reduce(function (acc, n) {
4558
+ return acc += n.plannedElement.size.width;
4559
+ }, 0);
4560
+ var sizeXUnder = support ? support.reduce(function (acc, n) {
4561
+ return acc += n.plannedElement.size.width;
4562
+ }, 0) : 0;
4481
4563
  var rightNeighbourOfCopy = rightNeighbour.find(function (c) {
4482
4564
  return c.index.y == absoluteCopyIndex.y;
4483
4565
  });
@@ -4489,7 +4571,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4489
4571
  });
4490
4572
  plannedCells.forEach(function (cell) {
4491
4573
  // if we can't fill up (need to move the grid)
4492
- if (cell.index.x >= absoluteCopyIndex.x && (copyDirectionIsRight && (rightNeighbourOfCopy || rightNeighbour.length == 0) || !copyDirectionIsRight && (leftNeighbourOfCopy || leftNeighbour.length == 0) || absoluteCopyIndex.x == -1)) {
4574
+ if (cell.index.x >= absoluteCopyIndex.x && (copyDirectionIsRight && (rightNeighbourOfCopy || rightNeighbour.length == 0) && (
4575
+ // no free space or on the right height == move
4576
+ !(sizeXTop <= sizeXUnder - element.size.width) || cell.index.y >= element.area.fromY && cell.index.y < element.area.toY) || !copyDirectionIsRight && (leftNeighbourOfCopy || leftNeighbour.length == 0) || absoluteCopyIndex.x == -1)) {
4493
4577
  cell.index.x += widthCopyArea;
4494
4578
  cell.plannedElement.area.fromX += widthCopyArea;
4495
4579
  cell.plannedElement.area.toX += widthCopyArea;
@@ -4498,13 +4582,13 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4498
4582
  grid[cell.index.x][cell.index.y] = cell;
4499
4583
  });
4500
4584
  return grid;
4501
- }
4585
+ };
4502
4586
  frontGrid = moveGrid(this.getAllUsedCellsInGrid(false));
4503
4587
  for (var x = 0; x < widthCopyArea; x++) if (!frontGrid[absoluteCopyIndex.x + x]) frontGrid[absoluteCopyIndex.x + x] = [];
4504
4588
  this.generalPlanningState.grids[0].matrix = frontGrid;
4505
4589
  if (this.hasActiveBackside) {
4506
4590
  backGrid = moveGrid(this.getAllUsedCellsInGrid(true));
4507
- for (var _x2 = 0; _x2 < widthCopyArea; _x2++) if (!backGrid[absoluteCopyIndex.x + _x2]) backGrid[absoluteCopyIndex.x + _x2] = [];
4591
+ for (var _x4 = 0; _x4 < widthCopyArea; _x4++) if (!backGrid[absoluteCopyIndex.x + _x4]) backGrid[absoluteCopyIndex.x + _x4] = [];
4508
4592
  this.generalPlanningState.grids[1].matrix = backGrid;
4509
4593
  }
4510
4594
  }
@@ -4619,8 +4703,6 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4619
4703
  var backsideForCopy = copyIndex.z == -1 || curPos.backside == true;
4620
4704
  if (cellIndex.x < 0) cellIndex.x = 0; // can't plan to negative space see prepareGridForColCopy
4621
4705
  var curGrid = backsideForCopy ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
4622
- // can't float need to dock
4623
- if (curGrid[cellIndex.x].length < cellIndex.y) cellIndex.y = curGrid[cellIndex.x].length;
4624
4706
  var cells = this.createNewCells(newElement, cellIndex.x, cellIndex.y, backsideForCopy);
4625
4707
  for (var i = 0; i < cells.length; i++) {
4626
4708
  if (!curGrid[cells[i].index.x]) curGrid[cells[i].index.x] = [];
@@ -4669,6 +4751,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4669
4751
  var el = cell.plannedElement;
4670
4752
  el.size.width = elementData.width;
4671
4753
  el.size.height = elementData.height;
4754
+ el.size.depth = elementData.depth;
4672
4755
  el.area = {
4673
4756
  fromX: el.area.fromX,
4674
4757
  toX: !scpe ? Math.round(el.area.fromX + elementData.width / _this3.gridSetupParams.fixCellRasterWidth) : cell.index.x + 1,
@@ -4695,23 +4778,23 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4695
4778
  }
4696
4779
  }
4697
4780
  } else if (diff.x != 0) {
4698
- for (var _x3 = cell.plannedElement.area.fromX; _x3 < grid.length; _x3++) {
4699
- for (var _y2 = cell.plannedElement.area.fromY; _y2 < cell.plannedElement.area.toY; _y2++) {
4700
- var _cell6 = grid[_x3][_y2];
4701
- if (!_cell6 || _cell6.plannedElement.elementId == elementId) continue; //already corrected
4702
- _cell6.index.x += diff.x;
4703
- _cell6.plannedElement.area.fromX += diff.x;
4704
- _cell6.plannedElement.area.toX += diff.x;
4781
+ for (var _x5 = cell.plannedElement.area.fromX; _x5 < grid.length; _x5++) {
4782
+ for (var _y4 = cell.plannedElement.area.fromY; _y4 < cell.plannedElement.area.toY; _y4++) {
4783
+ var _cell9 = grid[_x5][_y4];
4784
+ if (!_cell9 || _cell9.plannedElement.elementId == elementId) continue; //already corrected
4785
+ _cell9.index.x += diff.x;
4786
+ _cell9.plannedElement.area.fromX += diff.x;
4787
+ _cell9.plannedElement.area.toX += diff.x;
4705
4788
  }
4706
4789
  }
4707
4790
  }
4708
4791
 
4709
4792
  // after indices/areas are corrected rebuild the grid
4710
4793
  if (scpe) return false;
4711
- var changedElementData = res.cells[0].plannedElement;
4794
+ res.cells[0].plannedElement;
4712
4795
  var newGrid = new Array();
4713
4796
  var plannedCells = this.getAllUsedCellsInGrid(false);
4714
- var _loop2 = function _loop2() {
4797
+ var _loop3 = function _loop3() {
4715
4798
  var cell = plannedCells[idx];
4716
4799
  var area = cell.plannedElement.area;
4717
4800
  if (newGrid.find(function (x) {
@@ -4720,16 +4803,15 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4720
4803
  return (y === null || y === void 0 || (_y$plannedElement3 = y.plannedElement) === null || _y$plannedElement3 === void 0 ? void 0 : _y$plannedElement3.elementId) == ((_cell$plannedElement9 = cell.plannedElement) === null || _cell$plannedElement9 === void 0 ? void 0 : _cell$plannedElement9.elementId);
4721
4804
  });
4722
4805
  })) return 0; // continue
4723
- for (var _x4 = area.fromX; _x4 < area.toX; _x4++) {
4724
- for (var _y3 = area.fromY; _y3 < area.toY; _y3++) {
4725
- var _support$plannedEleme;
4726
- if (!newGrid[_x4] && area.fromY == 0) newGrid[_x4] = [];
4806
+ for (var _x6 = area.fromX; _x6 < area.toX; _x6++) {
4807
+ for (var _y5 = area.fromY; _y5 < area.toY; _y5++) {
4808
+ if (!newGrid[_x6] && area.fromY == 0) newGrid[_x6] = [];
4727
4809
 
4728
4810
  // we have a so called overhanging element not so nice, let's correct:
4729
4811
  var support = plannedCells.find(function (c) {
4730
4812
  return c.plannedElement.area.toX >= cell.plannedElement.area.toX && c.plannedElement.area.toY == cell.index.y;
4731
4813
  });
4732
- if (!support && !newGrid[_x4]) {
4814
+ if (!support && !newGrid[_x6]) {
4733
4815
  _this3.generalPlanningState = backup;
4734
4816
  return {
4735
4817
  v: true
@@ -4737,19 +4819,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4737
4819
  }
4738
4820
 
4739
4821
  // the element below got smaller
4740
- if (!newGrid[_x4] && (!support || ((_support$plannedEleme = support.plannedElement) === null || _support$plannedEleme === void 0 ? void 0 : _support$plannedEleme.elementId) == changedElementData.elementId)) {
4822
+ if (!newGrid[_x6] && !support) {
4741
4823
  _this3.generalPlanningState = backup;
4742
4824
  return {
4743
4825
  v: true
4744
4826
  };
4745
- } else if (!newGrid[_x4]) newGrid[_x4] = [];
4827
+ } else if (!newGrid[_x6]) newGrid[_x6] = [];
4746
4828
  // when the element above starts early and goes over multiple ones
4747
4829
 
4748
4830
  // regular case
4749
- newGrid[_x4][_y3] = _objectSpread(_objectSpread({}, cell), {}, {
4831
+ newGrid[_x6][_y5] = _objectSpread(_objectSpread({}, cell), {}, {
4750
4832
  index: {
4751
- x: _x4,
4752
- y: _y3
4833
+ x: _x6,
4834
+ y: _y5
4753
4835
  },
4754
4836
  plannedElement: _objectSpread(_objectSpread({}, cell.plannedElement), {}, {
4755
4837
  area: {
@@ -4757,19 +4839,21 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4757
4839
  toX: cell.plannedElement.area.fromX + (cell.plannedElement.area.toX - cell.plannedElement.area.fromX),
4758
4840
  fromY: cell.plannedElement.area.fromY,
4759
4841
  toY: cell.plannedElement.area.fromY + (cell.plannedElement.area.toY - cell.plannedElement.area.fromY)
4760
- }
4842
+ },
4843
+ size: _objectSpread(_objectSpread({}, cell.plannedElement.size), {}, {
4844
+ depth: elementData.depth
4845
+ })
4761
4846
  })
4762
4847
  });
4763
4848
  }
4764
4849
  }
4765
4850
  },
4766
- _ret;
4851
+ _ret2;
4767
4852
  for (var idx = 0; idx < plannedCells.length; idx++) {
4768
- _ret = _loop2();
4769
- if (_ret === 0) continue;
4770
- if (_ret) return _ret.v;
4853
+ _ret2 = _loop3();
4854
+ if (_ret2 === 0) continue;
4855
+ if (_ret2) return _ret2.v;
4771
4856
  }
4772
- console.log('thoula 2 => ', newGrid);
4773
4857
  if (res.backside) this.generalPlanningState.grids[1].matrix = newGrid;else this.generalPlanningState.grids[0].matrix = newGrid;
4774
4858
  return false;
4775
4859
  }
@@ -4816,7 +4900,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4816
4900
  if (topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[0]]);
4817
4901
  if (leftNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVL', [leftNeighbors[0]]);
4818
4902
  if (rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[0]]);
4819
- if (rightNeighbors.length == 0 && leftNeighbors.length == 0 && downNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVU', [downNeighbors[0]]);
4903
+ if (downNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVU', [downNeighbors[0]]);
4820
4904
  element.PosNr = posNr;
4821
4905
  posNr++;
4822
4906
  }
@@ -4824,9 +4908,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4824
4908
  }
4825
4909
  for (var i = 0; i < backGrid.length; i++) {
4826
4910
  for (var j = 0; j < backGrid[i].length; j++) {
4827
- var _cell7$plannedElement;
4828
- var _cell7 = backGrid[i][j];
4829
- var _elementId6 = _cell7 === null || _cell7 === void 0 || (_cell7$plannedElement = _cell7.plannedElement) === null || _cell7$plannedElement === void 0 ? void 0 : _cell7$plannedElement.elementId;
4911
+ var _cell10$plannedElemen;
4912
+ var _cell10 = backGrid[i][j];
4913
+ var _elementId6 = _cell10 === null || _cell10 === void 0 || (_cell10$plannedElemen = _cell10.plannedElement) === null || _cell10$plannedElemen === void 0 ? void 0 : _cell10$plannedElemen.elementId;
4830
4914
  if (_elementId6 && allCheckedElementIds.indexOf(_elementId6) == -1) {
4831
4915
  var _element2 = this.plannerElements.get(_elementId6);
4832
4916
  allCheckedElementIds.push(_elementId6);
@@ -5164,9 +5248,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5164
5248
  var targetRowIndex = endRowIndex + 1;
5165
5249
  var _copyPossible = false;
5166
5250
  // Iterate through columns within the element's width
5167
- for (var _x5 = endColIndex; _x5 >= startColIndex; _x5--) {
5168
- if (isValidCell(_x5, targetRowIndex)) {
5169
- copyStartColIndex = _x5;
5251
+ for (var _x7 = endColIndex; _x7 >= startColIndex; _x7--) {
5252
+ if (isValidCell(_x7, targetRowIndex)) {
5253
+ copyStartColIndex = _x7;
5170
5254
  _copyPossible = true;
5171
5255
  }
5172
5256
  }
@@ -5183,19 +5267,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5183
5267
  var _targetColIndex = endColIndex;
5184
5268
  var _copyPossible2 = false;
5185
5269
  // Iterate through rows within the element's height
5186
- for (var _y4 = startRowIndex; _y4 <= endRowIndex; _y4++) {
5187
- if (isValidCell(_targetColIndex, _y4)) {
5188
- copyStartRowIndex = _y4;
5270
+ for (var _y6 = startRowIndex; _y6 <= endRowIndex; _y6++) {
5271
+ if (isValidCell(_targetColIndex, _y6)) {
5272
+ copyStartRowIndex = _y6;
5189
5273
  _copyPossible2 = true;
5190
5274
  break;
5191
5275
  }
5192
5276
  }
5193
5277
  if (!_copyPossible2) return undefined;
5194
5278
  _copyPossible2 = false;
5195
- for (var _x6 = endColIndex; _x6 <= endColIndex + elementCells.colCount; _x6++) {
5196
- if (isValidCell(_x6, copyStartRowIndex) && (copyStartRowIndex == 0 || !isValidCell(_x6, copyStartRowIndex - 1))) {
5279
+ for (var _x8 = endColIndex; _x8 <= endColIndex + elementCells.colCount; _x8++) {
5280
+ if (isValidCell(_x8, copyStartRowIndex) && (copyStartRowIndex == 0 || !isValidCell(_x8, copyStartRowIndex - 1))) {
5197
5281
  //check also for overhang
5198
- copyEndColIndex = _x6;
5282
+ copyEndColIndex = _x8;
5199
5283
  _copyPossible2 = true;
5200
5284
  } else {
5201
5285
  break; //when you find one situation where it is not valid skip outside.
@@ -5398,7 +5482,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5398
5482
  //system 4 useacse
5399
5483
  var totalColCount = matrix[0].length;
5400
5484
  var colSizes = Array(totalColCount).fill(-1);
5401
- var _loop3 = function _loop3(i) {
5485
+ var _loop4 = function _loop4(i) {
5402
5486
  var _matrix$find;
5403
5487
  var cell = (_matrix$find = matrix.find(function (row) {
5404
5488
  var _row$i$plannedElement, _row$i$plannedElement2;
@@ -5412,7 +5496,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5412
5496
  if (colSizes[i] === -1) return 1; // break
5413
5497
  };
5414
5498
  for (var i = 0; i < totalColCount; i++) {
5415
- if (_loop3(i)) break;
5499
+ if (_loop4(i)) break;
5416
5500
  }
5417
5501
  if (colSizes.includes(-1)) LOG$1.error(new Error('Column sizes are not set'));
5418
5502
  return colSizes;
@@ -5800,11 +5884,10 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5800
5884
  value: (function () {
5801
5885
  var _copyPlannerElement = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(articleCopyRelation, copyInfo) {
5802
5886
  var _this = this;
5803
- var gridIsPrepared, plannerElementsToLoadSVG, that, i, cellPos, allDPs, j;
5887
+ var plannerElementsToLoadSVG, that, i, cellPos, allDPs, j;
5804
5888
  return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
5805
5889
  while (1) switch (_context5.prev = _context5.next) {
5806
5890
  case 0:
5807
- gridIsPrepared = false;
5808
5891
  if (copyInfo) {
5809
5892
  _context5.next = 3;
5810
5893
  break;
@@ -5814,25 +5897,22 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5814
5897
  if (copyInfo.copyType == 'STD') copyInfo.targetElements = [];
5815
5898
  plannerElementsToLoadSVG = [];
5816
5899
  that = this;
5817
- articleCopyRelation.forEach(function (basketIDNewArticle, elementToCopyId) {
5900
+ articleCopyRelation.forEach(function (val) {
5818
5901
  var _copyInfo$targetEleme;
5819
- if (!gridIsPrepared) {
5820
- if (copyInfo.copyIndex.z == -1) {
5821
- if (!_this.boxPlannerGrid.getPlannerHasActiveBackside()) _this.boxPlannerGrid.prepareGridForBackSideCopy();
5822
- } else {
5823
- _this.boxPlannerGrid.prepareGridForColCopy(elementToCopyId, copyInfo.copyIndex);
5824
- }
5902
+ if (copyInfo.copyIndex.z == -1) {
5903
+ if (!_this.boxPlannerGrid.getPlannerHasActiveBackside()) _this.boxPlannerGrid.prepareGridForBackSideCopy();
5904
+ } else {
5905
+ _this.boxPlannerGrid.prepareGridForColCopy(val.key, copyInfo.copyIndex);
5825
5906
  }
5826
- gridIsPrepared = true;
5827
5907
 
5828
5908
  //Init Planner Element
5829
- var plannerElement = new index.PlannerElementData(_this.set.getSetId(), basketIDNewArticle, _this.nextElementId, DivaBoxPlanner.plannerType);
5909
+ var plannerElement = new index.PlannerElementData(_this.set.getSetId(), val.value, _this.nextElementId, DivaBoxPlanner.plannerType);
5830
5910
  _this.nextElementId++;
5831
- _this.set.setElementId(basketIDNewArticle, plannerElement.ElementId);
5911
+ _this.set.setElementId(val.value, plannerElement.ElementId);
5832
5912
  var data = _this.set.getPlannerData(plannerElement.ElementId);
5833
5913
  plannerElement.updatePlannerData(data);
5834
- _this.boxPlannerGrid.addElementAsCopy(elementToCopyId, plannerElement, copyInfo.copyIndex);
5835
- _this.constructionRulesHandler.onElementCopy(elementToCopyId, plannerElement.getElementId());
5914
+ _this.boxPlannerGrid.addElementAsCopy(val.key, plannerElement, copyInfo.copyIndex);
5915
+ _this.constructionRulesHandler.onElementCopy(val.key, plannerElement.getElementId());
5836
5916
  plannerElementsToLoadSVG.push(plannerElement);
5837
5917
  if (copyInfo.copyType == 'STD') (_copyInfo$targetEleme = copyInfo.targetElements) === null || _copyInfo$targetEleme === void 0 || _copyInfo$targetEleme.push(plannerElement.getElementId());
5838
5918
  });
@@ -5963,7 +6043,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5963
6043
  }
5964
6044
  }
5965
6045
  //remove duplicate
5966
- return Array.from(new Set(allElementsToCopy));
6046
+ return allElementsToCopy;
5967
6047
  }
5968
6048
 
5969
6049
  /**