@crystaldesign/web-planner-logic 26.13.0-beta.26 → 26.13.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 (54) hide show
  1. package/build/cjs/{DivaBoxPlanner-cf785c8e.js → DivaBoxPlanner-6c5ae2d0.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-76758261.js → DivaStandardPlanner-7045ce9f.js} +50 -41
  3. package/build/cjs/{DoorPlanner-322b433f.js → DoorPlanner-87dc0b5f.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-720088d4.js → Host3DSignalR-33b81ac2.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-ea49263b.js → LiviqueWWSHandler-da46fa9b.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-61d7dc26.js → PfisterWWSHandler-51dfaec3.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-cd71fcd3.js → PlannerHandler2D-b0874113.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-966ca145.js → SeriousBasketHandler-a42a4a83.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-3a790d65.js → ShelfPlanner-fb32d93b.js} +125 -35
  10. package/build/cjs/{StandardWWSHandler-b565c684.js → StandardWWSHandler-8e6d457c.js} +1 -1
  11. package/build/cjs/{index-dfe2c0e3.js → index-b4ba898f.js} +240 -98
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-570bd517.js → DivaBoxPlanner-cd23c571.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-712385df.js → DivaStandardPlanner-5c0a391a.js} +50 -41
  15. package/build/esm/{DoorPlanner-3670fee0.js → DoorPlanner-059569a8.js} +1 -1
  16. package/build/esm/{Host3DSignalR-68938df9.js → Host3DSignalR-b9407002.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-2cd9654b.js → LiviqueWWSHandler-4135bbe1.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-7593c211.js → PfisterWWSHandler-d66b4d8d.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-487406e6.js → PlannerHandler2D-8527ab43.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-b13a4be4.js → SeriousBasketHandler-71988cad.js} +1 -1
  21. package/build/esm/{ShelfPlanner-8eeb52df.js → ShelfPlanner-603c60f4.js} +125 -35
  22. package/build/esm/{StandardWWSHandler-33aac025.js → StandardWWSHandler-c4076650.js} +1 -1
  23. package/build/esm/{index-0d6a39cb.js → index-f6b2e2f4.js} +240 -98
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +3 -0
  28. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  30. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts +5 -0
  31. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +7 -0
  33. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  34. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts +2 -0
  35. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts.map +1 -1
  36. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +21 -0
  38. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -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/model/Planner/PlannerElementData.d.ts +12 -0
  41. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
  42. package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts +2 -1
  43. package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts +2 -0
  45. package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts.map +1 -0
  46. package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts +2 -0
  47. package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts.map +1 -0
  48. package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts +2 -0
  49. package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts.map +1 -0
  50. package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts +2 -0
  51. package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts.map +1 -0
  52. package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts +2 -0
  53. package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts.map +1 -0
  54. package/package.json +3 -3
@@ -5,11 +5,11 @@ 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-dfe2c0e3.js');
8
+ var index = require('./index-b4ba898f.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
- var PlannerHandler2D = require('./PlannerHandler2D-cd71fcd3.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-b0874113.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@babel/runtime/helpers/typeof');
@@ -6,10 +6,10 @@ 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-dfe2c0e3.js');
9
+ var index = require('./index-b4ba898f.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-cd71fcd3.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-b0874113.js');
13
13
  require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('axios');
@@ -426,6 +426,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
426
426
  var _addElementToWorld = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(plannerElement, dockingPointInfos, suppressDock, globalBoundingBox) {
427
427
  var xOffset,
428
428
  setToTransform,
429
+ _setToTransform$trans,
430
+ worldPosCenter,
431
+ height,
432
+ stoodOnFloor,
429
433
  dockingFound,
430
434
  i,
431
435
  targetElemIdToDock,
@@ -443,69 +447,72 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
443
447
  xOffset = _args.length > 4 && _args[4] !== undefined ? _args[4] : 100;
444
448
  setToTransform = _args.length > 5 ? _args[5] : undefined;
445
449
  if (!(setToTransform && setToTransform.forceSetToTrans)) {
446
- _context.next = 8;
450
+ _context.next = 10;
447
451
  break;
448
452
  }
449
- plannerElement.WorldPosCenter = setToTransform.transform.worldPosCenter;
453
+ // A switched element keeps the place of the old one; if that stood on the floor, the new one stands there too.
454
+ _setToTransform$trans = setToTransform.transform, worldPosCenter = _setToTransform$trans.worldPosCenter, height = _setToTransform$trans.height;
455
+ stoodOnFloor = index.PlannerElementData.standsOnFloor(worldPosCenter.y, height);
456
+ plannerElement.WorldPosCenter = stoodOnFloor && Number.isFinite(plannerElement.Height) ? new index.Vector3(worldPosCenter.x, plannerElement.Height / 2, worldPosCenter.z) : worldPosCenter;
450
457
  plannerElement.RotDeg = setToTransform.transform.rotDeg;
451
458
  this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
452
- _context.next = 48;
459
+ _context.next = 50;
453
460
  break;
454
- case 8:
461
+ case 10:
455
462
  //Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
456
463
  dockingFound = false;
457
464
  if (!dockingPointInfos) {
458
- _context.next = 47;
465
+ _context.next = 49;
459
466
  break;
460
467
  }
461
468
  i = 0;
462
- case 11:
469
+ case 13:
463
470
  if (!(i < dockingPointInfos.length)) {
464
- _context.next = 47;
471
+ _context.next = 49;
465
472
  break;
466
473
  }
467
474
  targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
468
475
  targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
469
476
  if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
470
- _context.next = 44;
477
+ _context.next = 46;
471
478
  break;
472
479
  }
473
480
  if (!(targetDockingPointId && targetDockingPointId != '')) {
474
- _context.next = 32;
481
+ _context.next = 34;
475
482
  break;
476
483
  }
477
484
  targetElem = this.plannerElements.get(targetElemIdToDock);
478
485
  if (!targetElem) {
479
- _context.next = 30;
486
+ _context.next = 32;
480
487
  break;
481
488
  }
482
489
  targetDP = targetElem.getDockingPointById(targetDockingPointId);
483
490
  if (!targetDP) {
484
- _context.next = 30;
491
+ _context.next = 32;
485
492
  break;
486
493
  }
487
494
  successDP = PlannerHandler2D.dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
488
495
  if (!successDP) {
489
- _context.next = 26;
496
+ _context.next = 28;
490
497
  break;
491
498
  }
492
499
  this.updateWorldPos(plannerElement, successDP);
493
500
  dockingFound = true;
494
- _context.next = 30;
501
+ _context.next = 32;
495
502
  break;
496
- case 26:
497
- _context.next = 28;
498
- return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
499
503
  case 28:
504
+ _context.next = 30;
505
+ return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
506
+ case 30:
500
507
  if (!_context.sent) {
501
- _context.next = 30;
508
+ _context.next = 32;
502
509
  break;
503
510
  }
504
511
  dockingFound = true;
505
- case 30:
506
- _context.next = 44;
507
- break;
508
512
  case 32:
513
+ _context.next = 46;
514
+ break;
515
+ case 34:
509
516
  success = false;
510
517
  if (plannerElement.HasAVL || plannerElement.HasAVR) {
511
518
  success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
@@ -514,28 +521,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
514
521
  success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
515
522
  }
516
523
  if (success) {
517
- _context.next = 43;
524
+ _context.next = 45;
518
525
  break;
519
526
  }
520
- _context.next = 38;
527
+ _context.next = 40;
521
528
  return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
522
- case 38:
529
+ case 40:
523
530
  success = _context.sent;
524
531
  if (success) {
525
- _context.next = 43;
532
+ _context.next = 45;
526
533
  break;
527
534
  }
528
- _context.next = 42;
535
+ _context.next = 44;
529
536
  return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
530
- case 42:
537
+ case 44:
531
538
  return _context.abrupt("return");
532
- case 43:
539
+ case 45:
533
540
  if (success) dockingFound = true;
534
- case 44:
541
+ case 46:
535
542
  i++;
536
- _context.next = 11;
543
+ _context.next = 13;
537
544
  break;
538
- case 47:
545
+ case 49:
539
546
  if (!dockingFound) {
540
547
  allPlannerElements = this.getAllPlannerElements();
541
548
  _success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
@@ -556,13 +563,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
556
563
  }
557
564
  }
558
565
  }
559
- case 48:
566
+ case 50:
560
567
  this.updatePlannerPosNr();
561
568
  this.updateAllElementsWorldPos();
562
569
  this.updatePlannerPosNr();
563
570
  this.checkCollision(false, plannerElement.getElementId());
564
571
  this.updatePlannerBoundingBox();
565
- case 53:
572
+ case 55:
566
573
  case "end":
567
574
  return _context.stop();
568
575
  }
@@ -974,23 +981,24 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
974
981
  i = 0;
975
982
  case 3:
976
983
  if (!(i < allPlannerElements.length)) {
977
- _context4.next = 13;
984
+ _context4.next = 14;
978
985
  break;
979
986
  }
980
987
  elem = allPlannerElements[i];
981
988
  doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
982
989
  if (!doReload) {
983
- _context4.next = 10;
990
+ _context4.next = 11;
984
991
  break;
985
992
  }
986
993
  elemtsWhereSomethingChanged.push(elem.ElementId);
987
- _context4.next = 10;
994
+ elem.keepOnFloorOnHeightChange();
995
+ _context4.next = 11;
988
996
  return PlannerHandler2D.handler2D.loadSVG(elem, this.set);
989
- case 10:
997
+ case 11:
990
998
  i++;
991
999
  _context4.next = 3;
992
1000
  break;
993
- case 13:
1001
+ case 14:
994
1002
  elementsToDelete = [];
995
1003
  if (elemtsWhereSomethingChanged.length) {
996
1004
  LOG.debug('Configuration changed one plannerElement. UpdateDockingRelations', 'DivaStandardPlanner - updatePlanner');
@@ -1011,7 +1019,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1011
1019
  elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
1012
1020
  failed: false
1013
1021
  });
1014
- case 16:
1022
+ case 17:
1015
1023
  case "end":
1016
1024
  return _context4.stop();
1017
1025
  }
@@ -1681,7 +1689,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1681
1689
  }
1682
1690
  transform = {
1683
1691
  rotDeg: plannerElement.getRotDeg(),
1684
- worldPosCenter: plannerElement.WorldPosCenter
1692
+ worldPosCenter: plannerElement.WorldPosCenter,
1693
+ height: plannerElement.Height
1685
1694
  };
1686
1695
  if (!removeDockingRelation) {
1687
1696
  PlannerHandler2D.dockingPointHandlerInst.removeDockingPointRelations(plannerElement);
@@ -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-dfe2c0e3.js');
6
+ require('./index-b4ba898f.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-dfe2c0e3.js');
8
+ var index = require('./index-b4ba898f.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-dfe2c0e3.js');
5
+ require('./index-b4ba898f.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-dfe2c0e3.js');
5
+ var index = require('./index-b4ba898f.js');
6
6
  var basketModel = require('@crystaldesign/basket-model');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -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-dfe2c0e3.js');
8
+ var index = require('./index-b4ba898f.js');
9
9
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
10
10
  var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
11
11
  var _get = require('@babel/runtime/helpers/get');
@@ -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-dfe2c0e3.js');
6
+ var index = require('./index-b4ba898f.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-dfe2c0e3.js');
9
+ var index = require('./index-b4ba898f.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -33,9 +33,14 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
33
33
  var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
34
34
  var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
35
35
 
36
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
37
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
38
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
36
39
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
40
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
41
  var LOG = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
42
+
43
+ /** Values the parents pass on to their accessoires with their global options, per basketId of the accessoire. */
39
44
  var ShelfPlanner = /*#__PURE__*/function () {
40
45
  function ShelfPlanner(data, article) {
41
46
  _classCallCheck__default["default"](this, ShelfPlanner);
@@ -373,7 +378,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
373
378
  }, {
374
379
  key: "stashAccessoiresOfGrid",
375
380
  value: function stashAccessoiresOfGrid(gridIndex, ruleIndex) {
376
- var stashedAccessoires = this.collectAccessoiresToStash(this.grids[gridIndex]);
381
+ var stashedAccessoires = this.collectAccessoiresToStash(this.grids[gridIndex], this.valuesPassedOnByParents());
377
382
  if (!stashedAccessoires.length) return;
378
383
  this.stashedAccessoires[this.stashKey(gridIndex, ruleIndex)] = stashedAccessoires;
379
384
  }
@@ -388,12 +393,15 @@ var ShelfPlanner = /*#__PURE__*/function () {
388
393
  /**
389
394
  * Collects an accessoire of every cell it starts in, including the accessoires of the accessoire itself
390
395
  * (eg the drawers of an EINBAU), because those get deleted with their parent as well.
396
+ * @param parentInheritedValues values the parents of the article pass on to the accessoires, per basketId
391
397
  */
392
398
  }, {
393
399
  key: "collectAccessoiresToStash",
394
- value: function collectAccessoiresToStash(grid) {
400
+ value: function collectAccessoiresToStash(grid, parentInheritedValues) {
395
401
  var stashedAccessoires = [];
402
+ var inheritedValues = ShelfPlanner.addValuesPassedOnBy(this.article, parentInheritedValues);
396
403
  for (var i = 0; i < grid.Cells.length; i++) {
404
+ var _inheritedValues$acce;
397
405
  var cell = grid.Cells[i];
398
406
  var accessoire = cell.Article;
399
407
  if (cell.InUse !== i || !accessoire) continue;
@@ -404,7 +412,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
404
412
  for (var j = 0; j < ((_accessoireShelfPlann = accessoireShelfPlanner === null || accessoireShelfPlanner === void 0 ? void 0 : accessoireShelfPlanner.grids.length) !== null && _accessoireShelfPlann !== void 0 ? _accessoireShelfPlann : 0); j++) {
405
413
  var _accessoireShelfPlann;
406
414
  var accessoireGrid = accessoireShelfPlanner.grids[j];
407
- var accessoiresOfGrid = accessoireShelfPlanner.collectAccessoiresToStash(accessoireGrid);
415
+ var accessoiresOfGrid = accessoireShelfPlanner.collectAccessoiresToStash(accessoireGrid, inheritedValues);
408
416
  if (accessoiresOfGrid.length) {
409
417
  accessoires[accessoireGrid.ShelfIndex] = {
410
418
  ruleIndex: accessoireGrid.CurrentLoadedRuleIndex,
@@ -412,27 +420,59 @@ var ShelfPlanner = /*#__PURE__*/function () {
412
420
  };
413
421
  }
414
422
  }
423
+
424
+ //a value the accessoire only took over from the parent is not remembered: placed again, the accessoire takes over the
425
+ //parent's value of that time, the parent may have changed it in between
426
+ var variantValues = accessoire.VariantValues;
427
+ var inherited = (_inheritedValues$acce = inheritedValues[accessoire.basketId]) !== null && _inheritedValues$acce !== void 0 ? _inheritedValues$acce : {};
428
+ for (var _i5 = 0, _Object$keys = Object.keys(inherited); _i5 < _Object$keys.length; _i5++) {
429
+ var codex = _Object$keys[_i5];
430
+ if (variantValues[codex] === inherited[codex]) delete variantValues[codex];
431
+ }
415
432
  stashedAccessoires.push({
416
433
  articleCodex: accessoire.articleCodex,
417
434
  cellIndex: i,
418
435
  noMove: cell.NoMove,
419
436
  noDelete: cell.NoDelete,
420
437
  quantity: accessoire.quantity,
421
- variantValues: accessoire.VariantValues,
438
+ variantValues: variantValues,
439
+ inheritedValues: inherited,
422
440
  accessoires: accessoires
423
441
  });
424
442
  }
425
443
  return stashedAccessoires;
426
444
  }
427
445
 
446
+ /**
447
+ * The values the parents of the article pass on to their accessoires right now, per basketId. A stash can start at an
448
+ * accessoire that is a shelf itself (eg an EINBAU whose own grid gets rebuilt), its accessoires inherit the values of
449
+ * all its parents as well (eg the cabinet colour).
450
+ */
451
+ }, {
452
+ key: "valuesPassedOnByParents",
453
+ value: function valuesPassedOnByParents() {
454
+ var parents = [];
455
+ for (var parent = this.article.accessoireParentArticle; parent; parent = parent.accessoireParentArticle) parents.unshift(parent);
456
+ return parents.reduce(function (inheritedValues, parent) {
457
+ return ShelfPlanner.addValuesPassedOnBy(parent, inheritedValues);
458
+ }, {});
459
+ }
460
+
461
+ /**
462
+ * Adds the values the article passes on to its accessoires with its global options right now (eg the gardenhouse colour of
463
+ * the door) on top of the ones its parents pass on (eg the cabinet colour of the drawers in an EINBAU).
464
+ * @param parentInheritedValues values the parents of the article pass on, per basketId
465
+ * @returns the values passed on per basketId, a new object
466
+ */
467
+ }, {
468
+ key: "placeStashedAccessoiresOfGrid",
469
+ value: (
428
470
  /**
429
471
  * Places the accessoires remembered for the rule entry the grid runs now back into their cells.
430
472
  * @param gridIndex grid that became active again
431
473
  * @returns how many accessoires were placed - 0 means the grid is still empty and needs its initAcc
432
474
  */
433
- }, {
434
- key: "placeStashedAccessoiresOfGrid",
435
- value: (function () {
475
+ function () {
436
476
  var _placeStashedAccessoiresOfGrid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3(gridIndex) {
437
477
  var stashKey, stashedAccessoires;
438
478
  return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
@@ -520,7 +560,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
520
560
  key: "placeStashedAccessoiresInGrid",
521
561
  value: (function () {
522
562
  var _placeStashedAccessoiresInGrid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(gridIndex, stashedAccessoires) {
523
- var placedAccessoires, grid, i, stashed, result, fitResult, accessoire;
563
+ var placedAccessoires, grid, i, stashed, result, fitResult, accessoire, variantValues;
524
564
  return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
525
565
  while (1) switch (_context5.prev = _context5.next) {
526
566
  case 0:
@@ -535,7 +575,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
535
575
  i = 0;
536
576
  case 5:
537
577
  if (!(i < stashedAccessoires.length)) {
538
- _context5.next = 28;
578
+ _context5.next = 29;
539
579
  break;
540
580
  }
541
581
  stashed = stashedAccessoires[i];
@@ -566,30 +606,31 @@ var ShelfPlanner = /*#__PURE__*/function () {
566
606
  parentBasketId: this.article.basketId
567
607
  }
568
608
  }));
569
- return _context5.abrupt("continue", 25);
609
+ return _context5.abrupt("continue", 26);
570
610
  case 17:
571
611
  accessoire.quantity = stashed.quantity;
572
612
  placedAccessoires++;
573
- if (!Object.keys(stashed.variantValues).length) {
574
- _context5.next = 22;
613
+ variantValues = this.valuesToPlaceAgain(stashed, accessoire);
614
+ if (!Object.keys(variantValues).length) {
615
+ _context5.next = 23;
575
616
  break;
576
617
  }
577
- _context5.next = 22;
578
- return index.articleHandlerInstance.updateCfgValues(accessoire, stashed.variantValues, {});
579
- case 22:
618
+ _context5.next = 23;
619
+ return index.articleHandlerInstance.updateCfgValues(accessoire, variantValues, {});
620
+ case 23:
580
621
  if (!accessoire.shelfPlanner) {
581
- _context5.next = 25;
622
+ _context5.next = 26;
582
623
  break;
583
624
  }
584
- _context5.next = 25;
625
+ _context5.next = 26;
585
626
  return accessoire.shelfPlanner.placeStashedAccessoiresByGrid(stashed.accessoires);
586
- case 25:
627
+ case 26:
587
628
  i++;
588
629
  _context5.next = 5;
589
630
  break;
590
- case 28:
591
- return _context5.abrupt("return", placedAccessoires);
592
631
  case 29:
632
+ return _context5.abrupt("return", placedAccessoires);
633
+ case 30:
593
634
  case "end":
594
635
  return _context5.stop();
595
636
  }
@@ -600,11 +641,42 @@ var ShelfPlanner = /*#__PURE__*/function () {
600
641
  }
601
642
  return placeStashedAccessoiresInGrid;
602
643
  }()
644
+ /**
645
+ * The remembered values of a stashed accessoire to set on the accessoire that was placed for it. A value of its own (eg an
646
+ * anthracite door) does not come back when the parent passes on another value than at stash time (eg the gardenhouse turned
647
+ * dark grey): an accessoire that stays in place takes over the parent's new value as well (updateAccessoriesFromGlobalOption).
648
+ * @param accessoire the accessoire placed for the stashed one, the values the parents pass on to it now are looked up by its basketId
649
+ */
650
+ )
651
+ }, {
652
+ key: "valuesToPlaceAgain",
653
+ value: function valuesToPlaceAgain(stashed, accessoire) {
654
+ var _ShelfPlanner$addValu;
655
+ var variantValues = _objectSpread({}, stashed.variantValues);
656
+ var ownInheritableCodices = Object.keys(stashed.inheritedValues).filter(function (codex) {
657
+ return codex in variantValues;
658
+ });
659
+ if (!ownInheritableCodices.length) return variantValues;
660
+ var inheritedNow = (_ShelfPlanner$addValu = ShelfPlanner.addValuesPassedOnBy(this.article, this.valuesPassedOnByParents())[accessoire.basketId]) !== null && _ShelfPlanner$addValu !== void 0 ? _ShelfPlanner$addValu : {};
661
+ var _iterator = _createForOfIteratorHelper(ownInheritableCodices),
662
+ _step;
663
+ try {
664
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
665
+ var codex = _step.value;
666
+ if (inheritedNow[codex] !== undefined && inheritedNow[codex] !== stashed.inheritedValues[codex]) delete variantValues[codex];
667
+ }
668
+ } catch (err) {
669
+ _iterator.e(err);
670
+ } finally {
671
+ _iterator.f();
672
+ }
673
+ return variantValues;
674
+ }
675
+
603
676
  /**
604
677
  * runs through the InitAccArr and initialized all the accessoires eg: Kleiderstange gets placed
605
678
  * if the replaceFromParent == true it removed the same article from the parent shelfplanner if one is found eg: Kleiderstange gets removed from schrank when the T-Sück gets initialized
606
679
  */
607
- )
608
680
  }, {
609
681
  key: "initAccList",
610
682
  value: (function () {
@@ -734,7 +806,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
734
806
  key: "triggerVisibility",
735
807
  value: function () {
736
808
  var _triggerVisibility = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7(gridGroup) {
737
- var toCleanOptions, toUpdateOptions, i, grid, _i5, option, visitOptionState;
809
+ var toCleanOptions, toUpdateOptions, i, grid, _i6, option, visitOptionState;
738
810
  return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
739
811
  while (1) switch (_context7.prev = _context7.next) {
740
812
  case 0:
@@ -770,13 +842,13 @@ var ShelfPlanner = /*#__PURE__*/function () {
770
842
  _context7.next = 3;
771
843
  break;
772
844
  case 13:
773
- _i5 = 0;
845
+ _i6 = 0;
774
846
  case 14:
775
- if (!(_i5 < [].concat(toUpdateOptions, toCleanOptions).length)) {
847
+ if (!(_i6 < [].concat(toUpdateOptions, toCleanOptions).length)) {
776
848
  _context7.next = 23;
777
849
  break;
778
850
  }
779
- option = [].concat(toUpdateOptions, toCleanOptions)[_i5];
851
+ option = [].concat(toUpdateOptions, toCleanOptions)[_i6];
780
852
  visitOptionState = this.article.getArticleOptionState((!this.article.CatalogData.isIDMFormat ? 'OPT' : '') + option);
781
853
  if (!visitOptionState) {
782
854
  _context7.next = 20;
@@ -785,7 +857,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
785
857
  _context7.next = 20;
786
858
  return index.articleHandlerInstance.updateOption(this.article, visitOptionState.optionCodex, toUpdateOptions.includes(option) ? 'OPVMIT' : 'OPVOHNE');
787
859
  case 20:
788
- _i5++;
860
+ _i6++;
789
861
  _context7.next = 14;
790
862
  break;
791
863
  case 23:
@@ -1009,7 +1081,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
1009
1081
  key: "handleDeleteTakePlaceOnOtherGrids",
1010
1082
  value: (function () {
1011
1083
  var _handleDeleteTakePlaceOnOtherGrids = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee10(gridIndex, cellIndex, accessoire) {
1012
- var i, _cell$Article, cell, _i6, _cell$Article2, _cell, _i7;
1084
+ var i, _cell$Article, cell, _i7, _cell$Article2, _cell, _i8;
1013
1085
  return _regeneratorRuntime__default["default"].wrap(function _callee10$(_context10) {
1014
1086
  while (1) switch (_context10.prev = _context10.next) {
1015
1087
  case 0:
@@ -1028,8 +1100,8 @@ var ShelfPlanner = /*#__PURE__*/function () {
1028
1100
  }
1029
1101
  }
1030
1102
  if (accessoire.shelfHeightBelow) {
1031
- for (_i6 = 0; _i6 < accessoire.shelfHeightBelow; _i6++) {
1032
- _cell = this.grids[gridIndex].Cells[cellIndex - (_i6 + 1)];
1103
+ for (_i7 = 0; _i7 < accessoire.shelfHeightBelow; _i7++) {
1104
+ _cell = this.grids[gridIndex].Cells[cellIndex - (_i7 + 1)];
1033
1105
  if ((_cell === null || _cell === void 0 || (_cell$Article2 = _cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId) === accessoire.basketId) {
1034
1106
  _cell.ClearInUse();
1035
1107
  }
@@ -1039,22 +1111,22 @@ var ShelfPlanner = /*#__PURE__*/function () {
1039
1111
  _context10.next = 14;
1040
1112
  break;
1041
1113
  }
1042
- _i7 = 0;
1114
+ _i8 = 0;
1043
1115
  case 6:
1044
- if (!(_i7 < this.grids.length)) {
1116
+ if (!(_i8 < this.grids.length)) {
1045
1117
  _context10.next = 14;
1046
1118
  break;
1047
1119
  }
1048
- if (!(_i7 === gridIndex)) {
1120
+ if (!(_i8 === gridIndex)) {
1049
1121
  _context10.next = 9;
1050
1122
  break;
1051
1123
  }
1052
1124
  return _context10.abrupt("continue", 11);
1053
1125
  case 9:
1054
1126
  _context10.next = 11;
1055
- return this.grids[_i7].deleteAccessoireInCells(cellIndex);
1127
+ return this.grids[_i8].deleteAccessoireInCells(cellIndex);
1056
1128
  case 11:
1057
- _i7++;
1129
+ _i8++;
1058
1130
  _context10.next = 6;
1059
1131
  break;
1060
1132
  case 14:
@@ -1599,6 +1671,24 @@ var ShelfPlanner = /*#__PURE__*/function () {
1599
1671
  }
1600
1672
  return undefined;
1601
1673
  }
1674
+ }], [{
1675
+ key: "addValuesPassedOnBy",
1676
+ value: function addValuesPassedOnBy(article, parentInheritedValues) {
1677
+ var globalValues = {};
1678
+ for (var _i9 = 0, _Object$keys2 = Object.keys(article.getGlobalOptions()); _i9 < _Object$keys2.length; _i9++) {
1679
+ var _article$getArticleOp;
1680
+ var opt = _Object$keys2[_i9];
1681
+ var valCodex = (_article$getArticleOp = article.getArticleOptionState(opt)) === null || _article$getArticleOp === void 0 ? void 0 : _article$getArticleOp.valCodex;
1682
+ if (valCodex) globalValues[opt] = valCodex;
1683
+ }
1684
+ var inheritedValues = _objectSpread({}, parentInheritedValues);
1685
+ var ownInheritedValues = article.getAccessoriesToChangeFromGlobalOption(globalValues);
1686
+ for (var _i10 = 0, _Object$keys3 = Object.keys(ownInheritedValues); _i10 < _Object$keys3.length; _i10++) {
1687
+ var _basketId = _Object$keys3[_i10];
1688
+ inheritedValues[_basketId] = _objectSpread(_objectSpread({}, inheritedValues[_basketId]), ownInheritedValues[_basketId].variantValues);
1689
+ }
1690
+ return inheritedValues;
1691
+ }
1602
1692
  }]);
1603
1693
  }();
1604
1694
 
@@ -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-dfe2c0e3.js');
5
+ require('./index-b4ba898f.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');