@crystaldesign/web-planner-logic 26.8.0-beta.4 → 26.8.0-beta.41

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 (52) hide show
  1. package/build/cjs/{DivaBoxPlanner-918c1acc.js → DivaBoxPlanner-651e4672.js} +29 -31
  2. package/build/cjs/{DivaStandardPlanner-59aa2171.js → DivaStandardPlanner-c6c5463c.js} +3 -3
  3. package/build/cjs/{DoorPlanner-eddb88e7.js → DoorPlanner-58c28b85.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-729b5af1.js → Host3DSignalR-f228c610.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-3b54678e.js → LiviqueWWSHandler-fe01a475.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-5cb6da74.js → PfisterWWSHandler-009e5938.js} +10 -1
  7. package/build/cjs/{PlannerHandler2D-6884347b.js → PlannerHandler2D-96aec24b.js} +24 -9
  8. package/build/cjs/{SeriousBasketHandler-76e316d8.js → SeriousBasketHandler-f6c4cf9f.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-a5bc0cfa.js → ShelfPlanner-82e1d8f2.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-5a417412.js → StandardWWSHandler-2f6885c1.js} +1 -1
  11. package/build/cjs/{index-cd535960.js → index-f6950d9d.js} +334 -224
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-bbcd759e.js → DivaBoxPlanner-7b04b981.js} +29 -31
  14. package/build/esm/{DivaStandardPlanner-de0d17ea.js → DivaStandardPlanner-66d98f28.js} +3 -3
  15. package/build/esm/{DoorPlanner-3ffef3a1.js → DoorPlanner-4976af8c.js} +1 -1
  16. package/build/esm/{Host3DSignalR-2143e221.js → Host3DSignalR-07217ea7.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-7f997d91.js → LiviqueWWSHandler-546997f8.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-97602df8.js → PfisterWWSHandler-18a7f828.js} +10 -1
  19. package/build/esm/{PlannerHandler2D-4e43043b.js → PlannerHandler2D-cc67cb62.js} +24 -9
  20. package/build/esm/{SeriousBasketHandler-b9638fda.js → SeriousBasketHandler-3022bee6.js} +1 -1
  21. package/build/esm/{ShelfPlanner-f50e9483.js → ShelfPlanner-305ae4a8.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-99a090bc.js → StandardWWSHandler-e98bbbac.js} +1 -1
  23. package/build/esm/{index-2d218fcd.js → index-e386b6fa.js} +334 -224
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +1 -0
  30. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/logic/Basket/PfisterWWSHandler.d.ts.map +1 -1
  34. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts +1 -0
  36. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +13 -0
  38. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
  40. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +1 -0
  42. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  46. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +9 -0
  49. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  52. package/package.json +2 -2
@@ -96,6 +96,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
96
96
  _defineProperty__default["default"](this, "actions", void 0);
97
97
  _defineProperty__default["default"](this, "state", void 0);
98
98
  _defineProperty__default["default"](this, "i18n", void 0);
99
+ _defineProperty__default["default"](this, "enricherErrorModalShown", false);
99
100
  _defineProperty__default["default"](this, "getSessionGuid", void 0);
100
101
  _defineProperty__default["default"](this, "useEkPrices", false);
101
102
  _defineProperty__default["default"](this, "smSupplierNr", undefined);
@@ -236,10 +237,12 @@ var DivaApiHandler = /*#__PURE__*/function () {
236
237
  case 38:
237
238
  _context.prev = 38;
238
239
  _context.t5 = _context["catch"](5);
240
+ // Check if this is a rate limiting error (429)
241
+ this.notifyEnricherError(url, dontLogError);
239
242
  throw Error('fetch failed! ' + url + ' Error: ' + _context.t5, {
240
243
  cause: _context.t5 === null || _context.t5 === void 0 || (_e$response = _context.t5.response) === null || _e$response === void 0 || (_e$response = _e$response.data) === null || _e$response === void 0 ? void 0 : _e$response.error
241
244
  });
242
- case 41:
245
+ case 42:
243
246
  case "end":
244
247
  return _context.stop();
245
248
  }
@@ -250,11 +253,57 @@ var DivaApiHandler = /*#__PURE__*/function () {
250
253
  }
251
254
  return fetchData;
252
255
  }()
256
+ /**
257
+ * Surface critical failures to the user. A hard failure of any enricher call (catalog / serie /
258
+ * items / decisions / features ...) leaves the planner unable to load, so give the user actionable
259
+ * feedback instead of a silently broken UI. Optional enricher calls (e.g. the catalog mask) pass
260
+ * `dontLogError` and are skipped. Only one modal is shown at a time to avoid stacking on parallel failures.
261
+ */
262
+ }, {
263
+ key: "notifyEnricherError",
264
+ value: function notifyEnricherError(url, dontLogError) {
265
+ var _this$apiConfig,
266
+ _this$apiConfig2,
267
+ _this$apiConfig3,
268
+ _this$apiConfig4,
269
+ _this$apiConfig5,
270
+ _this$actions,
271
+ _this$i18n,
272
+ _translate$t,
273
+ _translate$t2,
274
+ _translate$t3,
275
+ _this = this;
276
+ if (dontLogError || this.enricherErrorModalShown) return;
277
+ var services = [(_this$apiConfig = this.apiConfig) === null || _this$apiConfig === void 0 ? void 0 : _this$apiConfig.enricherService, (_this$apiConfig2 = this.apiConfig) === null || _this$apiConfig2 === void 0 ? void 0 : _this$apiConfig2.idmService, (_this$apiConfig3 = this.apiConfig) === null || _this$apiConfig3 === void 0 ? void 0 : _this$apiConfig3.api2["default"], (_this$apiConfig4 = this.apiConfig) === null || _this$apiConfig4 === void 0 ? void 0 : _this$apiConfig4.api2.web, (_this$apiConfig5 = this.apiConfig) === null || _this$apiConfig5 === void 0 ? void 0 : _this$apiConfig5.api2.ek];
278
+ if (!services.some(function (service) {
279
+ return service && url.startsWith(service);
280
+ })) return;
281
+ if (!((_this$actions = this.actions) !== null && _this$actions !== void 0 && _this$actions.openModal)) return;
282
+ this.enricherErrorModalShown = true;
283
+ var translate = (_this$i18n = this.i18n) === null || _this$i18n === void 0 ? void 0 : _this$i18n.call(this);
284
+ this.actions.openModal({
285
+ title: (_translate$t = translate === null || translate === void 0 ? void 0 : translate.t('modals.error_accured')) !== null && _translate$t !== void 0 ? _translate$t : 'An error occured. Please try again later.',
286
+ accept: (_translate$t2 = translate === null || translate === void 0 ? void 0 : translate.t('modals.reload_page')) !== null && _translate$t2 !== void 0 ? _translate$t2 : 'Reload',
287
+ reject: (_translate$t3 = translate === null || translate === void 0 ? void 0 : translate.t('modals.close')) !== null && _translate$t3 !== void 0 ? _translate$t3 : 'Close',
288
+ callback: function callback(accepted) {
289
+ _this.enricherErrorModalShown = false;
290
+ if (accepted === true) {
291
+ if (_this.getApplicationEnvironment() === 'WEB' && typeof window !== 'undefined') window.location.reload();
292
+ } else if (accepted === false) {
293
+ var _this$actions2, _this$actions3;
294
+ (_this$actions2 = _this.actions) === null || _this$actions2 === void 0 || _this$actions2.onEvent({
295
+ type: 'onWebPlanerClose'
296
+ });
297
+ (_this$actions3 = _this.actions) === null || _this$actions3 === void 0 || _this$actions3.closeComponentInFullscreen();
298
+ }
299
+ }
300
+ });
301
+ }
253
302
  }, {
254
303
  key: "getDataWithoutCache",
255
304
  value: function () {
256
305
  var _getDataWithoutCache = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(queryString, init, useWebServiceApi) {
257
- var _this$apiConfig, _this$apiConfig2, api2Url;
306
+ var _this$apiConfig6, _this$apiConfig7, api2Url;
258
307
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
259
308
  while (1) switch (_context2.prev = _context2.next) {
260
309
  case 0:
@@ -296,8 +345,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
296
345
  _context2.next = 24;
297
346
  break;
298
347
  case 14:
299
- api2Url = (_this$apiConfig = this.apiConfig) === null || _this$apiConfig === void 0 ? void 0 : _this$apiConfig.api2["default"];
300
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig2 = this.apiConfig) !== null && _this$apiConfig2 !== void 0 && _this$apiConfig2.api2.web) {
348
+ api2Url = (_this$apiConfig6 = this.apiConfig) === null || _this$apiConfig6 === void 0 ? void 0 : _this$apiConfig6.api2["default"];
349
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig7 = this.apiConfig) !== null && _this$apiConfig7 !== void 0 && _this$apiConfig7.api2.web) {
301
350
  api2Url = this.apiConfig.api2.web;
302
351
  }
303
352
  _context2.t0 = _objectSpread$q;
@@ -332,7 +381,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
332
381
  value: function () {
333
382
  var _getDataCache = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3(queryString, cacheMD5, accountSessionGuid, useWebServiceApi, method, data, dontLogError) {
334
383
  var _this$divaWebConfigDa, _this$divaWebConfigDa2;
335
- var myQS, url, init, addSession, cacheHit, _this$apiConfig3, _this$apiConfig4, api2Url, resolvedSessionGuid, result, _this$divaWebConfigDa3;
384
+ var myQS, url, init, addSession, cacheHit, _this$apiConfig8, _this$apiConfig9, api2Url, resolvedSessionGuid, result, _this$divaWebConfigDa3;
336
385
  return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
337
386
  while (1) switch (_context3.prev = _context3.next) {
338
387
  case 0:
@@ -400,8 +449,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
400
449
  _context3.next = 35;
401
450
  break;
402
451
  case 25:
403
- api2Url = (_this$apiConfig3 = this.apiConfig) === null || _this$apiConfig3 === void 0 ? void 0 : _this$apiConfig3.api2["default"];
404
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig4 = this.apiConfig) !== null && _this$apiConfig4 !== void 0 && _this$apiConfig4.api2.web) {
452
+ api2Url = (_this$apiConfig8 = this.apiConfig) === null || _this$apiConfig8 === void 0 ? void 0 : _this$apiConfig8.api2["default"];
453
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig9 = this.apiConfig) !== null && _this$apiConfig9 !== void 0 && _this$apiConfig9.api2.web) {
405
454
  api2Url = this.apiConfig.api2.web;
406
455
  }
407
456
  this.apiCallCount += 1;
@@ -487,6 +536,10 @@ var DivaApiHandler = /*#__PURE__*/function () {
487
536
  }
488
537
  return saveAsProduct;
489
538
  }()
539
+ /**
540
+ * to run service on localhost
541
+ * diva3dRenderGroup :MYCCMEDIA
542
+ */
490
543
  }, {
491
544
  key: "initalizeWebConfigData",
492
545
  value: function initalizeWebConfigData(plannerConfig) {
@@ -561,38 +614,38 @@ var DivaApiHandler = /*#__PURE__*/function () {
561
614
  }, {
562
615
  key: "getReportServiceUrl",
563
616
  value: function getReportServiceUrl() {
564
- var _this$apiConfig$repor, _this$apiConfig5;
565
- return (_this$apiConfig$repor = (_this$apiConfig5 = this.apiConfig) === null || _this$apiConfig5 === void 0 ? void 0 : _this$apiConfig5.reportService) !== null && _this$apiConfig$repor !== void 0 ? _this$apiConfig$repor : '';
617
+ var _this$apiConfig$repor, _this$apiConfig10;
618
+ return (_this$apiConfig$repor = (_this$apiConfig10 = this.apiConfig) === null || _this$apiConfig10 === void 0 ? void 0 : _this$apiConfig10.reportService) !== null && _this$apiConfig$repor !== void 0 ? _this$apiConfig$repor : '';
566
619
  }
567
620
  }, {
568
621
  key: "getDivaSupportServiceUrl",
569
622
  value: function getDivaSupportServiceUrl() {
570
- var _this$apiConfig$suppo, _this$apiConfig6;
571
- return (_this$apiConfig$suppo = (_this$apiConfig6 = this.apiConfig) === null || _this$apiConfig6 === void 0 ? void 0 : _this$apiConfig6.supportService) !== null && _this$apiConfig$suppo !== void 0 ? _this$apiConfig$suppo : '';
623
+ var _this$apiConfig$suppo, _this$apiConfig11;
624
+ return (_this$apiConfig$suppo = (_this$apiConfig11 = this.apiConfig) === null || _this$apiConfig11 === void 0 ? void 0 : _this$apiConfig11.supportService) !== null && _this$apiConfig$suppo !== void 0 ? _this$apiConfig$suppo : '';
572
625
  }
573
626
  }, {
574
627
  key: "getDivaMediaServiceUrl",
575
628
  value: function getDivaMediaServiceUrl() {
576
- var _this$apiConfig$media, _this$apiConfig7;
577
- return (_this$apiConfig$media = (_this$apiConfig7 = this.apiConfig) === null || _this$apiConfig7 === void 0 ? void 0 : _this$apiConfig7.mediaService) !== null && _this$apiConfig$media !== void 0 ? _this$apiConfig$media : '';
629
+ var _this$apiConfig$media, _this$apiConfig12;
630
+ return (_this$apiConfig$media = (_this$apiConfig12 = this.apiConfig) === null || _this$apiConfig12 === void 0 ? void 0 : _this$apiConfig12.mediaService) !== null && _this$apiConfig$media !== void 0 ? _this$apiConfig$media : '';
578
631
  }
579
632
  }, {
580
633
  key: "getDivaAiServiceUrl",
581
634
  value: function getDivaAiServiceUrl() {
582
- var _this$apiConfig$aiSer, _this$apiConfig8;
583
- return (_this$apiConfig$aiSer = (_this$apiConfig8 = this.apiConfig) === null || _this$apiConfig8 === void 0 ? void 0 : _this$apiConfig8.aiService) !== null && _this$apiConfig$aiSer !== void 0 ? _this$apiConfig$aiSer : '';
635
+ var _this$apiConfig$aiSer, _this$apiConfig13;
636
+ return (_this$apiConfig$aiSer = (_this$apiConfig13 = this.apiConfig) === null || _this$apiConfig13 === void 0 ? void 0 : _this$apiConfig13.aiService) !== null && _this$apiConfig$aiSer !== void 0 ? _this$apiConfig$aiSer : '';
584
637
  }
585
638
  }, {
586
639
  key: "getConstructorServiceUrl",
587
640
  value: function getConstructorServiceUrl() {
588
- var _this$apiConfig$const, _this$apiConfig9;
589
- return (_this$apiConfig$const = (_this$apiConfig9 = this.apiConfig) === null || _this$apiConfig9 === void 0 ? void 0 : _this$apiConfig9.constructorService) !== null && _this$apiConfig$const !== void 0 ? _this$apiConfig$const : '';
641
+ var _this$apiConfig$const, _this$apiConfig14;
642
+ return (_this$apiConfig$const = (_this$apiConfig14 = this.apiConfig) === null || _this$apiConfig14 === void 0 ? void 0 : _this$apiConfig14.constructorService) !== null && _this$apiConfig$const !== void 0 ? _this$apiConfig$const : '';
590
643
  }
591
644
  }, {
592
645
  key: "getDivaBasketServiceUrl",
593
646
  value: function getDivaBasketServiceUrl() {
594
- var _this$apiConfig$baske, _this$apiConfig10;
595
- return (_this$apiConfig$baske = (_this$apiConfig10 = this.apiConfig) === null || _this$apiConfig10 === void 0 ? void 0 : _this$apiConfig10.basketService) !== null && _this$apiConfig$baske !== void 0 ? _this$apiConfig$baske : '';
647
+ var _this$apiConfig$baske, _this$apiConfig15;
648
+ return (_this$apiConfig$baske = (_this$apiConfig15 = this.apiConfig) === null || _this$apiConfig15 === void 0 ? void 0 : _this$apiConfig15.basketService) !== null && _this$apiConfig$baske !== void 0 ? _this$apiConfig$baske : '';
596
649
  }
597
650
  }, {
598
651
  key: "getLoadProductBasketParams",
@@ -603,8 +656,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
603
656
  }, {
604
657
  key: "get3DServerUrl",
605
658
  value: function get3DServerUrl() {
606
- var _this$apiConfig$host, _this$apiConfig11;
607
- return (_this$apiConfig$host = (_this$apiConfig11 = this.apiConfig) === null || _this$apiConfig11 === void 0 ? void 0 : _this$apiConfig11.host3d) !== null && _this$apiConfig$host !== void 0 ? _this$apiConfig$host : '';
659
+ var _this$apiConfig$host, _this$apiConfig16;
660
+ return (_this$apiConfig$host = (_this$apiConfig16 = this.apiConfig) === null || _this$apiConfig16 === void 0 ? void 0 : _this$apiConfig16.host3d) !== null && _this$apiConfig$host !== void 0 ? _this$apiConfig$host : '';
608
661
  }
609
662
  }, {
610
663
  key: "doCheckForProductsPrice",
@@ -673,9 +726,9 @@ var DivaApiHandler = /*#__PURE__*/function () {
673
726
  }, {
674
727
  key: "getBaseUrl",
675
728
  value: function getBaseUrl() {
676
- var _this$apiConfig12, _this$apiConfig13;
677
- var url = (_this$apiConfig12 = this.apiConfig) === null || _this$apiConfig12 === void 0 ? void 0 : _this$apiConfig12.api2["default"];
678
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig13 = this.apiConfig) !== null && _this$apiConfig13 !== void 0 && _this$apiConfig13.api2.web) {
729
+ var _this$apiConfig17, _this$apiConfig18;
730
+ var url = (_this$apiConfig17 = this.apiConfig) === null || _this$apiConfig17 === void 0 ? void 0 : _this$apiConfig17.api2["default"];
731
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig18 = this.apiConfig) !== null && _this$apiConfig18 !== void 0 && _this$apiConfig18.api2.web) {
679
732
  url = this.apiConfig.api2.web;
680
733
  }
681
734
  if (!url) throw new Error('No API2 defined');
@@ -791,14 +844,14 @@ var DivaApiHandler = /*#__PURE__*/function () {
791
844
  }, {
792
845
  key: "getI18n",
793
846
  value: function getI18n() {
794
- var _this$i18n;
795
- return (_this$i18n = this.i18n) === null || _this$i18n === void 0 ? void 0 : _this$i18n.call(this);
847
+ var _this$i18n2;
848
+ return (_this$i18n2 = this.i18n) === null || _this$i18n2 === void 0 ? void 0 : _this$i18n2.call(this);
796
849
  }
797
850
  }, {
798
851
  key: "setAccountSessionGuid",
799
852
  value: function () {
800
853
  var _setAccountSessionGuid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(_ref) {
801
- var os, accountGuid, catalogGuid, response, _this$actions, _this$state$navigatio, _this$state;
854
+ var os, accountGuid, catalogGuid, response, _this$actions4, _this$state$navigatio, _this$state;
802
855
  return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
803
856
  while (1) switch (_context5.prev = _context5.next) {
804
857
  case 0:
@@ -837,7 +890,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
837
890
  break;
838
891
  case 16:
839
892
  if (this.applicationEnvironment == 'SELLER') {
840
- (_this$actions = this.actions) === null || _this$actions === void 0 || _this$actions.openComponent((_this$state$navigatio = (_this$state = this.state) === null || _this$state === void 0 || (_this$state = _this$state.navigationConfiguration) === null || _this$state === void 0 ? void 0 : _this$state.logoAction) !== null && _this$state$navigatio !== void 0 ? _this$state$navigatio : {
893
+ (_this$actions4 = this.actions) === null || _this$actions4 === void 0 || _this$actions4.openComponent((_this$state$navigatio = (_this$state = this.state) === null || _this$state === void 0 || (_this$state = _this$state.navigationConfiguration) === null || _this$state === void 0 ? void 0 : _this$state.logoAction) !== null && _this$state$navigatio !== void 0 ? _this$state$navigatio : {
841
894
  type: 'SELLER',
842
895
  parameters: {
843
896
  module: 'Collections'
@@ -936,39 +989,39 @@ var DivaApiHandler = /*#__PURE__*/function () {
936
989
  }, {
937
990
  key: "apiUrl",
938
991
  value: function apiUrl(queryString, useWebServiceApi) {
939
- var _this$apiConfig24, _this$apiConfig25, _this$apiConfig26;
992
+ var _this$apiConfig29, _this$apiConfig30, _this$apiConfig31;
940
993
  if (useWebServiceApi == 'catalog') {
941
- var _this$apiConfig14, _this$apiConfig15;
942
- if (!((_this$apiConfig14 = this.apiConfig) !== null && _this$apiConfig14 !== void 0 && _this$apiConfig14.catalogService)) throw new Error('No catalog Service defined');
943
- return ((_this$apiConfig15 = this.apiConfig) === null || _this$apiConfig15 === void 0 ? void 0 : _this$apiConfig15.catalogService) + queryString;
994
+ var _this$apiConfig19, _this$apiConfig20;
995
+ if (!((_this$apiConfig19 = this.apiConfig) !== null && _this$apiConfig19 !== void 0 && _this$apiConfig19.catalogService)) throw new Error('No catalog Service defined');
996
+ return ((_this$apiConfig20 = this.apiConfig) === null || _this$apiConfig20 === void 0 ? void 0 : _this$apiConfig20.catalogService) + queryString;
944
997
  }
945
998
  if (useWebServiceApi == 'basket') {
946
- var _this$apiConfig16, _this$apiConfig17;
947
- if (!((_this$apiConfig16 = this.apiConfig) !== null && _this$apiConfig16 !== void 0 && _this$apiConfig16.basketService)) throw new Error('No basket Service defined');
948
- return ((_this$apiConfig17 = this.apiConfig) === null || _this$apiConfig17 === void 0 ? void 0 : _this$apiConfig17.basketService) + queryString;
999
+ var _this$apiConfig21, _this$apiConfig22;
1000
+ if (!((_this$apiConfig21 = this.apiConfig) !== null && _this$apiConfig21 !== void 0 && _this$apiConfig21.basketService)) throw new Error('No basket Service defined');
1001
+ return ((_this$apiConfig22 = this.apiConfig) === null || _this$apiConfig22 === void 0 ? void 0 : _this$apiConfig22.basketService) + queryString;
949
1002
  }
950
1003
  if (useWebServiceApi == 'report') {
951
- var _this$apiConfig18, _this$apiConfig19;
952
- if (!((_this$apiConfig18 = this.apiConfig) !== null && _this$apiConfig18 !== void 0 && _this$apiConfig18.reportService)) throw new Error('No report Service defined');
953
- return ((_this$apiConfig19 = this.apiConfig) === null || _this$apiConfig19 === void 0 ? void 0 : _this$apiConfig19.reportService) + queryString;
1004
+ var _this$apiConfig23, _this$apiConfig24;
1005
+ if (!((_this$apiConfig23 = this.apiConfig) !== null && _this$apiConfig23 !== void 0 && _this$apiConfig23.reportService)) throw new Error('No report Service defined');
1006
+ return ((_this$apiConfig24 = this.apiConfig) === null || _this$apiConfig24 === void 0 ? void 0 : _this$apiConfig24.reportService) + queryString;
954
1007
  }
955
1008
  if (useWebServiceApi == 'enricher') {
956
- var _this$apiConfig22, _this$apiConfig23;
1009
+ var _this$apiConfig27, _this$apiConfig28;
957
1010
  if (this.useIDMService) {
958
- var _this$apiConfig20, _this$apiConfig21;
959
- if (!((_this$apiConfig20 = this.apiConfig) !== null && _this$apiConfig20 !== void 0 && _this$apiConfig20.idmService)) throw new Error('No report Service defined');
960
- return ((_this$apiConfig21 = this.apiConfig) === null || _this$apiConfig21 === void 0 ? void 0 : _this$apiConfig21.idmService) + queryString;
1011
+ var _this$apiConfig25, _this$apiConfig26;
1012
+ if (!((_this$apiConfig25 = this.apiConfig) !== null && _this$apiConfig25 !== void 0 && _this$apiConfig25.idmService)) throw new Error('No report Service defined');
1013
+ return ((_this$apiConfig26 = this.apiConfig) === null || _this$apiConfig26 === void 0 ? void 0 : _this$apiConfig26.idmService) + queryString;
961
1014
  }
962
- if (!((_this$apiConfig22 = this.apiConfig) !== null && _this$apiConfig22 !== void 0 && _this$apiConfig22.enricherService)) throw new Error('No report Service defined');
963
- return ((_this$apiConfig23 = this.apiConfig) === null || _this$apiConfig23 === void 0 ? void 0 : _this$apiConfig23.enricherService) + queryString;
1015
+ if (!((_this$apiConfig27 = this.apiConfig) !== null && _this$apiConfig27 !== void 0 && _this$apiConfig27.enricherService)) throw new Error('No report Service defined');
1016
+ return ((_this$apiConfig28 = this.apiConfig) === null || _this$apiConfig28 === void 0 ? void 0 : _this$apiConfig28.enricherService) + queryString;
964
1017
  }
965
- var url = (_this$apiConfig24 = this.apiConfig) === null || _this$apiConfig24 === void 0 ? void 0 : _this$apiConfig24.api2["default"];
966
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig25 = this.apiConfig) !== null && _this$apiConfig25 !== void 0 && _this$apiConfig25.api2.web) {
1018
+ var url = (_this$apiConfig29 = this.apiConfig) === null || _this$apiConfig29 === void 0 ? void 0 : _this$apiConfig29.api2["default"];
1019
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig30 = this.apiConfig) !== null && _this$apiConfig30 !== void 0 && _this$apiConfig30.api2.web) {
967
1020
  url = this.apiConfig.api2.web;
968
1021
  }
969
- if (this.useEkPrices && (_this$apiConfig26 = this.apiConfig) !== null && _this$apiConfig26 !== void 0 && _this$apiConfig26.api2.ek) {
970
- var _this$apiConfig27;
971
- url = (_this$apiConfig27 = this.apiConfig) === null || _this$apiConfig27 === void 0 ? void 0 : _this$apiConfig27.api2.ek;
1022
+ if (this.useEkPrices && (_this$apiConfig31 = this.apiConfig) !== null && _this$apiConfig31 !== void 0 && _this$apiConfig31.api2.ek) {
1023
+ var _this$apiConfig32;
1024
+ url = (_this$apiConfig32 = this.apiConfig) === null || _this$apiConfig32 === void 0 ? void 0 : _this$apiConfig32.api2.ek;
972
1025
  }
973
1026
  if (!url) throw new Error('No API2 defined');
974
1027
  return url + '?' + queryString;
@@ -1174,6 +1227,11 @@ var DivaApiHandler = /*#__PURE__*/function () {
1174
1227
  value: function getIDMDecisions(packageId, decisions) {
1175
1228
  return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions' + '?decisionNos=' + decisions.join(';') + (this.smSupplierNr ? '&supplierNo=' + this.smSupplierNr : '');
1176
1229
  }
1230
+ }, {
1231
+ key: "getIDMDecisionsQueryUrl",
1232
+ value: function getIDMDecisionsQueryUrl(packageId) {
1233
+ return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions/query' + (this.smSupplierNr ? '?supplierNo=' + this.smSupplierNr : '');
1234
+ }
1177
1235
  }, {
1178
1236
  key: "getIDMDetailInfos",
1179
1237
  value: function getIDMDetailInfos(packageId, detailinfos) {
@@ -1515,12 +1573,12 @@ var DivaApiHandler = /*#__PURE__*/function () {
1515
1573
  key: "getDimensionbyId",
1516
1574
  value: function () {
1517
1575
  var _getDimensionbyId = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee15(id, iln, catalogCodex, plannedOptions) {
1518
- var _this$apiConfig28;
1576
+ var _this$apiConfig33;
1519
1577
  var fullUrl, res, headers;
1520
1578
  return _regeneratorRuntime__default["default"].wrap(function _callee15$(_context15) {
1521
1579
  while (1) switch (_context15.prev = _context15.next) {
1522
1580
  case 0:
1523
- fullUrl = this.getConstructorServiceUrl() + '/dimension/' + id + '?iln=' + iln + '&catalogCodex=' + catalogCodex + '&debug=' + ((_this$apiConfig28 = this.apiConfig) === null || _this$apiConfig28 === void 0 ? void 0 : _this$apiConfig28.useDebugUrl);
1581
+ fullUrl = this.getConstructorServiceUrl() + '/dimension/' + id + '?iln=' + iln + '&catalogCodex=' + catalogCodex + '&debug=' + ((_this$apiConfig33 = this.apiConfig) === null || _this$apiConfig33 === void 0 ? void 0 : _this$apiConfig33.useDebugUrl);
1524
1582
  headers = {};
1525
1583
  if (this.jwt) headers = {
1526
1584
  Authorization: 'Bearer ' + this.jwt
@@ -16892,6 +16950,9 @@ var CatalogArticleData = /*#__PURE__*/function () {
16892
16950
  case 'ACCESSOIRE_POS_PRIO':
16893
16951
  this._catalogArticle.accPosPrio = Number(prop.Value);
16894
16952
  break;
16953
+ case 'ADD_AS_ZKAT':
16954
+ this._catalogArticle.addAsZKAT = prop.Value === 'true' || prop.Value === '1';
16955
+ break;
16895
16956
  case 'HEIGHTGRIDUSED':
16896
16957
  this._catalogArticle.heightGridUsed = Number(prop.Value);
16897
16958
  break;
@@ -17353,6 +17414,11 @@ var CatalogArticleData = /*#__PURE__*/function () {
17353
17414
  get: function get() {
17354
17415
  return this._catalogArticle.accPosPrio;
17355
17416
  }
17417
+ }, {
17418
+ key: "addAsZKAT",
17419
+ get: function get() {
17420
+ return this._catalogArticle.addAsZKAT;
17421
+ }
17356
17422
  }, {
17357
17423
  key: "overwriteParentWidth",
17358
17424
  get: function get() {
@@ -18000,18 +18066,18 @@ function getCatalogOptionValueDataType(codex, jsonOPV, catalogData) {
18000
18066
  }
18001
18067
  function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogProps, plannerPaletteViewInfo) {
18002
18068
  //Hier muss es dann reingespeichert werden catalogPlannerArticlesView;
18003
- var getFilterType = function getFilterType(hasArticleRelation, AVLFilter, AVRFilter, catalogProps) {
18069
+ var getFilterType = function getFilterType(hasArticleRelation, hasAVL, hasAVR, catalogProps) {
18004
18070
  var ret;
18005
18071
  if (hasArticleRelation) {
18006
18072
  if (!catalogProps.showAllItemsInPlanner && !catalogProps.showAccOnDpOnly) plannerPaletteViewInfo.filterType['Accessoire'] = true;
18007
18073
  ret = 'Accessoire';
18008
- } else if (AVLFilter.length > 0 && AVRFilter.length > 0) {
18074
+ } else if (hasAVL && hasAVR) {
18009
18075
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockLR'] = true;
18010
18076
  ret = 'DockLR';
18011
- } else if (AVLFilter.length > 0) {
18077
+ } else if (hasAVL) {
18012
18078
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockR'] = true;
18013
18079
  ret = 'DockR';
18014
- } else if (AVRFilter.length > 0) {
18080
+ } else if (hasAVR) {
18015
18081
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockL'] = true;
18016
18082
  ret = 'DockL';
18017
18083
  } else {
@@ -18105,12 +18171,9 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18105
18171
  if (catalogProps.diva3dPlanerShowArticleAsSvg && topSvg.SVG) {
18106
18172
  image = getSVGUrl(topSvg.SVG, mediaUrl);
18107
18173
  }
18108
- if (topSvg.HasAVL && catPlanArticle.avlFilter.length == 0) {
18109
- catPlanArticle.avlFilter = ['ALWAYS_DOCKABLE'];
18110
- }
18111
- if (topSvg.HasAVR && catPlanArticle.avrFilter.length == 0) {
18112
- catPlanArticle.avrFilter = ['ALWAYS_DOCKABLE'];
18113
- }
18174
+
18175
+ // An empty AVL/AVR filter means "no connector restriction" and is treated as a match by the
18176
+ // docking/palette comparison (see checkDPFilterDoMatch / checkDPAV*FilterDoMatch). No sentinel needed.
18114
18177
 
18115
18178
  //Wäre für Rofl Benz gedacht um die Information zu speichern welche Artikel in welcher Ausrichtung ausmultipliziert werden
18116
18179
  if (topSvg.JsFormula.includes('202_LI')) {
@@ -18118,7 +18181,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18118
18181
  } else if (topSvg.JsFormula.includes('202_RE')) {
18119
18182
  elementName = elementName + ' (Rechts)';
18120
18183
  }
18121
- var filterType = getFilterType(catPlanArticle.isArticleRelation, topSvg.HasAVL ? catPlanArticle.avlFilter : [], topSvg.HasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18184
+ var filterType = getFilterType(catPlanArticle.isArticleRelation, !!topSvg.HasAVL, !!topSvg.HasAVR, catalogProps);
18122
18185
  catPlanArticle.filterType = filterType;
18123
18186
  //ausmultiplizierte Elemente (über meherere SVGs)
18124
18187
  var catPlanArtView = {
@@ -18171,7 +18234,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18171
18234
  }
18172
18235
  if (!catPlanArticle.hasTopSvgsWithFormula || catPlanArticle.topSvgsWithFormula.length == 1) {
18173
18236
  var _catalogArticle$artic2;
18174
- var _filterType = getFilterType(catPlanArticle.isArticleRelation, catPlanArticle.topHasAVL ? catPlanArticle.avlFilter : [], catPlanArticle.topHasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18237
+ var _filterType = getFilterType(catPlanArticle.isArticleRelation, !!catPlanArticle.topHasAVL, !!catPlanArticle.topHasAVR, catalogProps);
18175
18238
  catPlanArticle.filterType = _filterType;
18176
18239
  //Artikelbild ist abh�ngig von DIVA3DPlanerShowArticleAsSvg das SVG des Elements
18177
18240
  if (catalogProps.diva3dPlanerShowArticleAsSvg && (catPlanArticle.hasTopSvg || catPlanArticle.hasTopSvgsWithFormula)) {
@@ -19714,7 +19777,15 @@ function _loadMoreFromIDMArticles() {
19714
19777
  }).map(function (a) {
19715
19778
  return a.featureClassRefNo;
19716
19779
  })));
19717
- promises = [set.api.getDataCache(set.api.getIDMFeatureClass(set.CatalogData.accountGuid, toLoadFeatureClassRefNo), undefined, undefined, 'enricher'), toLoadPFGroups.length ? set.api.getDataCache(set.api.getIDMPriceFeatureGroups(set.CatalogData.accountGuid, toLoadPFGroups), undefined, undefined, 'enricher') : undefined, toLoadDecisionIds.length ? set.api.getDataCache(set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds), undefined, undefined, 'enricher') : undefined];
19780
+ promises = [set.api.getDataCache(set.api.getIDMFeatureClass(set.CatalogData.accountGuid, toLoadFeatureClassRefNo), undefined, undefined, 'enricher'), toLoadPFGroups.length ? set.api.getDataCache(set.api.getIDMPriceFeatureGroups(set.CatalogData.accountGuid, toLoadPFGroups), undefined, undefined, 'enricher') : undefined, toLoadDecisionIds.length ? function () {
19781
+ var getUrl = set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds);
19782
+ if (getUrl.length > 2000) {
19783
+ return set.api.getDataCache(set.api.getIDMDecisionsQueryUrl(set.CatalogData.accountGuid), undefined, undefined, 'enricher', 'POST', {
19784
+ decisionNos: toLoadDecisionIds.join(';')
19785
+ });
19786
+ }
19787
+ return set.api.getDataCache(getUrl, undefined, undefined, 'enricher');
19788
+ }() : undefined];
19718
19789
  _context5.next = 16;
19719
19790
  return Promise.all(promises);
19720
19791
  case 16:
@@ -20343,9 +20414,12 @@ function initIDMArticles(jsonItems, catalogData) {
20343
20414
  }
20344
20415
  }
20345
20416
  function getCatalogArticle(article, catalogData) {
20346
- var _catalogData$catalogM, _article$typeKey, _article$salesNumber, _ref, _articleMask$name, _article$fullText, _article$fullText2, _article$fullText3, _articleMask$properti, _article$depthBasicSh, _article$depthBasicSh2, _article$depthBasicSh3, _article$widthBasicSh, _article$widthBasicSh2, _article$widthBasicSh3, _article$heightBasicS, _article$heightBasicS2, _article$heightBasicS3, _article$weightNetto, _article$detailInfos, _article$detailInfos2, _article$detailInfos3, _articleMask$groupnam, _articleMask$groupnam2;
20417
+ var _catalogData$catalogM, _article$typeKey, _article$salesNumber, _articleMask$name, _articleMask$properti, _article$depthBasicSh, _article$depthBasicSh2, _article$depthBasicSh3, _article$widthBasicSh, _article$widthBasicSh2, _article$widthBasicSh3, _article$heightBasicS, _article$heightBasicS2, _article$heightBasicS3, _article$weightNetto, _article$detailInfos, _article$detailInfos2, _article$detailInfos3, _articleMask$groupnam, _articleMask$groupnam2;
20347
20418
  var articleMask = (_catalogData$catalogM = catalogData.catalogMask) === null || _catalogData$catalogM === void 0 || (_catalogData$catalogM = _catalogData$catalogM.articles) === null || _catalogData$catalogM === void 0 ? void 0 : _catalogData$catalogM[article.typeNo];
20348
20419
  var lang = catalogData.api.getLanguageLowercase();
20420
+ // empty locale objects ({} or only empty strings) are truthy, so ?? alone doesn't fall back
20421
+ var fullText = hasLocaleText(article.fullText) ? article.fullText : article.shortText;
20422
+ var shortText = hasLocaleText(article.shortText) ? article.shortText : article.fullText;
20349
20423
  var featureProperties = convertProperties(article.properties, lang, 'featureNos');
20350
20424
  var optionProperties = convertProperties(article.properties, lang, 'optionKeys');
20351
20425
  return {
@@ -20368,14 +20442,14 @@ function getCatalogArticle(article, catalogData) {
20368
20442
  hasArticleRelations: false,
20369
20443
  hasPartlistArticle: !!article.partListRef,
20370
20444
  hasType1Dependencies: false,
20371
- name: DivaUtils__default["default"].getLocals((_ref = (_articleMask$name = articleMask === null || articleMask === void 0 ? void 0 : articleMask.name) !== null && _articleMask$name !== void 0 ? _articleMask$name : article.fullText) !== null && _ref !== void 0 ? _ref : article.shortText, lang),
20372
- longDescription: DivaUtils__default["default"].getLocals((_article$fullText = article.fullText) !== null && _article$fullText !== void 0 ? _article$fullText : article.shortText, lang),
20373
- longDescription_locales: (_article$fullText2 = article.fullText) !== null && _article$fullText2 !== void 0 ? _article$fullText2 : article.shortText,
20445
+ name: DivaUtils__default["default"].getLocals((_articleMask$name = articleMask === null || articleMask === void 0 ? void 0 : articleMask.name) !== null && _articleMask$name !== void 0 ? _articleMask$name : fullText, lang),
20446
+ longDescription: DivaUtils__default["default"].getLocals(fullText, lang),
20447
+ longDescription_locales: fullText,
20374
20448
  isHidden: !!(articleMask !== null && articleMask !== void 0 && articleMask.hidden),
20375
- origName: DivaUtils__default["default"].getLocals((_article$fullText3 = article.fullText) !== null && _article$fullText3 !== void 0 ? _article$fullText3 : article.shortText, lang),
20376
- shortName: DivaUtils__default["default"].getLocals(article.shortText, lang),
20377
- origShortName: DivaUtils__default["default"].getLocals(article.shortText, lang),
20378
- shortName_locales: article.shortText,
20449
+ origName: DivaUtils__default["default"].getLocals(fullText, lang),
20450
+ shortName: DivaUtils__default["default"].getLocals(shortText, lang),
20451
+ origShortName: DivaUtils__default["default"].getLocals(shortText, lang),
20452
+ shortName_locales: shortText,
20379
20453
  properties: [].concat(_toConsumableArray__default["default"](convertProperties(article.properties, lang)), _toConsumableArray__default["default"]((_articleMask$properti = articleMask === null || articleMask === void 0 ? void 0 : articleMask.properties) !== null && _articleMask$properti !== void 0 ? _articleMask$properti : [])),
20380
20454
  optionProperties: optionProperties,
20381
20455
  featureProperties: featureProperties,
@@ -20435,6 +20509,11 @@ function getCatalogArticle(article, catalogData) {
20435
20509
  modelName3D: jsonArticle.ModelName3D && jsonArticle.ModelName3D != '' ? jsonArticle.ModelName3D : undefined,
20436
20510
  */
20437
20511
 
20512
+ function hasLocaleText(locales) {
20513
+ return !!locales && Object.values(locales).some(function (v) {
20514
+ return !!(v !== null && v !== void 0 && v.trim());
20515
+ });
20516
+ }
20438
20517
  function getLowResUrl(url) {
20439
20518
  return url === null || url === void 0 ? void 0 : url.replace('.jpg', '_low.jpg').replace('.jpeg', '_low.jpeg').replace('.png', '_low.png');
20440
20519
  }
@@ -20675,6 +20754,8 @@ var DivaCatalogData = /*#__PURE__*/function () {
20675
20754
  //
20676
20755
  ignoreLayerAVNAVS: false,
20677
20756
  //
20757
+ ignoreDockingNumber: false,
20758
+ // ignoriert die Nummern-Regel beim Andocken (z.B. AVU1 darf an AVO2). Die Nummer dient dann nur der Identifikation, nicht als Zuordnungsschlüssel.
20678
20759
  checkCollisionForDifferentLayers: [],
20679
20760
  //
20680
20761
 
@@ -21220,6 +21301,24 @@ var DivaCatalogData = /*#__PURE__*/function () {
21220
21301
  return _ret;
21221
21302
  }
21222
21303
  }
21304
+
21305
+ /**
21306
+ * Default dock filter applied when nothing is selected (e.g. after a deselect or when adding a new element).
21307
+ * When completeness warnings are hidden, any element may start a planning, so every dock type the catalog
21308
+ * actually has is shown. Otherwise the catalog's configured start filter (startFilterParams / available
21309
+ * start types) is used.
21310
+ */
21311
+ }, {
21312
+ key: "defaultDockFilter",
21313
+ get: function get() {
21314
+ if (this.doHideCompletenessWarning) {
21315
+ var filterType = this.plannerPaletteViewInfo.filterType;
21316
+ return Object.keys(filterType).filter(function (key) {
21317
+ return filterType[key];
21318
+ });
21319
+ }
21320
+ return this.getStartFilter;
21321
+ }
21223
21322
  }, {
21224
21323
  key: "dontHideOption",
21225
21324
  get: function get() {
@@ -21709,6 +21808,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
21709
21808
  ignoreLayerAVC: this.catalogProps.ignoreLayerAVC,
21710
21809
  ignoreLayerAVOAVU: this.catalogProps.ignoreLayerAVOAVU,
21711
21810
  ignoreLayerAVNAVS: this.catalogProps.ignoreLayerAVNAVS,
21811
+ ignoreDockingNumber: this.catalogProps.ignoreDockingNumber,
21712
21812
  showAccOnDpOnly: this.catalogProps.showAccOnDpOnly,
21713
21813
  dockAccOnAvoOnly: this.catalogProps.dockAccOnAvoOnly,
21714
21814
  hideAccessoriesInPlanner: this.catalogProps.accessorieStepAsPlanner,
@@ -21868,6 +21968,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
21868
21968
  case 'IGNORELAYERAVNAVS':
21869
21969
  _this4.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
21870
21970
  break;
21971
+ case 'IGNOREDOCKINGNUMBER':
21972
+ _this4.catalogProps.ignoreDockingNumber = item.Value == '1';
21973
+ break;
21871
21974
  case 'CHECK_COLLISION_DIFFERENT_LAYERS':
21872
21975
  _this4.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
21873
21976
  return parseInt(t);
@@ -22324,11 +22427,12 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22324
22427
  key: "loadDivaCatalog",
22325
22428
  value: function () {
22326
22429
  var _loadDivaCatalog = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(state, catalogCodex, orderSet) {
22430
+ var _orderSet$OrderLines;
22327
22431
  var promises, _yield$Promise$all, _yield$Promise$all2, catalogApiData, catalogArticleListData, catalogArticlePlannerListData, additionalModelInfos, mask, _state$catalogMask, catalogData;
22328
22432
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
22329
22433
  while (1) switch (_context2.prev = _context2.next) {
22330
22434
  case 0:
22331
- promises = [state.api.getDataCache(state.api.getCatalogDataQS(catalogCodex), state.api.getCatalogDataCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonArticleListQS(catalogCodex), state.api.getJsonArticleListCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonPlannerElementsQS(catalogCodex), state.api.getJsonPlannerElementsCacheKey(catalogCodex), orderSet.AccountSessionGUID)].concat([this.loadAdditionalModelInfos(state, orderSet.AccountGUID, orderSet.CatalogGUID)], _toConsumableArray__default["default"](state.onlyRunLogic ? [] : _toConsumableArray__default["default"](new Map(orderSet.OrderLines.filter(function (ol) {
22435
+ promises = [state.api.getDataCache(state.api.getCatalogDataQS(catalogCodex), state.api.getCatalogDataCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonArticleListQS(catalogCodex), state.api.getJsonArticleListCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonPlannerElementsQS(catalogCodex), state.api.getJsonPlannerElementsCacheKey(catalogCodex), orderSet.AccountSessionGUID)].concat([this.loadAdditionalModelInfos(state, orderSet.AccountGUID, orderSet.CatalogGUID)], _toConsumableArray__default["default"](state.onlyRunLogic ? [] : _toConsumableArray__default["default"](new Map(((_orderSet$OrderLines = orderSet.OrderLines) !== null && _orderSet$OrderLines !== void 0 ? _orderSet$OrderLines : []).filter(function (ol) {
22332
22436
  var _ol$VariantBasketData;
22333
22437
  return ((_ol$VariantBasketData = ol.VariantBasketDatas) === null || _ol$VariantBasketData === void 0 ? void 0 : _ol$VariantBasketData.length) && ol.ArticleType === 'OPTIONTREE';
22334
22438
  }).map(function (os) {
@@ -22359,7 +22463,8 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22359
22463
  break;
22360
22464
  }
22361
22465
  _context2.next = 16;
22362
- return state.api.getDataCache(state.api.getCatalogMaskQS(catalogApiData.GUID, state.api.OrganizationId), undefined, undefined, 'enricher');
22466
+ return state.api.getDataCache(state.api.getCatalogMaskQS(catalogApiData.GUID, state.api.OrganizationId), undefined, undefined, 'enricher', undefined, undefined, true // optional call - failure is swallowed below, so don't surface the enricher error modal
22467
+ );
22363
22468
  case 16:
22364
22469
  mask = _context2.sent;
22365
22470
  case 17:
@@ -23534,45 +23639,19 @@ var DivaEngine = /*#__PURE__*/function () {
23534
23639
  value: function updateIDMSpecificFeature(ops) {
23535
23640
  var _ops$option$idmVarian, _ops$option$idmVarian2, _ops$option$idmVarian3, _ops$option$idmVarian4, _ops$option$idmVarian5;
23536
23641
  if (!this.article.parentHasSameOption(ops.optionCodex)) return;
23642
+ // The OPV codex embeds the option codex as a prefix: "OPV<body>_<connector>" (e.g. "OPV1090_CT500"),
23643
+ // while ops.optionCodex is "OPT<body>". Strip that prefix so the filter holds the bare connector codex.
23644
+ var toConnectorCodex = function toConnectorCodex(value) {
23645
+ var prefix = 'OPV' + ops.optionCodex.substring(3) + '_';
23646
+ return value.codex.startsWith(prefix) ? value.codex.substring(prefix.length) : value.codex;
23647
+ };
23537
23648
  if ([90, 1090].includes((_ops$option$idmVarian = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian !== void 0 ? _ops$option$idmVarian : 0)) {
23538
23649
  //R (Anschlusstyp R) - AVR
23539
- var newAVRFilter = [],
23540
- visibleOPVs = ops.visibleOptionValues;
23541
- var _iterator5 = _createForOfIteratorHelper$c(visibleOPVs),
23542
- _step5;
23543
- try {
23544
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23545
- var _step5$value = _slicedToArray__default["default"](_step5.value, 2),
23546
- key = _step5$value[0],
23547
- value = _step5$value[1];
23548
- newAVRFilter.push(value.codex.substring(3));
23549
- }
23550
- } catch (err) {
23551
- _iterator5.e(err);
23552
- } finally {
23553
- _iterator5.f();
23554
- }
23555
- this.article.newPossibleAVRFilters = newAVRFilter;
23650
+ this.article.newPossibleAVRFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23556
23651
  }
23557
23652
  if ([89, 1089].includes((_ops$option$idmVarian2 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian2 !== void 0 ? _ops$option$idmVarian2 : 0)) {
23558
23653
  //L (Anschlusstyp L) - AVL
23559
- var newAVLFilter = [],
23560
- _visibleOPVs = ops.visibleOptionValues;
23561
- var _iterator6 = _createForOfIteratorHelper$c(_visibleOPVs),
23562
- _step6;
23563
- try {
23564
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
23565
- var _step6$value = _slicedToArray__default["default"](_step6.value, 2),
23566
- _key = _step6$value[0],
23567
- _value = _step6$value[1];
23568
- newAVLFilter.push(_value.codex.substring(3));
23569
- }
23570
- } catch (err) {
23571
- _iterator6.e(err);
23572
- } finally {
23573
- _iterator6.f();
23574
- }
23575
- this.article.newPossibleAVLFilters = newAVLFilter;
23654
+ this.article.newPossibleAVLFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23576
23655
  }
23577
23656
  //beim article abspeichern. Das Planungselement kann es sich per Funktion von dort dann holen
23578
23657
  if ([97, 1097].includes((_ops$option$idmVarian3 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian3 !== void 0 ? _ops$option$idmVarian3 : 0)) {
@@ -23801,18 +23880,18 @@ var DivaEngine = /*#__PURE__*/function () {
23801
23880
  myDecisions[_i].disableHistory = [];
23802
23881
  myDecisions[_i].activeCombination = undefined;
23803
23882
  }
23804
- var _iterator7 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23805
- _step7;
23883
+ var _iterator5 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23884
+ _step5;
23806
23885
  try {
23807
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
23808
- var ops = _step7.value;
23886
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23887
+ var ops = _step5.value;
23809
23888
  ops.updateVisibleOptionValues(ops.option.articleOptionValues);
23810
23889
  ops.definedBySetFeatureFixed = false;
23811
23890
  }
23812
23891
  } catch (err) {
23813
- _iterator7.e(err);
23892
+ _iterator5.e(err);
23814
23893
  } finally {
23815
- _iterator7.f();
23894
+ _iterator5.f();
23816
23895
  }
23817
23896
  this.catalogDecisionsByNumber = new Map(this.article.catalogArticle.articleDecisions.map(function (d) {
23818
23897
  return [d.Number, d];
@@ -23943,11 +24022,11 @@ var DivaEngine = /*#__PURE__*/function () {
23943
24022
  key: "updateIDMSpecificFeatures",
23944
24023
  value: function updateIDMSpecificFeatures() {
23945
24024
  //updaten idm planner specific options
23946
- var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23947
- _step8;
24025
+ var _iterator6 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24026
+ _step6;
23948
24027
  try {
23949
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
23950
- var ops = _step8.value;
24028
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
24029
+ var ops = _step6.value;
23951
24030
  //when an option has no decisions the first visible optionValue has to be selected per default
23952
24031
  if (ops.val === undefined && ops.visibleCount && !this.article.CatalogData.useDiomexConfigLogic) {
23953
24032
  this.assignOptionValue(ops.optionCodex, ops.visibleOPVKeys[0]);
@@ -23968,9 +24047,9 @@ var DivaEngine = /*#__PURE__*/function () {
23968
24047
  }
23969
24048
  }
23970
24049
  } catch (err) {
23971
- _iterator8.e(err);
24050
+ _iterator6.e(err);
23972
24051
  } finally {
23973
- _iterator8.f();
24052
+ _iterator6.f();
23974
24053
  }
23975
24054
  }
23976
24055
  }, {
@@ -24204,21 +24283,21 @@ var DivaEngine = /*#__PURE__*/function () {
24204
24283
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
24205
24284
  return v.slice(1);
24206
24285
  })); // remove the '!' from the value
24207
- var _iterator9 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24208
- _step9;
24286
+ var _iterator7 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24287
+ _step7;
24209
24288
  try {
24210
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24211
- var _step9$value = _slicedToArray__default["default"](_step9.value, 2),
24212
- opvKey = _step9$value[0],
24213
- _opv = _step9$value[1];
24289
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
24290
+ var _step7$value = _slicedToArray__default["default"](_step7.value, 2),
24291
+ opvKey = _step7$value[0],
24292
+ _opv = _step7$value[1];
24214
24293
  if (!negatedValues.has(opvKey)) {
24215
24294
  validOPVs[OPT].set(opvKey, _opv);
24216
24295
  }
24217
24296
  }
24218
24297
  } catch (err) {
24219
- _iterator9.e(err);
24298
+ _iterator7.e(err);
24220
24299
  } finally {
24221
- _iterator9.f();
24300
+ _iterator7.f();
24222
24301
  }
24223
24302
  } else {
24224
24303
  validOPVs[OPT] = new Map(ops.visibleOptionValues);
@@ -24346,11 +24425,11 @@ var DivaEngine = /*#__PURE__*/function () {
24346
24425
  }, {
24347
24426
  key: "evalShowOnlyWhenHasPrice",
24348
24427
  value: function evalShowOnlyWhenHasPrice() {
24349
- var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24350
- _step10;
24428
+ var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24429
+ _step8;
24351
24430
  try {
24352
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
24353
- var ops = _step10.value;
24431
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
24432
+ var ops = _step8.value;
24354
24433
  for (var jKey in ops.visibleOptionValues) {
24355
24434
  var opv = ops.visibleOptionValues.get(jKey);
24356
24435
  if (opv.showOnlyWhenHasPrice && opv.price == 0) {
@@ -24362,9 +24441,9 @@ var DivaEngine = /*#__PURE__*/function () {
24362
24441
  }
24363
24442
  }
24364
24443
  } catch (err) {
24365
- _iterator10.e(err);
24444
+ _iterator8.e(err);
24366
24445
  } finally {
24367
- _iterator10.f();
24446
+ _iterator8.f();
24368
24447
  }
24369
24448
  }
24370
24449
 
@@ -24838,12 +24917,12 @@ var DivaEngine = /*#__PURE__*/function () {
24838
24917
  }
24839
24918
 
24840
24919
  //mengen und größenabhängige Preisberechungn.
24841
- var _iterator11 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24842
- _step11;
24920
+ var _iterator9 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24921
+ _step9;
24843
24922
  try {
24844
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
24923
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24845
24924
  var _ops$addToMeasure;
24846
- var ops = _step11.value;
24925
+ var ops = _step9.value;
24847
24926
  var OP = ops.optionCodex;
24848
24927
  var mUnit = ops.measureUnit;
24849
24928
  var pUnit = ops.priceUnit;
@@ -24926,15 +25005,15 @@ var DivaEngine = /*#__PURE__*/function () {
24926
25005
  }
24927
25006
  //jetzt nochmal prozentuelle Preise mit TargetOption berechnen
24928
25007
  } catch (err) {
24929
- _iterator11.e(err);
25008
+ _iterator9.e(err);
24930
25009
  } finally {
24931
- _iterator11.f();
25010
+ _iterator9.f();
24932
25011
  }
24933
- var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24934
- _step12;
25012
+ var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25013
+ _step10;
24935
25014
  try {
24936
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
24937
- var _ops4 = _step12.value;
25015
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
25016
+ var _ops4 = _step10.value;
24938
25017
  var targetPPGPrefixes = _ops4.targetPPGPrefixes;
24939
25018
  if (!targetPPGPrefixes) continue;
24940
25019
  var _loop7 = function _loop7() {
@@ -24954,9 +25033,9 @@ var DivaEngine = /*#__PURE__*/function () {
24954
25033
  }
24955
25034
  }
24956
25035
  } catch (err) {
24957
- _iterator12.e(err);
25036
+ _iterator10.e(err);
24958
25037
  } finally {
24959
- _iterator12.f();
25038
+ _iterator10.f();
24960
25039
  }
24961
25040
  for (var _i5 = 0; _i5 < this.article.priceRefs.length; _i5++) {
24962
25041
  var basePriceRef = this.article.priceRefs[_i5];
@@ -24968,19 +25047,19 @@ var DivaEngine = /*#__PURE__*/function () {
24968
25047
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
24969
25048
  });
24970
25049
  if (!priceRef) {
24971
- var _iterator13 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
24972
- _step13;
25050
+ var _iterator11 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
25051
+ _step11;
24973
25052
  try {
24974
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
24975
- var ops = _step13.value;
25053
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
25054
+ var ops = _step11.value;
24976
25055
  if (ops.ppg && ops.ppg.split('_')[0] == targetPrefix) {
24977
25056
  myArtOpv = ops;
24978
25057
  }
24979
25058
  }
24980
25059
  } catch (err) {
24981
- _iterator13.e(err);
25060
+ _iterator11.e(err);
24982
25061
  } finally {
24983
- _iterator13.f();
25062
+ _iterator11.f();
24984
25063
  }
24985
25064
  }
24986
25065
 
@@ -25006,36 +25085,36 @@ var DivaEngine = /*#__PURE__*/function () {
25006
25085
  myArticleBasePrice += priceRef.Price ? DivaUtils__default["default"].decimalAdjust('round', (_priceRef$calcPrice = priceRef.calcPrice) !== null && _priceRef$calcPrice !== void 0 ? _priceRef$calcPrice : priceRef.Price, digits) : 0.0;
25007
25086
  }
25008
25087
  var articleUsedCalcPrice = myArticleBasePrice;
25009
- var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25010
- _step14;
25088
+ var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25089
+ _step12;
25011
25090
  try {
25012
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25013
- var tmpOps = _step14.value;
25091
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
25092
+ var tmpOps = _step12.value;
25014
25093
  articleUsedCalcPrice = this.getOptionPrice(articleUsedCalcPrice, tmpOps.option, digits);
25015
25094
  }
25016
25095
 
25017
25096
  //jetzt nochmal prozentuelle Preise mit GLOBAL tarbetoption berechnen
25018
25097
  /* TODO ABklären mit Franz - ops hat nie die Optionen - targetPPGPrefixes - ich glaube hier sollte article.priceRefs durchlaufen werden. */
25019
25098
  } catch (err) {
25020
- _iterator14.e(err);
25099
+ _iterator12.e(err);
25021
25100
  } finally {
25022
- _iterator14.f();
25101
+ _iterator12.f();
25023
25102
  }
25024
- var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25025
- _step15;
25103
+ var _iterator13 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25104
+ _step13;
25026
25105
  try {
25027
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25106
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
25028
25107
  var _ops5$targetPPGPrefix, _ops5$targetPPGPrefix2;
25029
- var _ops5 = _step15.value;
25108
+ var _ops5 = _step13.value;
25030
25109
  var targetOption = (_ops5$targetPPGPrefix = (_ops5$targetPPGPrefix2 = _ops5.targetPPGPrefixes) === null || _ops5$targetPPGPrefix2 === void 0 ? void 0 : _ops5$targetPPGPrefix2[0]) !== null && _ops5$targetPPGPrefix !== void 0 ? _ops5$targetPPGPrefix : _ops5.targetOption;
25031
25110
  if (_ops5.isPercentage && targetOption == 'GLOBAL') {
25032
25111
  articleUsedCalcPrice = articleUsedCalcPrice * (1 + _ops5.calcPrice);
25033
25112
  }
25034
25113
  }
25035
25114
  } catch (err) {
25036
- _iterator15.e(err);
25115
+ _iterator13.e(err);
25037
25116
  } finally {
25038
- _iterator15.f();
25117
+ _iterator13.f();
25039
25118
  }
25040
25119
  for (var _i7 = 0; _i7 < this.article.priceRefs.length; _i7++) {
25041
25120
  var _priceRef = this.article.priceRefs[_i7];
@@ -25177,11 +25256,11 @@ var DivaEngine = /*#__PURE__*/function () {
25177
25256
  if (a[i].trim() != '') {
25178
25257
  var searchOpt = 'OPT' + a[i].trim();
25179
25258
  //Optionsbaum des Artikels durchsuchen
25180
- var _iterator16 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25181
- _step16;
25259
+ var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25260
+ _step14;
25182
25261
  try {
25183
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25184
- var _ops6 = _step16.value;
25262
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25263
+ var _ops6 = _step14.value;
25185
25264
  if (_ops6.ocd == searchOpt || _ops6.optionCodex == searchOpt) {
25186
25265
  if (_ops6 && _ops6.price > 0) {
25187
25266
  myPercBasePrice += _ops6.price * _ops6.quantity;
@@ -25190,9 +25269,9 @@ var DivaEngine = /*#__PURE__*/function () {
25190
25269
  }
25191
25270
  }
25192
25271
  } catch (err) {
25193
- _iterator16.e(err);
25272
+ _iterator14.e(err);
25194
25273
  } finally {
25195
- _iterator16.f();
25274
+ _iterator14.f();
25196
25275
  }
25197
25276
  }
25198
25277
  }
@@ -25238,18 +25317,18 @@ var DivaEngine = /*#__PURE__*/function () {
25238
25317
  }
25239
25318
 
25240
25319
  // this functions updates the images of OPVs that depend on rules
25241
- var _iterator17 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25242
- _step17;
25320
+ var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25321
+ _step15;
25243
25322
  try {
25244
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
25245
- var ops = _step17.value;
25246
- var _iterator18 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25247
- _step18;
25323
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25324
+ var ops = _step15.value;
25325
+ var _iterator16 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25326
+ _step16;
25248
25327
  try {
25249
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
25250
- var _step18$value = _slicedToArray__default["default"](_step18.value, 2),
25251
- jKey = _step18$value[0],
25252
- opv = _step18$value[1];
25328
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25329
+ var _step16$value = _slicedToArray__default["default"](_step16.value, 2),
25330
+ jKey = _step16$value[0],
25331
+ opv = _step16$value[1];
25253
25332
  if (opv.images) {
25254
25333
  var imageFound = false;
25255
25334
  for (var _i10 = 0; _i10 < opv.images.length; _i10++) {
@@ -25268,18 +25347,18 @@ var DivaEngine = /*#__PURE__*/function () {
25268
25347
  }
25269
25348
  }
25270
25349
  } catch (err) {
25271
- _iterator18.e(err);
25350
+ _iterator16.e(err);
25272
25351
  } finally {
25273
- _iterator18.f();
25352
+ _iterator16.f();
25274
25353
  }
25275
25354
  }
25276
25355
 
25277
25356
  // this function calculates an Svg to the current configuration if neccessary (SVG Tausch)
25278
25357
  // if the Article has no SVG Tausch nothing is done
25279
25358
  } catch (err) {
25280
- _iterator17.e(err);
25359
+ _iterator15.e(err);
25281
25360
  } finally {
25282
- _iterator17.f();
25361
+ _iterator15.f();
25283
25362
  }
25284
25363
  var newSVGFile = null;
25285
25364
  var svgChangedViaSvgTausch = false;
@@ -25910,7 +25989,7 @@ var IDMEngine = /*#__PURE__*/function () {
25910
25989
  } else if (!_ops4.valCodex) {
25911
25990
  LOG$g.warn('evalSetFeature(featureRef) decision ' + decision.decisionNo + ': referenced source feature ' + action.featureRef.featureNo + ' has no selected value (valCodex undefined) - target feature ' + action.featureNo + ' will NOT be set (price relevant)');
25912
25991
  } else if (!targetHasSourceValue) {
25913
- LOG$g.warn('evalSetFeature(featureRef) decision ' + decision.decisionNo + ': target feature ' + action.featureNo + " does not have source feature " + action.featureRef.featureNo + "'s value '" + _ops4.valCodex + "' among its visible option values - assignOptionValue will be a no-op (price relevant). Target visible values: " + (targetOps ? Array.from(targetOps.visibleOptionValues.keys()).join(', ') : '<no target>'));
25992
+ LOG$g.warn('evalSetFeature(featureRef) decision ' + decision.decisionNo + ': target feature ' + action.featureNo + ' does not have source feature ' + action.featureRef.featureNo + "'s value '" + _ops4.valCodex + "' among its visible option values - assignOptionValue will be a no-op (price relevant). Target visible values: " + (targetOps ? Array.from(targetOps.visibleOptionValues.keys()).join(', ') : '<no target>'));
25914
25993
  }
25915
25994
  if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set');
25916
25995
  } else if (action.optionRef) {
@@ -26506,13 +26585,18 @@ var IDMEngine = /*#__PURE__*/function () {
26506
26585
  value: function updateIDMSpecificFeature(myArtOPS) {
26507
26586
  var _myArtOPS$option$idmV, _myArtOPS$option$idmV2, _myArtOPS$option$idmV3, _myArtOPS$option$idmV4, _myArtOPS$option$idmV5;
26508
26587
  if (!this.article.parentHasSameOption(myArtOPS.optionCodex)) return;
26588
+ // The OPV key embeds the option codex as a prefix: "<optionCodex>_<connector>" (e.g. "1089_CT20").
26589
+ // Strip the codex AND the separator so the filter holds the bare connector codex ("CT20").
26590
+ var toConnectorCodex = function toConnectorCodex(key) {
26591
+ return key.startsWith(myArtOPS.optionCodex + '_') ? key.substring(myArtOPS.optionCodex.length + 1) : key;
26592
+ };
26509
26593
  if ([90, 1090].includes((_myArtOPS$option$idmV = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV !== void 0 ? _myArtOPS$option$idmV : 0)) {
26510
26594
  //R (Anschlusstyp R) - AVR
26511
- this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys;
26595
+ this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26512
26596
  }
26513
26597
  if ([89, 1089].includes((_myArtOPS$option$idmV2 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV2 !== void 0 ? _myArtOPS$option$idmV2 : 0)) {
26514
26598
  //L (Anschlusstyp L) - AVL
26515
- this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys;
26599
+ this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26516
26600
  }
26517
26601
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
26518
26602
  try {
@@ -27951,6 +28035,11 @@ var DivaArticle = /*#__PURE__*/function () {
27951
28035
  get: function get() {
27952
28036
  return this.catalogArticle.bundleRules;
27953
28037
  }
28038
+ }, {
28039
+ key: "addAsZKAT",
28040
+ get: function get() {
28041
+ return this.catalogArticle.addAsZKAT;
28042
+ }
27954
28043
  }, {
27955
28044
  key: "hasPartlistArticleVisibleInTree",
27956
28045
  get: function get() {
@@ -29555,7 +29644,7 @@ var DivaArticle = /*#__PURE__*/function () {
29555
29644
  break;
29556
29645
  }
29557
29646
  _context.next = 4;
29558
- return Promise.resolve().then(function () { return require('./ShelfPlanner-a5bc0cfa.js'); });
29647
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-82e1d8f2.js'); });
29559
29648
  case 4:
29560
29649
  _yield$import = _context.sent;
29561
29650
  ShelfPlanner = _yield$import["default"];
@@ -33289,7 +33378,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33289
33378
  }
33290
33379
  }, {
33291
33380
  key: "getSummaryItemsofArticle",
33292
- value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket) {
33381
+ value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket, parentArticle) {
33293
33382
  var _iterator2 = _createForOfIteratorHelper$7(article.articleOptionStates.values()),
33294
33383
  _step2;
33295
33384
  try {
@@ -33297,6 +33386,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33297
33386
  var ops = _step2.value;
33298
33387
  if (ops.visibleInSummary(article, summaryForBasket)) {
33299
33388
  var _set$configTree$getCo, _set$hiddenConfigTree;
33389
+ //for accessoires only render an option if it differs from the parent article's selection
33390
+ if (parentArticle) {
33391
+ var _parentOps$val, _ops$val;
33392
+ var parentOps = parentArticle.getArticleOptionState(ops.optionCodex);
33393
+ if (parentOps && ((_parentOps$val = parentOps.val) === null || _parentOps$val === void 0 ? void 0 : _parentOps$val.codex) === ((_ops$val = ops.val) === null || _ops$val === void 0 ? void 0 : _ops$val.codex)) continue;
33394
+ }
33300
33395
  var tabGroupCodex = void 0;
33301
33396
  var tabGroupTitel = void 0;
33302
33397
  if (ops.optionTabGroup) {
@@ -33313,9 +33408,9 @@ var SummaryHandler = /*#__PURE__*/function () {
33313
33408
  var itemsInTabGroup = summaryTabItems[tabGroupCodex].summaryItems;
33314
33409
  var itemImage = ops.val.image ? set.CatalogData.getCatImageURL(ops.val.image, '') : undefined;
33315
33410
  if (configStep && itemsInTabGroup) {
33316
- var _ops$val, _this$getAdditionalPr;
33411
+ var _ops$val2, _this$getAdditionalPr;
33317
33412
  var sameOPVAndOPTDoAlreadyExist = false;
33318
- var configStepKeyToUse = configStep.key + ((_ops$val = ops.val) === null || _ops$val === void 0 ? void 0 : _ops$val.codex);
33413
+ var configStepKeyToUse = configStep.key + ((_ops$val2 = ops.val) === null || _ops$val2 === void 0 ? void 0 : _ops$val2.codex);
33319
33414
  var posNr = configStep === null || configStep === void 0 ? void 0 : configStep.posNr;
33320
33415
  if (configStep !== null && configStep !== void 0 && configStep.accessoireArticleCodex && article.relatedToBasketId) {
33321
33416
  var _set$configTree$getCo2, _set$configTree$getCo3, _set$hiddenConfigTree2;
@@ -33336,7 +33431,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33336
33431
  var rabatt = set.getCurrentDisountPercentage();
33337
33432
  var price = rabatt ? DivaUtils__default["default"].roundPrice(bruttoPrice * ((100 - rabatt) / 100), 1, 2) : bruttoPrice;
33338
33433
  if (!sameOPVAndOPTDoAlreadyExist) {
33339
- var _ops$val$contentItemI, _ops$val2, _ops$val3;
33434
+ var _ops$val$contentItemI, _ops$val3, _ops$val4;
33340
33435
  itemsInTabGroup[configStepKeyToUse] = {
33341
33436
  title: ops.optionName,
33342
33437
  title_locales: ops.optionName_locales,
@@ -33350,7 +33445,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33350
33445
  image: itemImage,
33351
33446
  isDefined: ops.isDefined,
33352
33447
  setId: set.getSetId(),
33353
- contentItemId: (_ops$val$contentItemI = (_ops$val2 = ops.val) === null || _ops$val2 === void 0 ? void 0 : _ops$val2.contentItemId) !== null && _ops$val$contentItemI !== void 0 ? _ops$val$contentItemI : (_ops$val3 = ops.val) === null || _ops$val3 === void 0 ? void 0 : _ops$val3.groupContentItemId,
33448
+ contentItemId: (_ops$val$contentItemI = (_ops$val3 = ops.val) === null || _ops$val3 === void 0 ? void 0 : _ops$val3.contentItemId) !== null && _ops$val$contentItemI !== void 0 ? _ops$val$contentItemI : (_ops$val4 = ops.val) === null || _ops$val4 === void 0 ? void 0 : _ops$val4.groupContentItemId,
33354
33449
  optionContentItemId: ops.option.contentItemId,
33355
33450
  includesAllPosNrs: baseArticlesCount <= 1
33356
33451
  };
@@ -33404,7 +33499,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33404
33499
  } else {
33405
33500
  var _set$i18n$t2, _set$i18n2, _accessoire$catalogAr, _accessoire$catalogAr2, _accessoire$catalogAr3;
33406
33501
  var summaryItems = {};
33407
- this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket);
33502
+ this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket, article);
33408
33503
  this.addAccessoires([accessoire], summaryItems, set, articlesPosNrs, baseArticlesCount, summaryForBasket);
33409
33504
  tabGroup.summaryItems[entryKey] = {
33410
33505
  title: accessoire.name,
@@ -33681,14 +33776,26 @@ var SummaryHandler = /*#__PURE__*/function () {
33681
33776
  counter++;
33682
33777
  SummaryInfo.push(new basketModel.GroupsData(GroupDataInitParams));
33683
33778
  for (var jKey in mySummaryObejct.summaryItems) {
33684
- var _mySummaryItem$title_, _mySummaryItem$descri, _mySummaryItem$target;
33685
- var mySummaryItem = mySummaryObejct.summaryItems[jKey];
33686
- SummaryInfo[SummaryInfo.length - 1].Group.addItem(mySummaryItem.title, (_mySummaryItem$title_ = mySummaryItem.title_locales) !== null && _mySummaryItem$title_ !== void 0 ? _mySummaryItem$title_ : {}, DivaUtils__default["default"].stripTags(mySummaryItem.description), DivaUtils__default["default"].stripTagsFromDict((_mySummaryItem$descri = mySummaryItem.description_locales) !== null && _mySummaryItem$descri !== void 0 ? _mySummaryItem$descri : {}), (_mySummaryItem$target = mySummaryItem.targetArticlePosNrs) !== null && _mySummaryItem$target !== void 0 ? _mySummaryItem$target : [], SummaryInfo[SummaryInfo.length - 1].Group.GroupID, mySummaryItem.image);
33779
+ this.addSummaryItemToGroup(SummaryInfo[SummaryInfo.length - 1].Group, mySummaryObejct.summaryItems[jKey]);
33687
33780
  }
33688
33781
  }
33689
33782
  }
33690
33783
  return SummaryInfo;
33691
33784
  }
33785
+ }, {
33786
+ key: "addSummaryItemToGroup",
33787
+ value: function addSummaryItemToGroup(group, summaryItem) {
33788
+ //tab-group shells only structure the nested config; skip them so they don't become empty property lines
33789
+ if (!summaryItem.isTabGroup) {
33790
+ var _summaryItem$title_lo, _summaryItem$descript, _summaryItem$targetAr4;
33791
+ group.addItem(summaryItem.title, (_summaryItem$title_lo = summaryItem.title_locales) !== null && _summaryItem$title_lo !== void 0 ? _summaryItem$title_lo : {}, DivaUtils__default["default"].stripTags(summaryItem.description), DivaUtils__default["default"].stripTagsFromDict((_summaryItem$descript = summaryItem.description_locales) !== null && _summaryItem$descript !== void 0 ? _summaryItem$descript : {}), (_summaryItem$targetAr4 = summaryItem.targetArticlePosNrs) !== null && _summaryItem$targetAr4 !== void 0 ? _summaryItem$targetAr4 : [], group.GroupID, summaryItem.image);
33792
+ }
33793
+
33794
+ //nested config (e.g. accessory option values like a custom color) is kept flat in the same group
33795
+ for (var _key7 in summaryItem.summaryItems) {
33796
+ this.addSummaryItemToGroup(group, summaryItem.summaryItems[_key7]);
33797
+ }
33798
+ }
33692
33799
  }, {
33693
33800
  key: "getSummaryType",
33694
33801
  value: function getSummaryType(set) {
@@ -33719,8 +33826,8 @@ var SummaryHandler = /*#__PURE__*/function () {
33719
33826
  }
33720
33827
  };
33721
33828
  }
33722
- for (var _key7 in elementGroups) {
33723
- var group = elementGroups[_key7];
33829
+ for (var _key8 in elementGroups) {
33830
+ var group = elementGroups[_key8];
33724
33831
  ret.push({
33725
33832
  items: this.buildSummaryItems(this.getArticlesPosNr(group.articles), set, summaryForBasket),
33726
33833
  price: this.getArticlesPrice(group.articles),
@@ -33737,10 +33844,10 @@ var SummaryHandler = /*#__PURE__*/function () {
33737
33844
  var groupedArticles = setHandlerInstance.getDockedGroupedArticles(set);
33738
33845
  var retGroups = {};
33739
33846
  var articlesCodexesOnIndex = {};
33740
- for (var _key8 in groupedArticles) {
33741
- var basketId = groupedArticles[_key8][Object.keys(groupedArticles[_key8])[0]].basketId;
33847
+ for (var _key9 in groupedArticles) {
33848
+ var basketId = groupedArticles[_key9][Object.keys(groupedArticles[_key9])[0]].basketId;
33742
33849
  retGroups[basketId] = {
33743
- articles: groupedArticles[_key8],
33850
+ articles: groupedArticles[_key9],
33744
33851
  quantity: 1
33745
33852
  };
33746
33853
  }
@@ -33755,12 +33862,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33755
33862
  articlesCodexesOnIndex[articleCodex].push(i);
33756
33863
  }
33757
33864
  }
33758
- for (var _key9 in articlesCodexesOnIndex) {
33759
- if (articlesCodexesOnIndex[_key9].length > 1) {
33865
+ for (var _key10 in articlesCodexesOnIndex) {
33866
+ if (articlesCodexesOnIndex[_key10].length > 1) {
33760
33867
  //group the single groups by the aricleCodex
33761
33868
  var articles = [];
33762
- for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key9].length; _i4++) {
33763
- var _group = groupedArticles[articlesCodexesOnIndex[_key9][_i4]];
33869
+ for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key10].length; _i4++) {
33870
+ var _group = groupedArticles[articlesCodexesOnIndex[_key10][_i4]];
33764
33871
  articles.push({
33765
33872
  article: _group[Object.keys(_group)[0]]
33766
33873
  });
@@ -33805,11 +33912,11 @@ var SummaryHandler = /*#__PURE__*/function () {
33805
33912
  var isIDM = article.CatalogData.isIDMFormat;
33806
33913
  var tabGroups = [];
33807
33914
  for (var basketId in article.partlistArticles) {
33808
- var _ops$val4;
33915
+ var _ops$val5;
33809
33916
  var partlistArticle = article.partlistArticles[basketId];
33810
33917
  if (!partlistArticle.tabGroup) continue;
33811
33918
  var ops = article.getArticleOptionState((!isIDM ? 'OPT' : '') + partlistArticle.tabGroup);
33812
- if (ops && !ops.isInvisible && (ops.selectionmode != 0 || (ops.visibleCount > 1 || ops.isFreeText) && article.set.api.showSelectionModeZero()) && ops.isDoShow && !((_ops$val4 = ops.val) !== null && _ops$val4 !== void 0 && _ops$val4.isNotRelevant) && ops !== null && ops !== void 0 && ops.optionTabGroup) {
33919
+ if (ops && !ops.isInvisible && (ops.selectionmode != 0 || (ops.visibleCount > 1 || ops.isFreeText) && article.set.api.showSelectionModeZero()) && ops.isDoShow && !((_ops$val5 = ops.val) !== null && _ops$val5 !== void 0 && _ops$val5.isNotRelevant) && ops !== null && ops !== void 0 && ops.optionTabGroup) {
33813
33920
  tabGroups.push({
33814
33921
  optionCodex: ops.optionCodex,
33815
33922
  tabGroup: ops.optionTabGroup
@@ -34045,8 +34152,8 @@ var SummaryHandler = /*#__PURE__*/function () {
34045
34152
  key: "getArticlesPrice",
34046
34153
  value: function getArticlesPrice(articles) {
34047
34154
  var price = 0;
34048
- for (var _key10 in articles) {
34049
- price = price + articles[_key10].price * articles[_key10].quantity;
34155
+ for (var _key11 in articles) {
34156
+ price = price + articles[_key11].price * articles[_key11].quantity;
34050
34157
  }
34051
34158
  return price;
34052
34159
  }
@@ -35198,8 +35305,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35198
35305
  }
35199
35306
  var configInAccessoire = set.configAccessoiresInAccessoireStep;
35200
35307
  var configInAccessoireAndTree = set.CatalogData.configAccessoires && !article.isShelfAccessoire;
35308
+ var isRelatedAccessoire = !!article.relatedToBasketId && !(article.isPartListArticle && article.partlistArticleVisibleInTree);
35201
35309
  //give this step a unique key so it is not merged with any option of te main article
35202
- if (configInAccessoire && !!(article !== null && article !== void 0 && article.relatedToBasketId)) {
35310
+ if (configInAccessoire && isRelatedAccessoire) {
35203
35311
  if (configInAccessoireAndTree) {
35204
35312
  //remember old configStepKey to push basketId to its targetArticles anyways
35205
35313
  mainConfigStepKey = configStepKey;
@@ -35208,7 +35316,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35208
35316
  }
35209
35317
  var plaBasketIds = Object.keys(articles[basketId].getRecursivePartlistArticles(true, true));
35210
35318
  var singleOPVOnly = ops.visibleCount == 1 && !ops.isFreeText && !set.CatalogData.dontHideOption.includes(ops.option.codex) && !((_set$ViewConfig4 = set.ViewConfig) !== null && _set$ViewConfig4 !== void 0 && _set$ViewConfig4.showSingleOPVOnly);
35211
- var isAccessoire = !!article.relatedToBasketId ? article.articleCodex : false;
35319
+ var isAccessoire = isRelatedAccessoire ? article.articleCodex : false;
35212
35320
  if (!configTree.getTabGroupByCodex(tabGroupCodex)) {
35213
35321
  var newTabGroup = this.createTabGroup(tabGroupCodex, tabGroupTitel, 'OPTION', configTree);
35214
35322
  configTree.addTabGroup(tabGroupCodex, newTabGroup);
@@ -37559,7 +37667,7 @@ var DivaSet = /*#__PURE__*/function () {
37559
37667
  break;
37560
37668
  }
37561
37669
  _context5.next = 3;
37562
- return Promise.resolve().then(function () { return require('./DoorPlanner-eddb88e7.js'); });
37670
+ return Promise.resolve().then(function () { return require('./DoorPlanner-58c28b85.js'); });
37563
37671
  case 3:
37564
37672
  _yield$import = _context5.sent;
37565
37673
  DoorPlanner = _yield$import["default"];
@@ -43033,7 +43141,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43033
43141
  break;
43034
43142
  case 3:
43035
43143
  _context12.next = 5;
43036
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-5cb6da74.js'); });
43144
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-009e5938.js'); });
43037
43145
  case 5:
43038
43146
  _yield$import = _context12.sent;
43039
43147
  PfisterWWSHandler = _yield$import["default"];
@@ -43041,7 +43149,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43041
43149
  return _context12.abrupt("break", 27);
43042
43150
  case 9:
43043
43151
  _context12.next = 11;
43044
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-3b54678e.js'); });
43152
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-fe01a475.js'); });
43045
43153
  case 11:
43046
43154
  _yield$import2 = _context12.sent;
43047
43155
  LiviqueWWSHandler = _yield$import2["default"];
@@ -43049,7 +43157,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43049
43157
  return _context12.abrupt("break", 27);
43050
43158
  case 15:
43051
43159
  _context12.next = 17;
43052
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-76e316d8.js'); });
43160
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-f6c4cf9f.js'); });
43053
43161
  case 17:
43054
43162
  _yield$import3 = _context12.sent;
43055
43163
  SeriousWWSHandler = _yield$import3["default"];
@@ -43057,7 +43165,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43057
43165
  return _context12.abrupt("break", 27);
43058
43166
  case 21:
43059
43167
  _context12.next = 23;
43060
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-5a417412.js'); });
43168
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-2f6885c1.js'); });
43061
43169
  case 23:
43062
43170
  _yield$import4 = _context12.sent;
43063
43171
  StandardWWSHandler = _yield$import4["default"];
@@ -44481,7 +44589,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
44481
44589
  while (1) switch (_context3.prev = _context3.next) {
44482
44590
  case 0:
44483
44591
  _context3.next = 2;
44484
- return Promise.resolve().then(function () { return require('./Host3DSignalR-729b5af1.js'); });
44592
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-f228c610.js'); });
44485
44593
  case 2:
44486
44594
  _yield$import = _context3.sent;
44487
44595
  Host3DSignalR = _yield$import["default"];
@@ -46167,7 +46275,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46167
46275
  break;
46168
46276
  case 8:
46169
46277
  _context5.next = 10;
46170
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-59aa2171.js'); });
46278
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-c6c5463c.js'); });
46171
46279
  case 10:
46172
46280
  _yield$import = _context5.sent;
46173
46281
  DivaStandardPlanner = _yield$import["default"];
@@ -46178,7 +46286,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46178
46286
  return _context5.abrupt("break", 21);
46179
46287
  case 15:
46180
46288
  _context5.next = 17;
46181
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-918c1acc.js'); });
46289
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-651e4672.js'); });
46182
46290
  case 17:
46183
46291
  _yield$import2 = _context5.sent;
46184
46292
  DivaBoxPlanner = _yield$import2["default"];
@@ -48141,12 +48249,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
48141
48249
  case 12:
48142
48250
  loadSuccessful = _context14.sent;
48143
48251
  if (this.plannerConfig.configuratorSessionId) {
48144
- //force new configurator session id - Landingpage case
48252
+ // ID forced from outside (Landingpage, PDP, Planung-ändern)
48145
48253
  DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId(this.plannerConfig.configuratorSessionId);
48146
- } else {
48147
- // Only create a new configurator session if we don't already have one. This keeps the analytics
48148
- // session stable across re-inits (e.g. switching products inside the same catalog).
48254
+ } else if (cache !== undefined) {
48255
+ // Re-init with cache (Variant Select): keep existing session stable
48149
48256
  DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId(undefined, true);
48257
+ } else {
48258
+ // Fresh start (new catalog, archive basket, etc.): always new UUID
48259
+ DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId();
48150
48260
  }
48151
48261
  if (!loadSuccessful) {
48152
48262
  _context14.next = 31;