@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-0075f2cf.js');
5
+ var index = require('./index-76d3a1ec.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -14,8 +14,9 @@ require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('@babel/runtime/helpers/toConsumableArray');
15
15
  require('axios');
16
16
  require('@crystaldesign/diva-utils');
17
- require('@crystaldesign/basket-model');
18
17
  require('@babel/runtime/helpers/typeof');
18
+ require('@babel/runtime/helpers/toArray');
19
+ require('@crystaldesign/basket-model');
19
20
  require('fast-xml-parser');
20
21
  require('@babel/runtime/helpers/possibleConstructorReturn');
21
22
  require('@babel/runtime/helpers/getPrototypeOf');
@@ -50,17 +51,12 @@ exports.bootNow = index.bootNow;
50
51
  exports.bootRequestName = index.bootRequestName;
51
52
  exports.collectStructureStepKeys = index.collectStructureStepKeys;
52
53
  exports.creatRenderOrders = index.creatRenderOrders;
53
- exports.decodePropertyValue = index.decodePropertyValue;
54
54
  exports["default"] = index.DivaWebPlanner;
55
- exports.editorKindOf = index.editorKindOf;
56
- exports.encodePropertyValue = index.encodePropertyValue;
57
55
  exports.getOrigProductId = index.getOrigProductId;
58
56
  exports.getSeriousSetNamePlaceholder = index.getSeriousSetNamePlaceholder;
59
57
  exports.headlessSession = index.headlessSession;
60
58
  exports.loadAndRepairBasket = index.loadAndRepairBasket;
61
59
  exports.propertyEncodingOf = index.propertyEncodingOf;
62
- exports.propertyValueProblem = index.propertyValueProblem;
63
- exports.rawStringOf = index.rawStringOf;
64
60
  exports.runHeadlessArtifactPass = index.runHeadlessArtifactPass;
65
61
  exports.runHeadlessArtifactPassBatch = index.runHeadlessArtifactPassBatch;
66
62
  Object.defineProperty(exports, 'DockingPoint', {
@@ -3,16 +3,17 @@ 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-6188684c.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-8d311c4b.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-00b50d01.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-88b9a108.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
+ import '@babel/runtime/helpers/typeof';
14
+ import '@babel/runtime/helpers/toArray';
13
15
  import '@crystaldesign/planner-2d-core';
14
16
  import '@crystaldesign/basket-model';
15
- import '@babel/runtime/helpers/typeof';
16
17
  import 'fast-xml-parser';
17
18
  import '@babel/runtime/helpers/possibleConstructorReturn';
18
19
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -4,15 +4,16 @@ 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-6188684c.js';
7
+ import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-8d311c4b.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-00b50d01.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-88b9a108.js';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
14
- import '@crystaldesign/basket-model';
15
14
  import '@babel/runtime/helpers/typeof';
15
+ import '@babel/runtime/helpers/toArray';
16
+ import '@crystaldesign/basket-model';
16
17
  import 'fast-xml-parser';
17
18
  import '@babel/runtime/helpers/possibleConstructorReturn';
18
19
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -413,6 +414,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
413
414
  var _addElementToWorld = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(plannerElement, dockingPointInfos, suppressDock, globalBoundingBox) {
414
415
  var xOffset,
415
416
  setToTransform,
417
+ _setToTransform$trans,
418
+ worldPosCenter,
419
+ height,
420
+ stoodOnFloor,
416
421
  dockingFound,
417
422
  i,
418
423
  targetElemIdToDock,
@@ -430,69 +435,72 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
430
435
  xOffset = _args.length > 4 && _args[4] !== undefined ? _args[4] : 100;
431
436
  setToTransform = _args.length > 5 ? _args[5] : undefined;
432
437
  if (!(setToTransform && setToTransform.forceSetToTrans)) {
433
- _context.next = 8;
438
+ _context.next = 10;
434
439
  break;
435
440
  }
436
- 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;
437
445
  plannerElement.RotDeg = setToTransform.transform.rotDeg;
438
446
  this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
439
- _context.next = 48;
447
+ _context.next = 50;
440
448
  break;
441
- case 8:
449
+ case 10:
442
450
  //Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
443
451
  dockingFound = false;
444
452
  if (!dockingPointInfos) {
445
- _context.next = 47;
453
+ _context.next = 49;
446
454
  break;
447
455
  }
448
456
  i = 0;
449
- case 11:
457
+ case 13:
450
458
  if (!(i < dockingPointInfos.length)) {
451
- _context.next = 47;
459
+ _context.next = 49;
452
460
  break;
453
461
  }
454
462
  targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
455
463
  targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
456
464
  if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
457
- _context.next = 44;
465
+ _context.next = 46;
458
466
  break;
459
467
  }
460
468
  if (!(targetDockingPointId && targetDockingPointId != '')) {
461
- _context.next = 32;
469
+ _context.next = 34;
462
470
  break;
463
471
  }
464
472
  targetElem = this.plannerElements.get(targetElemIdToDock);
465
473
  if (!targetElem) {
466
- _context.next = 30;
474
+ _context.next = 32;
467
475
  break;
468
476
  }
469
477
  targetDP = targetElem.getDockingPointById(targetDockingPointId);
470
478
  if (!targetDP) {
471
- _context.next = 30;
479
+ _context.next = 32;
472
480
  break;
473
481
  }
474
482
  successDP = dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
475
483
  if (!successDP) {
476
- _context.next = 26;
484
+ _context.next = 28;
477
485
  break;
478
486
  }
479
487
  this.updateWorldPos(plannerElement, successDP);
480
488
  dockingFound = true;
481
- _context.next = 30;
489
+ _context.next = 32;
482
490
  break;
483
- case 26:
484
- _context.next = 28;
485
- return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
486
491
  case 28:
492
+ _context.next = 30;
493
+ return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
494
+ case 30:
487
495
  if (!_context.sent) {
488
- _context.next = 30;
496
+ _context.next = 32;
489
497
  break;
490
498
  }
491
499
  dockingFound = true;
492
- case 30:
493
- _context.next = 44;
494
- break;
495
500
  case 32:
501
+ _context.next = 46;
502
+ break;
503
+ case 34:
496
504
  success = false;
497
505
  if (plannerElement.HasAVL || plannerElement.HasAVR) {
498
506
  success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
@@ -501,28 +509,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
501
509
  success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
502
510
  }
503
511
  if (success) {
504
- _context.next = 43;
512
+ _context.next = 45;
505
513
  break;
506
514
  }
507
- _context.next = 38;
515
+ _context.next = 40;
508
516
  return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
509
- case 38:
517
+ case 40:
510
518
  success = _context.sent;
511
519
  if (success) {
512
- _context.next = 43;
520
+ _context.next = 45;
513
521
  break;
514
522
  }
515
- _context.next = 42;
523
+ _context.next = 44;
516
524
  return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
517
- case 42:
525
+ case 44:
518
526
  return _context.abrupt("return");
519
- case 43:
527
+ case 45:
520
528
  if (success) dockingFound = true;
521
- case 44:
529
+ case 46:
522
530
  i++;
523
- _context.next = 11;
531
+ _context.next = 13;
524
532
  break;
525
- case 47:
533
+ case 49:
526
534
  if (!dockingFound) {
527
535
  allPlannerElements = this.getAllPlannerElements();
528
536
  _success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
@@ -543,13 +551,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
543
551
  }
544
552
  }
545
553
  }
546
- case 48:
554
+ case 50:
547
555
  this.updatePlannerPosNr();
548
556
  this.updateAllElementsWorldPos();
549
557
  this.updatePlannerPosNr();
550
558
  this.checkCollision(false, plannerElement.getElementId());
551
559
  this.updatePlannerBoundingBox();
552
- case 53:
560
+ case 55:
553
561
  case "end":
554
562
  return _context.stop();
555
563
  }
@@ -961,23 +969,24 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
961
969
  i = 0;
962
970
  case 3:
963
971
  if (!(i < allPlannerElements.length)) {
964
- _context4.next = 13;
972
+ _context4.next = 14;
965
973
  break;
966
974
  }
967
975
  elem = allPlannerElements[i];
968
976
  doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
969
977
  if (!doReload) {
970
- _context4.next = 10;
978
+ _context4.next = 11;
971
979
  break;
972
980
  }
973
981
  elemtsWhereSomethingChanged.push(elem.ElementId);
974
- _context4.next = 10;
982
+ elem.keepOnFloorOnHeightChange();
983
+ _context4.next = 11;
975
984
  return handler2D.loadSVG(elem, this.set);
976
- case 10:
985
+ case 11:
977
986
  i++;
978
987
  _context4.next = 3;
979
988
  break;
980
- case 13:
989
+ case 14:
981
990
  elementsToDelete = [];
982
991
  if (elemtsWhereSomethingChanged.length) {
983
992
  LOG.debug('Configuration changed one plannerElement. UpdateDockingRelations', 'DivaStandardPlanner - updatePlanner');
@@ -998,7 +1007,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
998
1007
  elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
999
1008
  failed: false
1000
1009
  });
1001
- case 16:
1010
+ case 17:
1002
1011
  case "end":
1003
1012
  return _context4.stop();
1004
1013
  }
@@ -1668,7 +1677,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1668
1677
  }
1669
1678
  transform = {
1670
1679
  rotDeg: plannerElement.getRotDeg(),
1671
- worldPosCenter: plannerElement.WorldPosCenter
1680
+ worldPosCenter: plannerElement.WorldPosCenter,
1681
+ height: plannerElement.Height
1672
1682
  };
1673
1683
  if (!removeDockingRelation) {
1674
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-6188684c.js';
4
+ import './index-8d311c4b.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -9,9 +9,10 @@ import '@babel/runtime/regenerator';
9
9
  import '@babel/runtime/helpers/objectWithoutProperties';
10
10
  import '@babel/runtime/helpers/toConsumableArray';
11
11
  import 'axios';
12
+ import '@babel/runtime/helpers/typeof';
13
+ import '@babel/runtime/helpers/toArray';
12
14
  import '@crystaldesign/planner-2d-core';
13
15
  import '@crystaldesign/basket-model';
14
- import '@babel/runtime/helpers/typeof';
15
16
  import 'fast-xml-parser';
16
17
  import '@babel/runtime/helpers/possibleConstructorReturn';
17
18
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -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-6188684c.js';
6
+ import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-8d311c4b.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';
@@ -12,9 +12,10 @@ import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import '@babel/runtime/helpers/toConsumableArray';
14
14
  import 'axios';
15
+ import '@babel/runtime/helpers/typeof';
16
+ import '@babel/runtime/helpers/toArray';
15
17
  import '@crystaldesign/planner-2d-core';
16
18
  import '@crystaldesign/basket-model';
17
- import '@babel/runtime/helpers/typeof';
18
19
  import 'fast-xml-parser';
19
20
  import '@babel/runtime/helpers/possibleConstructorReturn';
20
21
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -35,6 +36,8 @@ var Host3DSignalR = /*#__PURE__*/function () {
35
36
  _defineProperty(this, "connectionErrorCount", void 0);
36
37
  _defineProperty(this, "doIgnoreOnClosed", void 0);
37
38
  //This boolean allows to ignore the onClose connection event of the signalR connection.
39
+ _defineProperty(this, "isClosed", false);
40
+ //Set by closeConnection(): a closed instance must never connect again.
38
41
  _defineProperty(this, "sessionID", void 0);
39
42
  //DivaMediaService
40
43
  _defineProperty(this, "divaMediaServiceSocketIO", undefined);
@@ -148,7 +151,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
148
151
  value: (function () {
149
152
  var _initializeConnection = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(divaNr) {
150
153
  var _this2 = this;
151
- var that;
154
+ var that, connection;
152
155
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
153
156
  while (1) switch (_context2.prev = _context2.next) {
154
157
  case 0:
@@ -167,11 +170,22 @@ var Host3DSignalR = /*#__PURE__*/function () {
167
170
  _context2.next = 5;
168
171
  return this.delay(100);
169
172
  case 5:
173
+ if (!this.isClosed) {
174
+ _context2.next = 7;
175
+ break;
176
+ }
177
+ return _context2.abrupt("return");
178
+ case 7:
170
179
  LOG.debug('Create SignalR connection with host: ' + this.renderSettings.Diva3DServerURL + '; RenderGroup: ' + this.renderSettings.RenderGroup);
171
180
  that = this;
172
181
  if (this.signalRConnection) {
173
182
  this.doIgnoreOnClosed = true;
174
- this.signalRConnection._completeClose();
183
+ // The replaced connection's close event is ignored below, so reset its state here.
184
+ this.connectionStarted = false;
185
+ this.successfullyLoggedIn = false;
186
+ this.successfullyJoinedDivaNr = false;
187
+ // stop() also closes the transport and cancels pending invocations, unlike the private _completeClose().
188
+ this.signalRConnection.stop()["catch"](function () {});
175
189
  this.signalRConnection = null;
176
190
  }
177
191
  if ((typeof window === 'undefined' || window).DIVA_LOGGER == 0) {
@@ -179,11 +193,14 @@ var Host3DSignalR = /*#__PURE__*/function () {
179
193
  } else {
180
194
  this.signalRConnection = new HubConnectionBuilder().withUrl(this.renderSettings.Diva3DServerURL).withHubProtocol(new MessagePackHubProtocol()).configureLogging(LogLevel.None).build();
181
195
  }
196
+ // Callbacks of a connection that was replaced meanwhile must not change the state of the current one.
197
+ connection = this.signalRConnection;
182
198
  this.signalRConnection.on('UnvalidSessionID', this.unvalidSessionID);
183
199
  this.signalRConnection.on('noRenderClientFound', this.noRenderClientFound);
184
200
  this.signalRConnection.on('newRendering', this.newRendering);
185
201
  this.signalRConnection.on('newHQRenderScript', this.newHQRenderScript);
186
202
  this.signalRConnection.start().then(function () {
203
+ if (connection !== that.signalRConnection) return;
187
204
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
188
205
  bootMark('signalr: connected');
189
206
  that.connectionStarted = true;
@@ -196,6 +213,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
196
213
  that.reconnectingErrorCount = 0;
197
214
  that.login(); //After connecting to signalR, the login should be performed
198
215
  })["catch"](function (err) {
216
+ if (connection !== that.signalRConnection) return;
199
217
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
200
218
  LOG.error(new DivaError('Connection error. Message: ' + err.toString(), {
201
219
  code: 'WC_0014'
@@ -210,26 +228,32 @@ var Host3DSignalR = /*#__PURE__*/function () {
210
228
  return _regeneratorRuntime.wrap(function _callee$(_context) {
211
229
  while (1) switch (_context.prev = _context.next) {
212
230
  case 0:
231
+ if (!(connection !== _this2.signalRConnection)) {
232
+ _context.next = 2;
233
+ break;
234
+ }
235
+ return _context.abrupt("return");
236
+ case 2:
213
237
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
214
238
  LOG.warn('Connection with 3D Host gets lost. Try to reconnect.', 'WC_0014');
215
239
  that.connectionStarted = false;
216
240
  _this2.successfullyLoggedIn = false;
217
241
  _this2.successfullyJoinedDivaNr = false;
218
242
  if (!_this2.doIgnoreOnClosed) {
219
- _context.next = 7;
243
+ _context.next = 9;
220
244
  break;
221
245
  }
222
246
  return _context.abrupt("return");
223
- case 7:
247
+ case 9:
224
248
  _this2.reconnectAfterError = true;
225
249
  that.initializeConnection();
226
- case 9:
250
+ case 11:
227
251
  case "end":
228
252
  return _context.stop();
229
253
  }
230
254
  }, _callee);
231
255
  })));
232
- case 15:
256
+ case 18:
233
257
  case "end":
234
258
  return _context2.stop();
235
259
  }
@@ -430,11 +454,15 @@ var Host3DSignalR = /*#__PURE__*/function () {
430
454
  }, {
431
455
  key: "closeConnection",
432
456
  value: function closeConnection() {
457
+ this.isClosed = true;
433
458
  if (this.signalRConnection) {
434
459
  this.doIgnoreOnClosed = true;
435
460
  this.signalRConnection.invoke('LeaveWebClient')["catch"](function () {});
436
461
  LOG.debug('SignalRConnection: Close Connection and say byby to Diva3DHost.');
437
462
  this.signalRConnection.stop()["catch"](function () {});
463
+ // Drops the closed connection's callbacks: stopping it while it still starts rejects start(), which would
464
+ // otherwise reconnect and log in for a planner that is gone.
465
+ this.signalRConnection = null;
438
466
  }
439
467
 
440
468
  // Also close the socket connection to DivaMediaService
@@ -453,7 +481,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
453
481
  key: "login",
454
482
  value: (function () {
455
483
  var _login = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
456
- var sessionId, that;
484
+ var connection, sessionId, that;
457
485
  return _regeneratorRuntime.wrap(function _callee6$(_context6) {
458
486
  while (1) switch (_context6.prev = _context6.next) {
459
487
  case 0:
@@ -461,11 +489,21 @@ var Host3DSignalR = /*#__PURE__*/function () {
461
489
  //_this.ServerLog("Login","send Login - userID:" + _userID + ", deviceID:" + _deviceID + ", divaSessionID:" SaveProjectWi+ _divaSessionID + ", info:" + _Application);
462
490
  DivaUtils.startSpanOfApm('PlannerHandler3D login');
463
491
  bootMark('signalr: LoginWebPlanner sent');
464
- _context6.prev = 3;
465
- _context6.next = 6;
466
- return this.signalRConnection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
467
- case 6:
492
+
493
+ // A login answered after its connection was replaced belongs to the old connection: reporting it would mark the
494
+ // client as logged in while the new connection is not started yet.
495
+ connection = this.signalRConnection;
496
+ _context6.prev = 4;
497
+ _context6.next = 7;
498
+ return connection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
499
+ case 7:
468
500
  sessionId = _context6.sent;
501
+ if (!(connection !== this.signalRConnection)) {
502
+ _context6.next = 10;
503
+ break;
504
+ }
505
+ return _context6.abrupt("return");
506
+ case 10:
469
507
  bootMark('signalr: LoginWebPlanner acked', {
470
508
  ok: sessionId != '' ? 1 : 0
471
509
  });
@@ -482,21 +520,27 @@ var Host3DSignalR = /*#__PURE__*/function () {
482
520
  status: 'ERROR'
483
521
  });
484
522
  }
485
- _context6.next = 17;
523
+ _context6.next = 22;
486
524
  break;
487
- case 12:
488
- _context6.prev = 12;
489
- _context6.t0 = _context6["catch"](3);
525
+ case 15:
526
+ _context6.prev = 15;
527
+ _context6.t0 = _context6["catch"](4);
528
+ if (!(connection !== this.signalRConnection)) {
529
+ _context6.next = 19;
530
+ break;
531
+ }
532
+ return _context6.abrupt("return");
533
+ case 19:
490
534
  DivaUtils.endSpanOfApm('PlannerHandler3D login');
491
535
  that = this;
492
536
  this.handleConnectionError(_context6.t0, function () {
493
537
  that.login();
494
538
  });
495
- case 17:
539
+ case 22:
496
540
  case "end":
497
541
  return _context6.stop();
498
542
  }
499
- }, _callee6, this, [[3, 12]]);
543
+ }, _callee6, this, [[4, 15]]);
500
544
  }));
501
545
  function login() {
502
546
  return _login.apply(this, arguments);
@@ -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-6188684c.js';
3
+ import './index-8d311c4b.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -9,9 +9,10 @@ import '@babel/runtime/helpers/objectWithoutProperties';
9
9
  import '@babel/runtime/helpers/toConsumableArray';
10
10
  import 'axios';
11
11
  import '@crystaldesign/diva-utils';
12
+ import '@babel/runtime/helpers/typeof';
13
+ import '@babel/runtime/helpers/toArray';
12
14
  import '@crystaldesign/planner-2d-core';
13
15
  import '@crystaldesign/basket-model';
14
- import '@babel/runtime/helpers/typeof';
15
16
  import 'fast-xml-parser';
16
17
  import '@babel/runtime/helpers/possibleConstructorReturn';
17
18
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -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-6188684c.js';
3
+ import { a as articleHandlerInstance } from './index-8d311c4b.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';
@@ -10,8 +10,9 @@ import '@babel/runtime/regenerator';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
11
11
  import '@babel/runtime/helpers/toConsumableArray';
12
12
  import 'axios';
13
- import '@crystaldesign/planner-2d-core';
14
13
  import '@babel/runtime/helpers/typeof';
14
+ import '@babel/runtime/helpers/toArray';
15
+ import '@crystaldesign/planner-2d-core';
15
16
  import 'fast-xml-parser';
16
17
  import '@babel/runtime/helpers/possibleConstructorReturn';
17
18
  import '@babel/runtime/helpers/getPrototypeOf';
@@ -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-6188684c.js';
6
+ import { c as Vector2, S as SVGUtils } from './index-8d311c4b.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-6188684c.js';
4
+ import { s as summaryHandlerInstance } from './index-8d311c4b.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -9,9 +9,10 @@ import '@babel/runtime/regenerator';
9
9
  import '@babel/runtime/helpers/objectWithoutProperties';
10
10
  import '@babel/runtime/helpers/toConsumableArray';
11
11
  import 'axios';
12
+ import '@babel/runtime/helpers/typeof';
13
+ import '@babel/runtime/helpers/toArray';
12
14
  import '@crystaldesign/planner-2d-core';
13
15
  import '@crystaldesign/basket-model';
14
- import '@babel/runtime/helpers/typeof';
15
16
  import 'fast-xml-parser';
16
17
  import '@babel/runtime/helpers/possibleConstructorReturn';
17
18
  import '@babel/runtime/helpers/getPrototypeOf';