@crystaldesign/web-planner-logic 26.8.0-beta.5 → 26.8.0-beta.51

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 (65) hide show
  1. package/build/cjs/{DivaBoxPlanner-918c1acc.js → DivaBoxPlanner-9025b5cc.js} +29 -31
  2. package/build/cjs/{DivaStandardPlanner-59aa2171.js → DivaStandardPlanner-37829cfc.js} +3 -3
  3. package/build/cjs/{DoorPlanner-eddb88e7.js → DoorPlanner-2e9cb21a.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-729b5af1.js → Host3DSignalR-6953216e.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-3b54678e.js → LiviqueWWSHandler-e34f28e5.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-5cb6da74.js → PfisterWWSHandler-dca9568e.js} +10 -1
  7. package/build/cjs/{PlannerHandler2D-6884347b.js → PlannerHandler2D-9987f7e2.js} +24 -9
  8. package/build/cjs/{SeriousBasketHandler-76e316d8.js → SeriousBasketHandler-2a2b0619.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-a5bc0cfa.js → ShelfPlanner-a5f048ab.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-5a417412.js → StandardWWSHandler-53dfc489.js} +1 -1
  11. package/build/cjs/{index-cd535960.js → index-224ed867.js} +428 -263
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-bbcd759e.js → DivaBoxPlanner-8c0e7f0e.js} +29 -31
  14. package/build/esm/{DivaStandardPlanner-de0d17ea.js → DivaStandardPlanner-f24e28e9.js} +3 -3
  15. package/build/esm/{DoorPlanner-3ffef3a1.js → DoorPlanner-5169acdb.js} +1 -1
  16. package/build/esm/{Host3DSignalR-2143e221.js → Host3DSignalR-9a6be410.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-7f997d91.js → LiviqueWWSHandler-d8011eac.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-97602df8.js → PfisterWWSHandler-03fcdd9e.js} +10 -1
  19. package/build/esm/{PlannerHandler2D-4e43043b.js → PlannerHandler2D-a1b13dd1.js} +24 -9
  20. package/build/esm/{SeriousBasketHandler-b9638fda.js → SeriousBasketHandler-a0b6082f.js} +1 -1
  21. package/build/esm/{ShelfPlanner-f50e9483.js → ShelfPlanner-ae3fe97b.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-99a090bc.js → StandardWWSHandler-e8aaf6e9.js} +1 -1
  23. package/build/esm/{index-2d218fcd.js → index-8a3c79b9.js} +428 -263
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +3 -0
  30. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -0
  32. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +1 -0
  34. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/IDM/Feature.d.ts +4 -0
  36. package/build/types/web-planner-logic/src/interface/IDM/Feature.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +2 -0
  38. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  40. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  42. package/build/types/web-planner-logic/src/logic/Basket/PfisterWWSHandler.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts +1 -0
  45. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +13 -0
  47. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +1 -0
  51. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  52. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  53. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
  54. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  55. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  56. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  57. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +11 -0
  58. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  59. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
  60. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  61. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +1 -0
  62. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
  63. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts +1 -0
  64. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
  65. 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;
@@ -1160,7 +1213,14 @@ var DivaApiHandler = /*#__PURE__*/function () {
1160
1213
  }, {
1161
1214
  key: "getIDMItems",
1162
1215
  value: function getIDMItems(packageId, serieId, serieNo, typeNos) {
1163
- return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/series/' + (this.useIDMService ? serieId : serieNo) + '/items' + (typeNos !== null && typeNos !== void 0 && typeNos.length ? '?filter=' + typeNos.map(function (t) {
1216
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/series/' + (this.useIDMService ? serieId : serieNo) + '/items';
1217
+
1218
+ // The seller/configurator endpoint is purpose-built: a dedicated typeNos param instead of a generic filter,
1219
+ // and a fixed field set server-side instead of an explicit fields= list.
1220
+ if (this.isSeller) {
1221
+ return base + (typeNos !== null && typeNos !== void 0 && typeNos.length ? '?typeNos=' + typeNos.join(';') : '');
1222
+ }
1223
+ return base + (typeNos !== null && typeNos !== void 0 && typeNos.length ? '?filter=' + typeNos.map(function (t) {
1164
1224
  return encodeURIComponent('typeNo==' + t);
1165
1225
  }).join(' || ') : '?fields=properties;serieNo;featureClassRefNo;priceTypeRef;itemIdentification;catalogPage;weightBrutto;weightNetto;volume;minimumDeliveryTime;widthBasicShapeNominalValue;widthBasicShapeFrom;widthBasicShapeTo;widthBasicShapeStepSize;heightBasicShapeNominalValue;heightBasicShapeFrom;heightBasicShapeTo;heightBasicShapeStepSize;depthBasicShapeNominalValue;depthBasicShapeFrom;depthBasicShapeTo;depthBasicShapeStepSize;typeKey;eClassNo;detailInfoRefs;detailInfos;partListExclusive;partListRef;decisionRefs;typeNo;sequenceNo;edpNumber;eanNumber;shortText;fullText;planningAdvice;salesNumber;avrFilter;avlFilter');
1166
1226
  }
@@ -1174,6 +1234,11 @@ var DivaApiHandler = /*#__PURE__*/function () {
1174
1234
  value: function getIDMDecisions(packageId, decisions) {
1175
1235
  return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions' + '?decisionNos=' + decisions.join(';') + (this.smSupplierNr ? '&supplierNo=' + this.smSupplierNr : '');
1176
1236
  }
1237
+ }, {
1238
+ key: "getIDMDecisionsQueryUrl",
1239
+ value: function getIDMDecisionsQueryUrl(packageId) {
1240
+ return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions/query' + (this.smSupplierNr ? '?supplierNo=' + this.smSupplierNr : '');
1241
+ }
1177
1242
  }, {
1178
1243
  key: "getIDMDetailInfos",
1179
1244
  value: function getIDMDetailInfos(packageId, detailinfos) {
@@ -1184,14 +1249,26 @@ var DivaApiHandler = /*#__PURE__*/function () {
1184
1249
  }, {
1185
1250
  key: "getIDMFeatureClass",
1186
1251
  value: function getIDMFeatureClass(packageId, featureclasses) {
1187
- return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/featureclasses' + '?filter=' + featureclasses.map(function (f) {
1252
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/featureclasses';
1253
+
1254
+ // The seller/configurator endpoint is purpose-built: a dedicated featureClassNos param instead of a generic filter.
1255
+ if (this.isSeller) {
1256
+ return base + '?featureClassNos=' + featureclasses.join(';');
1257
+ }
1258
+ return base + '?filter=' + featureclasses.map(function (f) {
1188
1259
  return encodeURIComponent('featureClassNo==' + f);
1189
1260
  }).join(' || ');
1190
1261
  }
1191
1262
  }, {
1192
1263
  key: "getIDMPriceFeatureGroups",
1193
1264
  value: function getIDMPriceFeatureGroups(packageId, pricefeaturegroups) {
1194
- return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/pricefeaturegroups' + '?filter=' + pricefeaturegroups.map(function (p) {
1265
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/pricefeaturegroups';
1266
+
1267
+ // The seller/configurator endpoint is purpose-built: a dedicated priceFeatureGroupNos param instead of a generic filter.
1268
+ if (this.isSeller) {
1269
+ return base + '?priceFeatureGroupNos=' + pricefeaturegroups.join(';');
1270
+ }
1271
+ return base + '?filter=' + pricefeaturegroups.map(function (p) {
1195
1272
  return encodeURIComponent('priceFeatureGroupNo==' + p);
1196
1273
  }).join(' || ');
1197
1274
  }
@@ -1515,12 +1592,12 @@ var DivaApiHandler = /*#__PURE__*/function () {
1515
1592
  key: "getDimensionbyId",
1516
1593
  value: function () {
1517
1594
  var _getDimensionbyId = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee15(id, iln, catalogCodex, plannedOptions) {
1518
- var _this$apiConfig28;
1595
+ var _this$apiConfig33;
1519
1596
  var fullUrl, res, headers;
1520
1597
  return _regeneratorRuntime__default["default"].wrap(function _callee15$(_context15) {
1521
1598
  while (1) switch (_context15.prev = _context15.next) {
1522
1599
  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);
1600
+ 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
1601
  headers = {};
1525
1602
  if (this.jwt) headers = {
1526
1603
  Authorization: 'Bearer ' + this.jwt
@@ -16526,6 +16603,11 @@ var OptionValueCatalogData = /*#__PURE__*/function () {
16526
16603
  get: function get() {
16527
16604
  return this.opv.material;
16528
16605
  }
16606
+ }, {
16607
+ key: "properties",
16608
+ get: function get() {
16609
+ return this.opv.property;
16610
+ }
16529
16611
  }, {
16530
16612
  key: "isOPVG",
16531
16613
  get: function get() {
@@ -16892,6 +16974,9 @@ var CatalogArticleData = /*#__PURE__*/function () {
16892
16974
  case 'ACCESSOIRE_POS_PRIO':
16893
16975
  this._catalogArticle.accPosPrio = Number(prop.Value);
16894
16976
  break;
16977
+ case 'ADD_AS_ZKAT':
16978
+ this._catalogArticle.addAsZKAT = prop.Value === 'true' || prop.Value === '1';
16979
+ break;
16895
16980
  case 'HEIGHTGRIDUSED':
16896
16981
  this._catalogArticle.heightGridUsed = Number(prop.Value);
16897
16982
  break;
@@ -16964,6 +17049,12 @@ var CatalogArticleData = /*#__PURE__*/function () {
16964
17049
  case 'OPTIONS_FOR_PRINT':
16965
17050
  this.catalogArticle.optionsForPrint = prop.Value.split(';');
16966
17051
  break;
17052
+ case 'TABGROUP':
17053
+ if (!this._catalogArticle.tabGroup) this._catalogArticle.tabGroup = prop.Value;
17054
+ break;
17055
+ case 'TABGROUP_OPTIONS':
17056
+ if (!this._catalogArticle.tabGroupOption) this._catalogArticle.tabGroupOption = prop.Value;
17057
+ break;
16967
17058
  default:
16968
17059
  if (_key.includes('__')) break;
16969
17060
  var values = prop.Value.split(';');
@@ -17353,6 +17444,11 @@ var CatalogArticleData = /*#__PURE__*/function () {
17353
17444
  get: function get() {
17354
17445
  return this._catalogArticle.accPosPrio;
17355
17446
  }
17447
+ }, {
17448
+ key: "addAsZKAT",
17449
+ get: function get() {
17450
+ return this._catalogArticle.addAsZKAT;
17451
+ }
17356
17452
  }, {
17357
17453
  key: "overwriteParentWidth",
17358
17454
  get: function get() {
@@ -18000,18 +18096,18 @@ function getCatalogOptionValueDataType(codex, jsonOPV, catalogData) {
18000
18096
  }
18001
18097
  function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogProps, plannerPaletteViewInfo) {
18002
18098
  //Hier muss es dann reingespeichert werden catalogPlannerArticlesView;
18003
- var getFilterType = function getFilterType(hasArticleRelation, AVLFilter, AVRFilter, catalogProps) {
18099
+ var getFilterType = function getFilterType(hasArticleRelation, hasAVL, hasAVR, catalogProps) {
18004
18100
  var ret;
18005
18101
  if (hasArticleRelation) {
18006
18102
  if (!catalogProps.showAllItemsInPlanner && !catalogProps.showAccOnDpOnly) plannerPaletteViewInfo.filterType['Accessoire'] = true;
18007
18103
  ret = 'Accessoire';
18008
- } else if (AVLFilter.length > 0 && AVRFilter.length > 0) {
18104
+ } else if (hasAVL && hasAVR) {
18009
18105
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockLR'] = true;
18010
18106
  ret = 'DockLR';
18011
- } else if (AVLFilter.length > 0) {
18107
+ } else if (hasAVL) {
18012
18108
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockR'] = true;
18013
18109
  ret = 'DockR';
18014
- } else if (AVRFilter.length > 0) {
18110
+ } else if (hasAVR) {
18015
18111
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockL'] = true;
18016
18112
  ret = 'DockL';
18017
18113
  } else {
@@ -18105,12 +18201,9 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18105
18201
  if (catalogProps.diva3dPlanerShowArticleAsSvg && topSvg.SVG) {
18106
18202
  image = getSVGUrl(topSvg.SVG, mediaUrl);
18107
18203
  }
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
- }
18204
+
18205
+ // An empty AVL/AVR filter means "no connector restriction" and is treated as a match by the
18206
+ // docking/palette comparison (see checkDPFilterDoMatch / checkDPAV*FilterDoMatch). No sentinel needed.
18114
18207
 
18115
18208
  //Wäre für Rofl Benz gedacht um die Information zu speichern welche Artikel in welcher Ausrichtung ausmultipliziert werden
18116
18209
  if (topSvg.JsFormula.includes('202_LI')) {
@@ -18118,7 +18211,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18118
18211
  } else if (topSvg.JsFormula.includes('202_RE')) {
18119
18212
  elementName = elementName + ' (Rechts)';
18120
18213
  }
18121
- var filterType = getFilterType(catPlanArticle.isArticleRelation, topSvg.HasAVL ? catPlanArticle.avlFilter : [], topSvg.HasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18214
+ var filterType = getFilterType(catPlanArticle.isArticleRelation, !!topSvg.HasAVL, !!topSvg.HasAVR, catalogProps);
18122
18215
  catPlanArticle.filterType = filterType;
18123
18216
  //ausmultiplizierte Elemente (über meherere SVGs)
18124
18217
  var catPlanArtView = {
@@ -18171,7 +18264,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18171
18264
  }
18172
18265
  if (!catPlanArticle.hasTopSvgsWithFormula || catPlanArticle.topSvgsWithFormula.length == 1) {
18173
18266
  var _catalogArticle$artic2;
18174
- var _filterType = getFilterType(catPlanArticle.isArticleRelation, catPlanArticle.topHasAVL ? catPlanArticle.avlFilter : [], catPlanArticle.topHasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18267
+ var _filterType = getFilterType(catPlanArticle.isArticleRelation, !!catPlanArticle.topHasAVL, !!catPlanArticle.topHasAVR, catalogProps);
18175
18268
  catPlanArticle.filterType = _filterType;
18176
18269
  //Artikelbild ist abh�ngig von DIVA3DPlanerShowArticleAsSvg das SVG des Elements
18177
18270
  if (catalogProps.diva3dPlanerShowArticleAsSvg && (catPlanArticle.hasTopSvg || catPlanArticle.hasTopSvgsWithFormula)) {
@@ -18609,6 +18702,11 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
18609
18702
  get: function get() {
18610
18703
  return this.opv.catalogOPV.value;
18611
18704
  }
18705
+ }, {
18706
+ key: "properties",
18707
+ get: function get() {
18708
+ return this.opv.catalogOPV.properties;
18709
+ }
18612
18710
  }, {
18613
18711
  key: "metaData",
18614
18712
  get: function get() {
@@ -19714,7 +19812,15 @@ function _loadMoreFromIDMArticles() {
19714
19812
  }).map(function (a) {
19715
19813
  return a.featureClassRefNo;
19716
19814
  })));
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];
19815
+ 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 () {
19816
+ var getUrl = set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds);
19817
+ if (getUrl.length > 2000) {
19818
+ return set.api.getDataCache(set.api.getIDMDecisionsQueryUrl(set.CatalogData.accountGuid), undefined, undefined, 'enricher', 'POST', {
19819
+ decisionNos: toLoadDecisionIds.join(';')
19820
+ });
19821
+ }
19822
+ return set.api.getDataCache(getUrl, undefined, undefined, 'enricher');
19823
+ }() : undefined];
19718
19824
  _context5.next = 16;
19719
19825
  return Promise.all(promises);
19720
19826
  case 16:
@@ -19981,15 +20087,14 @@ var getPriceFeatureGroups = function getPriceFeatureGroups(catalogArticleDatas,
19981
20087
  };
19982
20088
  var initializeDecision = function initializeDecision(decision, idmOptionGroups) {
19983
20089
  var _decision$optionCombi;
20090
+ // optionCombinations already arrive sorted by sequence from the backend.
19984
20091
  var optionCombinations = (_decision$optionCombi = decision.optionCombinations) === null || _decision$optionCombi === void 0 ? void 0 : _decision$optionCombi.map(function (c) {
19985
20092
  return _objectSpread$p(_objectSpread$p({}, c), {}, {
19986
20093
  projectOptionsSetRefs: parseOptionSetRef(c.projectOptionsSetRefs, idmOptionGroups)
19987
20094
  });
19988
20095
  });
19989
20096
  return _objectSpread$p(_objectSpread$p({}, decision), {}, {
19990
- optionCombinations: optionCombinations === null || optionCombinations === void 0 ? void 0 : optionCombinations.sort(function (a, b) {
19991
- return a.sequence - b.sequence;
19992
- })
20097
+ optionCombinations: optionCombinations
19993
20098
  });
19994
20099
  };
19995
20100
  var initializePriceFeatureGroups = function initializePriceFeatureGroups(priceFeatureGroup, idmOptionGroups) {
@@ -20088,7 +20193,7 @@ var initFeature = function initFeature(feature, catalogArticleData, set) {
20088
20193
  catalogArticleData.articleOptions[newArticleFeature.codex] = newArticleFeature;
20089
20194
  };
20090
20195
  function getCatalogFeatureType(feature, catalogArticleData, set) {
20091
- var _set$CatalogData$cata, _set$CatalogData$cata2, _set$CatalogData$cata3, _feature$detailInfos, _properties$find, _properties$find2, _ref, _properties$find3, _feature$options$, _optionMask$hidden;
20196
+ var _set$CatalogData$cata, _set$CatalogData$cata2, _set$CatalogData$cata3, _feature$detailInfos, _optionMask$hidden;
20092
20197
  var featureClass = set.CatalogData.getFeatureClass(catalogArticleData.featureClassRefNo);
20093
20198
  var optionMask = (_set$CatalogData$cata = set.CatalogData.catalogMask) === null || _set$CatalogData$cata === void 0 || (_set$CatalogData$cata = _set$CatalogData$cata.options) === null || _set$CatalogData$cata === void 0 ? void 0 : _set$CatalogData$cata[feature.featureNo];
20094
20199
  var maskProperties = getPropertiesForFeatureNo((_set$CatalogData$cata2 = (_set$CatalogData$cata3 = set.CatalogData.catalogMask) === null || _set$CatalogData$cata3 === void 0 ? void 0 : _set$CatalogData$cata3.properties) !== null && _set$CatalogData$cata2 !== void 0 ? _set$CatalogData$cata2 : [], undefined, feature.featureNo, set.CatalogData.api.getLanguage());
@@ -20105,17 +20210,9 @@ function getCatalogFeatureType(feature, catalogArticleData, set) {
20105
20210
  headerPosVariationType: feature.headerPosVariationType,
20106
20211
  measureKey: feature.measureParameter,
20107
20212
  sequenceNo: feature.sequenceNo,
20108
- sendToPIM: !!(properties !== null && properties !== void 0 && (_properties$find = properties.find(function (p) {
20109
- return p.Codex == 'SendToPim';
20110
- })) !== null && _properties$find !== void 0 && _properties$find.Value),
20111
- isMultiselect: !!(properties !== null && properties !== void 0 && (_properties$find2 = properties.find(function (p) {
20112
- return p.Codex == 'Multiselect';
20113
- })) !== null && _properties$find2 !== void 0 && _properties$find2.Value),
20114
- layout: (_ref = properties === null || properties === void 0 || (_properties$find3 = properties.find(function (p) {
20115
- return p.Codex == 'LAYOUT';
20116
- })) === null || _properties$find3 === void 0 ? void 0 : _properties$find3.Value) !== null && _ref !== void 0 ? _ref : (_feature$options$ = feature.options[0]) !== null && _feature$options$ !== void 0 && (_feature$options$ = _feature$options$.detailInfos) !== null && _feature$options$ !== void 0 && _feature$options$.find(function (d) {
20117
- return d.functionType == 'OPV';
20118
- }) ? 'IMAGE' : 'TEXT',
20213
+ sendToPIM: feature.sendToPim,
20214
+ isMultiselect: feature.isMultiselect,
20215
+ layout: feature.layout,
20119
20216
  invisible: (_optionMask$hidden = optionMask === null || optionMask === void 0 ? void 0 : optionMask.hidden) !== null && _optionMask$hidden !== void 0 ? _optionMask$hidden : !!(featureClass !== null && featureClass !== void 0 && featureClass.featureRefs[feature.featureNo]),
20120
20217
  property: properties,
20121
20218
  propertyObj: {}
@@ -20179,12 +20276,9 @@ function getCatalogOptionType(option, set) {
20179
20276
  origName: name,
20180
20277
  name_locales: option.optionText,
20181
20278
  property: properties,
20182
- image: getLowResUrl((_option$detailInfos = option.detailInfos) === null || _option$detailInfos === void 0 || (_option$detailInfos = _option$detailInfos.find(function (d) {
20183
- return d.functionType == 'OPV';
20184
- })) === null || _option$detailInfos === void 0 ? void 0 : _option$detailInfos.url),
20185
- images: (_option$detailInfos2 = option.detailInfos) === null || _option$detailInfos2 === void 0 || (_option$detailInfos2 = _option$detailInfos2.filter(function (d) {
20186
- return d.functionType == 'OPV';
20187
- })) === null || _option$detailInfos2 === void 0 ? void 0 : _option$detailInfos2.map(function (o) {
20279
+ // detailInfos is already limited to "OPV" entries by the backend.
20280
+ image: getLowResUrl((_option$detailInfos = option.detailInfos) === null || _option$detailInfos === void 0 || (_option$detailInfos = _option$detailInfos[0]) === null || _option$detailInfos === void 0 ? void 0 : _option$detailInfos.url),
20281
+ images: (_option$detailInfos2 = option.detailInfos) === null || _option$detailInfos2 === void 0 ? void 0 : _option$detailInfos2.map(function (o) {
20188
20282
  var _getLowResUrl, _option$detailInfoRef, _option$detailInfoRef2;
20189
20283
  return {
20190
20284
  detailInfoNo: o.detailInfoNo,
@@ -20194,7 +20288,7 @@ function getCatalogOptionType(option, set) {
20194
20288
  })) !== null && _option$detailInfoRef !== void 0 ? _option$detailInfoRef : []
20195
20289
  };
20196
20290
  }),
20197
- hexColor: rgbToHex(option.materialColorR, option.materialColorG, option.materialColorB),
20291
+ hexColor: option.materialColorHex,
20198
20292
  description: DivaUtils__default["default"].getLocals(option.optionCommentText, set.api.getLanguageLowercase()),
20199
20293
  description_locales: option.optionCommentText,
20200
20294
  isTexture: false,
@@ -20265,14 +20359,6 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
20265
20359
  };
20266
20360
  return opv;
20267
20361
  }
20268
- function componentToHex(c) {
20269
- var hex = c.toString(16);
20270
- return hex.length == 1 ? '0' + hex : hex;
20271
- }
20272
- function rgbToHex(r, g, b) {
20273
- if (r === undefined || g === undefined || b === undefined) return undefined;
20274
- return '#' + componentToHex(r) + componentToHex(g) + componentToHex(b);
20275
- }
20276
20362
 
20277
20363
  function ownKeys$o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20278
20364
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -20343,9 +20429,12 @@ function initIDMArticles(jsonItems, catalogData) {
20343
20429
  }
20344
20430
  }
20345
20431
  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;
20432
+ 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
20433
  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
20434
  var lang = catalogData.api.getLanguageLowercase();
20435
+ // empty locale objects ({} or only empty strings) are truthy, so ?? alone doesn't fall back
20436
+ var fullText = hasLocaleText(article.fullText) ? article.fullText : article.shortText;
20437
+ var shortText = hasLocaleText(article.shortText) ? article.shortText : article.fullText;
20349
20438
  var featureProperties = convertProperties(article.properties, lang, 'featureNos');
20350
20439
  var optionProperties = convertProperties(article.properties, lang, 'optionKeys');
20351
20440
  return {
@@ -20368,14 +20457,14 @@ function getCatalogArticle(article, catalogData) {
20368
20457
  hasArticleRelations: false,
20369
20458
  hasPartlistArticle: !!article.partListRef,
20370
20459
  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,
20460
+ 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),
20461
+ longDescription: DivaUtils__default["default"].getLocals(fullText, lang),
20462
+ longDescription_locales: fullText,
20374
20463
  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,
20464
+ origName: DivaUtils__default["default"].getLocals(fullText, lang),
20465
+ shortName: DivaUtils__default["default"].getLocals(shortText, lang),
20466
+ origShortName: DivaUtils__default["default"].getLocals(shortText, lang),
20467
+ shortName_locales: shortText,
20379
20468
  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
20469
  optionProperties: optionProperties,
20381
20470
  featureProperties: featureProperties,
@@ -20435,6 +20524,11 @@ function getCatalogArticle(article, catalogData) {
20435
20524
  modelName3D: jsonArticle.ModelName3D && jsonArticle.ModelName3D != '' ? jsonArticle.ModelName3D : undefined,
20436
20525
  */
20437
20526
 
20527
+ function hasLocaleText(locales) {
20528
+ return !!locales && Object.values(locales).some(function (v) {
20529
+ return !!(v !== null && v !== void 0 && v.trim());
20530
+ });
20531
+ }
20438
20532
  function getLowResUrl(url) {
20439
20533
  return url === null || url === void 0 ? void 0 : url.replace('.jpg', '_low.jpg').replace('.jpeg', '_low.jpeg').replace('.png', '_low.png');
20440
20534
  }
@@ -20675,6 +20769,8 @@ var DivaCatalogData = /*#__PURE__*/function () {
20675
20769
  //
20676
20770
  ignoreLayerAVNAVS: false,
20677
20771
  //
20772
+ ignoreDockingNumber: false,
20773
+ // ignoriert die Nummern-Regel beim Andocken (z.B. AVU1 darf an AVO2). Die Nummer dient dann nur der Identifikation, nicht als Zuordnungsschlüssel.
20678
20774
  checkCollisionForDifferentLayers: [],
20679
20775
  //
20680
20776
 
@@ -20727,6 +20823,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
20727
20823
  // ergänzt einen Übersetzbaren string am Ende des Names
20728
20824
  dontShowAccStep: false,
20729
20825
  useTypeNrAsArticleNrEKText: false,
20826
+ hideSubPosArticleCodexEKText: false,
20827
+ addPosInvisibilityToOL: false,
20828
+ // PosInvisibility wird nur in die Orderlines übernommen wenn der MetaTag ADD_POS_INVISIBILITY_TO_OL == 1 ist
20730
20829
  addNewLineBeforRuleDesc: false,
20731
20830
  // für Kirchner neue zeile im Checkout vor der Klanner und der RuleCes von den Partlistarticles
20732
20831
  useEdoArticlesOnOpvs: [],
@@ -21220,6 +21319,24 @@ var DivaCatalogData = /*#__PURE__*/function () {
21220
21319
  return _ret;
21221
21320
  }
21222
21321
  }
21322
+
21323
+ /**
21324
+ * Default dock filter applied when nothing is selected (e.g. after a deselect or when adding a new element).
21325
+ * When completeness warnings are hidden, any element may start a planning, so every dock type the catalog
21326
+ * actually has is shown. Otherwise the catalog's configured start filter (startFilterParams / available
21327
+ * start types) is used.
21328
+ */
21329
+ }, {
21330
+ key: "defaultDockFilter",
21331
+ get: function get() {
21332
+ if (this.doHideCompletenessWarning) {
21333
+ var filterType = this.plannerPaletteViewInfo.filterType;
21334
+ return Object.keys(filterType).filter(function (key) {
21335
+ return filterType[key];
21336
+ });
21337
+ }
21338
+ return this.getStartFilter;
21339
+ }
21223
21340
  }, {
21224
21341
  key: "dontHideOption",
21225
21342
  get: function get() {
@@ -21418,6 +21535,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21418
21535
  get: function get() {
21419
21536
  return this.catalogProps.useTypeNrAsArticleNrEKText;
21420
21537
  }
21538
+ }, {
21539
+ key: "hideSubPosArticleCodexEKText",
21540
+ get: function get() {
21541
+ return this.catalogProps.hideSubPosArticleCodexEKText;
21542
+ }
21421
21543
  }, {
21422
21544
  key: "hasAlternateRenderings",
21423
21545
  get: function get() {
@@ -21700,6 +21822,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21700
21822
  get: function get() {
21701
21823
  return this.catalogProps.dontShowAccStep;
21702
21824
  }
21825
+ }, {
21826
+ key: "addPosInvisibilityToOL",
21827
+ get: function get() {
21828
+ return this.catalogProps.addPosInvisibilityToOL;
21829
+ }
21703
21830
 
21704
21831
  //Planner configurations
21705
21832
  }, {
@@ -21709,6 +21836,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
21709
21836
  ignoreLayerAVC: this.catalogProps.ignoreLayerAVC,
21710
21837
  ignoreLayerAVOAVU: this.catalogProps.ignoreLayerAVOAVU,
21711
21838
  ignoreLayerAVNAVS: this.catalogProps.ignoreLayerAVNAVS,
21839
+ ignoreDockingNumber: this.catalogProps.ignoreDockingNumber,
21712
21840
  showAccOnDpOnly: this.catalogProps.showAccOnDpOnly,
21713
21841
  dockAccOnAvoOnly: this.catalogProps.dockAccOnAvoOnly,
21714
21842
  hideAccessoriesInPlanner: this.catalogProps.accessorieStepAsPlanner,
@@ -21868,6 +21996,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
21868
21996
  case 'IGNORELAYERAVNAVS':
21869
21997
  _this4.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
21870
21998
  break;
21999
+ case 'IGNOREDOCKINGNUMBER':
22000
+ _this4.catalogProps.ignoreDockingNumber = item.Value == '1';
22001
+ break;
21871
22002
  case 'CHECK_COLLISION_DIFFERENT_LAYERS':
21872
22003
  _this4.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
21873
22004
  return parseInt(t);
@@ -21986,6 +22117,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
21986
22117
  case 'USE_TYPENR_AS_ARTICLENR_EKTEXT':
21987
22118
  _this4.catalogProps.useTypeNrAsArticleNrEKText = '1' == item.Value;
21988
22119
  break;
22120
+ case 'HIDE_SUBPOS_ARTICLECODEX_EKTEXT':
22121
+ _this4.catalogProps.hideSubPosArticleCodexEKText = '1' == item.Value;
22122
+ break;
22123
+ case 'ADD_POS_INVISIBILITY_TO_OL':
22124
+ _this4.catalogProps.addPosInvisibilityToOL = '1' == item.Value;
22125
+ break;
21989
22126
  case 'ADD_NEW_LINE_BEFOR_RULEDESC':
21990
22127
  _this4.catalogProps.addNewLineBeforRuleDesc = '1' == item.Value;
21991
22128
  break;
@@ -22324,11 +22461,12 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22324
22461
  key: "loadDivaCatalog",
22325
22462
  value: function () {
22326
22463
  var _loadDivaCatalog = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(state, catalogCodex, orderSet) {
22464
+ var _orderSet$OrderLines;
22327
22465
  var promises, _yield$Promise$all, _yield$Promise$all2, catalogApiData, catalogArticleListData, catalogArticlePlannerListData, additionalModelInfos, mask, _state$catalogMask, catalogData;
22328
22466
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
22329
22467
  while (1) switch (_context2.prev = _context2.next) {
22330
22468
  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) {
22469
+ 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
22470
  var _ol$VariantBasketData;
22333
22471
  return ((_ol$VariantBasketData = ol.VariantBasketDatas) === null || _ol$VariantBasketData === void 0 ? void 0 : _ol$VariantBasketData.length) && ol.ArticleType === 'OPTIONTREE';
22334
22472
  }).map(function (os) {
@@ -22359,7 +22497,8 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22359
22497
  break;
22360
22498
  }
22361
22499
  _context2.next = 16;
22362
- return state.api.getDataCache(state.api.getCatalogMaskQS(catalogApiData.GUID, state.api.OrganizationId), undefined, undefined, 'enricher');
22500
+ 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
22501
+ );
22363
22502
  case 16:
22364
22503
  mask = _context2.sent;
22365
22504
  case 17:
@@ -23534,45 +23673,19 @@ var DivaEngine = /*#__PURE__*/function () {
23534
23673
  value: function updateIDMSpecificFeature(ops) {
23535
23674
  var _ops$option$idmVarian, _ops$option$idmVarian2, _ops$option$idmVarian3, _ops$option$idmVarian4, _ops$option$idmVarian5;
23536
23675
  if (!this.article.parentHasSameOption(ops.optionCodex)) return;
23676
+ // The OPV codex embeds the option codex as a prefix: "OPV<body>_<connector>" (e.g. "OPV1090_CT500"),
23677
+ // while ops.optionCodex is "OPT<body>". Strip that prefix so the filter holds the bare connector codex.
23678
+ var toConnectorCodex = function toConnectorCodex(value) {
23679
+ var prefix = 'OPV' + ops.optionCodex.substring(3) + '_';
23680
+ return value.codex.startsWith(prefix) ? value.codex.substring(prefix.length) : value.codex;
23681
+ };
23537
23682
  if ([90, 1090].includes((_ops$option$idmVarian = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian !== void 0 ? _ops$option$idmVarian : 0)) {
23538
23683
  //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;
23684
+ this.article.newPossibleAVRFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23556
23685
  }
23557
23686
  if ([89, 1089].includes((_ops$option$idmVarian2 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian2 !== void 0 ? _ops$option$idmVarian2 : 0)) {
23558
23687
  //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;
23688
+ this.article.newPossibleAVLFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23576
23689
  }
23577
23690
  //beim article abspeichern. Das Planungselement kann es sich per Funktion von dort dann holen
23578
23691
  if ([97, 1097].includes((_ops$option$idmVarian3 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian3 !== void 0 ? _ops$option$idmVarian3 : 0)) {
@@ -23801,18 +23914,18 @@ var DivaEngine = /*#__PURE__*/function () {
23801
23914
  myDecisions[_i].disableHistory = [];
23802
23915
  myDecisions[_i].activeCombination = undefined;
23803
23916
  }
23804
- var _iterator7 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23805
- _step7;
23917
+ var _iterator5 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23918
+ _step5;
23806
23919
  try {
23807
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
23808
- var ops = _step7.value;
23920
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23921
+ var ops = _step5.value;
23809
23922
  ops.updateVisibleOptionValues(ops.option.articleOptionValues);
23810
23923
  ops.definedBySetFeatureFixed = false;
23811
23924
  }
23812
23925
  } catch (err) {
23813
- _iterator7.e(err);
23926
+ _iterator5.e(err);
23814
23927
  } finally {
23815
- _iterator7.f();
23928
+ _iterator5.f();
23816
23929
  }
23817
23930
  this.catalogDecisionsByNumber = new Map(this.article.catalogArticle.articleDecisions.map(function (d) {
23818
23931
  return [d.Number, d];
@@ -23943,11 +24056,11 @@ var DivaEngine = /*#__PURE__*/function () {
23943
24056
  key: "updateIDMSpecificFeatures",
23944
24057
  value: function updateIDMSpecificFeatures() {
23945
24058
  //updaten idm planner specific options
23946
- var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23947
- _step8;
24059
+ var _iterator6 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24060
+ _step6;
23948
24061
  try {
23949
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
23950
- var ops = _step8.value;
24062
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
24063
+ var ops = _step6.value;
23951
24064
  //when an option has no decisions the first visible optionValue has to be selected per default
23952
24065
  if (ops.val === undefined && ops.visibleCount && !this.article.CatalogData.useDiomexConfigLogic) {
23953
24066
  this.assignOptionValue(ops.optionCodex, ops.visibleOPVKeys[0]);
@@ -23968,9 +24081,9 @@ var DivaEngine = /*#__PURE__*/function () {
23968
24081
  }
23969
24082
  }
23970
24083
  } catch (err) {
23971
- _iterator8.e(err);
24084
+ _iterator6.e(err);
23972
24085
  } finally {
23973
- _iterator8.f();
24086
+ _iterator6.f();
23974
24087
  }
23975
24088
  }
23976
24089
  }, {
@@ -24204,21 +24317,21 @@ var DivaEngine = /*#__PURE__*/function () {
24204
24317
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
24205
24318
  return v.slice(1);
24206
24319
  })); // remove the '!' from the value
24207
- var _iterator9 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24208
- _step9;
24320
+ var _iterator7 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24321
+ _step7;
24209
24322
  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];
24323
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
24324
+ var _step7$value = _slicedToArray__default["default"](_step7.value, 2),
24325
+ opvKey = _step7$value[0],
24326
+ _opv = _step7$value[1];
24214
24327
  if (!negatedValues.has(opvKey)) {
24215
24328
  validOPVs[OPT].set(opvKey, _opv);
24216
24329
  }
24217
24330
  }
24218
24331
  } catch (err) {
24219
- _iterator9.e(err);
24332
+ _iterator7.e(err);
24220
24333
  } finally {
24221
- _iterator9.f();
24334
+ _iterator7.f();
24222
24335
  }
24223
24336
  } else {
24224
24337
  validOPVs[OPT] = new Map(ops.visibleOptionValues);
@@ -24346,11 +24459,11 @@ var DivaEngine = /*#__PURE__*/function () {
24346
24459
  }, {
24347
24460
  key: "evalShowOnlyWhenHasPrice",
24348
24461
  value: function evalShowOnlyWhenHasPrice() {
24349
- var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24350
- _step10;
24462
+ var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24463
+ _step8;
24351
24464
  try {
24352
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
24353
- var ops = _step10.value;
24465
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
24466
+ var ops = _step8.value;
24354
24467
  for (var jKey in ops.visibleOptionValues) {
24355
24468
  var opv = ops.visibleOptionValues.get(jKey);
24356
24469
  if (opv.showOnlyWhenHasPrice && opv.price == 0) {
@@ -24362,9 +24475,9 @@ var DivaEngine = /*#__PURE__*/function () {
24362
24475
  }
24363
24476
  }
24364
24477
  } catch (err) {
24365
- _iterator10.e(err);
24478
+ _iterator8.e(err);
24366
24479
  } finally {
24367
- _iterator10.f();
24480
+ _iterator8.f();
24368
24481
  }
24369
24482
  }
24370
24483
 
@@ -24838,12 +24951,12 @@ var DivaEngine = /*#__PURE__*/function () {
24838
24951
  }
24839
24952
 
24840
24953
  //mengen und größenabhängige Preisberechungn.
24841
- var _iterator11 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24842
- _step11;
24954
+ var _iterator9 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24955
+ _step9;
24843
24956
  try {
24844
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
24957
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24845
24958
  var _ops$addToMeasure;
24846
- var ops = _step11.value;
24959
+ var ops = _step9.value;
24847
24960
  var OP = ops.optionCodex;
24848
24961
  var mUnit = ops.measureUnit;
24849
24962
  var pUnit = ops.priceUnit;
@@ -24926,15 +25039,15 @@ var DivaEngine = /*#__PURE__*/function () {
24926
25039
  }
24927
25040
  //jetzt nochmal prozentuelle Preise mit TargetOption berechnen
24928
25041
  } catch (err) {
24929
- _iterator11.e(err);
25042
+ _iterator9.e(err);
24930
25043
  } finally {
24931
- _iterator11.f();
25044
+ _iterator9.f();
24932
25045
  }
24933
- var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24934
- _step12;
25046
+ var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25047
+ _step10;
24935
25048
  try {
24936
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
24937
- var _ops4 = _step12.value;
25049
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
25050
+ var _ops4 = _step10.value;
24938
25051
  var targetPPGPrefixes = _ops4.targetPPGPrefixes;
24939
25052
  if (!targetPPGPrefixes) continue;
24940
25053
  var _loop7 = function _loop7() {
@@ -24954,9 +25067,9 @@ var DivaEngine = /*#__PURE__*/function () {
24954
25067
  }
24955
25068
  }
24956
25069
  } catch (err) {
24957
- _iterator12.e(err);
25070
+ _iterator10.e(err);
24958
25071
  } finally {
24959
- _iterator12.f();
25072
+ _iterator10.f();
24960
25073
  }
24961
25074
  for (var _i5 = 0; _i5 < this.article.priceRefs.length; _i5++) {
24962
25075
  var basePriceRef = this.article.priceRefs[_i5];
@@ -24968,19 +25081,19 @@ var DivaEngine = /*#__PURE__*/function () {
24968
25081
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
24969
25082
  });
24970
25083
  if (!priceRef) {
24971
- var _iterator13 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
24972
- _step13;
25084
+ var _iterator11 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
25085
+ _step11;
24973
25086
  try {
24974
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
24975
- var ops = _step13.value;
25087
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
25088
+ var ops = _step11.value;
24976
25089
  if (ops.ppg && ops.ppg.split('_')[0] == targetPrefix) {
24977
25090
  myArtOpv = ops;
24978
25091
  }
24979
25092
  }
24980
25093
  } catch (err) {
24981
- _iterator13.e(err);
25094
+ _iterator11.e(err);
24982
25095
  } finally {
24983
- _iterator13.f();
25096
+ _iterator11.f();
24984
25097
  }
24985
25098
  }
24986
25099
 
@@ -25006,36 +25119,36 @@ var DivaEngine = /*#__PURE__*/function () {
25006
25119
  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
25120
  }
25008
25121
  var articleUsedCalcPrice = myArticleBasePrice;
25009
- var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25010
- _step14;
25122
+ var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25123
+ _step12;
25011
25124
  try {
25012
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25013
- var tmpOps = _step14.value;
25125
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
25126
+ var tmpOps = _step12.value;
25014
25127
  articleUsedCalcPrice = this.getOptionPrice(articleUsedCalcPrice, tmpOps.option, digits);
25015
25128
  }
25016
25129
 
25017
25130
  //jetzt nochmal prozentuelle Preise mit GLOBAL tarbetoption berechnen
25018
25131
  /* TODO ABklären mit Franz - ops hat nie die Optionen - targetPPGPrefixes - ich glaube hier sollte article.priceRefs durchlaufen werden. */
25019
25132
  } catch (err) {
25020
- _iterator14.e(err);
25133
+ _iterator12.e(err);
25021
25134
  } finally {
25022
- _iterator14.f();
25135
+ _iterator12.f();
25023
25136
  }
25024
- var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25025
- _step15;
25137
+ var _iterator13 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25138
+ _step13;
25026
25139
  try {
25027
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25140
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
25028
25141
  var _ops5$targetPPGPrefix, _ops5$targetPPGPrefix2;
25029
- var _ops5 = _step15.value;
25142
+ var _ops5 = _step13.value;
25030
25143
  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
25144
  if (_ops5.isPercentage && targetOption == 'GLOBAL') {
25032
25145
  articleUsedCalcPrice = articleUsedCalcPrice * (1 + _ops5.calcPrice);
25033
25146
  }
25034
25147
  }
25035
25148
  } catch (err) {
25036
- _iterator15.e(err);
25149
+ _iterator13.e(err);
25037
25150
  } finally {
25038
- _iterator15.f();
25151
+ _iterator13.f();
25039
25152
  }
25040
25153
  for (var _i7 = 0; _i7 < this.article.priceRefs.length; _i7++) {
25041
25154
  var _priceRef = this.article.priceRefs[_i7];
@@ -25177,11 +25290,11 @@ var DivaEngine = /*#__PURE__*/function () {
25177
25290
  if (a[i].trim() != '') {
25178
25291
  var searchOpt = 'OPT' + a[i].trim();
25179
25292
  //Optionsbaum des Artikels durchsuchen
25180
- var _iterator16 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25181
- _step16;
25293
+ var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25294
+ _step14;
25182
25295
  try {
25183
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25184
- var _ops6 = _step16.value;
25296
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25297
+ var _ops6 = _step14.value;
25185
25298
  if (_ops6.ocd == searchOpt || _ops6.optionCodex == searchOpt) {
25186
25299
  if (_ops6 && _ops6.price > 0) {
25187
25300
  myPercBasePrice += _ops6.price * _ops6.quantity;
@@ -25190,9 +25303,9 @@ var DivaEngine = /*#__PURE__*/function () {
25190
25303
  }
25191
25304
  }
25192
25305
  } catch (err) {
25193
- _iterator16.e(err);
25306
+ _iterator14.e(err);
25194
25307
  } finally {
25195
- _iterator16.f();
25308
+ _iterator14.f();
25196
25309
  }
25197
25310
  }
25198
25311
  }
@@ -25238,18 +25351,18 @@ var DivaEngine = /*#__PURE__*/function () {
25238
25351
  }
25239
25352
 
25240
25353
  // this functions updates the images of OPVs that depend on rules
25241
- var _iterator17 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25242
- _step17;
25354
+ var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25355
+ _step15;
25243
25356
  try {
25244
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
25245
- var ops = _step17.value;
25246
- var _iterator18 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25247
- _step18;
25357
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25358
+ var ops = _step15.value;
25359
+ var _iterator16 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25360
+ _step16;
25248
25361
  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];
25362
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25363
+ var _step16$value = _slicedToArray__default["default"](_step16.value, 2),
25364
+ jKey = _step16$value[0],
25365
+ opv = _step16$value[1];
25253
25366
  if (opv.images) {
25254
25367
  var imageFound = false;
25255
25368
  for (var _i10 = 0; _i10 < opv.images.length; _i10++) {
@@ -25268,18 +25381,18 @@ var DivaEngine = /*#__PURE__*/function () {
25268
25381
  }
25269
25382
  }
25270
25383
  } catch (err) {
25271
- _iterator18.e(err);
25384
+ _iterator16.e(err);
25272
25385
  } finally {
25273
- _iterator18.f();
25386
+ _iterator16.f();
25274
25387
  }
25275
25388
  }
25276
25389
 
25277
25390
  // this function calculates an Svg to the current configuration if neccessary (SVG Tausch)
25278
25391
  // if the Article has no SVG Tausch nothing is done
25279
25392
  } catch (err) {
25280
- _iterator17.e(err);
25393
+ _iterator15.e(err);
25281
25394
  } finally {
25282
- _iterator17.f();
25395
+ _iterator15.f();
25283
25396
  }
25284
25397
  var newSVGFile = null;
25285
25398
  var svgChangedViaSvgTausch = false;
@@ -25910,7 +26023,7 @@ var IDMEngine = /*#__PURE__*/function () {
25910
26023
  } else if (!_ops4.valCodex) {
25911
26024
  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
26025
  } 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>'));
26026
+ 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
26027
  }
25915
26028
  if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set');
25916
26029
  } else if (action.optionRef) {
@@ -26008,7 +26121,7 @@ var IDMEngine = /*#__PURE__*/function () {
26008
26121
  this.logPrice(priceFeatureGroup, index);
26009
26122
  if (index !== undefined) {
26010
26123
  var _this$article$catalog, _this$article$catalog4, _priceFeatureGroup$fe, _priceFeatureGroup$fe2;
26011
- var matichingFinish = priceFeatureGroup.finishes[index];
26124
+ var matichingFinish = priceFeatureGroup.projectFinishes[index];
26012
26125
  var priceKey = 'PRFG' + priceFeatureGroup.priceFeatureGroupNo + '_' + matichingFinish.supplierPriceGroup;
26013
26126
  if (((_this$article$catalog = this.article.catalogArticle.idmPrices) === null || _this$article$catalog === void 0 ? void 0 : _this$article$catalog.prices[priceKey]) === undefined) {
26014
26127
  var _this$article$catalog2, _this$article$catalog3;
@@ -26506,13 +26619,18 @@ var IDMEngine = /*#__PURE__*/function () {
26506
26619
  value: function updateIDMSpecificFeature(myArtOPS) {
26507
26620
  var _myArtOPS$option$idmV, _myArtOPS$option$idmV2, _myArtOPS$option$idmV3, _myArtOPS$option$idmV4, _myArtOPS$option$idmV5;
26508
26621
  if (!this.article.parentHasSameOption(myArtOPS.optionCodex)) return;
26622
+ // The OPV key embeds the option codex as a prefix: "<optionCodex>_<connector>" (e.g. "1089_CT20").
26623
+ // Strip the codex AND the separator so the filter holds the bare connector codex ("CT20").
26624
+ var toConnectorCodex = function toConnectorCodex(key) {
26625
+ return key.startsWith(myArtOPS.optionCodex + '_') ? key.substring(myArtOPS.optionCodex.length + 1) : key;
26626
+ };
26509
26627
  if ([90, 1090].includes((_myArtOPS$option$idmV = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV !== void 0 ? _myArtOPS$option$idmV : 0)) {
26510
26628
  //R (Anschlusstyp R) - AVR
26511
- this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys;
26629
+ this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26512
26630
  }
26513
26631
  if ([89, 1089].includes((_myArtOPS$option$idmV2 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV2 !== void 0 ? _myArtOPS$option$idmV2 : 0)) {
26514
26632
  //L (Anschlusstyp L) - AVL
26515
- this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys;
26633
+ this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26516
26634
  }
26517
26635
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
26518
26636
  try {
@@ -26876,6 +26994,7 @@ var DivaArticle = /*#__PURE__*/function () {
26876
26994
  partlistDecisionNo: initParams.partlistDecisionNo,
26877
26995
  partListParentArticle: initParams.parentArticle,
26878
26996
  partlistArticleVisibleInTree: initParams.partlistArticleVisibleInTree,
26997
+ posInvisibility: initParams.posInvisibility,
26879
26998
  partlistArticleStandalone: initParams.partlistArticleStandalone,
26880
26999
  partlistGroupPrefix: initParams.partlistGroupPrefix,
26881
27000
  hasPartlistArticle: initParams.hasPartlistArticle ? initParams.hasPartlistArticle : false,
@@ -27028,6 +27147,11 @@ var DivaArticle = /*#__PURE__*/function () {
27028
27147
  get: function get() {
27029
27148
  return this.article.partlistArticleVisibleInTree && this.hasOptionsThatParentDoesNotHave;
27030
27149
  }
27150
+ }, {
27151
+ key: "posInvisibility",
27152
+ get: function get() {
27153
+ return this.article.posInvisibility;
27154
+ }
27031
27155
  }, {
27032
27156
  key: "partlistArticleStandalone",
27033
27157
  get: function get() {
@@ -27951,6 +28075,11 @@ var DivaArticle = /*#__PURE__*/function () {
27951
28075
  get: function get() {
27952
28076
  return this.catalogArticle.bundleRules;
27953
28077
  }
28078
+ }, {
28079
+ key: "addAsZKAT",
28080
+ get: function get() {
28081
+ return this.catalogArticle.addAsZKAT;
28082
+ }
27954
28083
  }, {
27955
28084
  key: "hasPartlistArticleVisibleInTree",
27956
28085
  get: function get() {
@@ -29555,7 +29684,7 @@ var DivaArticle = /*#__PURE__*/function () {
29555
29684
  break;
29556
29685
  }
29557
29686
  _context.next = 4;
29558
- return Promise.resolve().then(function () { return require('./ShelfPlanner-a5bc0cfa.js'); });
29687
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-a5f048ab.js'); });
29559
29688
  case 4:
29560
29689
  _yield$import = _context.sent;
29561
29690
  ShelfPlanner = _yield$import["default"];
@@ -29828,7 +29957,7 @@ var DivaArticle = /*#__PURE__*/function () {
29828
29957
  var opv;
29829
29958
  var opt;
29830
29959
  if (ops.val) {
29831
- var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3;
29960
+ var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3, _ops$val$properties;
29832
29961
  opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
29833
29962
  opv = (this.CatalogData.isIDMFormat ? 'OPV' + ((_ops$option$ocd2 = ops.option.ocd) !== null && _ops$option$ocd2 !== void 0 ? _ops$option$ocd2 : ops.optionCodex) + '_' : '') + ((_ops$val$ocd3 = ops.val.ocd) !== null && _ops$val$ocd3 !== void 0 ? _ops$val$ocd3 : ops.val.codex);
29834
29963
  if (this.CatalogData.isIDM3DCat && ops.val.vCodex) opv = 'OPV' + ops.idmVariantenArt + '_' + ops.val.vCodex;
@@ -29844,14 +29973,26 @@ var DivaArticle = /*#__PURE__*/function () {
29844
29973
  OPV: ops.freeText
29845
29974
  });
29846
29975
  }
29847
- if (ops.val.isTexture) {
29976
+ var divaDataEngineMat = (_ops$val$properties = ops.val.properties) === null || _ops$val$properties === void 0 ? void 0 : _ops$val$properties.find(function (prop) {
29977
+ return prop.Codex == "TEXTURENAME";
29978
+ });
29979
+ if (!ret.MAT) {
29980
+ ret.MAT = [];
29981
+ }
29982
+ if (divaDataEngineMat) {
29848
29983
  var _ops$val$name;
29849
- if (!ret.MAT) {
29850
- ret.MAT = [];
29851
- }
29852
29984
  ret.MAT.push({
29853
29985
  OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
29854
29986
  N: DivaUtils__default["default"].removeSpecialChars((_ops$val$name = ops.val.name) !== null && _ops$val$name !== void 0 ? _ops$val$name : ''),
29987
+ T: divaDataEngineMat.Name,
29988
+ M: divaDataEngineMat.Value
29989
+ });
29990
+ }
29991
+ if (ops.val.isTexture) {
29992
+ var _ops$val$name2;
29993
+ ret.MAT.push({
29994
+ OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
29995
+ N: DivaUtils__default["default"].removeSpecialChars((_ops$val$name2 = ops.val.name) !== null && _ops$val$name2 !== void 0 ? _ops$val$name2 : ''),
29855
29996
  T: ops.val.textureName,
29856
29997
  M: ops.val.material
29857
29998
  });
@@ -31341,6 +31482,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31341
31482
  supplierOrderCodex: doLoadItem.SupplierOrderCodex,
31342
31483
  initDecisions: doLoadItem.initDecisions,
31343
31484
  partlistArticleVisibleInTree: doLoadItem.PosInvisibility === 0,
31485
+ posInvisibility: doLoadItem.PosInvisibility,
31344
31486
  partlistArticleStandalone: doLoadItem.ConfigurationMode,
31345
31487
  partlistGroupPrefix: doLoadItem.partlistGroupPrefix,
31346
31488
  optionsForPrint: doLoadItem.optionsForPrint,
@@ -31723,6 +31865,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31723
31865
  ArticleCodex: article.articleCodex,
31724
31866
  ConfigArticleCodex: article.configArticleCodex,
31725
31867
  UseTypeNrAsArticleNrEKText: catalogData.useTypeNrAsArticleNrEKText,
31868
+ HideSubPosArticleCodexEKText: catalogData.hideSubPosArticleCodexEKText,
31726
31869
  TypeNr: article.typeNr,
31727
31870
  ArticleEAN: article.articleEAN,
31728
31871
  ArticleGUID: article.articleGUID,
@@ -31762,6 +31905,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31762
31905
  IsPlannerElement: article.hasCatalogPlannerArticle,
31763
31906
  HasPartlistArticle: article.hasPartlistArticle,
31764
31907
  PartlistArticleInvisibility: !article.partlistArticleVisibleInTree && !article.optionsForPrint && !article.partlistArticleStandalone,
31908
+ PosInvisibility: catalogData.addPosInvisibilityToOL ? article.posInvisibility : undefined,
31765
31909
  SendToSAP: article.sendToSap,
31766
31910
  ShelfPlandata: article.shelfPlanner ? DivaUtils__default["default"].encodeBasketJson((_article$shelfPlanner3 = (_article$shelfPlanner4 = article.shelfPlanner) === null || _article$shelfPlanner4 === void 0 ? void 0 : _article$shelfPlanner4.generateShelfPlandata()) !== null && _article$shelfPlanner3 !== void 0 ? _article$shelfPlanner3 : (_article$doorPlanner = article.doorPlanner) === null || _article$doorPlanner === void 0 ? void 0 : _article$doorPlanner.getMovedData(article.basketId)) : undefined,
31767
31911
  MetaData: !hasFavorites ? article.MetaData : undefined,
@@ -33289,7 +33433,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33289
33433
  }
33290
33434
  }, {
33291
33435
  key: "getSummaryItemsofArticle",
33292
- value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket) {
33436
+ value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket, parentArticle) {
33293
33437
  var _iterator2 = _createForOfIteratorHelper$7(article.articleOptionStates.values()),
33294
33438
  _step2;
33295
33439
  try {
@@ -33297,6 +33441,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33297
33441
  var ops = _step2.value;
33298
33442
  if (ops.visibleInSummary(article, summaryForBasket)) {
33299
33443
  var _set$configTree$getCo, _set$hiddenConfigTree;
33444
+ //for accessoires only render an option if it differs from the parent article's selection
33445
+ if (parentArticle) {
33446
+ var _parentOps$val, _ops$val;
33447
+ var parentOps = parentArticle.getArticleOptionState(ops.optionCodex);
33448
+ 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;
33449
+ }
33300
33450
  var tabGroupCodex = void 0;
33301
33451
  var tabGroupTitel = void 0;
33302
33452
  if (ops.optionTabGroup) {
@@ -33313,9 +33463,9 @@ var SummaryHandler = /*#__PURE__*/function () {
33313
33463
  var itemsInTabGroup = summaryTabItems[tabGroupCodex].summaryItems;
33314
33464
  var itemImage = ops.val.image ? set.CatalogData.getCatImageURL(ops.val.image, '') : undefined;
33315
33465
  if (configStep && itemsInTabGroup) {
33316
- var _ops$val, _this$getAdditionalPr;
33466
+ var _ops$val2, _this$getAdditionalPr;
33317
33467
  var sameOPVAndOPTDoAlreadyExist = false;
33318
- var configStepKeyToUse = configStep.key + ((_ops$val = ops.val) === null || _ops$val === void 0 ? void 0 : _ops$val.codex);
33468
+ var configStepKeyToUse = configStep.key + ((_ops$val2 = ops.val) === null || _ops$val2 === void 0 ? void 0 : _ops$val2.codex);
33319
33469
  var posNr = configStep === null || configStep === void 0 ? void 0 : configStep.posNr;
33320
33470
  if (configStep !== null && configStep !== void 0 && configStep.accessoireArticleCodex && article.relatedToBasketId) {
33321
33471
  var _set$configTree$getCo2, _set$configTree$getCo3, _set$hiddenConfigTree2;
@@ -33336,7 +33486,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33336
33486
  var rabatt = set.getCurrentDisountPercentage();
33337
33487
  var price = rabatt ? DivaUtils__default["default"].roundPrice(bruttoPrice * ((100 - rabatt) / 100), 1, 2) : bruttoPrice;
33338
33488
  if (!sameOPVAndOPTDoAlreadyExist) {
33339
- var _ops$val$contentItemI, _ops$val2, _ops$val3;
33489
+ var _ops$val$contentItemI, _ops$val3, _ops$val4;
33340
33490
  itemsInTabGroup[configStepKeyToUse] = {
33341
33491
  title: ops.optionName,
33342
33492
  title_locales: ops.optionName_locales,
@@ -33350,7 +33500,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33350
33500
  image: itemImage,
33351
33501
  isDefined: ops.isDefined,
33352
33502
  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,
33503
+ 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
33504
  optionContentItemId: ops.option.contentItemId,
33355
33505
  includesAllPosNrs: baseArticlesCount <= 1
33356
33506
  };
@@ -33404,7 +33554,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33404
33554
  } else {
33405
33555
  var _set$i18n$t2, _set$i18n2, _accessoire$catalogAr, _accessoire$catalogAr2, _accessoire$catalogAr3;
33406
33556
  var summaryItems = {};
33407
- this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket);
33557
+ this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket, article);
33408
33558
  this.addAccessoires([accessoire], summaryItems, set, articlesPosNrs, baseArticlesCount, summaryForBasket);
33409
33559
  tabGroup.summaryItems[entryKey] = {
33410
33560
  title: accessoire.name,
@@ -33681,14 +33831,26 @@ var SummaryHandler = /*#__PURE__*/function () {
33681
33831
  counter++;
33682
33832
  SummaryInfo.push(new basketModel.GroupsData(GroupDataInitParams));
33683
33833
  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);
33834
+ this.addSummaryItemToGroup(SummaryInfo[SummaryInfo.length - 1].Group, mySummaryObejct.summaryItems[jKey]);
33687
33835
  }
33688
33836
  }
33689
33837
  }
33690
33838
  return SummaryInfo;
33691
33839
  }
33840
+ }, {
33841
+ key: "addSummaryItemToGroup",
33842
+ value: function addSummaryItemToGroup(group, summaryItem) {
33843
+ //tab-group shells only structure the nested config; skip them so they don't become empty property lines
33844
+ if (!summaryItem.isTabGroup) {
33845
+ var _summaryItem$title_lo, _summaryItem$descript, _summaryItem$targetAr4;
33846
+ 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);
33847
+ }
33848
+
33849
+ //nested config (e.g. accessory option values like a custom color) is kept flat in the same group
33850
+ for (var _key7 in summaryItem.summaryItems) {
33851
+ this.addSummaryItemToGroup(group, summaryItem.summaryItems[_key7]);
33852
+ }
33853
+ }
33692
33854
  }, {
33693
33855
  key: "getSummaryType",
33694
33856
  value: function getSummaryType(set) {
@@ -33719,8 +33881,8 @@ var SummaryHandler = /*#__PURE__*/function () {
33719
33881
  }
33720
33882
  };
33721
33883
  }
33722
- for (var _key7 in elementGroups) {
33723
- var group = elementGroups[_key7];
33884
+ for (var _key8 in elementGroups) {
33885
+ var group = elementGroups[_key8];
33724
33886
  ret.push({
33725
33887
  items: this.buildSummaryItems(this.getArticlesPosNr(group.articles), set, summaryForBasket),
33726
33888
  price: this.getArticlesPrice(group.articles),
@@ -33737,10 +33899,10 @@ var SummaryHandler = /*#__PURE__*/function () {
33737
33899
  var groupedArticles = setHandlerInstance.getDockedGroupedArticles(set);
33738
33900
  var retGroups = {};
33739
33901
  var articlesCodexesOnIndex = {};
33740
- for (var _key8 in groupedArticles) {
33741
- var basketId = groupedArticles[_key8][Object.keys(groupedArticles[_key8])[0]].basketId;
33902
+ for (var _key9 in groupedArticles) {
33903
+ var basketId = groupedArticles[_key9][Object.keys(groupedArticles[_key9])[0]].basketId;
33742
33904
  retGroups[basketId] = {
33743
- articles: groupedArticles[_key8],
33905
+ articles: groupedArticles[_key9],
33744
33906
  quantity: 1
33745
33907
  };
33746
33908
  }
@@ -33755,12 +33917,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33755
33917
  articlesCodexesOnIndex[articleCodex].push(i);
33756
33918
  }
33757
33919
  }
33758
- for (var _key9 in articlesCodexesOnIndex) {
33759
- if (articlesCodexesOnIndex[_key9].length > 1) {
33920
+ for (var _key10 in articlesCodexesOnIndex) {
33921
+ if (articlesCodexesOnIndex[_key10].length > 1) {
33760
33922
  //group the single groups by the aricleCodex
33761
33923
  var articles = [];
33762
- for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key9].length; _i4++) {
33763
- var _group = groupedArticles[articlesCodexesOnIndex[_key9][_i4]];
33924
+ for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key10].length; _i4++) {
33925
+ var _group = groupedArticles[articlesCodexesOnIndex[_key10][_i4]];
33764
33926
  articles.push({
33765
33927
  article: _group[Object.keys(_group)[0]]
33766
33928
  });
@@ -33805,11 +33967,11 @@ var SummaryHandler = /*#__PURE__*/function () {
33805
33967
  var isIDM = article.CatalogData.isIDMFormat;
33806
33968
  var tabGroups = [];
33807
33969
  for (var basketId in article.partlistArticles) {
33808
- var _ops$val4;
33970
+ var _ops$val5;
33809
33971
  var partlistArticle = article.partlistArticles[basketId];
33810
33972
  if (!partlistArticle.tabGroup) continue;
33811
33973
  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) {
33974
+ 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
33975
  tabGroups.push({
33814
33976
  optionCodex: ops.optionCodex,
33815
33977
  tabGroup: ops.optionTabGroup
@@ -34045,8 +34207,8 @@ var SummaryHandler = /*#__PURE__*/function () {
34045
34207
  key: "getArticlesPrice",
34046
34208
  value: function getArticlesPrice(articles) {
34047
34209
  var price = 0;
34048
- for (var _key10 in articles) {
34049
- price = price + articles[_key10].price * articles[_key10].quantity;
34210
+ for (var _key11 in articles) {
34211
+ price = price + articles[_key11].price * articles[_key11].quantity;
34050
34212
  }
34051
34213
  return price;
34052
34214
  }
@@ -35198,8 +35360,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35198
35360
  }
35199
35361
  var configInAccessoire = set.configAccessoiresInAccessoireStep;
35200
35362
  var configInAccessoireAndTree = set.CatalogData.configAccessoires && !article.isShelfAccessoire;
35363
+ var isRelatedAccessoire = !!article.relatedToBasketId && !(article.isPartListArticle && article.partlistArticleVisibleInTree);
35201
35364
  //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)) {
35365
+ if (configInAccessoire && isRelatedAccessoire) {
35203
35366
  if (configInAccessoireAndTree) {
35204
35367
  //remember old configStepKey to push basketId to its targetArticles anyways
35205
35368
  mainConfigStepKey = configStepKey;
@@ -35208,7 +35371,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35208
35371
  }
35209
35372
  var plaBasketIds = Object.keys(articles[basketId].getRecursivePartlistArticles(true, true));
35210
35373
  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;
35374
+ var isAccessoire = isRelatedAccessoire ? article.articleCodex : false;
35212
35375
  if (!configTree.getTabGroupByCodex(tabGroupCodex)) {
35213
35376
  var newTabGroup = this.createTabGroup(tabGroupCodex, tabGroupTitel, 'OPTION', configTree);
35214
35377
  configTree.addTabGroup(tabGroupCodex, newTabGroup);
@@ -37559,7 +37722,7 @@ var DivaSet = /*#__PURE__*/function () {
37559
37722
  break;
37560
37723
  }
37561
37724
  _context5.next = 3;
37562
- return Promise.resolve().then(function () { return require('./DoorPlanner-eddb88e7.js'); });
37725
+ return Promise.resolve().then(function () { return require('./DoorPlanner-2e9cb21a.js'); });
37563
37726
  case 3:
37564
37727
  _yield$import = _context5.sent;
37565
37728
  DoorPlanner = _yield$import["default"];
@@ -43033,7 +43196,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43033
43196
  break;
43034
43197
  case 3:
43035
43198
  _context12.next = 5;
43036
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-5cb6da74.js'); });
43199
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-dca9568e.js'); });
43037
43200
  case 5:
43038
43201
  _yield$import = _context12.sent;
43039
43202
  PfisterWWSHandler = _yield$import["default"];
@@ -43041,7 +43204,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43041
43204
  return _context12.abrupt("break", 27);
43042
43205
  case 9:
43043
43206
  _context12.next = 11;
43044
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-3b54678e.js'); });
43207
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-e34f28e5.js'); });
43045
43208
  case 11:
43046
43209
  _yield$import2 = _context12.sent;
43047
43210
  LiviqueWWSHandler = _yield$import2["default"];
@@ -43049,7 +43212,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43049
43212
  return _context12.abrupt("break", 27);
43050
43213
  case 15:
43051
43214
  _context12.next = 17;
43052
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-76e316d8.js'); });
43215
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-2a2b0619.js'); });
43053
43216
  case 17:
43054
43217
  _yield$import3 = _context12.sent;
43055
43218
  SeriousWWSHandler = _yield$import3["default"];
@@ -43057,7 +43220,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43057
43220
  return _context12.abrupt("break", 27);
43058
43221
  case 21:
43059
43222
  _context12.next = 23;
43060
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-5a417412.js'); });
43223
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-53dfc489.js'); });
43061
43224
  case 23:
43062
43225
  _yield$import4 = _context12.sent;
43063
43226
  StandardWWSHandler = _yield$import4["default"];
@@ -44481,7 +44644,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
44481
44644
  while (1) switch (_context3.prev = _context3.next) {
44482
44645
  case 0:
44483
44646
  _context3.next = 2;
44484
- return Promise.resolve().then(function () { return require('./Host3DSignalR-729b5af1.js'); });
44647
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-6953216e.js'); });
44485
44648
  case 2:
44486
44649
  _yield$import = _context3.sent;
44487
44650
  Host3DSignalR = _yield$import["default"];
@@ -46167,7 +46330,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46167
46330
  break;
46168
46331
  case 8:
46169
46332
  _context5.next = 10;
46170
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-59aa2171.js'); });
46333
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-37829cfc.js'); });
46171
46334
  case 10:
46172
46335
  _yield$import = _context5.sent;
46173
46336
  DivaStandardPlanner = _yield$import["default"];
@@ -46178,7 +46341,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46178
46341
  return _context5.abrupt("break", 21);
46179
46342
  case 15:
46180
46343
  _context5.next = 17;
46181
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-918c1acc.js'); });
46344
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-9025b5cc.js'); });
46182
46345
  case 17:
46183
46346
  _yield$import2 = _context5.sent;
46184
46347
  DivaBoxPlanner = _yield$import2["default"];
@@ -48141,12 +48304,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
48141
48304
  case 12:
48142
48305
  loadSuccessful = _context14.sent;
48143
48306
  if (this.plannerConfig.configuratorSessionId) {
48144
- //force new configurator session id - Landingpage case
48307
+ // ID forced from outside (Landingpage, PDP, Planung-ändern)
48145
48308
  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).
48309
+ } else if (cache !== undefined) {
48310
+ // Re-init with cache (Variant Select): keep existing session stable
48149
48311
  DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId(undefined, true);
48312
+ } else {
48313
+ // Fresh start (new catalog, archive basket, etc.): always new UUID
48314
+ DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId();
48150
48315
  }
48151
48316
  if (!loadSuccessful) {
48152
48317
  _context14.next = 31;