@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
@@ -28705,7 +28705,7 @@ var DivaArticle = /*#__PURE__*/function () {
28705
28705
  break;
28706
28706
  }
28707
28707
  _context.next = 4;
28708
- return Promise.resolve().then(function () { return require('./ShelfPlanner-98a1e49a.js'); });
28708
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-86cdc14d.js'); });
28709
28709
  case 4:
28710
28710
  _yield$import = _context.sent;
28711
28711
  ShelfPlanner = _yield$import["default"];
@@ -33257,7 +33257,7 @@ var DivaSet = /*#__PURE__*/function () {
33257
33257
  break;
33258
33258
  }
33259
33259
  _context5.next = 3;
33260
- return Promise.resolve().then(function () { return require('./DoorPlanner-13625bb7.js'); });
33260
+ return Promise.resolve().then(function () { return require('./DoorPlanner-e036f53e.js'); });
33261
33261
  case 3:
33262
33262
  _yield$import = _context5.sent;
33263
33263
  DoorPlanner = _yield$import["default"];
@@ -36107,7 +36107,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
36107
36107
  value: function () {
36108
36108
  var _initOrderLineArticles = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(set, orderSet) {
36109
36109
  var _JSON$parse;
36110
- var catalogData, toLoadArticles, previousPartlistArticles, elements, _loop, i, _loop2, basketId, _i, toloadArticle, newArticle, _i2, _newArticle, parentArticle, _newArticle$shelfPlan, _i3, cellsOfGrid, j, cell, gridIndex, accessoire, doesFit, _i4, _newArticle2$doorPlan, _newArticle2;
36110
+ var catalogData, toLoadArticles, previousPartlistArticles, elements, _loop, i, _loop2, basketId, _i, toloadArticle, catalogArticle, newArticle, _i2, _newArticle, parentArticle, _newArticle$shelfPlan, _i3, cellsOfGrid, j, cell, gridIndex, accessoire, doesFit, _i4, _newArticle2$doorPlan, _newArticle2;
36111
36111
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context4) {
36112
36112
  while (1) switch (_context4.prev = _context4.next) {
36113
36113
  case 0:
@@ -36222,41 +36222,56 @@ var DivaSetHandler = /*#__PURE__*/function () {
36222
36222
  _i = 0;
36223
36223
  case 25:
36224
36224
  if (!(_i < toLoadArticles.length)) {
36225
- _context4.next = 41;
36225
+ _context4.next = 47;
36226
36226
  break;
36227
36227
  }
36228
36228
  toloadArticle = toLoadArticles[_i];
36229
- _context4.next = 29;
36229
+ catalogArticle = set.CatalogData.getCatalogArticleByArticleCodex(toloadArticle.articleCodex);
36230
+ if (!(!catalogArticle && toloadArticle.relatedToBasketId && !set.getSetState.onlyRunLogic)) {
36231
+ _context4.next = 33;
36232
+ break;
36233
+ }
36234
+ LOG$9.error(new DivaUtils.DivaError('articleCodex not found in article list. Could be due to exclusivity or a bug in the application!', {
36235
+ code: 'WC_0011',
36236
+ custom: {
36237
+ articleCodex: toloadArticle.articleCodex
36238
+ }
36239
+ }));
36240
+ _i--;
36241
+ toLoadArticles.splice(_i, 1);
36242
+ return _context4.abrupt("continue", 44);
36243
+ case 33:
36244
+ _context4.next = 35;
36230
36245
  return articleHandlerInstance.loadArticle(set, toloadArticle.articleCodex, toloadArticle, true);
36231
- case 29:
36246
+ case 35:
36232
36247
  newArticle = _context4.sent;
36233
36248
  if (!newArticle) {
36234
- _context4.next = 37;
36249
+ _context4.next = 43;
36235
36250
  break;
36236
36251
  }
36237
36252
  set.addArticle(newArticle);
36238
- _context4.next = 34;
36253
+ _context4.next = 40;
36239
36254
  return articleHandlerInstance.toDoAfterArticleLoaded(newArticle, {}, toloadArticle.VariantValues, 'initializing', toloadArticle.VariantItemData, true);
36240
- case 34:
36255
+ case 40:
36241
36256
  toLoadArticles[_i].basketId = newArticle.basketId;
36242
- _context4.next = 38;
36257
+ _context4.next = 44;
36243
36258
  break;
36244
- case 37:
36259
+ case 43:
36245
36260
  LOG$9.error(new DivaUtils.DivaError('articleCodex not found in article list. Could be due to exclusivity or a bug in the application!', {
36246
36261
  code: 'WC_0011',
36247
36262
  custom: {
36248
36263
  articleCodex: toloadArticle.articleCodex
36249
36264
  }
36250
36265
  }));
36251
- case 38:
36266
+ case 44:
36252
36267
  _i++;
36253
36268
  _context4.next = 25;
36254
36269
  break;
36255
- case 41:
36270
+ case 47:
36256
36271
  _i2 = 0;
36257
- case 42:
36272
+ case 48:
36258
36273
  if (!(_i2 < toLoadArticles.length)) {
36259
- _context4.next = 71;
36274
+ _context4.next = 77;
36260
36275
  break;
36261
36276
  }
36262
36277
  _newArticle = set.getArticleByBasketId(toLoadArticles[_i2].basketId);
@@ -36272,99 +36287,99 @@ var DivaSetHandler = /*#__PURE__*/function () {
36272
36287
  }
36273
36288
  //init shelfAcc on parent
36274
36289
  if (!(_newArticle !== null && _newArticle !== void 0 && _newArticle.shelfPlanner)) {
36275
- _context4.next = 68;
36290
+ _context4.next = 74;
36276
36291
  break;
36277
36292
  }
36278
36293
  if (!((_newArticle$shelfPlan = _newArticle.shelfPlanData) !== null && _newArticle$shelfPlan !== void 0 && _newArticle$shelfPlan.ShelfPlanner2)) {
36279
- _context4.next = 68;
36294
+ _context4.next = 74;
36280
36295
  break;
36281
36296
  }
36282
36297
  _i3 = 0;
36283
- case 48:
36298
+ case 54:
36284
36299
  if (!(_i3 < _newArticle.shelfPlanData.ShelfPlanner2.length)) {
36285
- _context4.next = 68;
36300
+ _context4.next = 74;
36286
36301
  break;
36287
36302
  }
36288
36303
  cellsOfGrid = _newArticle.shelfPlanData.ShelfPlanner2[_i3];
36289
36304
  j = 0;
36290
- case 51:
36305
+ case 57:
36291
36306
  if (!(j < cellsOfGrid.length)) {
36292
- _context4.next = 65;
36307
+ _context4.next = 71;
36293
36308
  break;
36294
36309
  }
36295
36310
  cell = cellsOfGrid[j];
36296
36311
  gridIndex = cell.gridIndex !== undefined ? cell.gridIndex : _i3;
36297
36312
  if (!(cell.inUse != -1 && j == cell.inUse)) {
36298
- _context4.next = 62;
36313
+ _context4.next = 68;
36299
36314
  break;
36300
36315
  }
36301
36316
  accessoire = set.getArticleByBasketId(cell.usedArticleData.BasketID);
36302
36317
  if (!accessoire) {
36303
- _context4.next = 62;
36318
+ _context4.next = 68;
36304
36319
  break;
36305
36320
  }
36306
36321
  doesFit = _newArticle.shelfPlanner.tryFitOnShelfOfGrid(gridIndex, j, accessoire);
36307
36322
  if (!(doesFit !== false && doesFit.type != 'doesNotFit' && doesFit.type != 'notAllowedByParentRule' && doesFit.type != 'notAllowedByAccessoireRule' && doesFit.type != 'notAllowedByMaxQuantityReached' && doesFit.index !== undefined)) {
36308
- _context4.next = 62;
36323
+ _context4.next = 68;
36309
36324
  break;
36310
36325
  }
36311
- _context4.next = 61;
36326
+ _context4.next = 67;
36312
36327
  return _newArticle.shelfPlanner.addAccessoireInCellInGrid(accessoire, gridIndex, j, doesFit.type, {
36313
36328
  noDelete: cell.noDelete,
36314
36329
  noMove: cell.noMove
36315
36330
  });
36316
- case 61:
36331
+ case 67:
36317
36332
  accessoire.relatedToShelfGrid = gridIndex;
36318
- case 62:
36333
+ case 68:
36319
36334
  j++;
36320
- _context4.next = 51;
36335
+ _context4.next = 57;
36321
36336
  break;
36322
- case 65:
36337
+ case 71:
36323
36338
  _i3++;
36324
- _context4.next = 48;
36339
+ _context4.next = 54;
36325
36340
  break;
36326
- case 68:
36341
+ case 74:
36327
36342
  _i2++;
36328
- _context4.next = 42;
36343
+ _context4.next = 48;
36329
36344
  break;
36330
- case 71:
36345
+ case 77:
36331
36346
  _i4 = 0;
36332
- case 72:
36347
+ case 78:
36333
36348
  if (!(_i4 < toLoadArticles.length)) {
36334
- _context4.next = 85;
36349
+ _context4.next = 91;
36335
36350
  break;
36336
36351
  }
36337
36352
  _newArticle2 = set.getArticleByBasketId(toLoadArticles[_i4].basketId);
36338
36353
  if (_newArticle2) {
36339
- _context4.next = 76;
36354
+ _context4.next = 82;
36340
36355
  break;
36341
36356
  }
36342
- return _context4.abrupt("continue", 82);
36343
- case 76:
36357
+ return _context4.abrupt("continue", 88);
36358
+ case 82:
36344
36359
  if (!(_newArticle2.j3D && _newArticle2.j3D.Doors && !((_newArticle2$doorPlan = _newArticle2.doorPlanner) !== null && _newArticle2$doorPlan !== void 0 && _newArticle2$doorPlan.alreadyInitialized(_newArticle2.basketId)))) {
36345
- _context4.next = 79;
36360
+ _context4.next = 85;
36346
36361
  break;
36347
36362
  }
36348
- _context4.next = 79;
36363
+ _context4.next = 85;
36349
36364
  return set.initializeDoorPlanner(_newArticle2.j3D, _newArticle2);
36350
- case 79:
36365
+ case 85:
36351
36366
  if (!_newArticle2.doorPlanner) {
36352
- _context4.next = 82;
36367
+ _context4.next = 88;
36353
36368
  break;
36354
36369
  }
36355
36370
  _newArticle2.doorPlanner.initDoorPlanner();
36356
- return _context4.abrupt("break", 85);
36357
- case 82:
36371
+ return _context4.abrupt("break", 91);
36372
+ case 88:
36358
36373
  _i4++;
36359
- _context4.next = 72;
36374
+ _context4.next = 78;
36360
36375
  break;
36361
- case 85:
36376
+ case 91:
36362
36377
  set.configSingle = configTreeHandler.checkIfLoadedArticlesAreConfigSingle(set);
36363
- _context4.next = 88;
36378
+ _context4.next = 94;
36364
36379
  return this.updateArticlesOptionStatesOfActSet(set, {}, [], undefined, 'initializing');
36365
- case 88:
36380
+ case 94:
36366
36381
  DivaUtils__default["default"].endSpanOfApm('Articles initialize');
36367
- case 89:
36382
+ case 95:
36368
36383
  case "end":
36369
36384
  return _context4.stop();
36370
36385
  }
@@ -40343,7 +40358,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
40343
40358
  break;
40344
40359
  case 3:
40345
40360
  _context12.next = 5;
40346
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-4707db89.js'); });
40361
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-33d93fef.js'); });
40347
40362
  case 5:
40348
40363
  _yield$import = _context12.sent;
40349
40364
  PfisterWWSHandler = _yield$import["default"];
@@ -40351,7 +40366,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
40351
40366
  return _context12.abrupt("break", 27);
40352
40367
  case 9:
40353
40368
  _context12.next = 11;
40354
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-fcd38ba9.js'); });
40369
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-78ef91e8.js'); });
40355
40370
  case 11:
40356
40371
  _yield$import2 = _context12.sent;
40357
40372
  LiviqueWWSHandler = _yield$import2["default"];
@@ -40359,7 +40374,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
40359
40374
  return _context12.abrupt("break", 27);
40360
40375
  case 15:
40361
40376
  _context12.next = 17;
40362
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-f1cd3ad9.js'); });
40377
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-157b6716.js'); });
40363
40378
  case 17:
40364
40379
  _yield$import3 = _context12.sent;
40365
40380
  SeriousWWSHandler = _yield$import3["default"];
@@ -40367,7 +40382,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
40367
40382
  return _context12.abrupt("break", 27);
40368
40383
  case 21:
40369
40384
  _context12.next = 23;
40370
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-28018691.js'); });
40385
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-9951190e.js'); });
40371
40386
  case 23:
40372
40387
  _yield$import4 = _context12.sent;
40373
40388
  StandardWWSHandler = _yield$import4["default"];
@@ -41791,7 +41806,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
41791
41806
  while (1) switch (_context3.prev = _context3.next) {
41792
41807
  case 0:
41793
41808
  _context3.next = 2;
41794
- return Promise.resolve().then(function () { return require('./Host3DSignalR-91921736.js'); });
41809
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-5e6149c8.js'); });
41795
41810
  case 2:
41796
41811
  _yield$import = _context3.sent;
41797
41812
  Host3DSignalR = _yield$import["default"];
@@ -43449,7 +43464,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
43449
43464
  break;
43450
43465
  case 8:
43451
43466
  _context4.next = 10;
43452
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-30ad0b92.js'); });
43467
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-1db6f924.js'); });
43453
43468
  case 10:
43454
43469
  _yield$import = _context4.sent;
43455
43470
  DivaStandardPlanner = _yield$import["default"];
@@ -43460,7 +43475,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
43460
43475
  return _context4.abrupt("break", 21);
43461
43476
  case 15:
43462
43477
  _context4.next = 17;
43463
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-a7a2bcb9.js'); });
43478
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-78547263.js'); });
43464
43479
  case 17:
43465
43480
  _yield$import2 = _context4.sent;
43466
43481
  DivaBoxPlanner = _yield$import2["default"];
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-1c5aa2c3.js');
5
+ var index = require('./index-65a02251.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/classCallCheck');
@@ -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-9aa6880b.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-d7b8a9a3.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-f28b33b6.js';
9
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-710fe586.js';
10
10
  import '@babel/runtime/helpers/slicedToArray';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
@@ -3460,7 +3460,28 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
3460
3460
  curGrid[cell.index.x].splice(cell.index.y, 1);
3461
3461
  if (curGrid[cell.index.x].length == 0) curGrid.splice(cell.index.x, 1);
3462
3462
  });
3463
- if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = curGrid;else this.generalPlanningState.grids[0].matrix = curGrid;
3463
+ var refreshedGrid = [];
3464
+ curGrid.forEach(function (row, x) {
3465
+ refreshedGrid[x] = [];
3466
+ row.forEach(function (column, y) {
3467
+ var area = column.plannedElement.area;
3468
+ refreshedGrid[x][y] = {
3469
+ index: {
3470
+ x: x,
3471
+ y: y
3472
+ },
3473
+ plannedElement: _objectSpread(_objectSpread({}, column.plannedElement), {}, {
3474
+ area: {
3475
+ fromX: x,
3476
+ fromY: y,
3477
+ toX: x + (area.toX - area.fromX),
3478
+ toY: y + (area.toY - area.fromY)
3479
+ }
3480
+ })
3481
+ };
3482
+ });
3483
+ });
3484
+ if (gridCellsToDelete.backside) this.generalPlanningState.grids[1].matrix = refreshedGrid;else this.generalPlanningState.grids[0].matrix = refreshedGrid;
3464
3485
  }
3465
3486
 
3466
3487
  /**
@@ -4096,18 +4117,22 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4096
4117
  if (this.hasActiveBackside) throw new Error('this function is doesnt implement the backside logic (yet)');
4097
4118
  var result = [];
4098
4119
  var lastHeight = -1;
4099
- for (var idx = 0; idx < this.getColumnCount(); idx++) {
4100
- var row = this.generalPlanningState.grids[0].matrix[idx];
4101
- var height = row.reduce(function (added, column) {
4102
- return column.height + added;
4103
- }, 0);
4120
+ for (var x = 0; x < this.getColumnCount();) {
4121
+ var row = this.generalPlanningState.grids[0].matrix[x];
4122
+ var height = 0;
4123
+ for (var y = 0; y < row.length;) {
4124
+ var element = row[y].plannedElement;
4125
+ height += element.size.height;
4126
+ y = element.area.toY;
4127
+ }
4104
4128
  if (height == lastHeight || onBottom) {
4105
4129
  if (!result[result.length - 1]) result.push([]);
4106
- result[result.length - 1].push(this.getPlannerElementAtGridPos(idx, row.length - 1, false));
4130
+ result[result.length - 1].push(this.getPlannerElementAtGridPos(x, row.length - 1, false));
4107
4131
  } else {
4108
- result.push([this.getPlannerElementAtGridPos(idx, row.length - 1, false)]);
4132
+ result.push([this.getPlannerElementAtGridPos(x, row.length - 1, false)]);
4109
4133
  }
4110
4134
  lastHeight = height;
4135
+ x = row[row.length - 1].plannedElement ? row[row.length - 1].plannedElement.area.toX : x + 1;
4111
4136
  }
4112
4137
  return result;
4113
4138
  }
@@ -4211,7 +4236,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4211
4236
  };
4212
4237
  var curGrid = curPos.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
4213
4238
  var resultPlannerIds = [];
4214
- for (var i = curPos.startColIndex; i <= curPos.endColIndex; i++) {
4239
+ for (var i = curPos.startColIndex; i < curPos.endColIndex; i++) {
4215
4240
  for (var j = curPos.startRowIndex--; j >= 0; j--) {
4216
4241
  var _neighborCell$planned;
4217
4242
  var neighborCell = curGrid[i][j];
@@ -4510,12 +4535,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4510
4535
  allCheckedElementIds.push(elementId);
4511
4536
  var topNeighbors = this.getNeighborElements(elementId, 'TOP');
4512
4537
  var rightNeighbors = this.getNeighborElements(elementId, 'RIGHT');
4513
- for (var n = 0; n < topNeighbors.length; n++) {
4514
- dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[n]]);
4515
- }
4516
- for (var n = 0; n < rightNeighbors.length; n++) {
4517
- dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[n]]);
4518
- }
4538
+ if (topNeighbors.length > 0) dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[0]]);
4539
+ if (rightNeighbors.length > 0) dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[0]]);
4519
4540
  element.PosNr = posNr;
4520
4541
  posNr++;
4521
4542
  }
@@ -4537,12 +4558,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4537
4558
  }
4538
4559
  var _topNeighbors = this.getNeighborElements(_elementId6, 'TOP');
4539
4560
  var _rightNeighbors = this.getNeighborElements(_elementId6, 'RIGHT');
4540
- for (var n = 0; n < _topNeighbors.length; n++) {
4541
- dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[n]]);
4542
- }
4543
- for (var n = 0; n < _rightNeighbors.length; n++) {
4544
- dockingPointHandlerInst.tryDockElement(_element2, 'AVL', [_rightNeighbors[n]]);
4545
- }
4561
+ if (_topNeighbors.length > 0) dockingPointHandlerInst.tryDockElement(_element2, 'AVO', [_topNeighbors[0]]);
4562
+ if (_rightNeighbors.length > 0) dockingPointHandlerInst.tryDockElement(_element2, 'AVL', [_rightNeighbors[0]]);
4546
4563
  _element2.PosNr = posNr;
4547
4564
  posNr++;
4548
4565
  }
@@ -4990,12 +5007,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4990
5007
  }
4991
5008
  }, {
4992
5009
  key: "getGeneralPlanningState",
4993
- value: function getGeneralPlanningState(selectedElementId) {
4994
- return this.generalPlanningState;
4995
- /*
4996
- let matrix: Cell[][] = [];
4997
- let selectedElement: SelectedElement | undefined = undefined;
4998
- const plannedElements: PlannedElement[] = Array.from(this.plannerElements.values()).map((p) => {
5010
+ value: function getGeneralPlanningState() {
5011
+ var movables = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
5012
+ var selectedElementId = arguments.length > 1 ? arguments[1] : undefined;
5013
+ if (!movables) return this.generalPlanningState;
5014
+ // fill to equal size
5015
+ var matrix = this.generalPlanningState.grids[0].matrix;
5016
+ var matrixWithMovables = [];
5017
+ var maxWidth = matrix.length;
5018
+ var maxHeight = 0;
5019
+ matrix.forEach(function (x) {
5020
+ if (x.length > maxHeight) maxHeight = x.length;
5021
+ });
5022
+ Array.from(this.plannerElements.values()).map(function (p) {
4999
5023
  return {
5000
5024
  basketId: p.getBasketId(),
5001
5025
  elementId: p.getElementId(),
@@ -5003,97 +5027,63 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5003
5027
  size: {
5004
5028
  width: p.getWidth(),
5005
5029
  height: p.getHeight(),
5006
- depth: p.getDepth(),
5030
+ depth: p.getDepth()
5007
5031
  },
5008
5032
  area: {
5009
5033
  fromX: undefined,
5010
5034
  toX: undefined,
5011
5035
  fromY: undefined,
5012
- toY: undefined,
5013
- } as any,
5036
+ toY: undefined
5037
+ }
5014
5038
  };
5015
5039
  });
5016
- let frontGrid = this.generalPlanningState.grids[0].matrix;
5017
- let index = { x: 0, y: 0 };
5018
- for (let i = 0; i < frontGrid.length; i++) {
5019
- matrix.push([]);
5020
- const frontGridRow = frontGrid[i];
5021
- for (let j = 0; j < frontGridRow.length; j++) {
5022
- const cell = frontGridRow[j];
5023
- let elementId = cell.plannedElement?.elementId;
5024
- if (elementId && cell) {
5025
- const plannedElement = plannedElements.find((p) => p.elementId === elementId);
5026
- let matrixIndex = 0;
5027
- for (let idx = cell.index.x - 1; idx >= 0; idx--)
5028
- matrixIndex += frontGridRow[idx]!.plannedElement!.size.width / 19.2;
5029
- if (plannedElement) {
5030
-
5031
- plannedElement.area.fromX = matrixIndex;
5032
- plannedElement.area.toX = matrixIndex + cell.plannedElement!.size.width / 19.2;
5033
- plannedElement.area.fromY = cell.index.y;
5034
- plannedElement.area.toY = cell.index.y + cell.plannedElement!.size.height / 19.2;
5035
- for (let x = plannedElement.area.fromX; x < plannedElement.area.toX; x++) {
5036
- for (let y = plannedElement.area.fromY; y < plannedElement.area.toY; y++) {
5037
- if (!matrix[x]) matrix[x] = [];
5038
- matrix[x][y] = { index: { x, y }, plannedElement };
5039
- }
5040
- }
5041
- continue;
5040
+ var isSupport = false;
5041
+ var selectedElement = undefined;
5042
+ var ele = undefined;
5043
+ if (selectedElementId) {
5044
+ var res = this.getCellsInGridByElementId(selectedElementId);
5045
+ ele = res.cells[0].plannedElement;
5046
+ selectedElement = {
5047
+ articleCodex: ele.articleCodex,
5048
+ elementId: ele.elementId,
5049
+ gridSpace: {
5050
+ rows: ele.area.toY - ele.area.fromY + 1,
5051
+ colums: ele.area.toX - ele.area.fromX + 1
5052
+ },
5053
+ size: ele.size,
5054
+ rules: []
5055
+ };
5056
+ isSupport = !!matrix.find(function (x, idx) {
5057
+ return idx >= ele.area.fromX && idx < ele.area.toX && matrix[idx].length > ele.area.toY;
5058
+ }); // can't move if there is anything above these cells
5059
+ }
5060
+ for (var x = 0; x < maxWidth; x++) {
5061
+ if (!matrixWithMovables[x]) {
5062
+ if (matrix[x]) matrixWithMovables[x] = _toConsumableArray(matrix[x]);else matrixWithMovables[x] = [];
5063
+ }
5064
+ if (!matrixWithMovables[x]) matrixWithMovables[x] = [];
5065
+ for (var y = 0; y < maxHeight; y++) {
5066
+ 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] = {
5067
+ index: {
5068
+ x: x,
5069
+ y: y
5042
5070
  }
5043
- matrix[matrixIndex].push({ index: index, plannedElement });
5044
- }
5071
+ };
5045
5072
  }
5046
5073
  }
5047
- // Fill matrix rows to equal length
5048
- const maxLength = Math.max(...matrix.map((row) => row.length));
5049
- matrix.forEach((row) => {
5050
- while (row.length < maxLength) {
5051
- const lastCell = row[row.length - 1];
5052
- const newY = lastCell ? lastCell.index.y + 1 : 0;
5053
- row.push({
5054
- index: new Vector2(row[0]?.index.x || 0, newY),
5055
- plannedElement: undefined,
5056
- });
5074
+ var len = matrixWithMovables.length;
5075
+ matrixWithMovables[len] = [{
5076
+ index: {
5077
+ x: len,
5078
+ y: 0
5057
5079
  }
5080
+ }];
5081
+ return _objectSpread(_objectSpread({}, this.generalPlanningState), {}, {
5082
+ selectedElement: selectedElement,
5083
+ grids: [_objectSpread(_objectSpread({}, this.generalPlanningState.grids[0]), {}, {
5084
+ matrix: matrixWithMovables
5085
+ })]
5058
5086
  });
5059
- let selectedPlannedElement = selectedElementId ? plannedElements.find((p) => p.elementId === selectedElementId) : undefined;
5060
- if (selectedPlannedElement) {
5061
- //add the free let planningLeftLocation = this.getFreePlanningLocation(element.getElementId(), 'LEFT');
5062
- let planningLeftLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'LEFT');
5063
- let planningRightLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'RIGHT');
5064
- let planningTopLocation = this.getFreePlanningLocation(selectedPlannedElement.elementId, 'TOP');
5065
- let fixedPositionRules: FixedPositonRule[] = [];
5066
- if (planningLeftLocation) {
5067
- this.addFreeCellsToMatrix(matrix, planningLeftLocation.cells, fixedPositionRules);
5068
- }
5069
- if (planningRightLocation) {
5070
- this.addFreeCellsToMatrix(matrix, planningRightLocation.cells, fixedPositionRules);
5071
- }
5072
- if (planningTopLocation) {
5073
- this.addFreeCellsToMatrix(matrix, planningTopLocation.cells, fixedPositionRules);
5074
- }
5075
- selectedElement = {
5076
- articleCodex: selectedPlannedElement.articleCodex,
5077
- size: selectedPlannedElement.size,
5078
- gridSpace: {
5079
- rows: selectedPlannedElement.area.toY - selectedPlannedElement.area.fromY + 1,
5080
- colums: selectedPlannedElement.area.toX - selectedPlannedElement.area.fromX + 1,
5081
- },
5082
- rules: fixedPositionRules,
5083
- elementId: selectedElementId!,
5084
- };
5085
- }
5086
- return {
5087
- grids: [
5088
- {
5089
- index: 0, // boxplanner usecase grid index always 0
5090
- rowSizes: this.getRowSizes(matrix, selectedElement),
5091
- columnSizes: this.getColumnSizes(matrix, selectedElement),
5092
- matrix,
5093
- },
5094
- ],
5095
- selectedElement,
5096
- }; */
5097
5087
  }
5098
5088
  }, {
5099
5089
  key: "getRowSizes",
@@ -6095,7 +6085,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
6095
6085
  }, {
6096
6086
  key: "getGeneralPlanningState",
6097
6087
  value: function getGeneralPlanningState(selectedElementId) {
6098
- return this.boxPlannerGrid.getGeneralPlanningState(selectedElementId);
6088
+ return this.boxPlannerGrid.getGeneralPlanningState(true, selectedElementId);
6099
6089
  }
6100
6090
  }]);
6101
6091
  }();