@crystaldesign/web-planner-logic 25.13.0-beta.12 → 25.13.0-beta.14

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 (30) hide show
  1. package/build/cjs/{DivaBoxPlanner-9dc63e6c.js → DivaBoxPlanner-9549d8bf.js} +188 -80
  2. package/build/cjs/{DivaStandardPlanner-edc8adbb.js → DivaStandardPlanner-6b5e6211.js} +2 -2
  3. package/build/cjs/{DoorPlanner-4184aa93.js → DoorPlanner-4b586dd8.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-3e4afb1c.js → Host3DSignalR-9705dea3.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-566296fe.js → LiviqueWWSHandler-45f0a711.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-c131cf9d.js → PfisterWWSHandler-7042eb96.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-cdf785a8.js → PlannerHandler2D-7298729d.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-62a42abd.js → SeriousBasketHandler-dd5447a3.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-5d155708.js → ShelfPlanner-b196052e.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-e33be010.js → StandardWWSHandler-1ea53ac8.js} +1 -1
  11. package/build/cjs/{index-589e2f4b.js → index-7b86e8cc.js} +13 -10
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-091c8b09.js → DivaBoxPlanner-25248fbc.js} +188 -80
  14. package/build/esm/{DivaStandardPlanner-8c6fe69d.js → DivaStandardPlanner-3cfa5c94.js} +2 -2
  15. package/build/esm/{DoorPlanner-b7931e1b.js → DoorPlanner-75939b8b.js} +1 -1
  16. package/build/esm/{Host3DSignalR-f59bbfff.js → Host3DSignalR-8b8cfc39.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-17487162.js → LiviqueWWSHandler-18d1ad7d.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-38fd3e0b.js → PfisterWWSHandler-2e9453df.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-80d37ff1.js → PlannerHandler2D-7026227c.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-2843e656.js → SeriousBasketHandler-14d38820.js} +1 -1
  21. package/build/esm/{ShelfPlanner-d144ac1f.js → ShelfPlanner-5d152a35.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-c87284af.js → StandardWWSHandler-0d9670d3.js} +1 -1
  23. package/build/esm/{index-f875e861.js → index-ff01605a.js} +13 -10
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  26. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +18 -3
  27. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  28. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +2 -0
  29. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  30. package/package.json +2 -2
@@ -3,10 +3,10 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-f875e861.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-ff01605a.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-80d37ff1.js';
9
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-7026227c.js';
10
10
  import '@babel/runtime/helpers/slicedToArray';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
@@ -2604,31 +2604,95 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2604
2604
  }
2605
2605
  return undefined;
2606
2606
  }
2607
+ }, {
2608
+ key: "validateDimensionRule",
2609
+ value: function validateDimensionRule(dimRule, boxPlannerSize) {
2610
+ var isOver = false;
2611
+ var isEqual = false;
2612
+ if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y > dimRule.dimensionLimit) isOver = true;
2613
+ if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y == dimRule.dimensionLimit) isEqual = true;
2614
+ if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x > dimRule.dimensionLimit) isOver = true;
2615
+ if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x == dimRule.dimensionLimit) isEqual = true;
2616
+ if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z > dimRule.dimensionLimit) isOver = true;
2617
+ if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z == dimRule.dimensionLimit) isEqual = true;
2618
+ if (isOver) {
2619
+ if (dimRule.higherLimit.toLowerCase() == 'doshow') return true;else if (dimRule.higherLimit.toLowerCase() == 'dohide') return false;
2620
+ } else if (isEqual) {
2621
+ return true;
2622
+ } else {
2623
+ if (dimRule.lowerLimit.toLowerCase() == 'doshow') return true;else if (dimRule.lowerLimit.toLowerCase() == 'dohide') return false;
2624
+ }
2625
+ return false;
2626
+ }
2627
+
2628
+ /*
2629
+ * This function corrects the elements in one row when the top element is wider then the bottom one.
2630
+ * Goal is to make all the bottom ones also atleast as wide as the top one because no element can overhang - omlin setup
2631
+ */
2632
+ }, {
2633
+ key: "correctOverHangingElement",
2634
+ value: function correctOverHangingElement(boxPlannerGrid, optionHandler, changedOPTs) {
2635
+ var _this2 = this;
2636
+ if (!changedOPTs) return;
2637
+ var _loop = function _loop() {
2638
+ var elements = boxPlannerGrid.getAllElementsInColumn(columndIdx, false, false); // from bottom to top
2639
+ var lastElement = null;
2640
+ elements.forEach(function (element) {
2641
+ var _lastElement$Width, _element$Width, _lastElement$Depth, _element$Depth;
2642
+ if (!lastElement) {
2643
+ lastElement = element;
2644
+ return;
2645
+ }
2646
+ if (((_lastElement$Width = lastElement.Width) !== null && _lastElement$Width !== void 0 ? _lastElement$Width : 0) > ((_element$Width = element.Width) !== null && _element$Width !== void 0 ? _element$Width : 0)) {
2647
+ var t = Object.entries(changedOPTs); // should be the new wider width that causes the overhanging
2648
+ var opt = t[0][0];
2649
+ var opv = t[0][1];
2650
+ _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
2651
+ }
2652
+ if (((_lastElement$Depth = lastElement.Depth) !== null && _lastElement$Depth !== void 0 ? _lastElement$Depth : 0) > ((_element$Depth = element.Depth) !== null && _element$Depth !== void 0 ? _element$Depth : 0)) {
2653
+ var _t = Object.entries(changedOPTs); // should be the new wider width that causes the overhanging
2654
+ var _opt = _t[0][0];
2655
+ var _opv2 = _t[0][1];
2656
+ _this2.setOptionValue(element.ElementId, _opt, _opv2, optionHandler);
2657
+ }
2658
+ lastElement = element;
2659
+ });
2660
+ };
2661
+ for (var columndIdx = 0; columndIdx < boxPlannerGrid.getColumnCount(); columndIdx++) {
2662
+ _loop();
2663
+ }
2664
+ }
2665
+
2666
+ /*
2667
+ * This function corrects Options that are based on the total planning dimensions
2668
+ * */
2607
2669
  }, {
2608
2670
  key: "correctOptionsInfluencedByDimensions",
2609
2671
  value: function correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler) {
2610
- var _this2 = this;
2672
+ var _this3 = this;
2611
2673
  if (!this.constructionRules.optionsInfluencedByDimensions) return;
2612
2674
  var boxPlannerSize = boxPlannerGrid.getSizeOfWholeSet(false);
2613
2675
  var allElements = boxPlannerGrid.getAllElementsInFrontGrid();
2614
2676
  this.constructionRules.optionsInfluencedByDimensions.forEach(function (dimRule) {
2615
- var isOver = false;
2616
- var isEqual = false;
2617
- if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y > dimRule.dimensionLimit) isOver = true;
2618
- if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y == dimRule.dimensionLimit) isEqual = true;
2619
- if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x > dimRule.dimensionLimit) isOver = true;
2620
- if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x == dimRule.dimensionLimit) isEqual = true;
2621
- if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z > dimRule.dimensionLimit) isOver = true;
2622
- if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z == dimRule.dimensionLimit) isEqual = true;
2623
- allElements.forEach(function (element) {
2624
- if (isOver) {
2625
- if (dimRule.higherLimit.toLowerCase() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.higherLimit.toLowerCase() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2626
- } else if (isEqual) {
2627
- _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);
2628
- } else {
2629
- if (dimRule.lowerLimit.toLowerCase() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.lowerLimit.toLowerCase() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2630
- }
2631
- });
2677
+ if (Array.isArray(dimRule)) {
2678
+ if (dimRule.every(function (rule) {
2679
+ return _this3.validateDimensionRule(rule, boxPlannerSize);
2680
+ })) dimRule.forEach(function (rule) {
2681
+ return allElements.forEach(function (element) {
2682
+ return _this3.setOptionDoShow(element.ElementId, rule.option, optionHandler);
2683
+ });
2684
+ });else dimRule.forEach(function (rule) {
2685
+ return allElements.forEach(function (element) {
2686
+ return _this3.setOptionDoHide(element.ElementId, rule.option, optionHandler);
2687
+ });
2688
+ });
2689
+ } else {
2690
+ if (_this3.validateDimensionRule(dimRule, boxPlannerSize)) allElements.forEach(function (element) {
2691
+ return _this3.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2692
+ });else allElements.forEach(function (element) {
2693
+ return _this3.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2694
+ });
2695
+ }
2632
2696
  });
2633
2697
  }
2634
2698
  }, {
@@ -2691,7 +2755,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2691
2755
  }, {
2692
2756
  key: "correctCoverPlate",
2693
2757
  value: function correctCoverPlate(coverPlateRule, boxPlannerGrid, optionHandler) {
2694
- var _this3 = this;
2758
+ var _this4 = this;
2695
2759
  if (coverPlateRule.onHighestElementsOnly) return; // System4 not handled by this logic yet
2696
2760
 
2697
2761
  var elementsPerSeries = boxPlannerGrid.getHighestElementsPerSeries(!!coverPlateRule.onBottom);
@@ -2699,19 +2763,19 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2699
2763
  var seriesWidth = 0;
2700
2764
  var seriesWidthToPlateOpv = coverPlateRule.seriesWidthToPlateOpv;
2701
2765
  serie.forEach(function (element) {
2702
- var _element$Width;
2703
- seriesWidth += (_element$Width = element.Width) !== null && _element$Width !== void 0 ? _element$Width : 0;
2704
- _this3.setOptionValue(element.ElementId, coverPlateRule.optABD, 'OPVOHNE', optionHandler);
2766
+ var _element$Width2;
2767
+ seriesWidth += (_element$Width2 = element.Width) !== null && _element$Width2 !== void 0 ? _element$Width2 : 0;
2768
+ _this4.setOptionValue(element.ElementId, coverPlateRule.optABD, 'OPVOHNE', optionHandler);
2705
2769
  });
2706
2770
  var firstUncoveredElement = serie[0];
2707
- var _loop = function _loop() {
2771
+ var _loop2 = function _loop2() {
2708
2772
  var opv = seriesWidthToPlateOpv.findLast(function (stp) {
2709
2773
  // is a clean element ending
2710
2774
  var helperWidth = 0;
2711
2775
  var isClean = false;
2712
2776
  serie.forEach(function (element) {
2713
- var _element$Width2;
2714
- helperWidth += (_element$Width2 = element.Width) !== null && _element$Width2 !== void 0 ? _element$Width2 : 0;
2777
+ var _element$Width3;
2778
+ helperWidth += (_element$Width3 = element.Width) !== null && _element$Width3 !== void 0 ? _element$Width3 : 0;
2715
2779
  if (Math.abs(helperWidth - stp.limit) < 1) isClean = true;
2716
2780
  });
2717
2781
  if (stp.limit <= seriesWidth && isClean) return true;
@@ -2720,7 +2784,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2720
2784
  if (!opv) return {
2721
2785
  v: void 0
2722
2786
  };
2723
- _this3.setOptionValue(firstUncoveredElement.ElementId, coverPlateRule.optABD, opv.plateOpv, optionHandler);
2787
+ _this4.setOptionValue(firstUncoveredElement.ElementId, coverPlateRule.optABD, opv.plateOpv, optionHandler);
2724
2788
  var helperWidth = 0;
2725
2789
  firstUncoveredElement = serie.find(function (e) {
2726
2790
  var _e$Width;
@@ -2733,7 +2797,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2733
2797
  },
2734
2798
  _ret;
2735
2799
  while (seriesWidth != 0) {
2736
- _ret = _loop();
2800
+ _ret = _loop2();
2737
2801
  if (_ret) return _ret.v;
2738
2802
  }
2739
2803
  });
@@ -3135,6 +3199,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3135
3199
  }
3136
3200
  this.correctLadder(boxPlannerGrid, optionHandler);
3137
3201
  this.correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler);
3202
+ this.correctOverHangingElement(boxPlannerGrid, optionHandler, changedOPTs);
3138
3203
  this.partlistHelper.calculateKnots(boxPlannerGrid, optionHandler);
3139
3204
  this.partlistHelper.calculateRahmen(boxPlannerGrid, optionHandler);
3140
3205
  for (i = 0; i < boxPlannerGrid.getColumnCount(); i++) {
@@ -3143,13 +3208,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3143
3208
  }
3144
3209
  }
3145
3210
  doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
3146
- _context.next = 27;
3211
+ _context.next = 28;
3147
3212
  return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
3148
- case 27:
3213
+ case 28:
3149
3214
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting Option Values of all Articles: ' + (new Date().getTime() - startTime));
3150
3215
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting updating configurator: ' + (new Date().getTime() - startTime));
3151
3216
  return _context.abrupt("return", resultMessage);
3152
- case 30:
3217
+ case 31:
3153
3218
  case "end":
3154
3219
  return _context.stop();
3155
3220
  }
@@ -3830,10 +3895,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3830
3895
  }, {
3831
3896
  key: "getAllElementsInColumn",
3832
3897
  value: function getAllElementsInColumn(index, fromBackmodul) {
3898
+ var orderBottomDown = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
3833
3899
  var curGrid = fromBackmodul ? this.backGrid : this.frontGrid;
3834
3900
  var allElements = [];
3835
3901
  var allElementIds = [];
3836
- if (curGrid.length > index) {
3902
+ if (!curGrid[index]) return allElements;
3903
+ if (orderBottomDown) {
3837
3904
  for (var i = 0; i < curGrid[index].length; i++) {
3838
3905
  var cell = curGrid[index][i];
3839
3906
  if (cell && allElementIds.indexOf(cell.plannerElementId) == -1) {
@@ -3841,6 +3908,14 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3841
3908
  allElements.push(this.plannerElements.get(cell.plannerElementId));
3842
3909
  }
3843
3910
  }
3911
+ } else {
3912
+ for (var i = curGrid[index].length - 1; i >= 0; i--) {
3913
+ var _cell4 = curGrid[index][i];
3914
+ if (_cell4 && allElementIds.indexOf(_cell4.plannerElementId) == -1) {
3915
+ allElementIds.push(_cell4.plannerElementId);
3916
+ allElements.push(this.plannerElements.get(_cell4.plannerElementId));
3917
+ }
3918
+ }
3844
3919
  }
3845
3920
  return allElements;
3846
3921
  }
@@ -4115,6 +4190,42 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4115
4190
  };
4116
4191
  }
4117
4192
 
4193
+ /**
4194
+ * Get all the Elements need to fill up for the copy of Element x fxe:
4195
+ *
4196
+ * [4] ->
4197
+ * [3]
4198
+ * [2]
4199
+ * [0][1]
4200
+ *
4201
+ * returns element 4, 3 and 2 because those are needed to copy in order
4202
+ * for the copy of element 4 to not float
4203
+ */
4204
+ }, {
4205
+ key: "getAllElementsToFillUp",
4206
+ value: function getAllElementsToFillUp(elementId) {
4207
+ var curPos = this.getCellsInGridByElementId(elementId);
4208
+ if (curPos.startRowIndex == 0) return {
4209
+ elements: [],
4210
+ backside: false
4211
+ };
4212
+ var curGrid = curPos.backside ? this.backGrid : this.frontGrid;
4213
+ var resultPlannerIds = [];
4214
+ for (var x = curPos.startColIndex; x <= curPos.endColIndex; x++) {
4215
+ for (var y = curPos.startRowIndex--; y >= 0; y--) {
4216
+ var cell = curGrid[x][y];
4217
+ var sideExists = curGrid[x + 1] != undefined && curGrid[x + 1][y];
4218
+ if (cell && !sideExists && resultPlannerIds.indexOf(cell.plannerElementId) == -1) {
4219
+ resultPlannerIds.push(cell.plannerElementId);
4220
+ }
4221
+ }
4222
+ }
4223
+ return {
4224
+ elements: resultPlannerIds,
4225
+ backside: curPos.backside
4226
+ };
4227
+ }
4228
+
4118
4229
  /**
4119
4230
  * Returns all Elements that are under the specified element
4120
4231
  * AAAE
@@ -4173,50 +4284,47 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4173
4284
  }
4174
4285
  }, {
4175
4286
  key: "prepareGridForColCopy",
4176
- value: function prepareGridForColCopy(elementId, copyIndex) {
4177
- if (copyIndex.y > 0) return;
4287
+ value: function prepareGridForColCopy(elementId, relativeCopyIndex) {
4288
+ if (relativeCopyIndex.y > 0) return;
4178
4289
  var elementToCopyPos = this.getCellsInGridByElementId(elementId);
4179
4290
  this.plannerElements.get(elementId);
4180
- //Kopiere das Grid nach rechts abhängig von der Breite des aktuellen Elementes
4181
- //now correct all indices in all cells:
4182
-
4183
- var copyStartIndex = 0;
4184
- if (copyIndex.x > 0) copyStartIndex = elementToCopyPos.endColIndex + 1;else if (copyIndex.x < 0) copyStartIndex = elementToCopyPos.startColIndex;
4185
- var copyIndexCount = 1 + (elementToCopyPos.endColIndex - elementToCopyPos.startColIndex);
4186
- var allUsedCellsFrontGrid = this.getAllUsedCellsInGrid(false);
4187
- this.frontGrid = new Array();
4188
- for (var i = 0; i < allUsedCellsFrontGrid.length; i++) {
4189
- var curCellFrontGrid = allUsedCellsFrontGrid[i];
4190
- if (curCellFrontGrid.index.x >= copyStartIndex) {
4191
- curCellFrontGrid.index.x += copyIndexCount;
4192
- }
4193
- if (!this.frontGrid[curCellFrontGrid.index.x]) {
4194
- this.frontGrid[curCellFrontGrid.index.x] = [];
4195
- }
4196
- this.frontGrid[curCellFrontGrid.index.x][curCellFrontGrid.index.y] = curCellFrontGrid;
4197
- }
4198
- //Init empty cols
4199
- for (var i = copyStartIndex; i < copyStartIndex + copyIndexCount; i++) {
4200
- if (!this.frontGrid[i]) this.frontGrid[i] = [];
4291
+ var absoluteCopyIndex = {
4292
+ x: elementToCopyPos.cells[0].index.x + relativeCopyIndex.x,
4293
+ y: elementToCopyPos.cells[0].index.y + relativeCopyIndex.y
4294
+ };
4295
+ if (relativeCopyIndex.x < 0) absoluteCopyIndex.x = elementToCopyPos.startColIndex; // can't copy to -1 (moving everything by 1)
4296
+
4297
+ // new copy logic fill up like this:
4298
+ // [][] -> | [][][]
4299
+ // [][] | [][][]
4300
+ // [][][] | [][][]
4301
+ // not like this (old logic)
4302
+ // [][] -> | [][][]
4303
+ // [][] | [][][]
4304
+ // [][][] | [][][][]
4305
+
4306
+ function moveGrid(plannedCells) {
4307
+ var grid = new Array();
4308
+ plannedCells.forEach(function (cell) {
4309
+ // if i planned to -1 or absolute corrected 0 all the others get moved
4310
+ if (relativeCopyIndex.x == -1) {
4311
+ cell.index.x += 1;
4312
+ }
4313
+ if (!grid[cell.index.x]) {
4314
+ grid[cell.index.x] = [];
4315
+ }
4316
+ if (!grid[cell.index.x][cell.index.y]) {
4317
+ grid[cell.index.x][cell.index.y] = cell;
4318
+ }
4319
+ });
4320
+ return grid;
4201
4321
  }
4322
+ this.frontGrid = moveGrid(this.getAllUsedCellsInGrid(false));
4323
+ if (!this.frontGrid[absoluteCopyIndex.x]) this.frontGrid[absoluteCopyIndex.x] = [];
4202
4324
  if (this.hasActiveBackside) {
4203
- var allUsedCellsBackGrid = this.getAllUsedCellsInGrid(true);
4204
- this.backGrid = new Array();
4205
- for (var i = 0; i < allUsedCellsBackGrid.length; i++) {
4206
- var curCellBackGrid = allUsedCellsBackGrid[i];
4207
- if (curCellBackGrid.index.x >= copyStartIndex) {
4208
- curCellBackGrid.index.x += copyIndexCount;
4209
- }
4210
- if (!this.backGrid[curCellBackGrid.index.x]) {
4211
- this.backGrid[curCellBackGrid.index.x] = [];
4212
- }
4213
- this.backGrid[curCellBackGrid.index.x][curCellBackGrid.index.y] = curCellBackGrid;
4214
- }
4215
-
4325
+ this.backGrid = moveGrid(this.getAllUsedCellsInGrid(true));
4216
4326
  //Init empty cols
4217
- for (var i = copyStartIndex; i < copyStartIndex + copyIndexCount; i++) {
4218
- if (!this.backGrid[i]) this.backGrid[i] = [];
4219
- }
4327
+ if (!this.backGrid[absoluteCopyIndex.x]) this.backGrid[absoluteCopyIndex.y] = [];
4220
4328
  }
4221
4329
  }
4222
4330
  }, {
@@ -4275,7 +4383,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4275
4383
  }
4276
4384
 
4277
4385
  /**
4278
- * This function deletes an Element from the grid.
4386
+ * This function deletes an Element from the grid.ShaderMaterial
4279
4387
  * If backsideModule is active, than the oppsite Element is deleted as well
4280
4388
  * If the boxPlanner_backside switch deletion type is set, do not delete the opposite element
4281
4389
  * If the last element in col was deleted, do delete whole col.
@@ -4349,18 +4457,18 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4349
4457
  }
4350
4458
  for (var i = 0; i < this.backGrid.length; i++) {
4351
4459
  for (var j = 0; j < this.backGrid[i].length; j++) {
4352
- var _cell4 = this.backGrid[i][j];
4353
- if (allCheckedElementIds.indexOf(_cell4.plannerElementId) == -1) {
4354
- var _element2 = this.plannerElements.get(_cell4.plannerElementId);
4355
- allCheckedElementIds.push(_cell4.plannerElementId);
4460
+ var _cell5 = this.backGrid[i][j];
4461
+ if (allCheckedElementIds.indexOf(_cell5.plannerElementId) == -1) {
4462
+ var _element2 = this.plannerElements.get(_cell5.plannerElementId);
4463
+ allCheckedElementIds.push(_cell5.plannerElementId);
4356
4464
  var cellFrontGrid = this.frontGrid[i][j];
4357
4465
  var elementFrontGrid = this.plannerElements.get(cellFrontGrid.plannerElementId);
4358
4466
  if (elementFrontGrid) {
4359
4467
  var targetDPFrontGrid = elementFrontGrid === null || elementFrontGrid === void 0 ? void 0 : elementFrontGrid.getDockingPointById('AVO_AVO_2_IL');
4360
4468
  if (!targetDPFrontGrid) LOG$1.error(new DivaError('Error Loading DockingPoint AVO_2 for plannerElement'));else if (_element2) dockingPointHandlerInst.tryDockElementToDP(_element2, elementFrontGrid, targetDPFrontGrid);
4361
4469
  }
4362
- var _topNeighbors = this.getNeighborElements(_cell4.plannerElementId, 'TOP');
4363
- var _rightNeighbors = this.getNeighborElements(_cell4.plannerElementId, 'RIGHT');
4470
+ var _topNeighbors = this.getNeighborElements(_cell5.plannerElementId, 'TOP');
4471
+ var _rightNeighbors = this.getNeighborElements(_cell5.plannerElementId, 'RIGHT');
4364
4472
  for (var n = 0; n < _topNeighbors.length; n++) {
4365
4473
  dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[n]]);
4366
4474
  }
@@ -5413,7 +5521,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5413
5521
  allElementsToCopy = result.elements;
5414
5522
  result.backside;
5415
5523
  } else {
5416
- var _result = this.boxPlannerGrid.getAllElementsDown(elementId);
5524
+ var _result = this.boxPlannerGrid.getAllElementsToFillUp(elementId);
5417
5525
  allElementsToCopy = allElementsToCopy.concat(_result.elements);
5418
5526
  _result.backside;
5419
5527
  }
@@ -3,9 +3,9 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { V as Vector3, c as Vector2, P as PlannerElementData, B as BoundingBox } from './index-f875e861.js';
6
+ import { V as Vector3, c as Vector2, P as PlannerElementData, B as BoundingBox } from './index-ff01605a.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-80d37ff1.js';
8
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-7026227c.js';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
11
11
  import '@babel/runtime/helpers/toConsumableArray';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import './index-f875e861.js';
4
+ import './index-ff01605a.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { R as Rendering, H as HQRenderScript } from './index-f875e861.js';
6
+ import { R as Rendering, H as HQRenderScript } from './index-ff01605a.js';
7
7
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
8
8
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
9
9
  import io from 'socket.io-client';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-f875e861.js';
3
+ import './index-ff01605a.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import { a as articleHandlerInstance } from './index-f875e861.js';
3
+ import { a as articleHandlerInstance } from './index-ff01605a.js';
4
4
  import { SAPOrderLineData } from '@crystaldesign/basket-model';
5
5
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { c as Vector2, D as DockingPoint, V as Vector3 } from './index-f875e861.js';
6
+ import { c as Vector2, D as DockingPoint, V as Vector3 } from './index-ff01605a.js';
7
7
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
8
  import { fabric } from 'fabric';
9
9
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { s as summaryHandlerInstance } from './index-f875e861.js';
4
+ import { s as summaryHandlerInstance } from './index-ff01605a.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -4,7 +4,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { G as Grid, b as setHandlerInstance, a as articleHandlerInstance } from './index-f875e861.js';
7
+ import { G as Grid, b as setHandlerInstance, a as articleHandlerInstance } from './index-ff01605a.js';
8
8
  import DivaUtils from '@crystaldesign/diva-utils';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-f875e861.js';
3
+ import './index-ff01605a.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -28376,7 +28376,7 @@ var DivaArticle = /*#__PURE__*/function () {
28376
28376
  break;
28377
28377
  }
28378
28378
  _context.next = 4;
28379
- return import('./ShelfPlanner-d144ac1f.js');
28379
+ return import('./ShelfPlanner-5d152a35.js');
28380
28380
  case 4:
28381
28381
  _yield$import = _context.sent;
28382
28382
  ShelfPlanner = _yield$import["default"];
@@ -28710,6 +28710,7 @@ var DivaArticle = /*#__PURE__*/function () {
28710
28710
  }, {
28711
28711
  key: "getArticleInfos",
28712
28712
  value: function getArticleInfos(isActive) {
28713
+ var _this$article$planner, _this$article$planner2;
28713
28714
  var catalogData = this.CatalogData;
28714
28715
  var ret = {
28715
28716
  setId: this.setId,
@@ -28724,7 +28725,7 @@ var DivaArticle = /*#__PURE__*/function () {
28724
28725
  isActive: isActive,
28725
28726
  basketId: this.article.basketId,
28726
28727
  posNr: this.posNr,
28727
- elementId: this.article.elementId
28728
+ elementId: (_this$article$planner = (_this$article$planner2 = this.article.plannerElement) === null || _this$article$planner2 === void 0 ? void 0 : _this$article$planner2.ElementId) !== null && _this$article$planner !== void 0 ? _this$article$planner : this.article.elementId
28728
28729
  };
28729
28730
  return ret;
28730
28731
  }
@@ -29002,6 +29003,8 @@ var DivaArticle = /*#__PURE__*/function () {
29002
29003
  _iterator40.f();
29003
29004
  }
29004
29005
  clonedArticle.initEngine();
29006
+ clonedArticle.hasDecisionsInitialized = true;
29007
+ clonedArticle.hasPartlistArticleInitialized = true;
29005
29008
  clonedArticle.article.partlistArticles = {};
29006
29009
  clonedArticle.article.previousPartlistArticles = {};
29007
29010
  for (var key in this.partlistArticles) {
@@ -32907,7 +32910,7 @@ var DivaSet = /*#__PURE__*/function () {
32907
32910
  break;
32908
32911
  }
32909
32912
  _context5.next = 3;
32910
- return import('./DoorPlanner-b7931e1b.js');
32913
+ return import('./DoorPlanner-75939b8b.js');
32911
32914
  case 3:
32912
32915
  _yield$import = _context5.sent;
32913
32916
  DoorPlanner = _yield$import["default"];
@@ -39960,7 +39963,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
39960
39963
  break;
39961
39964
  case 3:
39962
39965
  _context12.next = 5;
39963
- return import('./PfisterWWSHandler-38fd3e0b.js');
39966
+ return import('./PfisterWWSHandler-2e9453df.js');
39964
39967
  case 5:
39965
39968
  _yield$import = _context12.sent;
39966
39969
  PfisterWWSHandler = _yield$import["default"];
@@ -39968,7 +39971,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
39968
39971
  return _context12.abrupt("break", 27);
39969
39972
  case 9:
39970
39973
  _context12.next = 11;
39971
- return import('./LiviqueWWSHandler-17487162.js');
39974
+ return import('./LiviqueWWSHandler-18d1ad7d.js');
39972
39975
  case 11:
39973
39976
  _yield$import2 = _context12.sent;
39974
39977
  LiviqueWWSHandler = _yield$import2["default"];
@@ -39976,7 +39979,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
39976
39979
  return _context12.abrupt("break", 27);
39977
39980
  case 15:
39978
39981
  _context12.next = 17;
39979
- return import('./SeriousBasketHandler-2843e656.js');
39982
+ return import('./SeriousBasketHandler-14d38820.js');
39980
39983
  case 17:
39981
39984
  _yield$import3 = _context12.sent;
39982
39985
  SeriousWWSHandler = _yield$import3["default"];
@@ -39984,7 +39987,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
39984
39987
  return _context12.abrupt("break", 27);
39985
39988
  case 21:
39986
39989
  _context12.next = 23;
39987
- return import('./StandardWWSHandler-c87284af.js');
39990
+ return import('./StandardWWSHandler-0d9670d3.js');
39988
39991
  case 23:
39989
39992
  _yield$import4 = _context12.sent;
39990
39993
  StandardWWSHandler = _yield$import4["default"];
@@ -41413,7 +41416,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
41413
41416
  while (1) switch (_context3.prev = _context3.next) {
41414
41417
  case 0:
41415
41418
  _context3.next = 2;
41416
- return import('./Host3DSignalR-f59bbfff.js');
41419
+ return import('./Host3DSignalR-8b8cfc39.js');
41417
41420
  case 2:
41418
41421
  _yield$import = _context3.sent;
41419
41422
  Host3DSignalR = _yield$import["default"];
@@ -42971,7 +42974,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
42971
42974
  break;
42972
42975
  case 8:
42973
42976
  _context4.next = 10;
42974
- return import('./DivaStandardPlanner-8c6fe69d.js');
42977
+ return import('./DivaStandardPlanner-3cfa5c94.js');
42975
42978
  case 10:
42976
42979
  _yield$import = _context4.sent;
42977
42980
  DivaStandardPlanner = _yield$import["default"];
@@ -42982,7 +42985,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
42982
42985
  return _context4.abrupt("break", 21);
42983
42986
  case 15:
42984
42987
  _context4.next = 17;
42985
- return import('./DivaBoxPlanner-091c8b09.js');
42988
+ return import('./DivaBoxPlanner-25248fbc.js');
42986
42989
  case 17:
42987
42990
  _yield$import2 = _context4.sent;
42988
42991
  DivaBoxPlanner = _yield$import2["default"];
@@ -1,4 +1,4 @@
1
- export { h as CatalogPlannerArticleData, C as Cell, e as DivaArticle, g as DivaBasketHandler, f as DivaCatalogData, D as DockingPoint, G as Grid, O as OptionCatalogData, P as PlannerElementData, R as Rendering, c as Vector2, V as Vector3, i as Vector4, j as creatRenderOrders, d as default, k as getOrigProductId, l as loadAndRepairBasket } from './index-f875e861.js';
1
+ export { h as CatalogPlannerArticleData, C as Cell, e as DivaArticle, g as DivaBasketHandler, f as DivaCatalogData, D as DockingPoint, G as Grid, O as OptionCatalogData, P as PlannerElementData, R as Rendering, c as Vector2, V as Vector3, i as Vector4, j as creatRenderOrders, d as default, k as getOrigProductId, l as loadAndRepairBasket } from './index-ff01605a.js';
2
2
  import '@babel/runtime/helpers/slicedToArray';
3
3
  import '@babel/runtime/helpers/asyncToGenerator';
4
4
  import '@babel/runtime/helpers/classCallCheck';