@crystaldesign/web-planner-logic 26.11.0-beta.2 → 26.11.0-beta.21

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 (108) hide show
  1. package/build/cjs/{DivaBoxPlanner-68cc1bd1.js → DivaBoxPlanner-051e3b01.js} +134 -47
  2. package/build/cjs/{DivaStandardPlanner-d44ae0e7.js → DivaStandardPlanner-40846a4f.js} +340 -190
  3. package/build/cjs/{DoorPlanner-1719cbe1.js → DoorPlanner-51477bb2.js} +3 -1
  4. package/build/cjs/{Host3DSignalR-a456221e.js → Host3DSignalR-72511b72.js} +41 -24
  5. package/build/cjs/{LiviqueWWSHandler-f2afb4eb.js → LiviqueWWSHandler-fbfeeb05.js} +3 -1
  6. package/build/cjs/{PfisterWWSHandler-8f522ab6.js → PfisterWWSHandler-a7ac983b.js} +3 -1
  7. package/build/cjs/PlannerHandler2D-e2c83aec.js +544 -0
  8. package/build/cjs/{SeriousBasketHandler-b39f0556.js → SeriousBasketHandler-60853c54.js} +3 -1
  9. package/build/cjs/{ShelfPlanner-1dde2d7c.js → ShelfPlanner-a901f6da.js} +262 -148
  10. package/build/cjs/{StandardWWSHandler-62ec343d.js → StandardWWSHandler-3a8a3685.js} +3 -1
  11. package/build/cjs/{index-d63749e4.js → index-7d87a838.js} +15132 -13899
  12. package/build/cjs/index.js +13 -2
  13. package/build/esm/{DivaBoxPlanner-a347ef5d.js → DivaBoxPlanner-a76550ee.js} +134 -47
  14. package/build/esm/{DivaStandardPlanner-a8f0d722.js → DivaStandardPlanner-56c260dc.js} +339 -190
  15. package/build/esm/{DoorPlanner-60c065e5.js → DoorPlanner-a40a4342.js} +3 -1
  16. package/build/esm/{Host3DSignalR-0c7e84a7.js → Host3DSignalR-6f824d99.js} +41 -24
  17. package/build/esm/{LiviqueWWSHandler-3df03404.js → LiviqueWWSHandler-2f1189d0.js} +3 -1
  18. package/build/esm/{PfisterWWSHandler-28b609ef.js → PfisterWWSHandler-81238c20.js} +3 -1
  19. package/build/esm/PlannerHandler2D-d93ae013.js +526 -0
  20. package/build/esm/{SeriousBasketHandler-276a8035.js → SeriousBasketHandler-bca9210d.js} +3 -1
  21. package/build/esm/{ShelfPlanner-7380b831.js → ShelfPlanner-539f1b08.js} +262 -148
  22. package/build/esm/{StandardWWSHandler-1d13f6a3.js → StandardWWSHandler-cdc4c837.js} +3 -1
  23. package/build/esm/{index-358c0a3c.js → index-b755400a.js} +15128 -13899
  24. package/build/esm/index.js +3 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +8 -3
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +13 -0
  28. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts +13 -0
  30. package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +3 -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/DivaCatalogDataType.d.ts +5 -0
  34. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +19 -18
  36. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts +37 -0
  38. package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts +5 -0
  40. package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +46 -2
  42. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts +4 -0
  45. package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +12 -2
  47. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +20 -0
  49. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +31 -1
  51. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
  52. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +25 -0
  53. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  54. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts +1 -0
  55. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
  56. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +149 -95
  57. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  58. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +19 -0
  59. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  60. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +15 -1
  61. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
  62. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +11 -1
  63. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
  64. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +28 -1
  65. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  66. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts +9 -114
  67. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
  68. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts +5 -7
  69. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts.map +1 -1
  70. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +5 -6
  71. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts.map +1 -1
  72. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  73. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +17 -1
  74. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  75. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +2 -2
  76. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
  77. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +31 -3
  78. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  79. package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts +9 -0
  80. package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts.map +1 -0
  81. package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts +12 -0
  82. package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts.map +1 -0
  83. package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts +66 -0
  84. package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts.map +1 -0
  85. package/build/types/web-planner-logic/src/logic/bootMark.d.ts +71 -0
  86. package/build/types/web-planner-logic/src/logic/bootMark.d.ts.map +1 -0
  87. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  88. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  89. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +11 -0
  90. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  91. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +13 -0
  92. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  93. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  94. package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts +1 -44
  95. package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts.map +1 -1
  96. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +6 -1
  97. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
  98. package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts +2 -0
  99. package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts.map +1 -0
  100. package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts +2 -0
  101. package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts.map +1 -0
  102. package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts +2 -0
  103. package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts.map +1 -0
  104. package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts +2 -0
  105. package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts.map +1 -0
  106. package/package.json +5 -5
  107. package/build/cjs/PlannerHandler2D-dbe1d858.js +0 -2470
  108. package/build/esm/PlannerHandler2D-f8657005.js +0 -2455
@@ -5,23 +5,24 @@ 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-d63749e4.js');
8
+ var index = require('./index-7d87a838.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-dbe1d858.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-e2c83aec.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/basket-model');
16
16
  require('@babel/runtime/helpers/typeof');
17
+ require('fast-xml-parser');
17
18
  require('@babel/runtime/helpers/possibleConstructorReturn');
18
19
  require('@babel/runtime/helpers/getPrototypeOf');
19
20
  require('@babel/runtime/helpers/inherits');
20
21
  require('@babel/runtime/helpers/wrapNativeSuper');
21
22
  require('@crystaldesign/basket-handler');
22
23
  require('socket.io-client');
23
- require('fabric');
24
- require('w3c-xmlserializer');
24
+ require('@crystaldesign/planner-2d-core');
25
+ require('@babel/runtime/helpers/get');
25
26
 
26
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
28
 
@@ -1791,6 +1792,15 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1791
1792
  _defineProperty__default["default"](this, "hideOptionsForConstruction", void 0);
1792
1793
  //This saves an array of options per elementID that are hidden due to construction rules
1793
1794
  _defineProperty__default["default"](this, "partlistHelper", void 0);
1795
+ /**
1796
+ * Debug trail of the LAST updateOptionLogicBoxPlanner run: one entry per option
1797
+ * show/hide/set, tagged with the pipeline phase that caused it. The box planner
1798
+ * has no other record of WHY an option was hidden — this is the equivalent of the
1799
+ * decision engines' decisionDebugStack. Reset at the start of every run; entries
1800
+ * are tiny, so it is always recorded (no logDecisions gate reachable here).
1801
+ */
1802
+ _defineProperty__default["default"](this, "constructionDebugStack", []);
1803
+ _defineProperty__default["default"](this, "debugPhase", '');
1794
1804
  /**
1795
1805
  * This function looks what value the option has in the current OptionHandler
1796
1806
  * @param elementId ElementId
@@ -1835,6 +1845,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1835
1845
  _this.hideOptionsForConstruction.get(elementId).splice(index, 1);
1836
1846
  }
1837
1847
  }
1848
+ _this.constructionDebugStack.push({
1849
+ phase: _this.debugPhase,
1850
+ elementId: elementId,
1851
+ action: 'set',
1852
+ option: option,
1853
+ value: optionValue
1854
+ });
1838
1855
  });
1839
1856
  /**
1840
1857
  * This function returns true, if the element has a bottom Plate. Elements with bottom plate are e.g. Offenes Fach oder Schubladen.
@@ -1961,6 +1978,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1961
1978
  if (!optionHandler.has(elementId)) optionHandler.set(elementId, new Map());
1962
1979
  (_optionHandler$get2 = optionHandler.get(elementId)) === null || _optionHandler$get2 === void 0 || _optionHandler$get2.set(option, curOptVisibilityInfo.doShow);
1963
1980
  }
1981
+ this.constructionDebugStack.push({
1982
+ phase: this.debugPhase,
1983
+ elementId: elementId,
1984
+ action: 'show',
1985
+ option: option,
1986
+ value: curOptVisibilityInfo.doShow
1987
+ });
1964
1988
  //initCfgValues mit allen gesammelten Optionen pro Element aufrufen
1965
1989
  //Hier setze ich den Optionswert. Er darf nicht mehr geändert werden von Außen. Hier müsste in der Palette der auch gesetzt werden.
1966
1990
  //Es kann sein, dass es im Konfigurationsbaum eine andere Option gibt (Glasdecke), die abhängig ist von einer Option, die nur beim Kopieren eines Elementes gesetzt wird (OPTOBEN).
@@ -1991,6 +2015,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
1991
2015
  (_optionHandler$get3 = optionHandler.get(elementId)) === null || _optionHandler$get3 === void 0 || _optionHandler$get3.set(option, curOptVisibilityInfo.doHide);
1992
2016
  if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
1993
2017
  (_this$hideOptionsForC2 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC2 === void 0 || _this$hideOptionsForC2.push(option);
2018
+ this.constructionDebugStack.push({
2019
+ phase: this.debugPhase,
2020
+ elementId: elementId,
2021
+ action: 'hide',
2022
+ option: option,
2023
+ value: curOptVisibilityInfo.doHide
2024
+ });
1994
2025
  }
1995
2026
  }, {
1996
2027
  key: "setOptionDoCustom",
@@ -2003,6 +2034,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
2003
2034
  (_optionHandler$get4 = optionHandler.get(elementId)) === null || _optionHandler$get4 === void 0 || _optionHandler$get4.set(option, curOptVisibilityInfo[val]);
2004
2035
  if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
2005
2036
  (_this$hideOptionsForC3 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC3 === void 0 || _this$hideOptionsForC3.push(option);
2037
+ this.constructionDebugStack.push({
2038
+ phase: this.debugPhase,
2039
+ elementId: elementId,
2040
+ action: 'set',
2041
+ option: option,
2042
+ value: curOptVisibilityInfo[val]
2043
+ });
2006
2044
  }
2007
2045
 
2008
2046
  //Returns all
@@ -3200,6 +3238,20 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3200
3238
  return this.constructionRulesLoaded;
3201
3239
  }
3202
3240
 
3241
+ /** The raw construction-rules JSON currently driving this planner (undefined until loaded). */
3242
+ }, {
3243
+ key: "getConstructionRules",
3244
+ value: function getConstructionRules() {
3245
+ return this.constructionRules;
3246
+ }
3247
+
3248
+ /** Options currently hidden per elementId because of construction rules (live state, not a copy). */
3249
+ }, {
3250
+ key: "getHideOptionsForConstruction",
3251
+ value: function getHideOptionsForConstruction() {
3252
+ return this.hideOptionsForConstruction;
3253
+ }
3254
+
3203
3255
  //Die gleiche Option kann sowohl nach rechts als auch nach oben gesetzt werden (Rahmen rechts oben). Wenn das der Fall ist, darf wenn es rechts keinen Nachbarn gibt nicht mit doShow überschrieben werden, wenn es vorher bei TOP versteckt wurde
3204
3256
  //Deshalb darf es nicht angeschalten werden, wenn es in der gleichen Runde ausgeschalten wurde
3205
3257
  /*
@@ -3234,6 +3286,8 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3234
3286
  resultMessage = undefined;
3235
3287
  LOG$2.debug('BoxPlanner - updateOptionLogicInGrid start updateOptionLogicInGrid');
3236
3288
  optionHandler = new Map(); //Saved die Optionen für dieses Update. Pro elementId und dann für jede Option den Optionvalue
3289
+ this.constructionDebugStack = [];
3290
+ this.debugPhase = 'resetCornerElements';
3237
3291
  //Das wird aufgerufen, wenn man alle Elemente auf einmal konfigrieren will, aber auf eine Ecke klickt. Das ist ungültig. Alle Ecken werden zum offenen Fach zurückgesetzt. Eentuen kann man hier noch meldung ausgeben
3238
3292
  if (forceResetCornerElements) {
3239
3293
  allElements = boxPlannerGrid.getAllElementIdsInGrid();
@@ -3245,11 +3299,16 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3245
3299
  }
3246
3300
  }
3247
3301
  }
3302
+ this.debugPhase = 'setAllOptToDefault';
3248
3303
  resultMessage = this.setAllOptToDefault(boxPlannerGrid, optionHandler, changedOPTs, targetElements);
3304
+ this.debugPhase = 'correctAffectedElementsByOption';
3249
3305
  this.doCorrectAffectedElementsByOption(boxPlannerGrid, optionHandler, changedOPTs, targetElements);
3306
+ this.debugPhase = 'correctBottom';
3250
3307
  this.correctBottom(boxPlannerGrid, optionHandler, false);
3251
3308
  if (boxPlannerGrid.getPlannerHasActiveBackside()) this.correctBottom(boxPlannerGrid, optionHandler, true);
3309
+ this.debugPhase = 'correctSeries';
3252
3310
  this.correctSeries(boxPlannerGrid, optionHandler);
3311
+ this.debugPhase = 'correctSimpleOpt(neighborRules)';
3253
3312
  for (i = 0; i < boxPlannerGrid.getColumnCount(); i++) {
3254
3313
  for (j = 0; j < boxPlannerGrid.getRowCount(i, false); j++) {
3255
3314
  this.correctSimpleOpt(i, j, boxPlannerGrid, optionHandler, false);
@@ -3262,83 +3321,91 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3262
3321
  }
3263
3322
  }
3264
3323
  }
3324
+ this.debugPhase = 'correctForceOpt+neighborOPT';
3265
3325
  i = 0;
3266
- case 17:
3326
+ case 25:
3267
3327
  if (!(i < boxPlannerGrid.getColumnCount())) {
3268
- _context.next = 31;
3328
+ _context.next = 39;
3269
3329
  break;
3270
3330
  }
3271
3331
  j = 0;
3272
- case 19:
3332
+ case 27:
3273
3333
  if (!(j < boxPlannerGrid.getRowCount(i, false))) {
3274
- _context.next = 28;
3334
+ _context.next = 36;
3275
3335
  break;
3276
3336
  }
3277
3337
  elementId = (_boxPlannerGrid$getPl2 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl2 === void 0 ? void 0 : _boxPlannerGrid$getPl2.ElementId;
3278
3338
  if (elementId) {
3279
- _context.next = 23;
3339
+ _context.next = 31;
3280
3340
  break;
3281
3341
  }
3282
- return _context.abrupt("continue", 25);
3283
- case 23:
3342
+ return _context.abrupt("continue", 33);
3343
+ case 31:
3284
3344
  this.correctForceOptOfElement(elementId, boxPlannerGrid, optionHandler, false);
3285
3345
  this.correctNeighborCustomOLTs(elementId, boxPlannerGrid, optionHandler);
3286
- case 25:
3346
+ case 33:
3287
3347
  j++;
3288
- _context.next = 19;
3348
+ _context.next = 27;
3289
3349
  break;
3290
- case 28:
3350
+ case 36:
3291
3351
  i++;
3292
- _context.next = 17;
3352
+ _context.next = 25;
3293
3353
  break;
3294
- case 31:
3354
+ case 39:
3295
3355
  if (!boxPlannerGrid.getPlannerHasActiveBackside()) {
3296
- _context.next = 47;
3356
+ _context.next = 55;
3297
3357
  break;
3298
3358
  }
3299
3359
  i = boxPlannerGrid.getColumnCount() - 1;
3300
- case 33:
3360
+ case 41:
3301
3361
  if (!(i >= 0)) {
3302
- _context.next = 47;
3362
+ _context.next = 55;
3303
3363
  break;
3304
3364
  }
3305
3365
  j = 0;
3306
- case 35:
3366
+ case 43:
3307
3367
  if (!(j < boxPlannerGrid.getRowCount(i, false))) {
3308
- _context.next = 44;
3368
+ _context.next = 52;
3309
3369
  break;
3310
3370
  }
3311
3371
  _elementId = (_boxPlannerGrid$getPl3 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl3 === void 0 ? void 0 : _boxPlannerGrid$getPl3.ElementId;
3312
3372
  if (_elementId) {
3313
- _context.next = 39;
3373
+ _context.next = 47;
3314
3374
  break;
3315
3375
  }
3316
- return _context.abrupt("continue", 41);
3317
- case 39:
3376
+ return _context.abrupt("continue", 49);
3377
+ case 47:
3318
3378
  this.correctForceOptOfElement(_elementId, boxPlannerGrid, optionHandler, true);
3319
3379
  this.correctNeighborCustomOLTs(_elementId, boxPlannerGrid, optionHandler);
3320
- case 41:
3380
+ case 49:
3321
3381
  j++;
3322
- _context.next = 35;
3382
+ _context.next = 43;
3323
3383
  break;
3324
- case 44:
3384
+ case 52:
3325
3385
  i--;
3326
- _context.next = 33;
3386
+ _context.next = 41;
3327
3387
  break;
3328
- case 47:
3388
+ case 55:
3389
+ this.debugPhase = 'correctFoot';
3329
3390
  this.correctFoot(boxPlannerGrid, optionHandler);
3391
+ this.debugPhase = 'correctLadder';
3330
3392
  this.correctLadder(boxPlannerGrid, optionHandler);
3393
+ this.debugPhase = 'correctOptionsInfluencedByDimensions';
3331
3394
  this.correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler, changedOPTs);
3395
+ this.debugPhase = 'correctOverHangingElement';
3332
3396
  this.correctOverHangingElement((_targetElements = targetElements) === null || _targetElements === void 0 ? void 0 : _targetElements[0], boxPlannerGrid, optionHandler, changedOPTs);
3397
+ this.debugPhase = 'calculateKnots';
3333
3398
  this.partlistHelper.calculateKnots(boxPlannerGrid, optionHandler);
3399
+ this.debugPhase = 'calculateRahmen';
3334
3400
  this.partlistHelper.calculateRahmen(boxPlannerGrid, optionHandler);
3335
3401
 
3336
3402
  // update height after we corrected the foot since we need the correct one for the CoverPlate calc
3337
3403
  doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
3338
- _context.next = 56;
3404
+ _context.next = 70;
3339
3405
  return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
3340
- case 56:
3406
+ case 70:
3341
3407
  this.updateGridElementDimensions();
3408
+ this.debugPhase = 'correctCoverPlate';
3342
3409
  if (this.constructionRules.coverPlateRule) {
3343
3410
  _iterator = _createForOfIteratorHelper$1(this.constructionRules.coverPlateRule);
3344
3411
  try {
@@ -3352,46 +3419,47 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
3352
3419
  _iterator.f();
3353
3420
  }
3354
3421
  }
3422
+ this.debugPhase = 'correctBack';
3355
3423
  i = 0;
3356
- case 59:
3424
+ case 75:
3357
3425
  if (!(i < boxPlannerGrid.getColumnCount())) {
3358
- _context.next = 72;
3426
+ _context.next = 88;
3359
3427
  break;
3360
3428
  }
3361
3429
  j = 0;
3362
- case 61:
3430
+ case 77:
3363
3431
  if (!(j < boxPlannerGrid.getRowCount(i, false))) {
3364
- _context.next = 69;
3432
+ _context.next = 85;
3365
3433
  break;
3366
3434
  }
3367
3435
  _elementId2 = (_boxPlannerGrid$getPl4 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl4 === void 0 ? void 0 : _boxPlannerGrid$getPl4.getElementId();
3368
3436
  if (_elementId2) {
3369
- _context.next = 65;
3437
+ _context.next = 81;
3370
3438
  break;
3371
3439
  }
3372
- return _context.abrupt("continue", 66);
3373
- case 65:
3440
+ return _context.abrupt("continue", 82);
3441
+ case 81:
3374
3442
  this.correctBack(boxPlannerGrid, optionHandler, _elementId2);
3375
- case 66:
3443
+ case 82:
3376
3444
  j++;
3377
- _context.next = 61;
3445
+ _context.next = 77;
3378
3446
  break;
3379
- case 69:
3447
+ case 85:
3380
3448
  i++;
3381
- _context.next = 59;
3449
+ _context.next = 75;
3382
3450
  break;
3383
- case 72:
3451
+ case 88:
3384
3452
  doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
3385
- _context.next = 75;
3453
+ _context.next = 91;
3386
3454
  return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
3387
- case 75:
3455
+ case 91:
3388
3456
  this.updateIDMSpecificFeatures();
3389
3457
  this.updateGridElementDimensions();
3390
3458
  boxPlannerGrid.updateWorldPosOfElements();
3391
3459
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting Option Values of all Articles: ' + (new Date().getTime() - startTime));
3392
3460
  LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting updating configurator: ' + (new Date().getTime() - startTime));
3393
3461
  return _context.abrupt("return", resultMessage);
3394
- case 81:
3462
+ case 97:
3395
3463
  case "end":
3396
3464
  return _context.stop();
3397
3465
  }
@@ -5674,7 +5742,19 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
5674
5742
  };
5675
5743
  this.boxPlannerGrid = new BoxPlannerGrid(gridSetupParams, this.set.getValueOfOptionOfArticle);
5676
5744
  }
5745
+
5746
+ /** Read access for diagnosis tools (analyzer): the grid topology and the construction-rules state incl. debug trail. */
5677
5747
  return _createClass__default["default"](DivaBoxPlanner, [{
5748
+ key: "getBoxPlannerGrid",
5749
+ value: function getBoxPlannerGrid() {
5750
+ return this.boxPlannerGrid;
5751
+ }
5752
+ }, {
5753
+ key: "getConstructionRulesHandler",
5754
+ value: function getConstructionRulesHandler() {
5755
+ return this.constructionRulesHandler;
5756
+ }
5757
+ }, {
5678
5758
  key: "initPlanner",
5679
5759
  value: function () {
5680
5760
  var _initPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(setPlanData) {
@@ -6253,12 +6333,19 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
6253
6333
  */
6254
6334
  }, {
6255
6335
  key: "updatePlannerTrans",
6256
- value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
6336
+ value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
6257
6337
  LOG.error(new DivaUtils.DivaError('BoxPlanner - updatePlannerTrans not implemented yet', {
6258
6338
  code: 'WC_0012'
6259
6339
  }));
6260
6340
  return false;
6261
6341
  }
6342
+
6343
+ /** Box planner has no docking-point auto-snap — no preview. Present so `DivaPlanner` stays uniform. */
6344
+ }, {
6345
+ key: "getDockSnapPreview",
6346
+ value: function getDockSnapPreview(_elementId, _autoDockingDistance) {
6347
+ return null;
6348
+ }
6262
6349
  }, {
6263
6350
  key: "updateAllGridElementDimensions",
6264
6351
  value: function updateAllGridElementDimensions() {