@crystaldesign/web-planner-logic 25.13.0-beta.43 → 25.13.0-beta.45

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 (29) hide show
  1. package/build/cjs/{DivaBoxPlanner-a7a2bcb9.js → DivaBoxPlanner-78547263.js} +99 -109
  2. package/build/cjs/{DivaStandardPlanner-30ad0b92.js → DivaStandardPlanner-1db6f924.js} +95 -74
  3. package/build/cjs/{DoorPlanner-13625bb7.js → DoorPlanner-e036f53e.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-91921736.js → Host3DSignalR-5e6149c8.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-fcd38ba9.js → LiviqueWWSHandler-78ef91e8.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-4707db89.js → PfisterWWSHandler-33d93fef.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-eda6acbb.js → PlannerHandler2D-f6080d6d.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-f1cd3ad9.js → SeriousBasketHandler-157b6716.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-98a1e49a.js → ShelfPlanner-86cdc14d.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-28018691.js → StandardWWSHandler-9951190e.js} +1 -1
  11. package/build/cjs/{index-1c5aa2c3.js → index-65a02251.js} +71 -56
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-e4a3c8dd.js → DivaBoxPlanner-b1099e12.js} +99 -109
  14. package/build/esm/{DivaStandardPlanner-c2c8606b.js → DivaStandardPlanner-4a3fbda9.js} +95 -74
  15. package/build/esm/{DoorPlanner-e1456c31.js → DoorPlanner-94315f66.js} +1 -1
  16. package/build/esm/{Host3DSignalR-9d0f0ffe.js → Host3DSignalR-ce7888d3.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-cdd66c4d.js → LiviqueWWSHandler-3412addf.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-4f6681e6.js → PfisterWWSHandler-52de90b4.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-f28b33b6.js → PlannerHandler2D-710fe586.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-7ca42dbb.js → SeriousBasketHandler-7268bd79.js} +1 -1
  21. package/build/esm/{ShelfPlanner-6dadb2ac.js → ShelfPlanner-1c7fb9bd.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-48e56aed.js → StandardWWSHandler-311c2ea4.js} +1 -1
  23. package/build/esm/{index-9aa6880b.js → index-d7b8a9a3.js} +71 -56
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +1 -1
  26. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  28. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  29. 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-65a02251.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-f6080d6d.js');
12
12
  require('@babel/runtime/helpers/slicedToArray');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
@@ -3472,7 +3472,28 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3472
3472
  curGrid[cell.index.x].splice(cell.index.y, 1);
3473
3473
  if (curGrid[cell.index.x].length == 0) curGrid.splice(cell.index.x, 1);
3474
3474
  });
3475
- if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = curGrid;else this.generalPlanningState.grids[0].matrix = curGrid;
3475
+ var refreshedGrid = [];
3476
+ curGrid.forEach(function (row, x) {
3477
+ refreshedGrid[x] = [];
3478
+ row.forEach(function (column, y) {
3479
+ var area = column.plannedElement.area;
3480
+ refreshedGrid[x][y] = {
3481
+ index: {
3482
+ x: x,
3483
+ y: y
3484
+ },
3485
+ plannedElement: _objectSpread(_objectSpread({}, column.plannedElement), {}, {
3486
+ area: {
3487
+ fromX: x,
3488
+ fromY: y,
3489
+ toX: x + (area.toX - area.fromX),
3490
+ toY: y + (area.toY - area.fromY)
3491
+ }
3492
+ })
3493
+ };
3494
+ });
3495
+ });
3496
+ if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = refreshedGrid;else this.generalPlanningState.grids[0].matrix = refreshedGrid;
3476
3497
  }
3477
3498
 
3478
3499
  /**
@@ -4108,18 +4129,22 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4108
4129
  if (this.hasActiveBackside) throw new Error('this function is doesnt implement the backside logic (yet)');
4109
4130
  var result = [];
4110
4131
  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);
4132
+ for (var x = 0; x < this.getColumnCount();) {
4133
+ var row = this.generalPlanningState.grids[0].matrix[x];
4134
+ var height = 0;
4135
+ for (var y = 0; y < row.length;) {
4136
+ var element = row[y].plannedElement;
4137
+ height += element.size.height;
4138
+ y = element.area.toY;
4139
+ }
4116
4140
  if (height == lastHeight || onBottom) {
4117
4141
  if (!result[result.length - 1]) result.push([]);
4118
- result[result.length - 1].push(this.getPlannerElementAtGridPos(idx, row.length - 1, false));
4142
+ result[result.length - 1].push(this.getPlannerElementAtGridPos(x, row.length - 1, false));
4119
4143
  } else {
4120
- result.push([this.getPlannerElementAtGridPos(idx, row.length - 1, false)]);
4144
+ result.push([this.getPlannerElementAtGridPos(x, row.length - 1, false)]);
4121
4145
  }
4122
4146
  lastHeight = height;
4147
+ x = row[row.length - 1].plannedElement ? row[row.length - 1].plannedElement.area.toX : x + 1;
4123
4148
  }
4124
4149
  return result;
4125
4150
  }
@@ -4223,7 +4248,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4223
4248
  };
4224
4249
  var curGrid = curPos.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
4225
4250
  var resultPlannerIds = [];
4226
- for (var i = curPos.startColIndex; i <= curPos.endColIndex; i++) {
4251
+ for (var i = curPos.startColIndex; i < curPos.endColIndex; i++) {
4227
4252
  for (var j = curPos.startRowIndex--; j >= 0; j--) {
4228
4253
  var _neighborCell$planned;
4229
4254
  var neighborCell = curGrid[i][j];
@@ -4522,12 +4547,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4522
4547
  allCheckedElementIds.push(elementId);
4523
4548
  var topNeighbors = this.getNeighborElements(elementId, 'TOP');
4524
4549
  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
- }
4550
+ if (topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[0]]);
4551
+ if (rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[0]]);
4531
4552
  element.PosNr = posNr;
4532
4553
  posNr++;
4533
4554
  }
@@ -4549,12 +4570,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4549
4570
  }
4550
4571
  var _topNeighbors = this.getNeighborElements(_elementId6, 'TOP');
4551
4572
  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
- }
4573
+ if (_topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[0]]);
4574
+ if (_rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(_element2, 'AVL', [_rightNeighbors[0]]);
4558
4575
  _element2.PosNr = posNr;
4559
4576
  posNr++;
4560
4577
  }
@@ -5002,12 +5019,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5002
5019
  }
5003
5020
  }, {
5004
5021
  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) => {
5022
+ value: function getGeneralPlanningState() {
5023
+ var movables = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
5024
+ var selectedElementId = arguments.length > 1 ? arguments[1] : undefined;
5025
+ if (!movables) return this.generalPlanningState;
5026
+ // fill to equal size
5027
+ var matrix = this.generalPlanningState.grids[0].matrix;
5028
+ var matrixWithMovables = [];
5029
+ var maxWidth = matrix.length;
5030
+ var maxHeight = 0;
5031
+ matrix.forEach(function (x) {
5032
+ if (x.length > maxHeight) maxHeight = x.length;
5033
+ });
5034
+ Array.from(this.plannerElements.values()).map(function (p) {
5011
5035
  return {
5012
5036
  basketId: p.getBasketId(),
5013
5037
  elementId: p.getElementId(),
@@ -5015,97 +5039,63 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5015
5039
  size: {
5016
5040
  width: p.getWidth(),
5017
5041
  height: p.getHeight(),
5018
- depth: p.getDepth(),
5042
+ depth: p.getDepth()
5019
5043
  },
5020
5044
  area: {
5021
5045
  fromX: undefined,
5022
5046
  toX: undefined,
5023
5047
  fromY: undefined,
5024
- toY: undefined,
5025
- } as any,
5048
+ toY: undefined
5049
+ }
5026
5050
  };
5027
5051
  });
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;
5052
+ var isSupport = false;
5053
+ var selectedElement = undefined;
5054
+ var ele = undefined;
5055
+ if (selectedElementId) {
5056
+ var res = this.getCellsInGridByElementId(selectedElementId);
5057
+ ele = res.cells[0].plannedElement;
5058
+ selectedElement = {
5059
+ articleCodex: ele.articleCodex,
5060
+ elementId: ele.elementId,
5061
+ gridSpace: {
5062
+ rows: ele.area.toY - ele.area.fromY + 1,
5063
+ colums: ele.area.toX - ele.area.fromX + 1
5064
+ },
5065
+ size: ele.size,
5066
+ rules: []
5067
+ };
5068
+ isSupport = !!matrix.find(function (x, idx) {
5069
+ return idx >= ele.area.fromX && idx < ele.area.toX && matrix[idx].length > ele.area.toY;
5070
+ }); // can't move if there is anything above these cells
5071
+ }
5072
+ for (var x = 0; x < maxWidth; x++) {
5073
+ if (!matrixWithMovables[x]) {
5074
+ if (matrix[x]) matrixWithMovables[x] = _toConsumableArray__default["default"](matrix[x]);else matrixWithMovables[x] = [];
5075
+ }
5076
+ if (!matrixWithMovables[x]) matrixWithMovables[x] = [];
5077
+ for (var y = 0; y < maxHeight; y++) {
5078
+ 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] = {
5079
+ index: {
5080
+ x: x,
5081
+ y: y
5054
5082
  }
5055
- matrix[matrixIndex].push({ index: index, plannedElement });
5056
- }
5083
+ };
5057
5084
  }
5058
5085
  }
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
- });
5086
+ var len = matrixWithMovables.length;
5087
+ matrixWithMovables[len] = [{
5088
+ index: {
5089
+ x: len,
5090
+ y: 0
5069
5091
  }
5092
+ }];
5093
+ return _objectSpread(_objectSpread({}, this.generalPlanningState), {}, {
5094
+ selectedElement: selectedElement,
5095
+ grids: [_objectSpread(_objectSpread({}, this.generalPlanningState.grids[0]), {}, {
5096
+ matrix: matrixWithMovables
5097
+ })]
5070
5098
  });
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
5099
  }
5110
5100
  }, {
5111
5101
  key: "getRowSizes",
@@ -6107,7 +6097,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
6107
6097
  }, {
6108
6098
  key: "getGeneralPlanningState",
6109
6099
  value: function getGeneralPlanningState(selectedElementId) {
6110
- return this.boxPlannerGrid.getGeneralPlanningState(selectedElementId);
6100
+ return this.boxPlannerGrid.getGeneralPlanningState(true, selectedElementId);
6111
6101
  }
6112
6102
  }]);
6113
6103
  }();