@crystaldesign/web-planner-logic 25.9.0-beta.25 → 25.9.0-beta.27

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 (48) hide show
  1. package/build/cjs/{DivaBoxPlanner-b8188cde.js → DivaBoxPlanner-85159252.js} +289 -9
  2. package/build/cjs/{DivaStandardPlanner-73e843a1.js → DivaStandardPlanner-6a9cd95b.js} +12 -2
  3. package/build/cjs/{DoorPlanner-e3da519b.js → DoorPlanner-413dcaff.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-52c14a85.js → Host3DSignalR-b0f70c09.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-d4075df8.js → LiviqueWWSHandler-4e007b2b.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-23e1ae20.js → PfisterWWSHandler-2c8ab745.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-790c2479.js → PlannerHandler2D-058f8848.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-38ae7a2c.js → SeriousBasketHandler-2902f941.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-29a20e52.js → ShelfPlanner-a03ebb7e.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-f11fd736.js → StandardWWSHandler-a10b5f36.js} +1 -1
  11. package/build/cjs/{index-82a104be.js → index-1365547d.js} +75 -23
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-5717bee2.js → DivaBoxPlanner-a3707a14.js} +289 -9
  14. package/build/esm/{DivaStandardPlanner-961c6551.js → DivaStandardPlanner-1d2ec5ea.js} +12 -2
  15. package/build/esm/{DoorPlanner-31b5902f.js → DoorPlanner-d93adad0.js} +1 -1
  16. package/build/esm/{Host3DSignalR-6ba5b347.js → Host3DSignalR-ff687c1b.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-94506207.js → LiviqueWWSHandler-5b7ed555.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-9122007b.js → PfisterWWSHandler-dcd8c2f6.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-f3e34579.js → PlannerHandler2D-c2c5e9db.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-57c6546b.js → SeriousBasketHandler-ecb37275.js} +1 -1
  21. package/build/esm/{ShelfPlanner-a203036f.js → ShelfPlanner-db6452c8.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-1bdae1d3.js → StandardWWSHandler-82fbcdd9.js} +1 -1
  23. package/build/esm/{index-c85dd075.js → index-c83078bc.js} +75 -23
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts +2 -1
  26. package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  28. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +6 -1
  29. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  30. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +6 -1
  31. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +2 -0
  33. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  34. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +2 -1
  35. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
  36. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +2 -1
  37. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
  38. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +2 -1
  39. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  40. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Rendering.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +2 -1
  42. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/model/Planner/BoxPlannerData.d.ts +2 -2
  45. package/build/types/web-planner-logic/src/model/Planner/BoxPlannerData.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/model/Planner/PlannerInteractionData.d.ts +78 -0
  47. package/build/types/web-planner-logic/src/model/Planner/PlannerInteractionData.d.ts.map +1 -1
  48. package/package.json +2 -2
@@ -5,10 +5,10 @@ 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-82a104be.js');
8
+ var index = require('./index-1365547d.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
- var PlannerHandler2D = require('./PlannerHandler2D-790c2479.js');
11
+ var PlannerHandler2D = require('./PlannerHandler2D-058f8848.js');
12
12
  require('@babel/runtime/helpers/slicedToArray');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
@@ -1927,6 +1927,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1927
1927
  //DivaUtils.LOG.log("Update Box Planner Logic. SetOptionDoShow: elementID: " + elementId + "; Option: " + option);
1928
1928
 
1929
1929
  var curOptVisibilityInfo = this.constructionRules.optionsVisibilityInfo[option];
1930
+ if (!curOptVisibilityInfo) return;
1930
1931
  //curArticle[option].val = curOptVisibilityInfo.doShow;
1931
1932
  //curArticle[option].doShow = "1";
1932
1933
  if (curOptVisibilityInfo.doShow != undefined) {
@@ -1959,8 +1960,9 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1959
1960
  var _optionHandler$get3, _this$hideOptionsForC2;
1960
1961
  // LOG.log("Update Box Planner Logic. SetOptionDoHide: elementId: " + elementId + "; Option: " + option);
1961
1962
  var curOptVisibilityInfo = this.constructionRules.optionsVisibilityInfo[option];
1963
+ if (!curOptVisibilityInfo) return;
1962
1964
  if (!optionHandler.has(elementId)) optionHandler.set(elementId, new Map());
1963
- (_optionHandler$get3 = optionHandler.get(elementId)) === null || _optionHandler$get3 === void 0 || _optionHandler$get3.set(option, curOptVisibilityInfo.doHide);
1965
+ (_optionHandler$get3 = optionHandler.get(elementId)) === null || _optionHandler$get3 === void 0 || _optionHandler$get3.set(option, curOptVisibilityInfo === null || curOptVisibilityInfo === void 0 ? void 0 : curOptVisibilityInfo.doHide);
1964
1966
  if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
1965
1967
  (_this$hideOptionsForC2 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC2 === void 0 || _this$hideOptionsForC2.push(option);
1966
1968
  }
@@ -2609,6 +2611,27 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2609
2611
  }
2610
2612
  return undefined;
2611
2613
  }
2614
+ }, {
2615
+ key: "correctOptionsInfluencedByDimensions",
2616
+ value: function correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler) {
2617
+ var _this2 = this;
2618
+ if (!this.constructionRules.optionsInfluencedByDimensions) return;
2619
+ var boxPlannerSize = boxPlannerGrid.getSizeOfWholeSet(false);
2620
+ var allElements = boxPlannerGrid.getAllElementsInFrontGrid();
2621
+ this.constructionRules.optionsInfluencedByDimensions.forEach(function (dimRule) {
2622
+ var isOver = false;
2623
+ if (dimRule.dimension.toLower() == 'height' && boxPlannerSize.y >= dimRule.dimensionLimit) isOver = true;
2624
+ if (dimRule.dimension.toLower() == 'width' && boxPlannerSize.x >= dimRule.dimensionLimit) isOver = true;
2625
+ if (dimRule.dimension.toLower() == 'depth' && boxPlannerSize.z >= dimRule.dimensionLimit) isOver = true;
2626
+ allElements.forEach(function (element) {
2627
+ if (isOver) {
2628
+ if (dimRule.higherLimit.toLower() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.higherLimit.toLower() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2629
+ } else {
2630
+ if (dimRule.lowerLimit.toLower() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.lowerLimit.toLower() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
2631
+ }
2632
+ });
2633
+ });
2634
+ }
2612
2635
  }, {
2613
2636
  key: "correctLadder",
2614
2637
  value: function correctLadder(boxPlannerGrid, optionHandler) {
@@ -2666,6 +2689,26 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2666
2689
  }
2667
2690
  }
2668
2691
  }
2692
+ }, {
2693
+ key: "correctCoverPlate",
2694
+ value: function correctCoverPlate(boxPlannerGrid, optionHandler) {
2695
+ var _this3 = this;
2696
+ if (!this.constructionRules.coverPlateRule) return;
2697
+ if (this.constructionRules.coverPlateRule.onHighestElementsOnly) return; // System4 not handled by this logic yet
2698
+
2699
+ var elementsPerSeries = boxPlannerGrid.getHighestElementsPerSeries();
2700
+ elementsPerSeries.forEach(function (serie) {
2701
+ var seriesWidth = 0;
2702
+ serie.forEach(function (element) {
2703
+ var _element$Width;
2704
+ return seriesWidth += (_element$Width = element.Width) !== null && _element$Width !== void 0 ? _element$Width : 0;
2705
+ });
2706
+ var opv = _this3.constructionRules.seriesWidthToPlateOpv.find(function (stp) {
2707
+ return stp.limit > seriesWidth;
2708
+ });
2709
+ _this3.setOptionValue(serie[0].ElementId, _this3.constructionRules.optABD, opv, optionHandler);
2710
+ });
2711
+ }
2669
2712
 
2670
2713
  //Diese Funktion korrigiert alle Optionen, die auf einer Serie von Artikeln bestehen . Beispiel Abdeckplatte: Hier muss man alle horizontale zusammenhängende Elemente finden, die ganz oben sind.
2671
2714
  //
@@ -3022,6 +3065,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3022
3065
  this.correctBottom(boxPlannerGrid, optionHandler, false);
3023
3066
  if (boxPlannerGrid.getPlannerHasActiveBackside()) this.correctBottom(boxPlannerGrid, optionHandler, true);
3024
3067
  this.correctSeries(boxPlannerGrid, optionHandler);
3068
+ this.correctCoverPlate(boxPlannerGrid, optionHandler);
3025
3069
  for (i = 0; i < boxPlannerGrid.getColumnCount(); i++) {
3026
3070
  for (j = 0; j < boxPlannerGrid.getRowCount(i, false); j++) {
3027
3071
  this.correctSimpleOpt(i, j, boxPlannerGrid, optionHandler, false);
@@ -3049,6 +3093,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3049
3093
  }
3050
3094
  }
3051
3095
  this.correctLadder(boxPlannerGrid, optionHandler);
3096
+ this.correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler);
3052
3097
  this.partlistHelper.calculateKnots(boxPlannerGrid, optionHandler);
3053
3098
  this.partlistHelper.calculateRahmen(boxPlannerGrid, optionHandler);
3054
3099
  for (i = 0; i < boxPlannerGrid.getColumnCount(); i++) {
@@ -3057,13 +3102,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3057
3102
  }
3058
3103
  }
3059
3104
  doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
3060
- _context.next = 25;
3105
+ _context.next = 27;
3061
3106
  return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
3062
- case 25:
3107
+ case 27:
3063
3108
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting Option Values of all Articles: ' + (new Date().getTime() - startTime));
3064
3109
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting updating configurator: ' + (new Date().getTime() - startTime));
3065
3110
  return _context.abrupt("return", resultMessage);
3066
- case 28:
3111
+ case 30:
3067
3112
  case "end":
3068
3113
  return _context.stop();
3069
3114
  }
@@ -3976,6 +4021,27 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3976
4021
  return new index.Vector3(width, height, depth);
3977
4022
  }
3978
4023
 
4024
+ /*
4025
+ Returns an Array with all Highest Elements in which is an Array of the connected side Elements.
4026
+ Used for cover Plate Rule, to know on which elements
4027
+ *Only for frontgrid
4028
+ */
4029
+ }, {
4030
+ key: "getHighestElementsPerSeries",
4031
+ value: function getHighestElementsPerSeries() {
4032
+ if (this.hasActiveBackside) throw new Error('this function is doesnt implement the backside logic (yet)');
4033
+ var result = [];
4034
+ var lastHeight = -1;
4035
+ for (var idx = 0; idx < this.getColumnCount(); idx++) {
4036
+ var height = this.getRowCount(idx, false);
4037
+ if (height == lastHeight) {
4038
+ result[result.length].push(this.getPlannerElementAtGridPos(idx, height - 1, false));
4039
+ }
4040
+ lastHeight = height;
4041
+ }
4042
+ return result;
4043
+ }
4044
+
3979
4045
  /**
3980
4046
  * Returns all other elements in the grid that are in the same row as the elementId from the parameter. It only returns the elements on along the startRowIndex
3981
4047
  * Excample:
@@ -4675,10 +4741,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4675
4741
  for (var i = 0; i < allElements.length; i++) {
4676
4742
  var element = allElements[i];
4677
4743
  var elementCells = this.getCellsInGridByElementId(element.getElementId());
4678
- elementCells.backside ? this.backGrid : this.frontGrid;
4679
4744
  var elementLocation = this.createLocationInformation(element, elementCells.backside, elementCells.cells, elementCells.startColIndex, elementCells.startRowIndex, elementCells.colCount, elementCells.rowCount);
4680
4745
  var planningLeftLocation = this.getFreePlanningLocation(element.getElementId(), 'LEFT');
4681
- var planningRighttLocation = this.getFreePlanningLocation(element.getElementId(), 'RIGHT');
4746
+ var planningRightLocation = this.getFreePlanningLocation(element.getElementId(), 'RIGHT');
4682
4747
  var planningTopLocation = this.getFreePlanningLocation(element.getElementId(), 'TOP');
4683
4748
  var hasTopElements = this.getElementHasTopElement(element.getElementId());
4684
4749
  var moveLocations = [];
@@ -4692,7 +4757,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4692
4757
  availablePlanningLocations: {
4693
4758
  availableBoxPlannerCellsLeft: planningLeftLocation,
4694
4759
  availableBoxPlannerCellsTop: planningTopLocation,
4695
- availableBoxPlannerCellsRight: planningRighttLocation
4760
+ availableBoxPlannerCellsRight: planningRightLocation
4696
4761
  },
4697
4762
  availableMovingLocations: moveLocations
4698
4763
  };
@@ -4700,6 +4765,216 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4700
4765
  }
4701
4766
  return plannerInteractionInfo;
4702
4767
  }
4768
+ }, {
4769
+ key: "getGeneralPlanningState",
4770
+ value: function getGeneralPlanningState(selectedElementId) {
4771
+ var matrix = [];
4772
+ var selectedElement = undefined;
4773
+ var plannedElements = Array.from(this.plannerElements.values()).map(function (p) {
4774
+ return {
4775
+ basketId: p.getBasketId(),
4776
+ elementId: p.getElementId(),
4777
+ articleCodex: p.getArticleCodex(),
4778
+ size: {
4779
+ width: p.getWidth(),
4780
+ height: p.getHeight(),
4781
+ depth: p.getDepth()
4782
+ },
4783
+ area: {
4784
+ fromX: undefined,
4785
+ toX: undefined,
4786
+ fromY: undefined,
4787
+ toY: undefined
4788
+ }
4789
+ };
4790
+ });
4791
+ for (var i = 0; i < this.frontGrid.length; i++) {
4792
+ matrix.push([]);
4793
+ var frontGridRow = this.frontGrid[i];
4794
+ var _loop = function _loop() {
4795
+ var cell = frontGridRow[j];
4796
+ if (cell) {
4797
+ var plannedElement = plannedElements.find(function (p) {
4798
+ return p.elementId === cell.plannerElementId;
4799
+ });
4800
+ if (plannedElement) {
4801
+ if (plannedElement.area.fromX === undefined || plannedElement.area.fromX > cell.index.x) plannedElement.area.fromX = cell.index.x;
4802
+ if (plannedElement.area.toX === undefined || plannedElement.area.toX < cell.index.x) plannedElement.area.toX = cell.index.x;
4803
+ if (plannedElement.area.fromY === undefined || plannedElement.area.fromY > cell.index.y) plannedElement.area.fromY = cell.index.y;
4804
+ if (plannedElement.area.toY === undefined || plannedElement.area.toY < cell.index.y) plannedElement.area.toY = cell.index.y;
4805
+ }
4806
+ matrix[i].push({
4807
+ index: cell.index,
4808
+ plannedElement: plannedElement
4809
+ });
4810
+ }
4811
+ };
4812
+ for (var j = 0; j < frontGridRow.length; j++) {
4813
+ _loop();
4814
+ }
4815
+ }
4816
+
4817
+ // Fill matrix rows to equal length
4818
+ var maxLength = Math.max.apply(Math, _toConsumableArray__default["default"](matrix.map(function (row) {
4819
+ return row.length;
4820
+ })));
4821
+ matrix.forEach(function (row) {
4822
+ while (row.length < maxLength) {
4823
+ var _row$;
4824
+ var lastCell = row[row.length - 1];
4825
+ var newY = lastCell ? lastCell.index.y + 1 : 0;
4826
+ row.push({
4827
+ index: new index.Vector2(((_row$ = row[0]) === null || _row$ === void 0 ? void 0 : _row$.index.x) || 0, newY),
4828
+ plannedElement: undefined
4829
+ });
4830
+ }
4831
+ });
4832
+ var selectedPlannedElement = selectedElementId ? plannedElements.find(function (p) {
4833
+ return p.elementId === selectedElementId;
4834
+ }) : undefined;
4835
+ if (selectedPlannedElement) {
4836
+ //add the free let planningLeftLocation = this.getFreePlanningLocation(element.getElementId(), 'LEFT');
4837
+ var planningLeftLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'LEFT');
4838
+ var planningRightLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'RIGHT');
4839
+ var planningTopLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'TOP');
4840
+ var fixedPositionRules = [];
4841
+ if (planningLeftLocation) {
4842
+ this.addFreeCellsToMatrix(matrix, planningLeftLocation.cells, fixedPositionRules);
4843
+ }
4844
+ if (planningRightLocation) {
4845
+ this.addFreeCellsToMatrix(matrix, planningRightLocation.cells, fixedPositionRules);
4846
+ }
4847
+ if (planningTopLocation) {
4848
+ this.addFreeCellsToMatrix(matrix, planningTopLocation.cells, fixedPositionRules);
4849
+ }
4850
+ selectedElement = {
4851
+ articleCodex: selectedPlannedElement.articleCodex,
4852
+ size: selectedPlannedElement.size,
4853
+ gridSpace: {
4854
+ rows: selectedPlannedElement.area.toY - selectedPlannedElement.area.fromY + 1,
4855
+ colums: selectedPlannedElement.area.toX - selectedPlannedElement.area.fromX + 1
4856
+ },
4857
+ rules: fixedPositionRules,
4858
+ elementId: selectedElementId
4859
+ };
4860
+ }
4861
+ return {
4862
+ grids: [{
4863
+ index: 0,
4864
+ // boxplanner usecase grid index always 0
4865
+ rowSizes: this.getRowSizes(matrix, selectedElement),
4866
+ columnSizes: this.getColumnSizes(matrix, selectedElement),
4867
+ matrix: matrix
4868
+ }],
4869
+ selectedElement: selectedElement
4870
+ };
4871
+ }
4872
+ }, {
4873
+ key: "getRowSizes",
4874
+ value: function getRowSizes(matrix, selectedElement) {
4875
+ if (this.getForceSingleCellPerElement()) {
4876
+ //system 4 useacse
4877
+ var totalColCount = matrix[0].length;
4878
+ var colSizes = Array(totalColCount).fill(-1);
4879
+ var _loop2 = function _loop2(i) {
4880
+ var _matrix$find;
4881
+ var cell = (_matrix$find = matrix.find(function (row) {
4882
+ return row[i].plannedElement;
4883
+ })) === null || _matrix$find === void 0 ? void 0 : _matrix$find[i];
4884
+ if (cell !== null && cell !== void 0 && cell.plannedElement) {
4885
+ colSizes[i] = cell.plannedElement.size.height;
4886
+ } else if (selectedElement) {
4887
+ colSizes[i] = selectedElement.size.height;
4888
+ }
4889
+ if (!colSizes.includes(-1)) return 1; // break
4890
+ };
4891
+ for (var i = 0; i < totalColCount; i++) {
4892
+ if (_loop2(i)) break;
4893
+ }
4894
+ if (colSizes.includes(-1)) throw new Error('Column sizes are not set');
4895
+ return colSizes;
4896
+ } else {
4897
+ //setup usecase need to be a constant value
4898
+ return 15;
4899
+ }
4900
+ }
4901
+ }, {
4902
+ key: "getColumnSizes",
4903
+ value: function getColumnSizes(matrix, selectedElement) {
4904
+ if (this.getForceSingleCellPerElement()) {
4905
+ //system 4 useacse
4906
+ var totalRowsCount = matrix.length;
4907
+ var rowRowSizes = Array(totalRowsCount).fill(-1);
4908
+ for (var i = 0; i < totalRowsCount; i++) {
4909
+ var row = matrix[i];
4910
+ var cell = row.find(function (cell) {
4911
+ return cell.plannedElement;
4912
+ });
4913
+ if (cell !== null && cell !== void 0 && cell.plannedElement) {
4914
+ rowRowSizes[i] = cell.plannedElement.size.width;
4915
+ } else if (selectedElement) {
4916
+ rowRowSizes[i] = selectedElement.size.width;
4917
+ }
4918
+ if (!rowRowSizes.includes(-1)) break;
4919
+ }
4920
+ if (rowRowSizes.includes(-1)) throw new Error('Row sizes are not set');
4921
+ return rowRowSizes;
4922
+ } else {
4923
+ //setup usecase need to be a constant value
4924
+ return 15;
4925
+ }
4926
+ }
4927
+ }, {
4928
+ key: "addFreeCellsToMatrix",
4929
+ value: function addFreeCellsToMatrix(matrix, cells, fixedPositionRules) {
4930
+ cells.forEach(function (cell) {
4931
+ var x = cell.index.x;
4932
+ var y = cell.index.y;
4933
+ var row = matrix.find(function (row) {
4934
+ return row.find(function (cell) {
4935
+ return cell.index.x === x;
4936
+ });
4937
+ });
4938
+ if (!row) {
4939
+ var newColumn = [];
4940
+ for (var i = 0; i < matrix[0].length; i++) {
4941
+ newColumn.push({
4942
+ index: new index.Vector2(x, i),
4943
+ plannedElement: undefined
4944
+ });
4945
+ }
4946
+ if (matrix[0][0].index.x > x) matrix.unshift(newColumn);else matrix.push(newColumn);
4947
+ }
4948
+ var column = matrix.find(function (row) {
4949
+ return row.find(function (cell) {
4950
+ return cell.index.y === y;
4951
+ });
4952
+ });
4953
+ if (!column) {
4954
+ matrix.map(function (row) {
4955
+ var _row$2;
4956
+ return row.push({
4957
+ index: new index.Vector2(((_row$2 = row[0]) === null || _row$2 === void 0 ? void 0 : _row$2.index.x) || 0, y),
4958
+ plannedElement: undefined
4959
+ });
4960
+ });
4961
+ }
4962
+ });
4963
+ fixedPositionRules.push({
4964
+ type: 'FixedPositon',
4965
+ grids: [{
4966
+ gridIndex: 0,
4967
+ places: [{
4968
+ lowestX: Math.min.apply(Math, _toConsumableArray__default["default"](cells.map(function (cell) {
4969
+ return cell.index.x;
4970
+ }))),
4971
+ lowestY: Math.min.apply(Math, _toConsumableArray__default["default"](cells.map(function (cell) {
4972
+ return cell.index.y;
4973
+ })))
4974
+ }]
4975
+ }]
4976
+ });
4977
+ }
4703
4978
  }]);
4704
4979
  }();
4705
4980
 
@@ -5572,6 +5847,11 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5572
5847
  value: function getPlannerInteractionInformation() {
5573
5848
  return this.boxPlannerGrid.getPlannerInteractionInformation();
5574
5849
  }
5850
+ }, {
5851
+ key: "getGeneralPlanningState",
5852
+ value: function getGeneralPlanningState(selectedElementId) {
5853
+ return this.boxPlannerGrid.getGeneralPlanningState(selectedElementId);
5854
+ }
5575
5855
  }]);
5576
5856
  }();
5577
5857
  _defineProperty__default["default"](DivaBoxPlanner, "plannerType", 'BOX');
@@ -5,8 +5,8 @@ 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-82a104be.js');
9
- var PlannerHandler2D = require('./PlannerHandler2D-790c2479.js');
8
+ var index = require('./index-1365547d.js');
9
+ var PlannerHandler2D = require('./PlannerHandler2D-058f8848.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -1838,6 +1838,16 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1838
1838
  boxPlannerInteractionInformationPerElement: new Map()
1839
1839
  };
1840
1840
  }
1841
+ }, {
1842
+ key: "getGeneralPlanningState",
1843
+ value: function getGeneralPlanningState(selectedElementId) {
1844
+ LOG.error(new DivaUtils.DivaError('The function getGeneralPlanningState is not implemented yet for standard planner. Dont call it or ask roadmap when its its turn', {
1845
+ code: 'WC_0012'
1846
+ }));
1847
+ return {
1848
+ grids: []
1849
+ };
1850
+ }
1841
1851
  }]);
1842
1852
  }();
1843
1853
  _defineProperty__default["default"](DivaStandardPlanner, "plannerType", 'STD');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('./index-82a104be.js');
6
+ require('./index-1365547d.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -5,7 +5,7 @@ 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-82a104be.js');
8
+ var index = require('./index-1365547d.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var signalr = require('@microsoft/signalr');
11
11
  var io = require('socket.io-client');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-82a104be.js');
5
+ require('./index-1365547d.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- var index = require('./index-82a104be.js');
5
+ var index = require('./index-1365547d.js');
6
6
  var basketModel = require('@crystaldesign/basket-model');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var index = require('./index-82a104be.js');
6
+ var index = require('./index-1365547d.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
9
9
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var index = require('./index-82a104be.js');
6
+ var index = require('./index-1365547d.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-82a104be.js');
9
+ var index = require('./index-1365547d.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-82a104be.js');
5
+ require('./index-1365547d.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');