@crystaldesign/web-planner-logic 26.13.0-beta.3 → 26.13.0-beta.31

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 (116) hide show
  1. package/build/cjs/{DivaBoxPlanner-09506958.js → DivaBoxPlanner-f9f577b0.js} +4 -3
  2. package/build/cjs/{DivaStandardPlanner-3afaa9dc.js → DivaStandardPlanner-fd71c557.js} +52 -42
  3. package/build/cjs/{DoorPlanner-b7dc9d75.js → DoorPlanner-1e941d6e.js} +3 -2
  4. package/build/cjs/{Host3DSignalR-af1273a3.js → Host3DSignalR-7aa4d347.js} +63 -19
  5. package/build/cjs/{LiviqueWWSHandler-f90e47e8.js → LiviqueWWSHandler-c8f83739.js} +3 -2
  6. package/build/cjs/{PfisterWWSHandler-44e98549.js → PfisterWWSHandler-d3fd59c5.js} +3 -2
  7. package/build/cjs/{PlannerHandler2D-8655bcdb.js → PlannerHandler2D-e6d1cebc.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-da58bfd5.js → SeriousBasketHandler-c8abdb16.js} +3 -2
  9. package/build/cjs/{ShelfPlanner-fa17b8ac.js → ShelfPlanner-173ee746.js} +137 -36
  10. package/build/cjs/{StandardWWSHandler-84ff60ba.js → StandardWWSHandler-e31f5446.js} +3 -2
  11. package/build/cjs/{index-0075f2cf.js → index-76d3a1ec.js} +1856 -1217
  12. package/build/cjs/index.js +3 -7
  13. package/build/esm/{DivaBoxPlanner-f98e012b.js → DivaBoxPlanner-086b4c02.js} +4 -3
  14. package/build/esm/{DivaStandardPlanner-9436f998.js → DivaStandardPlanner-9864a9dd.js} +52 -42
  15. package/build/esm/{DoorPlanner-5725f710.js → DoorPlanner-d29bc13e.js} +3 -2
  16. package/build/esm/{Host3DSignalR-d160a5ff.js → Host3DSignalR-dbe6624e.js} +63 -19
  17. package/build/esm/{LiviqueWWSHandler-1bef5d2e.js → LiviqueWWSHandler-60691979.js} +3 -2
  18. package/build/esm/{PfisterWWSHandler-967a27ec.js → PfisterWWSHandler-1fe8accd.js} +3 -2
  19. package/build/esm/{PlannerHandler2D-00b50d01.js → PlannerHandler2D-88b9a108.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-7563dbf3.js → SeriousBasketHandler-0a3966d6.js} +3 -2
  21. package/build/esm/{ShelfPlanner-58042ac8.js → ShelfPlanner-614b7281.js} +137 -36
  22. package/build/esm/{StandardWWSHandler-25e8eec4.js → StandardWWSHandler-12b16709.js} +3 -2
  23. package/build/esm/{index-6188684c.js → index-8d311c4b.js} +1856 -1213
  24. package/build/esm/index.js +3 -2
  25. package/build/types/web-planner-logic/src/index.d.ts +1 -7
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts +4 -2
  28. package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts +6 -2
  30. package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +2 -0
  32. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts +1 -0
  34. package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +2 -0
  36. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -0
  38. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +2 -3
  40. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts +20 -0
  42. package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts.map +1 -0
  43. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +3 -0
  44. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -1
  46. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +30 -0
  48. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts +5 -0
  50. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +8 -0
  52. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  53. package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts +3 -1
  54. package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts.map +1 -1
  55. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts +2 -0
  56. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts.map +1 -1
  57. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
  58. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
  59. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +26 -0
  60. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
  61. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +5 -1
  62. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  63. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  64. package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts +33 -0
  65. package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts.map +1 -0
  66. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts +1 -0
  67. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  68. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  69. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +4 -0
  70. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  71. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  72. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  73. package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
  74. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  75. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
  76. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  77. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts +3 -0
  78. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
  79. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts +4 -2
  80. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  81. package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +2 -3
  82. package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
  83. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
  84. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +12 -0
  85. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
  86. package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts +23 -11
  87. package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
  88. package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts +1 -34
  89. package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts.map +1 -1
  90. package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts +42 -0
  91. package/build/types/web-planner-logic/src/model/Properties/propertyValues.d.ts.map +1 -0
  92. package/build/types/web-planner-logic/src/test/bundleRulesOwnPartlist.test.d.ts +2 -0
  93. package/build/types/web-planner-logic/src/test/bundleRulesOwnPartlist.test.d.ts.map +1 -0
  94. package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts +2 -0
  95. package/build/types/web-planner-logic/src/test/classificationRepairFreeText.test.d.ts.map +1 -0
  96. package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts +2 -0
  97. package/build/types/web-planner-logic/src/test/decisionFeatureRefOp.test.d.ts.map +1 -0
  98. package/build/types/web-planner-logic/src/test/getConfigStepKeyOfAccessoire.test.d.ts +2 -0
  99. package/build/types/web-planner-logic/src/test/getConfigStepKeyOfAccessoire.test.d.ts.map +1 -0
  100. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts +2 -0
  101. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts.map +1 -0
  102. package/build/types/web-planner-logic/src/test/orderNumberTemplates.test.d.ts +2 -0
  103. package/build/types/web-planner-logic/src/test/orderNumberTemplates.test.d.ts.map +1 -0
  104. package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts +2 -0
  105. package/build/types/web-planner-logic/src/test/partlistChangeReevaluatesOptionTree.test.d.ts.map +1 -0
  106. package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts +2 -0
  107. package/build/types/web-planner-logic/src/test/plannerElementHeightChange.test.d.ts.map +1 -0
  108. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts +2 -0
  109. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts.map +1 -0
  110. package/build/types/web-planner-logic/src/test/propertyParsers.test.d.ts +2 -0
  111. package/build/types/web-planner-logic/src/test/propertyParsers.test.d.ts.map +1 -0
  112. package/build/types/web-planner-logic/src/test/propertyValues.test.d.ts +2 -0
  113. package/build/types/web-planner-logic/src/test/propertyValues.test.d.ts.map +1 -0
  114. package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts +2 -0
  115. package/build/types/web-planner-logic/src/test/shelfStashInheritedOptions.test.d.ts.map +1 -0
  116. package/package.json +3 -3
@@ -5,16 +5,17 @@ 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-0075f2cf.js');
8
+ var index = require('./index-76d3a1ec.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-8655bcdb.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-e6d1cebc.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
+ require('@babel/runtime/helpers/typeof');
16
+ require('@babel/runtime/helpers/toArray');
15
17
  require('@crystaldesign/planner-2d-core');
16
18
  require('@crystaldesign/basket-model');
17
- require('@babel/runtime/helpers/typeof');
18
19
  require('fast-xml-parser');
19
20
  require('@babel/runtime/helpers/possibleConstructorReturn');
20
21
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -6,15 +6,16 @@ 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-0075f2cf.js');
9
+ var index = require('./index-76d3a1ec.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-8655bcdb.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-e6d1cebc.js');
13
13
  require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('axios');
16
- require('@crystaldesign/basket-model');
17
16
  require('@babel/runtime/helpers/typeof');
17
+ require('@babel/runtime/helpers/toArray');
18
+ require('@crystaldesign/basket-model');
18
19
  require('fast-xml-parser');
19
20
  require('@babel/runtime/helpers/possibleConstructorReturn');
20
21
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -425,6 +426,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
425
426
  var _addElementToWorld = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(plannerElement, dockingPointInfos, suppressDock, globalBoundingBox) {
426
427
  var xOffset,
427
428
  setToTransform,
429
+ _setToTransform$trans,
430
+ worldPosCenter,
431
+ height,
432
+ stoodOnFloor,
428
433
  dockingFound,
429
434
  i,
430
435
  targetElemIdToDock,
@@ -442,69 +447,72 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
442
447
  xOffset = _args.length > 4 && _args[4] !== undefined ? _args[4] : 100;
443
448
  setToTransform = _args.length > 5 ? _args[5] : undefined;
444
449
  if (!(setToTransform && setToTransform.forceSetToTrans)) {
445
- _context.next = 8;
450
+ _context.next = 10;
446
451
  break;
447
452
  }
448
- 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;
449
457
  plannerElement.RotDeg = setToTransform.transform.rotDeg;
450
458
  this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
451
- _context.next = 48;
459
+ _context.next = 50;
452
460
  break;
453
- case 8:
461
+ case 10:
454
462
  //Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
455
463
  dockingFound = false;
456
464
  if (!dockingPointInfos) {
457
- _context.next = 47;
465
+ _context.next = 49;
458
466
  break;
459
467
  }
460
468
  i = 0;
461
- case 11:
469
+ case 13:
462
470
  if (!(i < dockingPointInfos.length)) {
463
- _context.next = 47;
471
+ _context.next = 49;
464
472
  break;
465
473
  }
466
474
  targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
467
475
  targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
468
476
  if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
469
- _context.next = 44;
477
+ _context.next = 46;
470
478
  break;
471
479
  }
472
480
  if (!(targetDockingPointId && targetDockingPointId != '')) {
473
- _context.next = 32;
481
+ _context.next = 34;
474
482
  break;
475
483
  }
476
484
  targetElem = this.plannerElements.get(targetElemIdToDock);
477
485
  if (!targetElem) {
478
- _context.next = 30;
486
+ _context.next = 32;
479
487
  break;
480
488
  }
481
489
  targetDP = targetElem.getDockingPointById(targetDockingPointId);
482
490
  if (!targetDP) {
483
- _context.next = 30;
491
+ _context.next = 32;
484
492
  break;
485
493
  }
486
494
  successDP = PlannerHandler2D.dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
487
495
  if (!successDP) {
488
- _context.next = 26;
496
+ _context.next = 28;
489
497
  break;
490
498
  }
491
499
  this.updateWorldPos(plannerElement, successDP);
492
500
  dockingFound = true;
493
- _context.next = 30;
501
+ _context.next = 32;
494
502
  break;
495
- case 26:
496
- _context.next = 28;
497
- return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
498
503
  case 28:
504
+ _context.next = 30;
505
+ return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
506
+ case 30:
499
507
  if (!_context.sent) {
500
- _context.next = 30;
508
+ _context.next = 32;
501
509
  break;
502
510
  }
503
511
  dockingFound = true;
504
- case 30:
505
- _context.next = 44;
506
- break;
507
512
  case 32:
513
+ _context.next = 46;
514
+ break;
515
+ case 34:
508
516
  success = false;
509
517
  if (plannerElement.HasAVL || plannerElement.HasAVR) {
510
518
  success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
@@ -513,28 +521,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
513
521
  success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
514
522
  }
515
523
  if (success) {
516
- _context.next = 43;
524
+ _context.next = 45;
517
525
  break;
518
526
  }
519
- _context.next = 38;
527
+ _context.next = 40;
520
528
  return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
521
- case 38:
529
+ case 40:
522
530
  success = _context.sent;
523
531
  if (success) {
524
- _context.next = 43;
532
+ _context.next = 45;
525
533
  break;
526
534
  }
527
- _context.next = 42;
535
+ _context.next = 44;
528
536
  return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
529
- case 42:
537
+ case 44:
530
538
  return _context.abrupt("return");
531
- case 43:
539
+ case 45:
532
540
  if (success) dockingFound = true;
533
- case 44:
541
+ case 46:
534
542
  i++;
535
- _context.next = 11;
543
+ _context.next = 13;
536
544
  break;
537
- case 47:
545
+ case 49:
538
546
  if (!dockingFound) {
539
547
  allPlannerElements = this.getAllPlannerElements();
540
548
  _success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
@@ -555,13 +563,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
555
563
  }
556
564
  }
557
565
  }
558
- case 48:
566
+ case 50:
559
567
  this.updatePlannerPosNr();
560
568
  this.updateAllElementsWorldPos();
561
569
  this.updatePlannerPosNr();
562
570
  this.checkCollision(false, plannerElement.getElementId());
563
571
  this.updatePlannerBoundingBox();
564
- case 53:
572
+ case 55:
565
573
  case "end":
566
574
  return _context.stop();
567
575
  }
@@ -973,23 +981,24 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
973
981
  i = 0;
974
982
  case 3:
975
983
  if (!(i < allPlannerElements.length)) {
976
- _context4.next = 13;
984
+ _context4.next = 14;
977
985
  break;
978
986
  }
979
987
  elem = allPlannerElements[i];
980
988
  doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
981
989
  if (!doReload) {
982
- _context4.next = 10;
990
+ _context4.next = 11;
983
991
  break;
984
992
  }
985
993
  elemtsWhereSomethingChanged.push(elem.ElementId);
986
- _context4.next = 10;
994
+ elem.keepOnFloorOnHeightChange();
995
+ _context4.next = 11;
987
996
  return PlannerHandler2D.handler2D.loadSVG(elem, this.set);
988
- case 10:
997
+ case 11:
989
998
  i++;
990
999
  _context4.next = 3;
991
1000
  break;
992
- case 13:
1001
+ case 14:
993
1002
  elementsToDelete = [];
994
1003
  if (elemtsWhereSomethingChanged.length) {
995
1004
  LOG.debug('Configuration changed one plannerElement. UpdateDockingRelations', 'DivaStandardPlanner - updatePlanner');
@@ -1010,7 +1019,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1010
1019
  elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
1011
1020
  failed: false
1012
1021
  });
1013
- case 16:
1022
+ case 17:
1014
1023
  case "end":
1015
1024
  return _context4.stop();
1016
1025
  }
@@ -1680,7 +1689,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1680
1689
  }
1681
1690
  transform = {
1682
1691
  rotDeg: plannerElement.getRotDeg(),
1683
- worldPosCenter: plannerElement.WorldPosCenter
1692
+ worldPosCenter: plannerElement.WorldPosCenter,
1693
+ height: plannerElement.Height
1684
1694
  };
1685
1695
  if (!removeDockingRelation) {
1686
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-0075f2cf.js');
6
+ require('./index-76d3a1ec.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -11,9 +11,10 @@ require('@babel/runtime/regenerator');
11
11
  require('@babel/runtime/helpers/objectWithoutProperties');
12
12
  require('@babel/runtime/helpers/toConsumableArray');
13
13
  require('axios');
14
+ require('@babel/runtime/helpers/typeof');
15
+ require('@babel/runtime/helpers/toArray');
14
16
  require('@crystaldesign/planner-2d-core');
15
17
  require('@crystaldesign/basket-model');
16
- require('@babel/runtime/helpers/typeof');
17
18
  require('fast-xml-parser');
18
19
  require('@babel/runtime/helpers/possibleConstructorReturn');
19
20
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -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-0075f2cf.js');
8
+ var index = require('./index-76d3a1ec.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var signalr = require('@microsoft/signalr');
11
11
  var io = require('socket.io-client');
@@ -14,9 +14,10 @@ require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('@babel/runtime/helpers/toConsumableArray');
16
16
  require('axios');
17
+ require('@babel/runtime/helpers/typeof');
18
+ require('@babel/runtime/helpers/toArray');
17
19
  require('@crystaldesign/planner-2d-core');
18
20
  require('@crystaldesign/basket-model');
19
- require('@babel/runtime/helpers/typeof');
20
21
  require('fast-xml-parser');
21
22
  require('@babel/runtime/helpers/possibleConstructorReturn');
22
23
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -47,6 +48,8 @@ var Host3DSignalR = /*#__PURE__*/function () {
47
48
  _defineProperty__default["default"](this, "connectionErrorCount", void 0);
48
49
  _defineProperty__default["default"](this, "doIgnoreOnClosed", void 0);
49
50
  //This boolean allows to ignore the onClose connection event of the signalR connection.
51
+ _defineProperty__default["default"](this, "isClosed", false);
52
+ //Set by closeConnection(): a closed instance must never connect again.
50
53
  _defineProperty__default["default"](this, "sessionID", void 0);
51
54
  //DivaMediaService
52
55
  _defineProperty__default["default"](this, "divaMediaServiceSocketIO", undefined);
@@ -160,7 +163,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
160
163
  value: (function () {
161
164
  var _initializeConnection = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(divaNr) {
162
165
  var _this2 = this;
163
- var that;
166
+ var that, connection;
164
167
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
165
168
  while (1) switch (_context2.prev = _context2.next) {
166
169
  case 0:
@@ -179,11 +182,22 @@ var Host3DSignalR = /*#__PURE__*/function () {
179
182
  _context2.next = 5;
180
183
  return this.delay(100);
181
184
  case 5:
185
+ if (!this.isClosed) {
186
+ _context2.next = 7;
187
+ break;
188
+ }
189
+ return _context2.abrupt("return");
190
+ case 7:
182
191
  LOG.debug('Create SignalR connection with host: ' + this.renderSettings.Diva3DServerURL + '; RenderGroup: ' + this.renderSettings.RenderGroup);
183
192
  that = this;
184
193
  if (this.signalRConnection) {
185
194
  this.doIgnoreOnClosed = true;
186
- this.signalRConnection._completeClose();
195
+ // The replaced connection's close event is ignored below, so reset its state here.
196
+ this.connectionStarted = false;
197
+ this.successfullyLoggedIn = false;
198
+ this.successfullyJoinedDivaNr = false;
199
+ // stop() also closes the transport and cancels pending invocations, unlike the private _completeClose().
200
+ this.signalRConnection.stop()["catch"](function () {});
187
201
  this.signalRConnection = null;
188
202
  }
189
203
  if ((typeof window === 'undefined' || window).DIVA_LOGGER == 0) {
@@ -191,11 +205,14 @@ var Host3DSignalR = /*#__PURE__*/function () {
191
205
  } else {
192
206
  this.signalRConnection = new signalr.HubConnectionBuilder().withUrl(this.renderSettings.Diva3DServerURL).withHubProtocol(new signalrProtocolMsgpack.MessagePackHubProtocol()).configureLogging(signalr.LogLevel.None).build();
193
207
  }
208
+ // Callbacks of a connection that was replaced meanwhile must not change the state of the current one.
209
+ connection = this.signalRConnection;
194
210
  this.signalRConnection.on('UnvalidSessionID', this.unvalidSessionID);
195
211
  this.signalRConnection.on('noRenderClientFound', this.noRenderClientFound);
196
212
  this.signalRConnection.on('newRendering', this.newRendering);
197
213
  this.signalRConnection.on('newHQRenderScript', this.newHQRenderScript);
198
214
  this.signalRConnection.start().then(function () {
215
+ if (connection !== that.signalRConnection) return;
199
216
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
200
217
  index.bootMark('signalr: connected');
201
218
  that.connectionStarted = true;
@@ -208,6 +225,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
208
225
  that.reconnectingErrorCount = 0;
209
226
  that.login(); //After connecting to signalR, the login should be performed
210
227
  })["catch"](function (err) {
228
+ if (connection !== that.signalRConnection) return;
211
229
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
212
230
  LOG.error(new DivaUtils.DivaError('Connection error. Message: ' + err.toString(), {
213
231
  code: 'WC_0014'
@@ -222,26 +240,32 @@ var Host3DSignalR = /*#__PURE__*/function () {
222
240
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
223
241
  while (1) switch (_context.prev = _context.next) {
224
242
  case 0:
243
+ if (!(connection !== _this2.signalRConnection)) {
244
+ _context.next = 2;
245
+ break;
246
+ }
247
+ return _context.abrupt("return");
248
+ case 2:
225
249
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
226
250
  LOG.warn('Connection with 3D Host gets lost. Try to reconnect.', 'WC_0014');
227
251
  that.connectionStarted = false;
228
252
  _this2.successfullyLoggedIn = false;
229
253
  _this2.successfullyJoinedDivaNr = false;
230
254
  if (!_this2.doIgnoreOnClosed) {
231
- _context.next = 7;
255
+ _context.next = 9;
232
256
  break;
233
257
  }
234
258
  return _context.abrupt("return");
235
- case 7:
259
+ case 9:
236
260
  _this2.reconnectAfterError = true;
237
261
  that.initializeConnection();
238
- case 9:
262
+ case 11:
239
263
  case "end":
240
264
  return _context.stop();
241
265
  }
242
266
  }, _callee);
243
267
  })));
244
- case 15:
268
+ case 18:
245
269
  case "end":
246
270
  return _context2.stop();
247
271
  }
@@ -442,11 +466,15 @@ var Host3DSignalR = /*#__PURE__*/function () {
442
466
  }, {
443
467
  key: "closeConnection",
444
468
  value: function closeConnection() {
469
+ this.isClosed = true;
445
470
  if (this.signalRConnection) {
446
471
  this.doIgnoreOnClosed = true;
447
472
  this.signalRConnection.invoke('LeaveWebClient')["catch"](function () {});
448
473
  LOG.debug('SignalRConnection: Close Connection and say byby to Diva3DHost.');
449
474
  this.signalRConnection.stop()["catch"](function () {});
475
+ // Drops the closed connection's callbacks: stopping it while it still starts rejects start(), which would
476
+ // otherwise reconnect and log in for a planner that is gone.
477
+ this.signalRConnection = null;
450
478
  }
451
479
 
452
480
  // Also close the socket connection to DivaMediaService
@@ -465,7 +493,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
465
493
  key: "login",
466
494
  value: (function () {
467
495
  var _login = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6() {
468
- var sessionId, that;
496
+ var connection, sessionId, that;
469
497
  return _regeneratorRuntime__default["default"].wrap(function _callee6$(_context6) {
470
498
  while (1) switch (_context6.prev = _context6.next) {
471
499
  case 0:
@@ -473,11 +501,21 @@ var Host3DSignalR = /*#__PURE__*/function () {
473
501
  //_this.ServerLog("Login","send Login - userID:" + _userID + ", deviceID:" + _deviceID + ", divaSessionID:" SaveProjectWi+ _divaSessionID + ", info:" + _Application);
474
502
  DivaUtils__default["default"].startSpanOfApm('PlannerHandler3D login');
475
503
  index.bootMark('signalr: LoginWebPlanner sent');
476
- _context6.prev = 3;
477
- _context6.next = 6;
478
- return this.signalRConnection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
479
- case 6:
504
+
505
+ // A login answered after its connection was replaced belongs to the old connection: reporting it would mark the
506
+ // client as logged in while the new connection is not started yet.
507
+ connection = this.signalRConnection;
508
+ _context6.prev = 4;
509
+ _context6.next = 7;
510
+ return connection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
511
+ case 7:
480
512
  sessionId = _context6.sent;
513
+ if (!(connection !== this.signalRConnection)) {
514
+ _context6.next = 10;
515
+ break;
516
+ }
517
+ return _context6.abrupt("return");
518
+ case 10:
481
519
  index.bootMark('signalr: LoginWebPlanner acked', {
482
520
  ok: sessionId != '' ? 1 : 0
483
521
  });
@@ -494,21 +532,27 @@ var Host3DSignalR = /*#__PURE__*/function () {
494
532
  status: 'ERROR'
495
533
  });
496
534
  }
497
- _context6.next = 17;
535
+ _context6.next = 22;
498
536
  break;
499
- case 12:
500
- _context6.prev = 12;
501
- _context6.t0 = _context6["catch"](3);
537
+ case 15:
538
+ _context6.prev = 15;
539
+ _context6.t0 = _context6["catch"](4);
540
+ if (!(connection !== this.signalRConnection)) {
541
+ _context6.next = 19;
542
+ break;
543
+ }
544
+ return _context6.abrupt("return");
545
+ case 19:
502
546
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D login');
503
547
  that = this;
504
548
  this.handleConnectionError(_context6.t0, function () {
505
549
  that.login();
506
550
  });
507
- case 17:
551
+ case 22:
508
552
  case "end":
509
553
  return _context6.stop();
510
554
  }
511
- }, _callee6, this, [[3, 12]]);
555
+ }, _callee6, this, [[4, 15]]);
512
556
  }));
513
557
  function login() {
514
558
  return _login.apply(this, arguments);
@@ -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-0075f2cf.js');
5
+ require('./index-76d3a1ec.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -11,9 +11,10 @@ require('@babel/runtime/helpers/objectWithoutProperties');
11
11
  require('@babel/runtime/helpers/toConsumableArray');
12
12
  require('axios');
13
13
  require('@crystaldesign/diva-utils');
14
+ require('@babel/runtime/helpers/typeof');
15
+ require('@babel/runtime/helpers/toArray');
14
16
  require('@crystaldesign/planner-2d-core');
15
17
  require('@crystaldesign/basket-model');
16
- require('@babel/runtime/helpers/typeof');
17
18
  require('fast-xml-parser');
18
19
  require('@babel/runtime/helpers/possibleConstructorReturn');
19
20
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -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-0075f2cf.js');
5
+ var index = require('./index-76d3a1ec.js');
6
6
  var basketModel = require('@crystaldesign/basket-model');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -12,8 +12,9 @@ require('@babel/runtime/regenerator');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
13
13
  require('@babel/runtime/helpers/toConsumableArray');
14
14
  require('axios');
15
- require('@crystaldesign/planner-2d-core');
16
15
  require('@babel/runtime/helpers/typeof');
16
+ require('@babel/runtime/helpers/toArray');
17
+ require('@crystaldesign/planner-2d-core');
17
18
  require('fast-xml-parser');
18
19
  require('@babel/runtime/helpers/possibleConstructorReturn');
19
20
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -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-0075f2cf.js');
8
+ var index = require('./index-76d3a1ec.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-0075f2cf.js');
6
+ var index = require('./index-76d3a1ec.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -11,9 +11,10 @@ require('@babel/runtime/regenerator');
11
11
  require('@babel/runtime/helpers/objectWithoutProperties');
12
12
  require('@babel/runtime/helpers/toConsumableArray');
13
13
  require('axios');
14
+ require('@babel/runtime/helpers/typeof');
15
+ require('@babel/runtime/helpers/toArray');
14
16
  require('@crystaldesign/planner-2d-core');
15
17
  require('@crystaldesign/basket-model');
16
- require('@babel/runtime/helpers/typeof');
17
18
  require('fast-xml-parser');
18
19
  require('@babel/runtime/helpers/possibleConstructorReturn');
19
20
  require('@babel/runtime/helpers/getPrototypeOf');