@crystaldesign/web-planner-logic 26.8.0-beta.6 → 26.8.0-beta.61

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 (67) hide show
  1. package/build/cjs/{DivaBoxPlanner-2e2137f1.js → DivaBoxPlanner-fc71667b.js} +29 -31
  2. package/build/cjs/{DivaStandardPlanner-f389ef1a.js → DivaStandardPlanner-732f9d86.js} +3 -3
  3. package/build/cjs/{DoorPlanner-fa73b631.js → DoorPlanner-e8e8ec7c.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-b0567441.js → Host3DSignalR-b148cbae.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-7d16f2f9.js → LiviqueWWSHandler-bf59df95.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-5ebc0e14.js → PfisterWWSHandler-d566562f.js} +10 -1
  7. package/build/cjs/{PlannerHandler2D-cab186f5.js → PlannerHandler2D-5f39e0af.js} +24 -9
  8. package/build/cjs/{SeriousBasketHandler-7563aaa9.js → SeriousBasketHandler-e037310e.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-acc07376.js → ShelfPlanner-2694fa00.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-abd363ef.js → StandardWWSHandler-07940a73.js} +1 -1
  11. package/build/cjs/{index-3891c460.js → index-98d1cddd.js} +408 -253
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-9b70334c.js → DivaBoxPlanner-8b5206ab.js} +29 -31
  14. package/build/esm/{DivaStandardPlanner-6d3690b8.js → DivaStandardPlanner-63ce6a04.js} +3 -3
  15. package/build/esm/{DoorPlanner-81a93a41.js → DoorPlanner-7e0146b3.js} +1 -1
  16. package/build/esm/{Host3DSignalR-adc38975.js → Host3DSignalR-69df2c2d.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-1bba645a.js → LiviqueWWSHandler-7e2fdbd9.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-f5d757ea.js → PfisterWWSHandler-1abd4f92.js} +10 -1
  19. package/build/esm/{PlannerHandler2D-5524f621.js → PlannerHandler2D-919ad010.js} +24 -9
  20. package/build/esm/{SeriousBasketHandler-ec11fc25.js → SeriousBasketHandler-d91fa4df.js} +1 -1
  21. package/build/esm/{ShelfPlanner-3e4a62e1.js → ShelfPlanner-a0bdd125.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-4a01f807.js → StandardWWSHandler-370bce91.js} +1 -1
  23. package/build/esm/{index-cb39833e.js → index-213f70af.js} +408 -253
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +1 -1
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/API/Checkout.d.ts +10 -2
  28. package/build/types/web-planner-logic/src/interface/API/Checkout.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +1 -0
  30. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +1 -0
  32. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +4 -0
  34. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -0
  36. package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +1 -0
  38. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/interface/IDM/Feature.d.ts +4 -0
  40. package/build/types/web-planner-logic/src/interface/IDM/Feature.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +2 -0
  42. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/logic/Basket/PfisterWWSHandler.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +13 -0
  49. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  52. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +1 -0
  53. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  54. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  55. package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
  56. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  57. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  58. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  59. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +12 -0
  60. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  61. package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
  62. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  63. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +1 -0
  64. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
  65. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts +1 -0
  66. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
  67. 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:
@@ -19749,7 +19855,7 @@ function _loadMoreFromIDMArticles() {
19749
19855
  catalogArticleData = catalogArticleDatas[_i6];
19750
19856
  catalogArticleData.articleIDMDecisions = sortDecisions(set.CatalogData.getDecisionsByNo(_toConsumableArray__default["default"](new Set([].concat(_toConsumableArray__default["default"](set.CatalogData.globalDecisions.map(function (g) {
19751
19857
  return g.decisionNo;
19752
- })), _toConsumableArray__default["default"]((_catalogArticleData$d2 = catalogArticleData.decisionsRefs) !== null && _catalogArticleData$d2 !== void 0 ? _catalogArticleData$d2 : []))))));
19858
+ })), _toConsumableArray__default["default"](set.CatalogData.serieDecisionRefs), _toConsumableArray__default["default"]((_catalogArticleData$d2 = catalogArticleData.decisionsRefs) !== null && _catalogArticleData$d2 !== void 0 ? _catalogArticleData$d2 : []))))));
19753
19859
  }
19754
19860
  featureClasses.map(function (fc) {
19755
19861
  return set.CatalogData.loadedFeatureClasses.push(fc);
@@ -19918,7 +20024,7 @@ var getToLoadDecisionIds = function getToLoadDecisionIds(catalogArticleDatas, se
19918
20024
  }
19919
20025
  var neededDecisionsIds = _toConsumableArray__default["default"](new Set([].concat(_toConsumableArray__default["default"](set.CatalogData.globalDecisions.map(function (g) {
19920
20026
  return g.decisionNo;
19921
- })), _toConsumableArray__default["default"](allArticleDecisions))));
20027
+ })), _toConsumableArray__default["default"](set.CatalogData.serieDecisionRefs), _toConsumableArray__default["default"](allArticleDecisions))));
19922
20028
  var toLoadDecisionIds = [];
19923
20029
  for (var _i = 0; _i < neededDecisionsIds.length; _i++) {
19924
20030
  var found = set.CatalogData.getDecisionByNo(neededDecisionsIds[_i]);
@@ -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,20 +20359,12 @@ 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; }
20279
20365
  var LOG$k = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
20280
20366
  function initIDMCatalogData(serie, orderSet, api) {
20281
- var _serie$decisions, _serie$decisions2;
20367
+ var _serie$decisions, _serie$decisions2, _serie$decisionRefs;
20282
20368
  var catalog = serie.catalogData;
20283
20369
  var catalogData = {
20284
20370
  accountGuid: orderSet.AccountGUID,
@@ -20304,6 +20390,7 @@ function initIDMCatalogData(serie, orderSet, api) {
20304
20390
  loadedDecisions: _toConsumableArray__default["default"](((_serie$decisions2 = serie.decisions) !== null && _serie$decisions2 !== void 0 ? _serie$decisions2 : []).map(function (d) {
20305
20391
  return initializeDecision(d, catalog.optionGroups);
20306
20392
  })),
20393
+ serieDecisionRefs: (_serie$decisionRefs = serie.decisionRefs) !== null && _serie$decisionRefs !== void 0 ? _serie$decisionRefs : [],
20307
20394
  //TODO zu klären mit Philipp
20308
20395
  //brandName: '',
20309
20396
  //additionalCatalogPrice: json.AdditionalCatalogPrice,
@@ -20343,9 +20430,12 @@ function initIDMArticles(jsonItems, catalogData) {
20343
20430
  }
20344
20431
  }
20345
20432
  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;
20433
+ 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
20434
  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
20435
  var lang = catalogData.api.getLanguageLowercase();
20436
+ // empty locale objects ({} or only empty strings) are truthy, so ?? alone doesn't fall back
20437
+ var fullText = hasLocaleText(article.fullText) ? article.fullText : article.shortText;
20438
+ var shortText = hasLocaleText(article.shortText) ? article.shortText : article.fullText;
20349
20439
  var featureProperties = convertProperties(article.properties, lang, 'featureNos');
20350
20440
  var optionProperties = convertProperties(article.properties, lang, 'optionKeys');
20351
20441
  return {
@@ -20368,14 +20458,14 @@ function getCatalogArticle(article, catalogData) {
20368
20458
  hasArticleRelations: false,
20369
20459
  hasPartlistArticle: !!article.partListRef,
20370
20460
  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,
20461
+ 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),
20462
+ longDescription: DivaUtils__default["default"].getLocals(fullText, lang),
20463
+ longDescription_locales: fullText,
20374
20464
  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,
20465
+ origName: DivaUtils__default["default"].getLocals(fullText, lang),
20466
+ shortName: DivaUtils__default["default"].getLocals(shortText, lang),
20467
+ origShortName: DivaUtils__default["default"].getLocals(shortText, lang),
20468
+ shortName_locales: shortText,
20379
20469
  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
20470
  optionProperties: optionProperties,
20381
20471
  featureProperties: featureProperties,
@@ -20435,6 +20525,11 @@ function getCatalogArticle(article, catalogData) {
20435
20525
  modelName3D: jsonArticle.ModelName3D && jsonArticle.ModelName3D != '' ? jsonArticle.ModelName3D : undefined,
20436
20526
  */
20437
20527
 
20528
+ function hasLocaleText(locales) {
20529
+ return !!locales && Object.values(locales).some(function (v) {
20530
+ return !!(v !== null && v !== void 0 && v.trim());
20531
+ });
20532
+ }
20438
20533
  function getLowResUrl(url) {
20439
20534
  return url === null || url === void 0 ? void 0 : url.replace('.jpg', '_low.jpg').replace('.jpeg', '_low.jpeg').replace('.png', '_low.png');
20440
20535
  }
@@ -20675,6 +20770,8 @@ var DivaCatalogData = /*#__PURE__*/function () {
20675
20770
  //
20676
20771
  ignoreLayerAVNAVS: false,
20677
20772
  //
20773
+ ignoreDockingNumber: false,
20774
+ // ignoriert die Nummern-Regel beim Andocken (z.B. AVU1 darf an AVO2). Die Nummer dient dann nur der Identifikation, nicht als Zuordnungsschlüssel.
20678
20775
  checkCollisionForDifferentLayers: [],
20679
20776
  //
20680
20777
 
@@ -20727,6 +20824,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
20727
20824
  // ergänzt einen Übersetzbaren string am Ende des Names
20728
20825
  dontShowAccStep: false,
20729
20826
  useTypeNrAsArticleNrEKText: false,
20827
+ hideSubPosArticleCodexEKText: false,
20828
+ addPosInvisibilityToOL: false,
20829
+ // PosInvisibility wird nur in die Orderlines übernommen wenn der MetaTag ADD_POS_INVISIBILITY_TO_OL == 1 ist
20730
20830
  addNewLineBeforRuleDesc: false,
20731
20831
  // für Kirchner neue zeile im Checkout vor der Klanner und der RuleCes von den Partlistarticles
20732
20832
  useEdoArticlesOnOpvs: [],
@@ -20974,6 +21074,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
20974
21074
  get: function get() {
20975
21075
  return this.catalogData.globalDecisions;
20976
21076
  }
21077
+ }, {
21078
+ key: "serieDecisionRefs",
21079
+ get: function get() {
21080
+ var _this$catalogData$ser;
21081
+ return (_this$catalogData$ser = this.catalogData.serieDecisionRefs) !== null && _this$catalogData$ser !== void 0 ? _this$catalogData$ser : [];
21082
+ }
20977
21083
  }, {
20978
21084
  key: "loadedFeatureClasses",
20979
21085
  get: function get() {
@@ -21220,6 +21326,24 @@ var DivaCatalogData = /*#__PURE__*/function () {
21220
21326
  return _ret;
21221
21327
  }
21222
21328
  }
21329
+
21330
+ /**
21331
+ * Default dock filter applied when nothing is selected (e.g. after a deselect or when adding a new element).
21332
+ * When completeness warnings are hidden, any element may start a planning, so every dock type the catalog
21333
+ * actually has is shown. Otherwise the catalog's configured start filter (startFilterParams / available
21334
+ * start types) is used.
21335
+ */
21336
+ }, {
21337
+ key: "defaultDockFilter",
21338
+ get: function get() {
21339
+ if (this.doHideCompletenessWarning) {
21340
+ var filterType = this.plannerPaletteViewInfo.filterType;
21341
+ return Object.keys(filterType).filter(function (key) {
21342
+ return filterType[key];
21343
+ });
21344
+ }
21345
+ return this.getStartFilter;
21346
+ }
21223
21347
  }, {
21224
21348
  key: "dontHideOption",
21225
21349
  get: function get() {
@@ -21418,6 +21542,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21418
21542
  get: function get() {
21419
21543
  return this.catalogProps.useTypeNrAsArticleNrEKText;
21420
21544
  }
21545
+ }, {
21546
+ key: "hideSubPosArticleCodexEKText",
21547
+ get: function get() {
21548
+ return this.catalogProps.hideSubPosArticleCodexEKText;
21549
+ }
21421
21550
  }, {
21422
21551
  key: "hasAlternateRenderings",
21423
21552
  get: function get() {
@@ -21700,6 +21829,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21700
21829
  get: function get() {
21701
21830
  return this.catalogProps.dontShowAccStep;
21702
21831
  }
21832
+ }, {
21833
+ key: "addPosInvisibilityToOL",
21834
+ get: function get() {
21835
+ return this.catalogProps.addPosInvisibilityToOL;
21836
+ }
21703
21837
 
21704
21838
  //Planner configurations
21705
21839
  }, {
@@ -21709,6 +21843,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
21709
21843
  ignoreLayerAVC: this.catalogProps.ignoreLayerAVC,
21710
21844
  ignoreLayerAVOAVU: this.catalogProps.ignoreLayerAVOAVU,
21711
21845
  ignoreLayerAVNAVS: this.catalogProps.ignoreLayerAVNAVS,
21846
+ ignoreDockingNumber: this.catalogProps.ignoreDockingNumber,
21712
21847
  showAccOnDpOnly: this.catalogProps.showAccOnDpOnly,
21713
21848
  dockAccOnAvoOnly: this.catalogProps.dockAccOnAvoOnly,
21714
21849
  hideAccessoriesInPlanner: this.catalogProps.accessorieStepAsPlanner,
@@ -21868,6 +22003,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
21868
22003
  case 'IGNORELAYERAVNAVS':
21869
22004
  _this4.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
21870
22005
  break;
22006
+ case 'IGNOREDOCKINGNUMBER':
22007
+ _this4.catalogProps.ignoreDockingNumber = item.Value == '1';
22008
+ break;
21871
22009
  case 'CHECK_COLLISION_DIFFERENT_LAYERS':
21872
22010
  _this4.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
21873
22011
  return parseInt(t);
@@ -21986,6 +22124,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
21986
22124
  case 'USE_TYPENR_AS_ARTICLENR_EKTEXT':
21987
22125
  _this4.catalogProps.useTypeNrAsArticleNrEKText = '1' == item.Value;
21988
22126
  break;
22127
+ case 'HIDE_SUBPOS_ARTICLECODEX_EKTEXT':
22128
+ _this4.catalogProps.hideSubPosArticleCodexEKText = '1' == item.Value;
22129
+ break;
22130
+ case 'ADD_POS_INVISIBILITY_TO_OL':
22131
+ _this4.catalogProps.addPosInvisibilityToOL = '1' == item.Value;
22132
+ break;
21989
22133
  case 'ADD_NEW_LINE_BEFOR_RULEDESC':
21990
22134
  _this4.catalogProps.addNewLineBeforRuleDesc = '1' == item.Value;
21991
22135
  break;
@@ -22324,11 +22468,12 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22324
22468
  key: "loadDivaCatalog",
22325
22469
  value: function () {
22326
22470
  var _loadDivaCatalog = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(state, catalogCodex, orderSet) {
22471
+ var _orderSet$OrderLines;
22327
22472
  var promises, _yield$Promise$all, _yield$Promise$all2, catalogApiData, catalogArticleListData, catalogArticlePlannerListData, additionalModelInfos, mask, _state$catalogMask, catalogData;
22328
22473
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
22329
22474
  while (1) switch (_context2.prev = _context2.next) {
22330
22475
  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) {
22476
+ 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
22477
  var _ol$VariantBasketData;
22333
22478
  return ((_ol$VariantBasketData = ol.VariantBasketDatas) === null || _ol$VariantBasketData === void 0 ? void 0 : _ol$VariantBasketData.length) && ol.ArticleType === 'OPTIONTREE';
22334
22479
  }).map(function (os) {
@@ -22359,7 +22504,8 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22359
22504
  break;
22360
22505
  }
22361
22506
  _context2.next = 16;
22362
- return state.api.getDataCache(state.api.getCatalogMaskQS(catalogApiData.GUID, state.api.OrganizationId), undefined, undefined, 'enricher');
22507
+ 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
22508
+ );
22363
22509
  case 16:
22364
22510
  mask = _context2.sent;
22365
22511
  case 17:
@@ -23534,45 +23680,19 @@ var DivaEngine = /*#__PURE__*/function () {
23534
23680
  value: function updateIDMSpecificFeature(ops) {
23535
23681
  var _ops$option$idmVarian, _ops$option$idmVarian2, _ops$option$idmVarian3, _ops$option$idmVarian4, _ops$option$idmVarian5;
23536
23682
  if (!this.article.parentHasSameOption(ops.optionCodex)) return;
23683
+ // The OPV codex embeds the option codex as a prefix: "OPV<body>_<connector>" (e.g. "OPV1090_CT500"),
23684
+ // while ops.optionCodex is "OPT<body>". Strip that prefix so the filter holds the bare connector codex.
23685
+ var toConnectorCodex = function toConnectorCodex(value) {
23686
+ var prefix = 'OPV' + ops.optionCodex.substring(3) + '_';
23687
+ return value.codex.startsWith(prefix) ? value.codex.substring(prefix.length) : value.codex;
23688
+ };
23537
23689
  if ([90, 1090].includes((_ops$option$idmVarian = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian !== void 0 ? _ops$option$idmVarian : 0)) {
23538
23690
  //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;
23691
+ this.article.newPossibleAVRFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23556
23692
  }
23557
23693
  if ([89, 1089].includes((_ops$option$idmVarian2 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian2 !== void 0 ? _ops$option$idmVarian2 : 0)) {
23558
23694
  //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;
23695
+ this.article.newPossibleAVLFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23576
23696
  }
23577
23697
  //beim article abspeichern. Das Planungselement kann es sich per Funktion von dort dann holen
23578
23698
  if ([97, 1097].includes((_ops$option$idmVarian3 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian3 !== void 0 ? _ops$option$idmVarian3 : 0)) {
@@ -23801,18 +23921,18 @@ var DivaEngine = /*#__PURE__*/function () {
23801
23921
  myDecisions[_i].disableHistory = [];
23802
23922
  myDecisions[_i].activeCombination = undefined;
23803
23923
  }
23804
- var _iterator7 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23805
- _step7;
23924
+ var _iterator5 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23925
+ _step5;
23806
23926
  try {
23807
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
23808
- var ops = _step7.value;
23927
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23928
+ var ops = _step5.value;
23809
23929
  ops.updateVisibleOptionValues(ops.option.articleOptionValues);
23810
23930
  ops.definedBySetFeatureFixed = false;
23811
23931
  }
23812
23932
  } catch (err) {
23813
- _iterator7.e(err);
23933
+ _iterator5.e(err);
23814
23934
  } finally {
23815
- _iterator7.f();
23935
+ _iterator5.f();
23816
23936
  }
23817
23937
  this.catalogDecisionsByNumber = new Map(this.article.catalogArticle.articleDecisions.map(function (d) {
23818
23938
  return [d.Number, d];
@@ -23943,11 +24063,11 @@ var DivaEngine = /*#__PURE__*/function () {
23943
24063
  key: "updateIDMSpecificFeatures",
23944
24064
  value: function updateIDMSpecificFeatures() {
23945
24065
  //updaten idm planner specific options
23946
- var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23947
- _step8;
24066
+ var _iterator6 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24067
+ _step6;
23948
24068
  try {
23949
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
23950
- var ops = _step8.value;
24069
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
24070
+ var ops = _step6.value;
23951
24071
  //when an option has no decisions the first visible optionValue has to be selected per default
23952
24072
  if (ops.val === undefined && ops.visibleCount && !this.article.CatalogData.useDiomexConfigLogic) {
23953
24073
  this.assignOptionValue(ops.optionCodex, ops.visibleOPVKeys[0]);
@@ -23968,9 +24088,9 @@ var DivaEngine = /*#__PURE__*/function () {
23968
24088
  }
23969
24089
  }
23970
24090
  } catch (err) {
23971
- _iterator8.e(err);
24091
+ _iterator6.e(err);
23972
24092
  } finally {
23973
- _iterator8.f();
24093
+ _iterator6.f();
23974
24094
  }
23975
24095
  }
23976
24096
  }, {
@@ -24204,21 +24324,21 @@ var DivaEngine = /*#__PURE__*/function () {
24204
24324
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
24205
24325
  return v.slice(1);
24206
24326
  })); // remove the '!' from the value
24207
- var _iterator9 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24208
- _step9;
24327
+ var _iterator7 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24328
+ _step7;
24209
24329
  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];
24330
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
24331
+ var _step7$value = _slicedToArray__default["default"](_step7.value, 2),
24332
+ opvKey = _step7$value[0],
24333
+ _opv = _step7$value[1];
24214
24334
  if (!negatedValues.has(opvKey)) {
24215
24335
  validOPVs[OPT].set(opvKey, _opv);
24216
24336
  }
24217
24337
  }
24218
24338
  } catch (err) {
24219
- _iterator9.e(err);
24339
+ _iterator7.e(err);
24220
24340
  } finally {
24221
- _iterator9.f();
24341
+ _iterator7.f();
24222
24342
  }
24223
24343
  } else {
24224
24344
  validOPVs[OPT] = new Map(ops.visibleOptionValues);
@@ -24346,11 +24466,11 @@ var DivaEngine = /*#__PURE__*/function () {
24346
24466
  }, {
24347
24467
  key: "evalShowOnlyWhenHasPrice",
24348
24468
  value: function evalShowOnlyWhenHasPrice() {
24349
- var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24350
- _step10;
24469
+ var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24470
+ _step8;
24351
24471
  try {
24352
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
24353
- var ops = _step10.value;
24472
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
24473
+ var ops = _step8.value;
24354
24474
  for (var jKey in ops.visibleOptionValues) {
24355
24475
  var opv = ops.visibleOptionValues.get(jKey);
24356
24476
  if (opv.showOnlyWhenHasPrice && opv.price == 0) {
@@ -24362,9 +24482,9 @@ var DivaEngine = /*#__PURE__*/function () {
24362
24482
  }
24363
24483
  }
24364
24484
  } catch (err) {
24365
- _iterator10.e(err);
24485
+ _iterator8.e(err);
24366
24486
  } finally {
24367
- _iterator10.f();
24487
+ _iterator8.f();
24368
24488
  }
24369
24489
  }
24370
24490
 
@@ -24838,12 +24958,12 @@ var DivaEngine = /*#__PURE__*/function () {
24838
24958
  }
24839
24959
 
24840
24960
  //mengen und größenabhängige Preisberechungn.
24841
- var _iterator11 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24842
- _step11;
24961
+ var _iterator9 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24962
+ _step9;
24843
24963
  try {
24844
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
24964
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24845
24965
  var _ops$addToMeasure;
24846
- var ops = _step11.value;
24966
+ var ops = _step9.value;
24847
24967
  var OP = ops.optionCodex;
24848
24968
  var mUnit = ops.measureUnit;
24849
24969
  var pUnit = ops.priceUnit;
@@ -24926,15 +25046,15 @@ var DivaEngine = /*#__PURE__*/function () {
24926
25046
  }
24927
25047
  //jetzt nochmal prozentuelle Preise mit TargetOption berechnen
24928
25048
  } catch (err) {
24929
- _iterator11.e(err);
25049
+ _iterator9.e(err);
24930
25050
  } finally {
24931
- _iterator11.f();
25051
+ _iterator9.f();
24932
25052
  }
24933
- var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24934
- _step12;
25053
+ var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25054
+ _step10;
24935
25055
  try {
24936
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
24937
- var _ops4 = _step12.value;
25056
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
25057
+ var _ops4 = _step10.value;
24938
25058
  var targetPPGPrefixes = _ops4.targetPPGPrefixes;
24939
25059
  if (!targetPPGPrefixes) continue;
24940
25060
  var _loop7 = function _loop7() {
@@ -24954,9 +25074,9 @@ var DivaEngine = /*#__PURE__*/function () {
24954
25074
  }
24955
25075
  }
24956
25076
  } catch (err) {
24957
- _iterator12.e(err);
25077
+ _iterator10.e(err);
24958
25078
  } finally {
24959
- _iterator12.f();
25079
+ _iterator10.f();
24960
25080
  }
24961
25081
  for (var _i5 = 0; _i5 < this.article.priceRefs.length; _i5++) {
24962
25082
  var basePriceRef = this.article.priceRefs[_i5];
@@ -24968,19 +25088,19 @@ var DivaEngine = /*#__PURE__*/function () {
24968
25088
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
24969
25089
  });
24970
25090
  if (!priceRef) {
24971
- var _iterator13 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
24972
- _step13;
25091
+ var _iterator11 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
25092
+ _step11;
24973
25093
  try {
24974
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
24975
- var ops = _step13.value;
25094
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
25095
+ var ops = _step11.value;
24976
25096
  if (ops.ppg && ops.ppg.split('_')[0] == targetPrefix) {
24977
25097
  myArtOpv = ops;
24978
25098
  }
24979
25099
  }
24980
25100
  } catch (err) {
24981
- _iterator13.e(err);
25101
+ _iterator11.e(err);
24982
25102
  } finally {
24983
- _iterator13.f();
25103
+ _iterator11.f();
24984
25104
  }
24985
25105
  }
24986
25106
 
@@ -25006,36 +25126,36 @@ var DivaEngine = /*#__PURE__*/function () {
25006
25126
  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
25127
  }
25008
25128
  var articleUsedCalcPrice = myArticleBasePrice;
25009
- var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25010
- _step14;
25129
+ var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25130
+ _step12;
25011
25131
  try {
25012
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25013
- var tmpOps = _step14.value;
25132
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
25133
+ var tmpOps = _step12.value;
25014
25134
  articleUsedCalcPrice = this.getOptionPrice(articleUsedCalcPrice, tmpOps.option, digits);
25015
25135
  }
25016
25136
 
25017
25137
  //jetzt nochmal prozentuelle Preise mit GLOBAL tarbetoption berechnen
25018
25138
  /* TODO ABklären mit Franz - ops hat nie die Optionen - targetPPGPrefixes - ich glaube hier sollte article.priceRefs durchlaufen werden. */
25019
25139
  } catch (err) {
25020
- _iterator14.e(err);
25140
+ _iterator12.e(err);
25021
25141
  } finally {
25022
- _iterator14.f();
25142
+ _iterator12.f();
25023
25143
  }
25024
- var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25025
- _step15;
25144
+ var _iterator13 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25145
+ _step13;
25026
25146
  try {
25027
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25147
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
25028
25148
  var _ops5$targetPPGPrefix, _ops5$targetPPGPrefix2;
25029
- var _ops5 = _step15.value;
25149
+ var _ops5 = _step13.value;
25030
25150
  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
25151
  if (_ops5.isPercentage && targetOption == 'GLOBAL') {
25032
25152
  articleUsedCalcPrice = articleUsedCalcPrice * (1 + _ops5.calcPrice);
25033
25153
  }
25034
25154
  }
25035
25155
  } catch (err) {
25036
- _iterator15.e(err);
25156
+ _iterator13.e(err);
25037
25157
  } finally {
25038
- _iterator15.f();
25158
+ _iterator13.f();
25039
25159
  }
25040
25160
  for (var _i7 = 0; _i7 < this.article.priceRefs.length; _i7++) {
25041
25161
  var _priceRef = this.article.priceRefs[_i7];
@@ -25177,11 +25297,11 @@ var DivaEngine = /*#__PURE__*/function () {
25177
25297
  if (a[i].trim() != '') {
25178
25298
  var searchOpt = 'OPT' + a[i].trim();
25179
25299
  //Optionsbaum des Artikels durchsuchen
25180
- var _iterator16 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25181
- _step16;
25300
+ var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25301
+ _step14;
25182
25302
  try {
25183
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25184
- var _ops6 = _step16.value;
25303
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25304
+ var _ops6 = _step14.value;
25185
25305
  if (_ops6.ocd == searchOpt || _ops6.optionCodex == searchOpt) {
25186
25306
  if (_ops6 && _ops6.price > 0) {
25187
25307
  myPercBasePrice += _ops6.price * _ops6.quantity;
@@ -25190,9 +25310,9 @@ var DivaEngine = /*#__PURE__*/function () {
25190
25310
  }
25191
25311
  }
25192
25312
  } catch (err) {
25193
- _iterator16.e(err);
25313
+ _iterator14.e(err);
25194
25314
  } finally {
25195
- _iterator16.f();
25315
+ _iterator14.f();
25196
25316
  }
25197
25317
  }
25198
25318
  }
@@ -25238,18 +25358,18 @@ var DivaEngine = /*#__PURE__*/function () {
25238
25358
  }
25239
25359
 
25240
25360
  // this functions updates the images of OPVs that depend on rules
25241
- var _iterator17 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25242
- _step17;
25361
+ var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25362
+ _step15;
25243
25363
  try {
25244
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
25245
- var ops = _step17.value;
25246
- var _iterator18 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25247
- _step18;
25364
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25365
+ var ops = _step15.value;
25366
+ var _iterator16 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25367
+ _step16;
25248
25368
  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];
25369
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25370
+ var _step16$value = _slicedToArray__default["default"](_step16.value, 2),
25371
+ jKey = _step16$value[0],
25372
+ opv = _step16$value[1];
25253
25373
  if (opv.images) {
25254
25374
  var imageFound = false;
25255
25375
  for (var _i10 = 0; _i10 < opv.images.length; _i10++) {
@@ -25268,18 +25388,18 @@ var DivaEngine = /*#__PURE__*/function () {
25268
25388
  }
25269
25389
  }
25270
25390
  } catch (err) {
25271
- _iterator18.e(err);
25391
+ _iterator16.e(err);
25272
25392
  } finally {
25273
- _iterator18.f();
25393
+ _iterator16.f();
25274
25394
  }
25275
25395
  }
25276
25396
 
25277
25397
  // this function calculates an Svg to the current configuration if neccessary (SVG Tausch)
25278
25398
  // if the Article has no SVG Tausch nothing is done
25279
25399
  } catch (err) {
25280
- _iterator17.e(err);
25400
+ _iterator15.e(err);
25281
25401
  } finally {
25282
- _iterator17.f();
25402
+ _iterator15.f();
25283
25403
  }
25284
25404
  var newSVGFile = null;
25285
25405
  var svgChangedViaSvgTausch = false;
@@ -25910,7 +26030,7 @@ var IDMEngine = /*#__PURE__*/function () {
25910
26030
  } else if (!_ops4.valCodex) {
25911
26031
  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
26032
  } 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>'));
26033
+ 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
26034
  }
25915
26035
  if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set');
25916
26036
  } else if (action.optionRef) {
@@ -26008,7 +26128,7 @@ var IDMEngine = /*#__PURE__*/function () {
26008
26128
  this.logPrice(priceFeatureGroup, index);
26009
26129
  if (index !== undefined) {
26010
26130
  var _this$article$catalog, _this$article$catalog4, _priceFeatureGroup$fe, _priceFeatureGroup$fe2;
26011
- var matichingFinish = priceFeatureGroup.finishes[index];
26131
+ var matichingFinish = priceFeatureGroup.projectFinishes[index];
26012
26132
  var priceKey = 'PRFG' + priceFeatureGroup.priceFeatureGroupNo + '_' + matichingFinish.supplierPriceGroup;
26013
26133
  if (((_this$article$catalog = this.article.catalogArticle.idmPrices) === null || _this$article$catalog === void 0 ? void 0 : _this$article$catalog.prices[priceKey]) === undefined) {
26014
26134
  var _this$article$catalog2, _this$article$catalog3;
@@ -26506,13 +26626,18 @@ var IDMEngine = /*#__PURE__*/function () {
26506
26626
  value: function updateIDMSpecificFeature(myArtOPS) {
26507
26627
  var _myArtOPS$option$idmV, _myArtOPS$option$idmV2, _myArtOPS$option$idmV3, _myArtOPS$option$idmV4, _myArtOPS$option$idmV5;
26508
26628
  if (!this.article.parentHasSameOption(myArtOPS.optionCodex)) return;
26629
+ // The OPV key embeds the option codex as a prefix: "<optionCodex>_<connector>" (e.g. "1089_CT20").
26630
+ // Strip the codex AND the separator so the filter holds the bare connector codex ("CT20").
26631
+ var toConnectorCodex = function toConnectorCodex(key) {
26632
+ return key.startsWith(myArtOPS.optionCodex + '_') ? key.substring(myArtOPS.optionCodex.length + 1) : key;
26633
+ };
26509
26634
  if ([90, 1090].includes((_myArtOPS$option$idmV = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV !== void 0 ? _myArtOPS$option$idmV : 0)) {
26510
26635
  //R (Anschlusstyp R) - AVR
26511
- this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys;
26636
+ this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26512
26637
  }
26513
26638
  if ([89, 1089].includes((_myArtOPS$option$idmV2 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV2 !== void 0 ? _myArtOPS$option$idmV2 : 0)) {
26514
26639
  //L (Anschlusstyp L) - AVL
26515
- this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys;
26640
+ this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26516
26641
  }
26517
26642
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
26518
26643
  try {
@@ -26876,6 +27001,7 @@ var DivaArticle = /*#__PURE__*/function () {
26876
27001
  partlistDecisionNo: initParams.partlistDecisionNo,
26877
27002
  partListParentArticle: initParams.parentArticle,
26878
27003
  partlistArticleVisibleInTree: initParams.partlistArticleVisibleInTree,
27004
+ posInvisibility: initParams.posInvisibility,
26879
27005
  partlistArticleStandalone: initParams.partlistArticleStandalone,
26880
27006
  partlistGroupPrefix: initParams.partlistGroupPrefix,
26881
27007
  hasPartlistArticle: initParams.hasPartlistArticle ? initParams.hasPartlistArticle : false,
@@ -27028,6 +27154,11 @@ var DivaArticle = /*#__PURE__*/function () {
27028
27154
  get: function get() {
27029
27155
  return this.article.partlistArticleVisibleInTree && this.hasOptionsThatParentDoesNotHave;
27030
27156
  }
27157
+ }, {
27158
+ key: "posInvisibility",
27159
+ get: function get() {
27160
+ return this.article.posInvisibility;
27161
+ }
27031
27162
  }, {
27032
27163
  key: "partlistArticleStandalone",
27033
27164
  get: function get() {
@@ -27951,6 +28082,11 @@ var DivaArticle = /*#__PURE__*/function () {
27951
28082
  get: function get() {
27952
28083
  return this.catalogArticle.bundleRules;
27953
28084
  }
28085
+ }, {
28086
+ key: "addAsZKAT",
28087
+ get: function get() {
28088
+ return this.catalogArticle.addAsZKAT;
28089
+ }
27954
28090
  }, {
27955
28091
  key: "hasPartlistArticleVisibleInTree",
27956
28092
  get: function get() {
@@ -29555,7 +29691,7 @@ var DivaArticle = /*#__PURE__*/function () {
29555
29691
  break;
29556
29692
  }
29557
29693
  _context.next = 4;
29558
- return Promise.resolve().then(function () { return require('./ShelfPlanner-acc07376.js'); });
29694
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-2694fa00.js'); });
29559
29695
  case 4:
29560
29696
  _yield$import = _context.sent;
29561
29697
  ShelfPlanner = _yield$import["default"];
@@ -29828,7 +29964,7 @@ var DivaArticle = /*#__PURE__*/function () {
29828
29964
  var opv;
29829
29965
  var opt;
29830
29966
  if (ops.val) {
29831
- var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3;
29967
+ var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3, _ops$val$properties;
29832
29968
  opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
29833
29969
  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
29970
  if (this.CatalogData.isIDM3DCat && ops.val.vCodex) opv = 'OPV' + ops.idmVariantenArt + '_' + ops.val.vCodex;
@@ -29844,14 +29980,26 @@ var DivaArticle = /*#__PURE__*/function () {
29844
29980
  OPV: ops.freeText
29845
29981
  });
29846
29982
  }
29847
- if (ops.val.isTexture) {
29983
+ var divaDataEngineMat = (_ops$val$properties = ops.val.properties) === null || _ops$val$properties === void 0 ? void 0 : _ops$val$properties.find(function (prop) {
29984
+ return prop.Codex == "TEXTURENAME";
29985
+ });
29986
+ if (!ret.MAT) {
29987
+ ret.MAT = [];
29988
+ }
29989
+ if (divaDataEngineMat) {
29848
29990
  var _ops$val$name;
29849
- if (!ret.MAT) {
29850
- ret.MAT = [];
29851
- }
29852
29991
  ret.MAT.push({
29853
29992
  OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
29854
29993
  N: DivaUtils__default["default"].removeSpecialChars((_ops$val$name = ops.val.name) !== null && _ops$val$name !== void 0 ? _ops$val$name : ''),
29994
+ T: divaDataEngineMat.Name,
29995
+ M: divaDataEngineMat.Value
29996
+ });
29997
+ }
29998
+ if (ops.val.isTexture) {
29999
+ var _ops$val$name2;
30000
+ ret.MAT.push({
30001
+ OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
30002
+ N: DivaUtils__default["default"].removeSpecialChars((_ops$val$name2 = ops.val.name) !== null && _ops$val$name2 !== void 0 ? _ops$val$name2 : ''),
29855
30003
  T: ops.val.textureName,
29856
30004
  M: ops.val.material
29857
30005
  });
@@ -31341,6 +31489,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31341
31489
  supplierOrderCodex: doLoadItem.SupplierOrderCodex,
31342
31490
  initDecisions: doLoadItem.initDecisions,
31343
31491
  partlistArticleVisibleInTree: doLoadItem.PosInvisibility === 0,
31492
+ posInvisibility: doLoadItem.PosInvisibility,
31344
31493
  partlistArticleStandalone: doLoadItem.ConfigurationMode,
31345
31494
  partlistGroupPrefix: doLoadItem.partlistGroupPrefix,
31346
31495
  optionsForPrint: doLoadItem.optionsForPrint,
@@ -31723,6 +31872,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31723
31872
  ArticleCodex: article.articleCodex,
31724
31873
  ConfigArticleCodex: article.configArticleCodex,
31725
31874
  UseTypeNrAsArticleNrEKText: catalogData.useTypeNrAsArticleNrEKText,
31875
+ HideSubPosArticleCodexEKText: catalogData.hideSubPosArticleCodexEKText,
31726
31876
  TypeNr: article.typeNr,
31727
31877
  ArticleEAN: article.articleEAN,
31728
31878
  ArticleGUID: article.articleGUID,
@@ -31762,6 +31912,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31762
31912
  IsPlannerElement: article.hasCatalogPlannerArticle,
31763
31913
  HasPartlistArticle: article.hasPartlistArticle,
31764
31914
  PartlistArticleInvisibility: !article.partlistArticleVisibleInTree && !article.optionsForPrint && !article.partlistArticleStandalone,
31915
+ PosInvisibility: catalogData.addPosInvisibilityToOL ? article.posInvisibility : undefined,
31765
31916
  SendToSAP: article.sendToSap,
31766
31917
  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
31918
  MetaData: !hasFavorites ? article.MetaData : undefined,
@@ -34764,7 +34915,7 @@ var DivaFavoritesHandler = /*#__PURE__*/function () {
34764
34915
  if (targetArticle[opt] && !variantValues[opt]) variantValues[opt] = targetArticle[opt];
34765
34916
  }
34766
34917
  }
34767
- configVariant = new basketModel.ConfigVariantData(variant.id, set.setName, set.setName_locales, setImage, (_hQRenderScript = hQRenderScript) === null || _hQRenderScript === void 0 ? void 0 : _hQRenderScript._id, DivaUtils__default["default"].encodeBase64(set.plannerHandler.getProject3D(set.getSetId())), set.getVariantsDescription(), set.SetArticleNr, set.getSetPrice(), set.setHash, 1, set.getVariantBasketData(), articleHandlerInstance.getCompactOrderLine(_objectSpread$g(_objectSpread$g({}, set.getDivaArticles()), set.getPartlistArticlesOfSet())), variantValues, summaryHandlerInstance.convertSummaryItemsToSummaryInfo(set), plannerData != undefined ? DivaUtils__default["default"].encodeBase64(JSON.stringify(plannerData)) : '', urlToPlanning2D, setHandlerInstance.getBBoxObject(set, dimensions), set.getBruttoSetPrice(), undefined, undefined, set.MetaData, set.MetaData_locales, DivaUtils__default["default"].stripTagsFromDict(set.getVariantsDescription_locales()), (_basket$OrderSets$set = basket.OrderSets[setindex].ConfigVariants) === null || _basket$OrderSets$set === void 0 || (_basket$OrderSets$set = _basket$OrderSets$set[set.basketConfigVariants.length]) === null || _basket$OrderSets$set === void 0 ? void 0 : _basket$OrderSets$set.SetOrderText, (_basket$OrderSets$set2 = basket.OrderSets[setindex].ConfigVariants) === null || _basket$OrderSets$set2 === void 0 || (_basket$OrderSets$set2 = _basket$OrderSets$set2[set.basketConfigVariants.length]) === null || _basket$OrderSets$set2 === void 0 ? void 0 : _basket$OrderSets$set2.SetOrderText_locales);
34918
+ configVariant = new basketModel.ConfigVariantData(variant.id, set.setName, set.setName_locales, setImage, (_hQRenderScript = hQRenderScript) === null || _hQRenderScript === void 0 ? void 0 : _hQRenderScript._id, DivaUtils__default["default"].encodeBase64(set.plannerHandler.getProject3D(set.getSetId()), set.CatalogData.isIDM3DCat), set.getVariantsDescription(), set.SetArticleNr, set.getSetPrice(), set.setHash, 1, set.getVariantBasketData(), articleHandlerInstance.getCompactOrderLine(_objectSpread$g(_objectSpread$g({}, set.getDivaArticles()), set.getPartlistArticlesOfSet())), variantValues, summaryHandlerInstance.convertSummaryItemsToSummaryInfo(set), plannerData != undefined ? DivaUtils__default["default"].encodeBase64(JSON.stringify(plannerData), set.CatalogData.isIDM3DCat) : '', urlToPlanning2D, setHandlerInstance.getBBoxObject(set, dimensions), set.getBruttoSetPrice(), undefined, undefined, set.MetaData, set.MetaData_locales, DivaUtils__default["default"].stripTagsFromDict(set.getVariantsDescription_locales()), (_basket$OrderSets$set = basket.OrderSets[setindex].ConfigVariants) === null || _basket$OrderSets$set === void 0 || (_basket$OrderSets$set = _basket$OrderSets$set[set.basketConfigVariants.length]) === null || _basket$OrderSets$set === void 0 ? void 0 : _basket$OrderSets$set.SetOrderText, (_basket$OrderSets$set2 = basket.OrderSets[setindex].ConfigVariants) === null || _basket$OrderSets$set2 === void 0 || (_basket$OrderSets$set2 = _basket$OrderSets$set2[set.basketConfigVariants.length]) === null || _basket$OrderSets$set2 === void 0 ? void 0 : _basket$OrderSets$set2.SetOrderText_locales);
34768
34919
  set.basketConfigVariants.push(configVariant);
34769
34920
  case 32:
34770
34921
  case "end":
@@ -35216,8 +35367,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35216
35367
  }
35217
35368
  var configInAccessoire = set.configAccessoiresInAccessoireStep;
35218
35369
  var configInAccessoireAndTree = set.CatalogData.configAccessoires && !article.isShelfAccessoire;
35370
+ var isRelatedAccessoire = !!article.relatedToBasketId && !(article.isPartListArticle && article.partlistArticleVisibleInTree);
35219
35371
  //give this step a unique key so it is not merged with any option of te main article
35220
- if (configInAccessoire && !!(article !== null && article !== void 0 && article.relatedToBasketId)) {
35372
+ if (configInAccessoire && isRelatedAccessoire) {
35221
35373
  if (configInAccessoireAndTree) {
35222
35374
  //remember old configStepKey to push basketId to its targetArticles anyways
35223
35375
  mainConfigStepKey = configStepKey;
@@ -35226,7 +35378,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35226
35378
  }
35227
35379
  var plaBasketIds = Object.keys(articles[basketId].getRecursivePartlistArticles(true, true));
35228
35380
  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);
35229
- var isAccessoire = !!article.relatedToBasketId ? article.articleCodex : false;
35381
+ var isAccessoire = isRelatedAccessoire ? article.articleCodex : false;
35230
35382
  if (!configTree.getTabGroupByCodex(tabGroupCodex)) {
35231
35383
  var newTabGroup = this.createTabGroup(tabGroupCodex, tabGroupTitel, 'OPTION', configTree);
35232
35384
  configTree.addTabGroup(tabGroupCodex, newTabGroup);
@@ -37577,7 +37729,7 @@ var DivaSet = /*#__PURE__*/function () {
37577
37729
  break;
37578
37730
  }
37579
37731
  _context5.next = 3;
37580
- return Promise.resolve().then(function () { return require('./DoorPlanner-fa73b631.js'); });
37732
+ return Promise.resolve().then(function () { return require('./DoorPlanner-e8e8ec7c.js'); });
37581
37733
  case 3:
37582
37734
  _yield$import = _context5.sent;
37583
37735
  DoorPlanner = _yield$import["default"];
@@ -39103,7 +39255,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39103
39255
  }
39104
39256
  }
39105
39257
  if (!(from !== 'toDeleteShelf')) {
39106
- _context14.next = 15;
39258
+ _context14.next = 16;
39107
39259
  break;
39108
39260
  }
39109
39261
  set.addArticle(newArticle);
@@ -39111,7 +39263,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39111
39263
  return articleHandlerInstance.toDoAfterArticleLoaded(newArticle, defaultHeaderValues, {}, from, undefined, ignorePlanner);
39112
39264
  case 15:
39113
39265
  if (newArticle.relatedToBasketId) {
39114
- LOG$9.businessEvent('onClickAccesorie', 'Planner', 'Accesorie wurde geplant', {
39266
+ LOG$9.businessEvent('onClickAccesorie', 'Planner', 'Accessoire wurde geplant', {
39115
39267
  article: {
39116
39268
  articleCodex: articleCodex,
39117
39269
  articleName: newArticle.name
@@ -39125,6 +39277,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39125
39277
  }
39126
39278
  });
39127
39279
  }
39280
+ case 16:
39128
39281
  return _context14.abrupt("return", newArticle);
39129
39282
  case 17:
39130
39283
  case "end":
@@ -41140,7 +41293,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
41140
41293
  break;
41141
41294
  case 32:
41142
41295
  //fill diva3DProject for renderings & AR Converter
41143
- basketData.Diva3DProject = DivaUtils__default["default"].encodeBase64(set === null || set === void 0 ? void 0 : set.plannerHandler.getProject3D());
41296
+ basketData.Diva3DProject = DivaUtils__default["default"].encodeBase64(set === null || set === void 0 ? void 0 : set.plannerHandler.getProject3D(), set === null || set === void 0 ? void 0 : set.CatalogData.isIDM3DCat);
41144
41297
  i = 0;
41145
41298
  case 34:
41146
41299
  if (!(i < ((_basketData$OrderSets = basketData.OrderSets) === null || _basketData$OrderSets === void 0 ? void 0 : _basketData$OrderSets.length))) {
@@ -41601,7 +41754,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
41601
41754
  FavoriteAiRoomKeys: set.getAiImagesAsJpg().map(function (img) {
41602
41755
  return img.promptId;
41603
41756
  }),
41604
- SetPlanData: plannerData != undefined ? DivaUtils__default["default"].encodeBase64(JSON.stringify(plannerData)) : '',
41757
+ SetPlanData: plannerData != undefined ? DivaUtils__default["default"].encodeBase64(JSON.stringify(plannerData), catalogData.isIDM3DCat) : '',
41605
41758
  SetID: set.getSetId(),
41606
41759
  SetName: set.setName,
41607
41760
  SetName_locales: set.setName_locales,
@@ -43051,7 +43204,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43051
43204
  break;
43052
43205
  case 3:
43053
43206
  _context12.next = 5;
43054
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-5ebc0e14.js'); });
43207
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-d566562f.js'); });
43055
43208
  case 5:
43056
43209
  _yield$import = _context12.sent;
43057
43210
  PfisterWWSHandler = _yield$import["default"];
@@ -43059,7 +43212,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43059
43212
  return _context12.abrupt("break", 27);
43060
43213
  case 9:
43061
43214
  _context12.next = 11;
43062
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-7d16f2f9.js'); });
43215
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-bf59df95.js'); });
43063
43216
  case 11:
43064
43217
  _yield$import2 = _context12.sent;
43065
43218
  LiviqueWWSHandler = _yield$import2["default"];
@@ -43067,7 +43220,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43067
43220
  return _context12.abrupt("break", 27);
43068
43221
  case 15:
43069
43222
  _context12.next = 17;
43070
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-7563aaa9.js'); });
43223
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-e037310e.js'); });
43071
43224
  case 17:
43072
43225
  _yield$import3 = _context12.sent;
43073
43226
  SeriousWWSHandler = _yield$import3["default"];
@@ -43075,7 +43228,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43075
43228
  return _context12.abrupt("break", 27);
43076
43229
  case 21:
43077
43230
  _context12.next = 23;
43078
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-abd363ef.js'); });
43231
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-07940a73.js'); });
43079
43232
  case 23:
43080
43233
  _yield$import4 = _context12.sent;
43081
43234
  StandardWWSHandler = _yield$import4["default"];
@@ -44499,7 +44652,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
44499
44652
  while (1) switch (_context3.prev = _context3.next) {
44500
44653
  case 0:
44501
44654
  _context3.next = 2;
44502
- return Promise.resolve().then(function () { return require('./Host3DSignalR-b0567441.js'); });
44655
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-b148cbae.js'); });
44503
44656
  case 2:
44504
44657
  _yield$import = _context3.sent;
44505
44658
  Host3DSignalR = _yield$import["default"];
@@ -46185,7 +46338,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46185
46338
  break;
46186
46339
  case 8:
46187
46340
  _context5.next = 10;
46188
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-f389ef1a.js'); });
46341
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-732f9d86.js'); });
46189
46342
  case 10:
46190
46343
  _yield$import = _context5.sent;
46191
46344
  DivaStandardPlanner = _yield$import["default"];
@@ -46196,7 +46349,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46196
46349
  return _context5.abrupt("break", 21);
46197
46350
  case 15:
46198
46351
  _context5.next = 17;
46199
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-2e2137f1.js'); });
46352
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-fc71667b.js'); });
46200
46353
  case 17:
46201
46354
  _yield$import2 = _context5.sent;
46202
46355
  DivaBoxPlanner = _yield$import2["default"];
@@ -47340,7 +47493,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
47340
47493
  },
47341
47494
  updatePlannerMsgContainer: function updatePlannerMsgContainer() {}
47342
47495
  });
47343
- var setData = DivaUtils__default["default"].encodeBase64(JSON.stringify(set.plannerHandler.savePlanner(origSet.getSetId())));
47496
+ var setData = DivaUtils__default["default"].encodeBase64(JSON.stringify(set.plannerHandler.savePlanner(origSet.getSetId())), set.CatalogData.isIDM3DCat);
47344
47497
  this.plannerList.forEach(function (v) {
47345
47498
  clone.plannerList.set(set.getSetId(), v.clonePlanner(set, _this6.plannerIDCount, setData));
47346
47499
  _this6.plannerIDCount++;
@@ -48159,12 +48312,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
48159
48312
  case 12:
48160
48313
  loadSuccessful = _context14.sent;
48161
48314
  if (this.plannerConfig.configuratorSessionId) {
48162
- //force new configurator session id - Landingpage case
48315
+ // ID forced from outside (Landingpage, PDP, Planung-ändern)
48163
48316
  DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId(this.plannerConfig.configuratorSessionId);
48164
- } else {
48165
- // Only create a new configurator session if we don't already have one. This keeps the analytics
48166
- // session stable across re-inits (e.g. switching products inside the same catalog).
48317
+ } else if (cache !== undefined) {
48318
+ // Re-init with cache (Variant Select): keep existing session stable
48167
48319
  DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId(undefined, true);
48320
+ } else {
48321
+ // Fresh start (new catalog, archive basket, etc.): always new UUID
48322
+ DivaUtils__default["default"].businessMetrics.setConfiguratorSessionId();
48168
48323
  }
48169
48324
  if (!loadSuccessful) {
48170
48325
  _context14.next = 31;
@@ -50780,7 +50935,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
50780
50935
  article_nested: articles
50781
50936
  }
50782
50937
  });
50783
- LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value:' + actualBasketvalue, {
50938
+ LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
50784
50939
  basketValue: actualBasketvalue,
50785
50940
  isInit: isInit
50786
50941
  });
@@ -50844,11 +50999,11 @@ var DivaWebPlanner = /*#__PURE__*/function () {
50844
50999
  }
50845
51000
  }
50846
51001
  }
50847
- LOG$2.businessEvent(action, 'Planner', 'Configurator wurde verändert', {
51002
+ LOG$2.businessEvent(action, 'Planner', 'Konfigurator wurde verändert', {
50848
51003
  explicitlySetConfiguration: explicitlySetConfiguration,
50849
51004
  wholeConfiguration: finalConfiguration
50850
51005
  });
50851
- LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value:' + actualBasketvalue, {
51006
+ LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
50852
51007
  basketValue: actualBasketvalue,
50853
51008
  isInit: isInit
50854
51009
  });