@crystaldesign/web-planner-logic 26.13.0-beta.26 → 26.13.0-beta.28

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-dfe2c0e3.js');
5
+ var index = require('./index-b4ba898f.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -3,11 +3,11 @@ 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-0d6a39cb.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-f6b2e2f4.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-487406e6.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-8527ab43.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@babel/runtime/helpers/typeof';
@@ -4,10 +4,10 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-0d6a39cb.js';
7
+ import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-f6b2e2f4.js';
8
8
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
9
9
  import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-487406e6.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-8527ab43.js';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
@@ -414,6 +414,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
414
414
  var _addElementToWorld = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(plannerElement, dockingPointInfos, suppressDock, globalBoundingBox) {
415
415
  var xOffset,
416
416
  setToTransform,
417
+ _setToTransform$trans,
418
+ worldPosCenter,
419
+ height,
420
+ stoodOnFloor,
417
421
  dockingFound,
418
422
  i,
419
423
  targetElemIdToDock,
@@ -431,69 +435,72 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
431
435
  xOffset = _args.length > 4 && _args[4] !== undefined ? _args[4] : 100;
432
436
  setToTransform = _args.length > 5 ? _args[5] : undefined;
433
437
  if (!(setToTransform && setToTransform.forceSetToTrans)) {
434
- _context.next = 8;
438
+ _context.next = 10;
435
439
  break;
436
440
  }
437
- plannerElement.WorldPosCenter = setToTransform.transform.worldPosCenter;
441
+ // A switched element keeps the place of the old one; if that stood on the floor, the new one stands there too.
442
+ _setToTransform$trans = setToTransform.transform, worldPosCenter = _setToTransform$trans.worldPosCenter, height = _setToTransform$trans.height;
443
+ stoodOnFloor = PlannerElementData.standsOnFloor(worldPosCenter.y, height);
444
+ plannerElement.WorldPosCenter = stoodOnFloor && Number.isFinite(plannerElement.Height) ? new Vector3(worldPosCenter.x, plannerElement.Height / 2, worldPosCenter.z) : worldPosCenter;
438
445
  plannerElement.RotDeg = setToTransform.transform.rotDeg;
439
446
  this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
440
- _context.next = 48;
447
+ _context.next = 50;
441
448
  break;
442
- case 8:
449
+ case 10:
443
450
  //Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
444
451
  dockingFound = false;
445
452
  if (!dockingPointInfos) {
446
- _context.next = 47;
453
+ _context.next = 49;
447
454
  break;
448
455
  }
449
456
  i = 0;
450
- case 11:
457
+ case 13:
451
458
  if (!(i < dockingPointInfos.length)) {
452
- _context.next = 47;
459
+ _context.next = 49;
453
460
  break;
454
461
  }
455
462
  targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
456
463
  targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
457
464
  if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
458
- _context.next = 44;
465
+ _context.next = 46;
459
466
  break;
460
467
  }
461
468
  if (!(targetDockingPointId && targetDockingPointId != '')) {
462
- _context.next = 32;
469
+ _context.next = 34;
463
470
  break;
464
471
  }
465
472
  targetElem = this.plannerElements.get(targetElemIdToDock);
466
473
  if (!targetElem) {
467
- _context.next = 30;
474
+ _context.next = 32;
468
475
  break;
469
476
  }
470
477
  targetDP = targetElem.getDockingPointById(targetDockingPointId);
471
478
  if (!targetDP) {
472
- _context.next = 30;
479
+ _context.next = 32;
473
480
  break;
474
481
  }
475
482
  successDP = dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
476
483
  if (!successDP) {
477
- _context.next = 26;
484
+ _context.next = 28;
478
485
  break;
479
486
  }
480
487
  this.updateWorldPos(plannerElement, successDP);
481
488
  dockingFound = true;
482
- _context.next = 30;
489
+ _context.next = 32;
483
490
  break;
484
- case 26:
485
- _context.next = 28;
486
- return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
487
491
  case 28:
492
+ _context.next = 30;
493
+ return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
494
+ case 30:
488
495
  if (!_context.sent) {
489
- _context.next = 30;
496
+ _context.next = 32;
490
497
  break;
491
498
  }
492
499
  dockingFound = true;
493
- case 30:
494
- _context.next = 44;
495
- break;
496
500
  case 32:
501
+ _context.next = 46;
502
+ break;
503
+ case 34:
497
504
  success = false;
498
505
  if (plannerElement.HasAVL || plannerElement.HasAVR) {
499
506
  success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
@@ -502,28 +509,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
502
509
  success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
503
510
  }
504
511
  if (success) {
505
- _context.next = 43;
512
+ _context.next = 45;
506
513
  break;
507
514
  }
508
- _context.next = 38;
515
+ _context.next = 40;
509
516
  return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
510
- case 38:
517
+ case 40:
511
518
  success = _context.sent;
512
519
  if (success) {
513
- _context.next = 43;
520
+ _context.next = 45;
514
521
  break;
515
522
  }
516
- _context.next = 42;
523
+ _context.next = 44;
517
524
  return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
518
- case 42:
525
+ case 44:
519
526
  return _context.abrupt("return");
520
- case 43:
527
+ case 45:
521
528
  if (success) dockingFound = true;
522
- case 44:
529
+ case 46:
523
530
  i++;
524
- _context.next = 11;
531
+ _context.next = 13;
525
532
  break;
526
- case 47:
533
+ case 49:
527
534
  if (!dockingFound) {
528
535
  allPlannerElements = this.getAllPlannerElements();
529
536
  _success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
@@ -544,13 +551,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
544
551
  }
545
552
  }
546
553
  }
547
- case 48:
554
+ case 50:
548
555
  this.updatePlannerPosNr();
549
556
  this.updateAllElementsWorldPos();
550
557
  this.updatePlannerPosNr();
551
558
  this.checkCollision(false, plannerElement.getElementId());
552
559
  this.updatePlannerBoundingBox();
553
- case 53:
560
+ case 55:
554
561
  case "end":
555
562
  return _context.stop();
556
563
  }
@@ -962,23 +969,24 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
962
969
  i = 0;
963
970
  case 3:
964
971
  if (!(i < allPlannerElements.length)) {
965
- _context4.next = 13;
972
+ _context4.next = 14;
966
973
  break;
967
974
  }
968
975
  elem = allPlannerElements[i];
969
976
  doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
970
977
  if (!doReload) {
971
- _context4.next = 10;
978
+ _context4.next = 11;
972
979
  break;
973
980
  }
974
981
  elemtsWhereSomethingChanged.push(elem.ElementId);
975
- _context4.next = 10;
982
+ elem.keepOnFloorOnHeightChange();
983
+ _context4.next = 11;
976
984
  return handler2D.loadSVG(elem, this.set);
977
- case 10:
985
+ case 11:
978
986
  i++;
979
987
  _context4.next = 3;
980
988
  break;
981
- case 13:
989
+ case 14:
982
990
  elementsToDelete = [];
983
991
  if (elemtsWhereSomethingChanged.length) {
984
992
  LOG.debug('Configuration changed one plannerElement. UpdateDockingRelations', 'DivaStandardPlanner - updatePlanner');
@@ -999,7 +1007,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
999
1007
  elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
1000
1008
  failed: false
1001
1009
  });
1002
- case 16:
1010
+ case 17:
1003
1011
  case "end":
1004
1012
  return _context4.stop();
1005
1013
  }
@@ -1669,7 +1677,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1669
1677
  }
1670
1678
  transform = {
1671
1679
  rotDeg: plannerElement.getRotDeg(),
1672
- worldPosCenter: plannerElement.WorldPosCenter
1680
+ worldPosCenter: plannerElement.WorldPosCenter,
1681
+ height: plannerElement.Height
1673
1682
  };
1674
1683
  if (!removeDockingRelation) {
1675
1684
  dockingPointHandlerInst.removeDockingPointRelations(plannerElement);
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import './index-0d6a39cb.js';
4
+ import './index-f6b2e2f4.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -3,7 +3,7 @@ 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 { d as bootMark, R as Rendering, H as HQRenderScript } from './index-0d6a39cb.js';
6
+ import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-f6b2e2f4.js';
7
7
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
8
8
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
9
9
  import io from 'socket.io-client';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-0d6a39cb.js';
3
+ import './index-f6b2e2f4.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import { a as articleHandlerInstance } from './index-0d6a39cb.js';
3
+ import { a as articleHandlerInstance } from './index-f6b2e2f4.js';
4
4
  import { SAPOrderLineData } from '@crystaldesign/basket-model';
5
5
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
@@ -3,7 +3,7 @@ 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, S as SVGUtils } from './index-0d6a39cb.js';
6
+ import { c as Vector2, S as SVGUtils } from './index-f6b2e2f4.js';
7
7
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
8
8
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
9
9
  import _get from '@babel/runtime/helpers/get';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { s as summaryHandlerInstance } from './index-0d6a39cb.js';
4
+ import { s as summaryHandlerInstance } from './index-f6b2e2f4.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -4,7 +4,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { G as Grid, a as articleHandlerInstance, b as setHandlerInstance } from './index-0d6a39cb.js';
7
+ import { G as Grid, a as articleHandlerInstance, b as setHandlerInstance } from './index-f6b2e2f4.js';
8
8
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -21,9 +21,14 @@ import '@babel/runtime/helpers/wrapNativeSuper';
21
21
  import '@crystaldesign/basket-handler';
22
22
  import 'socket.io-client';
23
23
 
24
+ 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; } } }; }
25
+ 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; } }
26
+ 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; }
24
27
  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; }
25
28
  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(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; }
26
29
  var LOG = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
30
+
31
+ /** Values the parents pass on to their accessoires with their global options, per basketId of the accessoire. */
27
32
  var ShelfPlanner = /*#__PURE__*/function () {
28
33
  function ShelfPlanner(data, article) {
29
34
  _classCallCheck(this, ShelfPlanner);
@@ -361,7 +366,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
361
366
  }, {
362
367
  key: "stashAccessoiresOfGrid",
363
368
  value: function stashAccessoiresOfGrid(gridIndex, ruleIndex) {
364
- var stashedAccessoires = this.collectAccessoiresToStash(this.grids[gridIndex]);
369
+ var stashedAccessoires = this.collectAccessoiresToStash(this.grids[gridIndex], this.valuesPassedOnByParents());
365
370
  if (!stashedAccessoires.length) return;
366
371
  this.stashedAccessoires[this.stashKey(gridIndex, ruleIndex)] = stashedAccessoires;
367
372
  }
@@ -376,12 +381,15 @@ var ShelfPlanner = /*#__PURE__*/function () {
376
381
  /**
377
382
  * Collects an accessoire of every cell it starts in, including the accessoires of the accessoire itself
378
383
  * (eg the drawers of an EINBAU), because those get deleted with their parent as well.
384
+ * @param parentInheritedValues values the parents of the article pass on to the accessoires, per basketId
379
385
  */
380
386
  }, {
381
387
  key: "collectAccessoiresToStash",
382
- value: function collectAccessoiresToStash(grid) {
388
+ value: function collectAccessoiresToStash(grid, parentInheritedValues) {
383
389
  var stashedAccessoires = [];
390
+ var inheritedValues = ShelfPlanner.addValuesPassedOnBy(this.article, parentInheritedValues);
384
391
  for (var i = 0; i < grid.Cells.length; i++) {
392
+ var _inheritedValues$acce;
385
393
  var cell = grid.Cells[i];
386
394
  var accessoire = cell.Article;
387
395
  if (cell.InUse !== i || !accessoire) continue;
@@ -392,7 +400,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
392
400
  for (var j = 0; j < ((_accessoireShelfPlann = accessoireShelfPlanner === null || accessoireShelfPlanner === void 0 ? void 0 : accessoireShelfPlanner.grids.length) !== null && _accessoireShelfPlann !== void 0 ? _accessoireShelfPlann : 0); j++) {
393
401
  var _accessoireShelfPlann;
394
402
  var accessoireGrid = accessoireShelfPlanner.grids[j];
395
- var accessoiresOfGrid = accessoireShelfPlanner.collectAccessoiresToStash(accessoireGrid);
403
+ var accessoiresOfGrid = accessoireShelfPlanner.collectAccessoiresToStash(accessoireGrid, inheritedValues);
396
404
  if (accessoiresOfGrid.length) {
397
405
  accessoires[accessoireGrid.ShelfIndex] = {
398
406
  ruleIndex: accessoireGrid.CurrentLoadedRuleIndex,
@@ -400,27 +408,59 @@ var ShelfPlanner = /*#__PURE__*/function () {
400
408
  };
401
409
  }
402
410
  }
411
+
412
+ //a value the accessoire only took over from the parent is not remembered: placed again, the accessoire takes over the
413
+ //parent's value of that time, the parent may have changed it in between
414
+ var variantValues = accessoire.VariantValues;
415
+ var inherited = (_inheritedValues$acce = inheritedValues[accessoire.basketId]) !== null && _inheritedValues$acce !== void 0 ? _inheritedValues$acce : {};
416
+ for (var _i5 = 0, _Object$keys = Object.keys(inherited); _i5 < _Object$keys.length; _i5++) {
417
+ var codex = _Object$keys[_i5];
418
+ if (variantValues[codex] === inherited[codex]) delete variantValues[codex];
419
+ }
403
420
  stashedAccessoires.push({
404
421
  articleCodex: accessoire.articleCodex,
405
422
  cellIndex: i,
406
423
  noMove: cell.NoMove,
407
424
  noDelete: cell.NoDelete,
408
425
  quantity: accessoire.quantity,
409
- variantValues: accessoire.VariantValues,
426
+ variantValues: variantValues,
427
+ inheritedValues: inherited,
410
428
  accessoires: accessoires
411
429
  });
412
430
  }
413
431
  return stashedAccessoires;
414
432
  }
415
433
 
434
+ /**
435
+ * The values the parents of the article pass on to their accessoires right now, per basketId. A stash can start at an
436
+ * accessoire that is a shelf itself (eg an EINBAU whose own grid gets rebuilt), its accessoires inherit the values of
437
+ * all its parents as well (eg the cabinet colour).
438
+ */
439
+ }, {
440
+ key: "valuesPassedOnByParents",
441
+ value: function valuesPassedOnByParents() {
442
+ var parents = [];
443
+ for (var parent = this.article.accessoireParentArticle; parent; parent = parent.accessoireParentArticle) parents.unshift(parent);
444
+ return parents.reduce(function (inheritedValues, parent) {
445
+ return ShelfPlanner.addValuesPassedOnBy(parent, inheritedValues);
446
+ }, {});
447
+ }
448
+
449
+ /**
450
+ * Adds the values the article passes on to its accessoires with its global options right now (eg the gardenhouse colour of
451
+ * the door) on top of the ones its parents pass on (eg the cabinet colour of the drawers in an EINBAU).
452
+ * @param parentInheritedValues values the parents of the article pass on, per basketId
453
+ * @returns the values passed on per basketId, a new object
454
+ */
455
+ }, {
456
+ key: "placeStashedAccessoiresOfGrid",
457
+ value: (
416
458
  /**
417
459
  * Places the accessoires remembered for the rule entry the grid runs now back into their cells.
418
460
  * @param gridIndex grid that became active again
419
461
  * @returns how many accessoires were placed - 0 means the grid is still empty and needs its initAcc
420
462
  */
421
- }, {
422
- key: "placeStashedAccessoiresOfGrid",
423
- value: (function () {
463
+ function () {
424
464
  var _placeStashedAccessoiresOfGrid = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(gridIndex) {
425
465
  var stashKey, stashedAccessoires;
426
466
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
@@ -508,7 +548,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
508
548
  key: "placeStashedAccessoiresInGrid",
509
549
  value: (function () {
510
550
  var _placeStashedAccessoiresInGrid = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(gridIndex, stashedAccessoires) {
511
- var placedAccessoires, grid, i, stashed, result, fitResult, accessoire;
551
+ var placedAccessoires, grid, i, stashed, result, fitResult, accessoire, variantValues;
512
552
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
513
553
  while (1) switch (_context5.prev = _context5.next) {
514
554
  case 0:
@@ -523,7 +563,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
523
563
  i = 0;
524
564
  case 5:
525
565
  if (!(i < stashedAccessoires.length)) {
526
- _context5.next = 28;
566
+ _context5.next = 29;
527
567
  break;
528
568
  }
529
569
  stashed = stashedAccessoires[i];
@@ -554,30 +594,31 @@ var ShelfPlanner = /*#__PURE__*/function () {
554
594
  parentBasketId: this.article.basketId
555
595
  }
556
596
  }));
557
- return _context5.abrupt("continue", 25);
597
+ return _context5.abrupt("continue", 26);
558
598
  case 17:
559
599
  accessoire.quantity = stashed.quantity;
560
600
  placedAccessoires++;
561
- if (!Object.keys(stashed.variantValues).length) {
562
- _context5.next = 22;
601
+ variantValues = this.valuesToPlaceAgain(stashed, accessoire);
602
+ if (!Object.keys(variantValues).length) {
603
+ _context5.next = 23;
563
604
  break;
564
605
  }
565
- _context5.next = 22;
566
- return articleHandlerInstance.updateCfgValues(accessoire, stashed.variantValues, {});
567
- case 22:
606
+ _context5.next = 23;
607
+ return articleHandlerInstance.updateCfgValues(accessoire, variantValues, {});
608
+ case 23:
568
609
  if (!accessoire.shelfPlanner) {
569
- _context5.next = 25;
610
+ _context5.next = 26;
570
611
  break;
571
612
  }
572
- _context5.next = 25;
613
+ _context5.next = 26;
573
614
  return accessoire.shelfPlanner.placeStashedAccessoiresByGrid(stashed.accessoires);
574
- case 25:
615
+ case 26:
575
616
  i++;
576
617
  _context5.next = 5;
577
618
  break;
578
- case 28:
579
- return _context5.abrupt("return", placedAccessoires);
580
619
  case 29:
620
+ return _context5.abrupt("return", placedAccessoires);
621
+ case 30:
581
622
  case "end":
582
623
  return _context5.stop();
583
624
  }
@@ -588,11 +629,42 @@ var ShelfPlanner = /*#__PURE__*/function () {
588
629
  }
589
630
  return placeStashedAccessoiresInGrid;
590
631
  }()
632
+ /**
633
+ * The remembered values of a stashed accessoire to set on the accessoire that was placed for it. A value of its own (eg an
634
+ * anthracite door) does not come back when the parent passes on another value than at stash time (eg the gardenhouse turned
635
+ * dark grey): an accessoire that stays in place takes over the parent's new value as well (updateAccessoriesFromGlobalOption).
636
+ * @param accessoire the accessoire placed for the stashed one, the values the parents pass on to it now are looked up by its basketId
637
+ */
638
+ )
639
+ }, {
640
+ key: "valuesToPlaceAgain",
641
+ value: function valuesToPlaceAgain(stashed, accessoire) {
642
+ var _ShelfPlanner$addValu;
643
+ var variantValues = _objectSpread({}, stashed.variantValues);
644
+ var ownInheritableCodices = Object.keys(stashed.inheritedValues).filter(function (codex) {
645
+ return codex in variantValues;
646
+ });
647
+ if (!ownInheritableCodices.length) return variantValues;
648
+ var inheritedNow = (_ShelfPlanner$addValu = ShelfPlanner.addValuesPassedOnBy(this.article, this.valuesPassedOnByParents())[accessoire.basketId]) !== null && _ShelfPlanner$addValu !== void 0 ? _ShelfPlanner$addValu : {};
649
+ var _iterator = _createForOfIteratorHelper(ownInheritableCodices),
650
+ _step;
651
+ try {
652
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
653
+ var codex = _step.value;
654
+ if (inheritedNow[codex] !== undefined && inheritedNow[codex] !== stashed.inheritedValues[codex]) delete variantValues[codex];
655
+ }
656
+ } catch (err) {
657
+ _iterator.e(err);
658
+ } finally {
659
+ _iterator.f();
660
+ }
661
+ return variantValues;
662
+ }
663
+
591
664
  /**
592
665
  * runs through the InitAccArr and initialized all the accessoires eg: Kleiderstange gets placed
593
666
  * 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
594
667
  */
595
- )
596
668
  }, {
597
669
  key: "initAccList",
598
670
  value: (function () {
@@ -722,7 +794,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
722
794
  key: "triggerVisibility",
723
795
  value: function () {
724
796
  var _triggerVisibility = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(gridGroup) {
725
- var toCleanOptions, toUpdateOptions, i, grid, _i5, option, visitOptionState;
797
+ var toCleanOptions, toUpdateOptions, i, grid, _i6, option, visitOptionState;
726
798
  return _regeneratorRuntime.wrap(function _callee7$(_context7) {
727
799
  while (1) switch (_context7.prev = _context7.next) {
728
800
  case 0:
@@ -758,13 +830,13 @@ var ShelfPlanner = /*#__PURE__*/function () {
758
830
  _context7.next = 3;
759
831
  break;
760
832
  case 13:
761
- _i5 = 0;
833
+ _i6 = 0;
762
834
  case 14:
763
- if (!(_i5 < [].concat(toUpdateOptions, toCleanOptions).length)) {
835
+ if (!(_i6 < [].concat(toUpdateOptions, toCleanOptions).length)) {
764
836
  _context7.next = 23;
765
837
  break;
766
838
  }
767
- option = [].concat(toUpdateOptions, toCleanOptions)[_i5];
839
+ option = [].concat(toUpdateOptions, toCleanOptions)[_i6];
768
840
  visitOptionState = this.article.getArticleOptionState((!this.article.CatalogData.isIDMFormat ? 'OPT' : '') + option);
769
841
  if (!visitOptionState) {
770
842
  _context7.next = 20;
@@ -773,7 +845,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
773
845
  _context7.next = 20;
774
846
  return articleHandlerInstance.updateOption(this.article, visitOptionState.optionCodex, toUpdateOptions.includes(option) ? 'OPVMIT' : 'OPVOHNE');
775
847
  case 20:
776
- _i5++;
848
+ _i6++;
777
849
  _context7.next = 14;
778
850
  break;
779
851
  case 23:
@@ -997,7 +1069,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
997
1069
  key: "handleDeleteTakePlaceOnOtherGrids",
998
1070
  value: (function () {
999
1071
  var _handleDeleteTakePlaceOnOtherGrids = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(gridIndex, cellIndex, accessoire) {
1000
- var i, _cell$Article, cell, _i6, _cell$Article2, _cell, _i7;
1072
+ var i, _cell$Article, cell, _i7, _cell$Article2, _cell, _i8;
1001
1073
  return _regeneratorRuntime.wrap(function _callee10$(_context10) {
1002
1074
  while (1) switch (_context10.prev = _context10.next) {
1003
1075
  case 0:
@@ -1016,8 +1088,8 @@ var ShelfPlanner = /*#__PURE__*/function () {
1016
1088
  }
1017
1089
  }
1018
1090
  if (accessoire.shelfHeightBelow) {
1019
- for (_i6 = 0; _i6 < accessoire.shelfHeightBelow; _i6++) {
1020
- _cell = this.grids[gridIndex].Cells[cellIndex - (_i6 + 1)];
1091
+ for (_i7 = 0; _i7 < accessoire.shelfHeightBelow; _i7++) {
1092
+ _cell = this.grids[gridIndex].Cells[cellIndex - (_i7 + 1)];
1021
1093
  if ((_cell === null || _cell === void 0 || (_cell$Article2 = _cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId) === accessoire.basketId) {
1022
1094
  _cell.ClearInUse();
1023
1095
  }
@@ -1027,22 +1099,22 @@ var ShelfPlanner = /*#__PURE__*/function () {
1027
1099
  _context10.next = 14;
1028
1100
  break;
1029
1101
  }
1030
- _i7 = 0;
1102
+ _i8 = 0;
1031
1103
  case 6:
1032
- if (!(_i7 < this.grids.length)) {
1104
+ if (!(_i8 < this.grids.length)) {
1033
1105
  _context10.next = 14;
1034
1106
  break;
1035
1107
  }
1036
- if (!(_i7 === gridIndex)) {
1108
+ if (!(_i8 === gridIndex)) {
1037
1109
  _context10.next = 9;
1038
1110
  break;
1039
1111
  }
1040
1112
  return _context10.abrupt("continue", 11);
1041
1113
  case 9:
1042
1114
  _context10.next = 11;
1043
- return this.grids[_i7].deleteAccessoireInCells(cellIndex);
1115
+ return this.grids[_i8].deleteAccessoireInCells(cellIndex);
1044
1116
  case 11:
1045
- _i7++;
1117
+ _i8++;
1046
1118
  _context10.next = 6;
1047
1119
  break;
1048
1120
  case 14:
@@ -1587,6 +1659,24 @@ var ShelfPlanner = /*#__PURE__*/function () {
1587
1659
  }
1588
1660
  return undefined;
1589
1661
  }
1662
+ }], [{
1663
+ key: "addValuesPassedOnBy",
1664
+ value: function addValuesPassedOnBy(article, parentInheritedValues) {
1665
+ var globalValues = {};
1666
+ for (var _i9 = 0, _Object$keys2 = Object.keys(article.getGlobalOptions()); _i9 < _Object$keys2.length; _i9++) {
1667
+ var _article$getArticleOp;
1668
+ var opt = _Object$keys2[_i9];
1669
+ var valCodex = (_article$getArticleOp = article.getArticleOptionState(opt)) === null || _article$getArticleOp === void 0 ? void 0 : _article$getArticleOp.valCodex;
1670
+ if (valCodex) globalValues[opt] = valCodex;
1671
+ }
1672
+ var inheritedValues = _objectSpread({}, parentInheritedValues);
1673
+ var ownInheritedValues = article.getAccessoriesToChangeFromGlobalOption(globalValues);
1674
+ for (var _i10 = 0, _Object$keys3 = Object.keys(ownInheritedValues); _i10 < _Object$keys3.length; _i10++) {
1675
+ var _basketId = _Object$keys3[_i10];
1676
+ inheritedValues[_basketId] = _objectSpread(_objectSpread({}, inheritedValues[_basketId]), ownInheritedValues[_basketId].variantValues);
1677
+ }
1678
+ return inheritedValues;
1679
+ }
1590
1680
  }]);
1591
1681
  }();
1592
1682
 
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-0d6a39cb.js';
3
+ import './index-f6b2e2f4.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';