@crystaldesign/web-planner-logic 25.13.0-beta.44 → 25.13.0-beta.46

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 (50) hide show
  1. package/build/cjs/{DivaBoxPlanner-a7a2bcb9.js → DivaBoxPlanner-e7ab785a.js} +132 -134
  2. package/build/cjs/{DivaStandardPlanner-30ad0b92.js → DivaStandardPlanner-5f5991fc.js} +95 -74
  3. package/build/cjs/{DoorPlanner-13625bb7.js → DoorPlanner-0e42d83b.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-91921736.js → Host3DSignalR-4141d491.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-fcd38ba9.js → LiviqueWWSHandler-47cc5540.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-4707db89.js → PfisterWWSHandler-14805264.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-eda6acbb.js → PlannerHandler2D-8a05adf6.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-f1cd3ad9.js → SeriousBasketHandler-0ac13ae5.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-98a1e49a.js → ShelfPlanner-9c3115d7.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-28018691.js → StandardWWSHandler-e24d8597.js} +1 -1
  11. package/build/cjs/{index-1c5aa2c3.js → index-432ba6ff.js} +412 -225
  12. package/build/cjs/index.js +3 -1
  13. package/build/esm/{DivaBoxPlanner-e4a3c8dd.js → DivaBoxPlanner-e475edff.js} +132 -134
  14. package/build/esm/{DivaStandardPlanner-c2c8606b.js → DivaStandardPlanner-47703c34.js} +95 -74
  15. package/build/esm/{DoorPlanner-e1456c31.js → DoorPlanner-637f86ff.js} +1 -1
  16. package/build/esm/{Host3DSignalR-9d0f0ffe.js → Host3DSignalR-d4ba5141.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-cdd66c4d.js → LiviqueWWSHandler-2f71cbef.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-4f6681e6.js → PfisterWWSHandler-1e08979b.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-f28b33b6.js → PlannerHandler2D-a7f78918.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-7ca42dbb.js → SeriousBasketHandler-8bcf70f1.js} +1 -1
  21. package/build/esm/{ShelfPlanner-6dadb2ac.js → ShelfPlanner-dacb334f.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-48e56aed.js → StandardWWSHandler-8c3733bc.js} +1 -1
  23. package/build/esm/{index-9aa6880b.js → index-9d20093d.js} +411 -226
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +2 -1
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts +33 -1
  28. package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts +2 -0
  30. package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
  32. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -1
  34. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +2 -0
  36. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +10 -4
  38. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +22 -6
  40. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +1 -1
  42. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +5 -4
  45. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +2 -1
  47. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
  49. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  50. 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-1c5aa2c3.js');
8
+ var index = require('./index-432ba6ff.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
- var PlannerHandler2D = require('./PlannerHandler2D-eda6acbb.js');
11
+ var PlannerHandler2D = require('./PlannerHandler2D-8a05adf6.js');
12
12
  require('@babel/runtime/helpers/slicedToArray');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
@@ -3426,11 +3426,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3426
3426
  */
3427
3427
  }, {
3428
3428
  key: "getGridColumnWidth",
3429
- value: function getGridColumnWidth(columnIndex) {
3429
+ value: function getGridColumnWidth(x) {
3430
3430
  var frontGrid = this.generalPlanningState.grids[0].matrix;
3431
- for (var i = 0; i < frontGrid[columnIndex].length; i++) {
3431
+ for (var y = 0; x < frontGrid[y].length; x++) {
3432
3432
  var _plannedElement$size$, _plannedElement;
3433
- if (frontGrid[columnIndex][i]) return (_plannedElement$size$ = (_plannedElement = frontGrid[columnIndex][i].plannedElement) === null || _plannedElement === void 0 ? void 0 : _plannedElement.size.width) !== null && _plannedElement$size$ !== void 0 ? _plannedElement$size$ : 0;
3433
+ var cell = frontGrid[x][y];
3434
+ 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;
3434
3435
  }
3435
3436
  return 0;
3436
3437
  }
@@ -3442,15 +3443,18 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3442
3443
  */
3443
3444
  }, {
3444
3445
  key: "getGridColumnHeight",
3445
- value: function getGridColumnHeight(columnIdex) {
3446
+ value: function getGridColumnHeight(x) {
3446
3447
  var height = 0;
3447
3448
  var firstElementFound = false;
3448
3449
  var frontGrid = this.generalPlanningState.grids[0].matrix;
3449
- if (frontGrid.length > columnIdex) {
3450
- var allCellsInCol = frontGrid[columnIdex];
3451
- for (var i = allCellsInCol.length; i >= 0; i--) {
3452
- if (!firstElementFound && allCellsInCol[i]) firstElementFound = true;
3453
- if (firstElementFound) height += allCellsInCol[i] == undefined ? 0 : allCellsInCol[i].plannedElement.size.height;
3450
+ if (frontGrid.length > x) {
3451
+ var column = frontGrid[x];
3452
+ for (var y = column.length - 1; y >= 0; y--) {
3453
+ var _plannedElement$size$2, _plannedElement2;
3454
+ var cell = column[y];
3455
+ if (!firstElementFound && cell) firstElementFound = true;
3456
+ if (firstElementFound) height += (_plannedElement$size$2 = (_plannedElement2 = cell.plannedElement) === null || _plannedElement2 === void 0 ? void 0 : _plannedElement2.size.height) !== null && _plannedElement$size$2 !== void 0 ? _plannedElement$size$2 : 0;
3457
+ y = cell.plannedElement ? cell.plannedElement.area.fromY - 1 : y - 1;
3454
3458
  }
3455
3459
  }
3456
3460
  return height;
@@ -3472,7 +3476,28 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3472
3476
  curGrid[cell.index.x].splice(cell.index.y, 1);
3473
3477
  if (curGrid[cell.index.x].length == 0) curGrid.splice(cell.index.x, 1);
3474
3478
  });
3475
- if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = curGrid;else this.generalPlanningState.grids[0].matrix = curGrid;
3479
+ var refreshedGrid = [];
3480
+ curGrid.forEach(function (row, x) {
3481
+ refreshedGrid[x] = [];
3482
+ row.forEach(function (column, y) {
3483
+ var area = column.plannedElement.area;
3484
+ refreshedGrid[x][y] = {
3485
+ index: {
3486
+ x: x,
3487
+ y: y
3488
+ },
3489
+ plannedElement: _objectSpread(_objectSpread({}, column.plannedElement), {}, {
3490
+ area: {
3491
+ fromX: x,
3492
+ fromY: y,
3493
+ toX: x + (area.toX - area.fromX),
3494
+ toY: y + (area.toY - area.fromY)
3495
+ }
3496
+ })
3497
+ };
3498
+ });
3499
+ });
3500
+ if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = refreshedGrid;else this.generalPlanningState.grids[0].matrix = refreshedGrid;
3476
3501
  }
3477
3502
 
3478
3503
  /**
@@ -4074,24 +4099,28 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4074
4099
  var height = 0;
4075
4100
  var checkedElementIds = [];
4076
4101
  var frontGrid = this.generalPlanningState.grids[0].matrix;
4077
- for (var i = 0; i < frontGrid.length; i++) {
4102
+ for (var x = 0; x < frontGrid.length;) {
4103
+ var _row$0$plannedElement, _row$0$plannedElement2;
4078
4104
  var curHeight = 0;
4079
- for (var j = 0; j < frontGrid[i].length; j++) {
4080
- var _cell4;
4081
- var cell = frontGrid[i][j];
4105
+ var row = frontGrid[x];
4106
+ for (var y = 0; y < row.length;) {
4107
+ var _cell4, _cell$plannedElement$, _cell$plannedElement8;
4108
+ var cell = row[y];
4082
4109
  var elementId = (_cell4 = cell) === null || _cell4 === void 0 || (_cell4 = _cell4.plannedElement) === null || _cell4 === void 0 ? void 0 : _cell4.elementId;
4083
4110
  if (elementId && cell && checkedElementIds.indexOf(elementId) == -1) {
4084
4111
  curHeight += this.plannerElements.get(elementId).getHeight();
4085
- if (i == 0 && j == 0) depth = this.plannerElements.get(elementId).getDepth();
4112
+ if (x == 0 && y == 0) depth = this.plannerElements.get(elementId).getDepth();
4086
4113
  }
4114
+ 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;
4087
4115
  }
4088
4116
  if (curHeight > height) height = curHeight;
4089
- var curWidth = this.getGridColumnWidth(i);
4090
- if (correctSizeSystem4 && i > 0) {
4117
+ var curWidth = this.getGridColumnWidth(x);
4118
+ if (correctSizeSystem4 && x > 0) {
4091
4119
  //Correct width
4092
4120
  if (curWidth == 77.9) curWidth = 75;else if (curWidth == 40.4) curWidth = 37.5;else if (curWidth == 21.7) curWidth = 18.75;
4093
4121
  }
4094
4122
  width += curWidth;
4123
+ x = (_row$0$plannedElement = (_row$0$plannedElement2 = row[0].plannedElement) === null || _row$0$plannedElement2 === void 0 ? void 0 : _row$0$plannedElement2.area.toX) !== null && _row$0$plannedElement !== void 0 ? _row$0$plannedElement : x + 1;
4095
4124
  }
4096
4125
  if (this.hasActiveBackside) depth *= 2;
4097
4126
  return new index.Vector3(width, height, depth);
@@ -4108,18 +4137,22 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4108
4137
  if (this.hasActiveBackside) throw new Error('this function is doesnt implement the backside logic (yet)');
4109
4138
  var result = [];
4110
4139
  var lastHeight = -1;
4111
- for (var idx = 0; idx < this.getColumnCount(); idx++) {
4112
- var row = this.generalPlanningState.grids[0].matrix[idx];
4113
- var height = row.reduce(function (added, column) {
4114
- return column.height + added;
4115
- }, 0);
4116
- if (height == lastHeight || onBottom) {
4140
+ for (var x = 0; x < this.getColumnCount();) {
4141
+ var row = this.generalPlanningState.grids[0].matrix[x];
4142
+ var height = 0;
4143
+ for (var y = 0; y < row.length;) {
4144
+ var element = row[y].plannedElement;
4145
+ height += element.size.height;
4146
+ y = element.area.toY;
4147
+ }
4148
+ if (Math.round(height) == Math.round(lastHeight) || onBottom) {
4117
4149
  if (!result[result.length - 1]) result.push([]);
4118
- result[result.length - 1].push(this.getPlannerElementAtGridPos(idx, row.length - 1, false));
4150
+ result[result.length - 1].push(this.getPlannerElementAtGridPos(x, row.length - 1, false));
4119
4151
  } else {
4120
- result.push([this.getPlannerElementAtGridPos(idx, row.length - 1, false)]);
4152
+ result.push([this.getPlannerElementAtGridPos(x, row.length - 1, false)]);
4121
4153
  }
4122
4154
  lastHeight = height;
4155
+ x = row[row.length - 1].plannedElement ? row[row.length - 1].plannedElement.area.toX : x + 1;
4123
4156
  }
4124
4157
  return result;
4125
4158
  }
@@ -4223,7 +4256,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4223
4256
  };
4224
4257
  var curGrid = curPos.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
4225
4258
  var resultPlannerIds = [];
4226
- for (var i = curPos.startColIndex; i <= curPos.endColIndex; i++) {
4259
+ for (var i = curPos.startColIndex; i < curPos.endColIndex; i++) {
4227
4260
  for (var j = curPos.startRowIndex--; j >= 0; j--) {
4228
4261
  var _neighborCell$planned;
4229
4262
  var neighborCell = curGrid[i][j];
@@ -4436,8 +4469,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4436
4469
  var area = cell.plannedElement.area;
4437
4470
  if (newGrid.find(function (x) {
4438
4471
  return x.find(function (y) {
4439
- var _y$plannedElement3, _cell$plannedElement8;
4440
- return ((_y$plannedElement3 = y.plannedElement) === null || _y$plannedElement3 === void 0 ? void 0 : _y$plannedElement3.elementId) == ((_cell$plannedElement8 = cell.plannedElement) === null || _cell$plannedElement8 === void 0 ? void 0 : _cell$plannedElement8.elementId);
4472
+ var _y$plannedElement3, _cell$plannedElement9;
4473
+ return ((_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);
4441
4474
  });
4442
4475
  })) return;
4443
4476
  for (var x = area.fromX; x < area.toX; x++) {
@@ -4514,20 +4547,16 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4514
4547
  var backGrid = (_this$generalPlanning6 = (_this$generalPlanning7 = this.generalPlanningState.grids[1]) === null || _this$generalPlanning7 === void 0 ? void 0 : _this$generalPlanning7.matrix) !== null && _this$generalPlanning6 !== void 0 ? _this$generalPlanning6 : [];
4515
4548
  for (var x = 0; x < frontGrid.length; x++) {
4516
4549
  for (var y = 0; y < frontGrid[x].length; y++) {
4517
- var _cell$plannedElement9;
4550
+ var _cell$plannedElement10;
4518
4551
  var cell = frontGrid[x][y];
4519
- var elementId = cell === null || cell === void 0 || (_cell$plannedElement9 = cell.plannedElement) === null || _cell$plannedElement9 === void 0 ? void 0 : _cell$plannedElement9.elementId;
4552
+ var elementId = cell === null || cell === void 0 || (_cell$plannedElement10 = cell.plannedElement) === null || _cell$plannedElement10 === void 0 ? void 0 : _cell$plannedElement10.elementId;
4520
4553
  if (elementId && allCheckedElementIds.indexOf(elementId) == -1) {
4521
4554
  var element = this.plannerElements.get(elementId);
4522
4555
  allCheckedElementIds.push(elementId);
4523
4556
  var topNeighbors = this.getNeighborElements(elementId, 'TOP');
4524
4557
  var rightNeighbors = this.getNeighborElements(elementId, 'RIGHT');
4525
- for (var n = 0; n < topNeighbors.length; n++) {
4526
- PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[n]]);
4527
- }
4528
- for (var n = 0; n < rightNeighbors.length; n++) {
4529
- PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[n]]);
4530
- }
4558
+ if (topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[0]]);
4559
+ if (rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[0]]);
4531
4560
  element.PosNr = posNr;
4532
4561
  posNr++;
4533
4562
  }
@@ -4549,12 +4578,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4549
4578
  }
4550
4579
  var _topNeighbors = this.getNeighborElements(_elementId6, 'TOP');
4551
4580
  var _rightNeighbors = this.getNeighborElements(_elementId6, 'RIGHT');
4552
- for (var n = 0; n < _topNeighbors.length; n++) {
4553
- PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[n]]);
4554
- }
4555
- for (var n = 0; n < _rightNeighbors.length; n++) {
4556
- PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVL', [_rightNeighbors[n]]);
4557
- }
4581
+ if (_topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[0]]);
4582
+ if (_rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVL', [_rightNeighbors[0]]);
4558
4583
  _element2.PosNr = posNr;
4559
4584
  posNr++;
4560
4585
  }
@@ -4950,16 +4975,16 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4950
4975
  } else {
4951
4976
  var distToOriginX = 0;
4952
4977
  for (var i = 0; i < cellsStartColIndex; i++) {
4953
- var _plannedElement$size$2, _plannedElement2;
4954
- distToOriginX += (_plannedElement$size$2 = (_plannedElement2 = curGrid[i][0].plannedElement) === null || _plannedElement2 === void 0 ? void 0 : _plannedElement2.size.width) !== null && _plannedElement$size$2 !== void 0 ? _plannedElement$size$2 : 0;
4978
+ var _plannedElement$size$3, _plannedElement3;
4979
+ distToOriginX += (_plannedElement$size$3 = (_plannedElement3 = curGrid[i][0].plannedElement) === null || _plannedElement3 === void 0 ? void 0 : _plannedElement3.size.width) !== null && _plannedElement$size$3 !== void 0 ? _plannedElement$size$3 : 0;
4955
4980
  }
4956
4981
  if (cellsStartColIndex < 0) {
4957
4982
  distToOriginX = -element.getWidth();
4958
4983
  }
4959
4984
  var distToOriginY = 0;
4960
4985
  for (var i = 0; i < cellsStartRowIndex; i++) {
4961
- var _plannedElement$size$3, _plannedElement3;
4962
- distToOriginY += (_plannedElement$size$3 = (_plannedElement3 = curGrid[cellsStartColIndex][i].plannedElement) === null || _plannedElement3 === void 0 ? void 0 : _plannedElement3.size.width) !== null && _plannedElement$size$3 !== void 0 ? _plannedElement$size$3 : 0;
4986
+ var _plannedElement$size$4, _plannedElement4;
4987
+ distToOriginY += (_plannedElement$size$4 = (_plannedElement4 = curGrid[cellsStartColIndex][i].plannedElement) === null || _plannedElement4 === void 0 ? void 0 : _plannedElement4.size.width) !== null && _plannedElement$size$4 !== void 0 ? _plannedElement$size$4 : 0;
4963
4988
  }
4964
4989
  elementLocation.startIndexWorldPos = new index.Vector2(distToOriginX, distToOriginY);
4965
4990
  }
@@ -5002,12 +5027,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5002
5027
  }
5003
5028
  }, {
5004
5029
  key: "getGeneralPlanningState",
5005
- value: function getGeneralPlanningState(selectedElementId) {
5006
- return this.generalPlanningState;
5007
- /*
5008
- let matrix: Cell[][] = [];
5009
- let selectedElement: SelectedElement | undefined = undefined;
5010
- const plannedElements: PlannedElement[] = Array.from(this.plannerElements.values()).map((p) => {
5030
+ value: function getGeneralPlanningState() {
5031
+ var movables = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
5032
+ var selectedElementId = arguments.length > 1 ? arguments[1] : undefined;
5033
+ if (!movables) return this.generalPlanningState;
5034
+ // fill to equal size
5035
+ var matrix = this.generalPlanningState.grids[0].matrix;
5036
+ var matrixWithMovables = [];
5037
+ var maxWidth = matrix.length;
5038
+ var maxHeight = 0;
5039
+ matrix.forEach(function (x) {
5040
+ if (x.length > maxHeight) maxHeight = x.length;
5041
+ });
5042
+ Array.from(this.plannerElements.values()).map(function (p) {
5011
5043
  return {
5012
5044
  basketId: p.getBasketId(),
5013
5045
  elementId: p.getElementId(),
@@ -5015,97 +5047,63 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5015
5047
  size: {
5016
5048
  width: p.getWidth(),
5017
5049
  height: p.getHeight(),
5018
- depth: p.getDepth(),
5050
+ depth: p.getDepth()
5019
5051
  },
5020
5052
  area: {
5021
5053
  fromX: undefined,
5022
5054
  toX: undefined,
5023
5055
  fromY: undefined,
5024
- toY: undefined,
5025
- } as any,
5056
+ toY: undefined
5057
+ }
5026
5058
  };
5027
5059
  });
5028
- let frontGrid = this.generalPlanningState.grids[0].matrix;
5029
- let index = { x: 0, y: 0 };
5030
- for (let i = 0; i < frontGrid.length; i++) {
5031
- matrix.push([]);
5032
- const frontGridRow = frontGrid[i];
5033
- for (let j = 0; j < frontGridRow.length; j++) {
5034
- const cell = frontGridRow[j];
5035
- let elementId = cell.plannedElement?.elementId;
5036
- if (elementId && cell) {
5037
- const plannedElement = plannedElements.find((p) => p.elementId === elementId);
5038
- let matrixIndex = 0;
5039
- for (let idx = cell.index.x - 1; idx >= 0; idx--)
5040
- matrixIndex += frontGridRow[idx]!.plannedElement!.size.width / 19.2;
5041
- if (plannedElement) {
5042
-
5043
- plannedElement.area.fromX = matrixIndex;
5044
- plannedElement.area.toX = matrixIndex + cell.plannedElement!.size.width / 19.2;
5045
- plannedElement.area.fromY = cell.index.y;
5046
- plannedElement.area.toY = cell.index.y + cell.plannedElement!.size.height / 19.2;
5047
- for (let x = plannedElement.area.fromX; x < plannedElement.area.toX; x++) {
5048
- for (let y = plannedElement.area.fromY; y < plannedElement.area.toY; y++) {
5049
- if (!matrix[x]) matrix[x] = [];
5050
- matrix[x][y] = { index: { x, y }, plannedElement };
5051
- }
5052
- }
5053
- continue;
5060
+ var isSupport = false;
5061
+ var selectedElement = undefined;
5062
+ var ele = undefined;
5063
+ if (selectedElementId) {
5064
+ var res = this.getCellsInGridByElementId(selectedElementId);
5065
+ ele = res.cells[0].plannedElement;
5066
+ selectedElement = {
5067
+ articleCodex: ele.articleCodex,
5068
+ elementId: ele.elementId,
5069
+ gridSpace: {
5070
+ rows: ele.area.toY - ele.area.fromY + 1,
5071
+ colums: ele.area.toX - ele.area.fromX + 1
5072
+ },
5073
+ size: ele.size,
5074
+ rules: []
5075
+ };
5076
+ isSupport = !!matrix.find(function (x, idx) {
5077
+ return idx >= ele.area.fromX && idx < ele.area.toX && matrix[idx].length > ele.area.toY;
5078
+ }); // can't move if there is anything above these cells
5079
+ }
5080
+ for (var x = 0; x < maxWidth; x++) {
5081
+ if (!matrixWithMovables[x]) {
5082
+ if (matrix[x]) matrixWithMovables[x] = _toConsumableArray__default["default"](matrix[x]);else matrixWithMovables[x] = [];
5083
+ }
5084
+ if (!matrixWithMovables[x]) matrixWithMovables[x] = [];
5085
+ for (var y = 0; y < maxHeight; y++) {
5086
+ if (matrix[x].length > y && matrix[x][y]) matrixWithMovables[x][y] = matrix[x][y];else if (!isSupport && !(x >= ele.area.fromX && x < ele.area.toX)) matrixWithMovables[x][y] = {
5087
+ index: {
5088
+ x: x,
5089
+ y: y
5054
5090
  }
5055
- matrix[matrixIndex].push({ index: index, plannedElement });
5056
- }
5091
+ };
5057
5092
  }
5058
5093
  }
5059
- // Fill matrix rows to equal length
5060
- const maxLength = Math.max(...matrix.map((row) => row.length));
5061
- matrix.forEach((row) => {
5062
- while (row.length < maxLength) {
5063
- const lastCell = row[row.length - 1];
5064
- const newY = lastCell ? lastCell.index.y + 1 : 0;
5065
- row.push({
5066
- index: new Vector2(row[0]?.index.x || 0, newY),
5067
- plannedElement: undefined,
5068
- });
5094
+ var len = matrixWithMovables.length;
5095
+ matrixWithMovables[len] = [{
5096
+ index: {
5097
+ x: len,
5098
+ y: 0
5069
5099
  }
5100
+ }];
5101
+ return _objectSpread(_objectSpread({}, this.generalPlanningState), {}, {
5102
+ selectedElement: selectedElement,
5103
+ grids: [_objectSpread(_objectSpread({}, this.generalPlanningState.grids[0]), {}, {
5104
+ matrix: matrixWithMovables
5105
+ })]
5070
5106
  });
5071
- let selectedPlannedElement = selectedElementId ? plannedElements.find((p) => p.elementId === selectedElementId) : undefined;
5072
- if (selectedPlannedElement) {
5073
- //add the free let planningLeftLocation = this.getFreePlanningLocation(element.getElementId(), 'LEFT');
5074
- let planningLeftLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'LEFT');
5075
- let planningRightLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'RIGHT');
5076
- let planningTopLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'TOP');
5077
- let fixedPositionRules: FixedPositonRule[] = [];
5078
- if (planningLeftLocation) {
5079
- this.addFreeCellsToMatrix(matrix, planningLeftLocation.cells, fixedPositionRules);
5080
- }
5081
- if (planningRightLocation) {
5082
- this.addFreeCellsToMatrix(matrix, planningRightLocation.cells, fixedPositionRules);
5083
- }
5084
- if (planningTopLocation) {
5085
- this.addFreeCellsToMatrix(matrix, planningTopLocation.cells, fixedPositionRules);
5086
- }
5087
- selectedElement = {
5088
- articleCodex: selectedPlannedElement.articleCodex,
5089
- size: selectedPlannedElement.size,
5090
- gridSpace: {
5091
- rows: selectedPlannedElement.area.toY - selectedPlannedElement.area.fromY + 1,
5092
- colums: selectedPlannedElement.area.toX - selectedPlannedElement.area.fromX + 1,
5093
- },
5094
- rules: fixedPositionRules,
5095
- elementId: selectedElementId!,
5096
- };
5097
- }
5098
- return {
5099
- grids: [
5100
- {
5101
- index: 0, // boxplanner usecase grid index always 0
5102
- rowSizes: this.getRowSizes(matrix, selectedElement),
5103
- columnSizes: this.getColumnSizes(matrix, selectedElement),
5104
- matrix,
5105
- },
5106
- ],
5107
- selectedElement,
5108
- }; */
5109
5107
  }
5110
5108
  }, {
5111
5109
  key: "getRowSizes",
@@ -6107,7 +6105,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
6107
6105
  }, {
6108
6106
  key: "getGeneralPlanningState",
6109
6107
  value: function getGeneralPlanningState(selectedElementId) {
6110
- return this.boxPlannerGrid.getGeneralPlanningState(selectedElementId);
6108
+ return this.boxPlannerGrid.getGeneralPlanningState(true, selectedElementId);
6111
6109
  }
6112
6110
  }]);
6113
6111
  }();