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

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
@@ -75,6 +75,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
75
75
  _defineProperty(this, "actions", void 0);
76
76
  _defineProperty(this, "state", void 0);
77
77
  _defineProperty(this, "i18n", void 0);
78
+ _defineProperty(this, "enricherErrorModalShown", false);
78
79
  _defineProperty(this, "getSessionGuid", void 0);
79
80
  _defineProperty(this, "useEkPrices", false);
80
81
  _defineProperty(this, "smSupplierNr", undefined);
@@ -215,10 +216,12 @@ var DivaApiHandler = /*#__PURE__*/function () {
215
216
  case 38:
216
217
  _context.prev = 38;
217
218
  _context.t5 = _context["catch"](5);
219
+ // Check if this is a rate limiting error (429)
220
+ this.notifyEnricherError(url, dontLogError);
218
221
  throw Error('fetch failed! ' + url + ' Error: ' + _context.t5, {
219
222
  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
220
223
  });
221
- case 41:
224
+ case 42:
222
225
  case "end":
223
226
  return _context.stop();
224
227
  }
@@ -229,11 +232,57 @@ var DivaApiHandler = /*#__PURE__*/function () {
229
232
  }
230
233
  return fetchData;
231
234
  }()
235
+ /**
236
+ * Surface critical failures to the user. A hard failure of any enricher call (catalog / serie /
237
+ * items / decisions / features ...) leaves the planner unable to load, so give the user actionable
238
+ * feedback instead of a silently broken UI. Optional enricher calls (e.g. the catalog mask) pass
239
+ * `dontLogError` and are skipped. Only one modal is shown at a time to avoid stacking on parallel failures.
240
+ */
241
+ }, {
242
+ key: "notifyEnricherError",
243
+ value: function notifyEnricherError(url, dontLogError) {
244
+ var _this$apiConfig,
245
+ _this$apiConfig2,
246
+ _this$apiConfig3,
247
+ _this$apiConfig4,
248
+ _this$apiConfig5,
249
+ _this$actions,
250
+ _this$i18n,
251
+ _translate$t,
252
+ _translate$t2,
253
+ _translate$t3,
254
+ _this = this;
255
+ if (dontLogError || this.enricherErrorModalShown) return;
256
+ 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];
257
+ if (!services.some(function (service) {
258
+ return service && url.startsWith(service);
259
+ })) return;
260
+ if (!((_this$actions = this.actions) !== null && _this$actions !== void 0 && _this$actions.openModal)) return;
261
+ this.enricherErrorModalShown = true;
262
+ var translate = (_this$i18n = this.i18n) === null || _this$i18n === void 0 ? void 0 : _this$i18n.call(this);
263
+ this.actions.openModal({
264
+ 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.',
265
+ accept: (_translate$t2 = translate === null || translate === void 0 ? void 0 : translate.t('modals.reload_page')) !== null && _translate$t2 !== void 0 ? _translate$t2 : 'Reload',
266
+ reject: (_translate$t3 = translate === null || translate === void 0 ? void 0 : translate.t('modals.close')) !== null && _translate$t3 !== void 0 ? _translate$t3 : 'Close',
267
+ callback: function callback(accepted) {
268
+ _this.enricherErrorModalShown = false;
269
+ if (accepted === true) {
270
+ if (_this.getApplicationEnvironment() === 'WEB' && typeof window !== 'undefined') window.location.reload();
271
+ } else if (accepted === false) {
272
+ var _this$actions2, _this$actions3;
273
+ (_this$actions2 = _this.actions) === null || _this$actions2 === void 0 || _this$actions2.onEvent({
274
+ type: 'onWebPlanerClose'
275
+ });
276
+ (_this$actions3 = _this.actions) === null || _this$actions3 === void 0 || _this$actions3.closeComponentInFullscreen();
277
+ }
278
+ }
279
+ });
280
+ }
232
281
  }, {
233
282
  key: "getDataWithoutCache",
234
283
  value: function () {
235
284
  var _getDataWithoutCache = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(queryString, init, useWebServiceApi) {
236
- var _this$apiConfig, _this$apiConfig2, api2Url;
285
+ var _this$apiConfig6, _this$apiConfig7, api2Url;
237
286
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
238
287
  while (1) switch (_context2.prev = _context2.next) {
239
288
  case 0:
@@ -275,8 +324,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
275
324
  _context2.next = 24;
276
325
  break;
277
326
  case 14:
278
- api2Url = (_this$apiConfig = this.apiConfig) === null || _this$apiConfig === void 0 ? void 0 : _this$apiConfig.api2["default"];
279
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig2 = this.apiConfig) !== null && _this$apiConfig2 !== void 0 && _this$apiConfig2.api2.web) {
327
+ api2Url = (_this$apiConfig6 = this.apiConfig) === null || _this$apiConfig6 === void 0 ? void 0 : _this$apiConfig6.api2["default"];
328
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig7 = this.apiConfig) !== null && _this$apiConfig7 !== void 0 && _this$apiConfig7.api2.web) {
280
329
  api2Url = this.apiConfig.api2.web;
281
330
  }
282
331
  _context2.t0 = _objectSpread$q;
@@ -311,7 +360,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
311
360
  value: function () {
312
361
  var _getDataCache = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(queryString, cacheMD5, accountSessionGuid, useWebServiceApi, method, data, dontLogError) {
313
362
  var _this$divaWebConfigDa, _this$divaWebConfigDa2;
314
- var myQS, url, init, addSession, cacheHit, _this$apiConfig3, _this$apiConfig4, api2Url, resolvedSessionGuid, result, _this$divaWebConfigDa3;
363
+ var myQS, url, init, addSession, cacheHit, _this$apiConfig8, _this$apiConfig9, api2Url, resolvedSessionGuid, result, _this$divaWebConfigDa3;
315
364
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
316
365
  while (1) switch (_context3.prev = _context3.next) {
317
366
  case 0:
@@ -379,8 +428,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
379
428
  _context3.next = 35;
380
429
  break;
381
430
  case 25:
382
- api2Url = (_this$apiConfig3 = this.apiConfig) === null || _this$apiConfig3 === void 0 ? void 0 : _this$apiConfig3.api2["default"];
383
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig4 = this.apiConfig) !== null && _this$apiConfig4 !== void 0 && _this$apiConfig4.api2.web) {
431
+ api2Url = (_this$apiConfig8 = this.apiConfig) === null || _this$apiConfig8 === void 0 ? void 0 : _this$apiConfig8.api2["default"];
432
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig9 = this.apiConfig) !== null && _this$apiConfig9 !== void 0 && _this$apiConfig9.api2.web) {
384
433
  api2Url = this.apiConfig.api2.web;
385
434
  }
386
435
  this.apiCallCount += 1;
@@ -466,6 +515,10 @@ var DivaApiHandler = /*#__PURE__*/function () {
466
515
  }
467
516
  return saveAsProduct;
468
517
  }()
518
+ /**
519
+ * to run service on localhost
520
+ * diva3dRenderGroup :MYCCMEDIA
521
+ */
469
522
  }, {
470
523
  key: "initalizeWebConfigData",
471
524
  value: function initalizeWebConfigData(plannerConfig) {
@@ -540,38 +593,38 @@ var DivaApiHandler = /*#__PURE__*/function () {
540
593
  }, {
541
594
  key: "getReportServiceUrl",
542
595
  value: function getReportServiceUrl() {
543
- var _this$apiConfig$repor, _this$apiConfig5;
544
- 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 : '';
596
+ var _this$apiConfig$repor, _this$apiConfig10;
597
+ 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 : '';
545
598
  }
546
599
  }, {
547
600
  key: "getDivaSupportServiceUrl",
548
601
  value: function getDivaSupportServiceUrl() {
549
- var _this$apiConfig$suppo, _this$apiConfig6;
550
- 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 : '';
602
+ var _this$apiConfig$suppo, _this$apiConfig11;
603
+ 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 : '';
551
604
  }
552
605
  }, {
553
606
  key: "getDivaMediaServiceUrl",
554
607
  value: function getDivaMediaServiceUrl() {
555
- var _this$apiConfig$media, _this$apiConfig7;
556
- 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 : '';
608
+ var _this$apiConfig$media, _this$apiConfig12;
609
+ 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 : '';
557
610
  }
558
611
  }, {
559
612
  key: "getDivaAiServiceUrl",
560
613
  value: function getDivaAiServiceUrl() {
561
- var _this$apiConfig$aiSer, _this$apiConfig8;
562
- 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 : '';
614
+ var _this$apiConfig$aiSer, _this$apiConfig13;
615
+ 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 : '';
563
616
  }
564
617
  }, {
565
618
  key: "getConstructorServiceUrl",
566
619
  value: function getConstructorServiceUrl() {
567
- var _this$apiConfig$const, _this$apiConfig9;
568
- 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 : '';
620
+ var _this$apiConfig$const, _this$apiConfig14;
621
+ 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 : '';
569
622
  }
570
623
  }, {
571
624
  key: "getDivaBasketServiceUrl",
572
625
  value: function getDivaBasketServiceUrl() {
573
- var _this$apiConfig$baske, _this$apiConfig10;
574
- 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 : '';
626
+ var _this$apiConfig$baske, _this$apiConfig15;
627
+ 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 : '';
575
628
  }
576
629
  }, {
577
630
  key: "getLoadProductBasketParams",
@@ -582,8 +635,8 @@ var DivaApiHandler = /*#__PURE__*/function () {
582
635
  }, {
583
636
  key: "get3DServerUrl",
584
637
  value: function get3DServerUrl() {
585
- var _this$apiConfig$host, _this$apiConfig11;
586
- 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 : '';
638
+ var _this$apiConfig$host, _this$apiConfig16;
639
+ 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 : '';
587
640
  }
588
641
  }, {
589
642
  key: "doCheckForProductsPrice",
@@ -652,9 +705,9 @@ var DivaApiHandler = /*#__PURE__*/function () {
652
705
  }, {
653
706
  key: "getBaseUrl",
654
707
  value: function getBaseUrl() {
655
- var _this$apiConfig12, _this$apiConfig13;
656
- var url = (_this$apiConfig12 = this.apiConfig) === null || _this$apiConfig12 === void 0 ? void 0 : _this$apiConfig12.api2["default"];
657
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig13 = this.apiConfig) !== null && _this$apiConfig13 !== void 0 && _this$apiConfig13.api2.web) {
708
+ var _this$apiConfig17, _this$apiConfig18;
709
+ var url = (_this$apiConfig17 = this.apiConfig) === null || _this$apiConfig17 === void 0 ? void 0 : _this$apiConfig17.api2["default"];
710
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig18 = this.apiConfig) !== null && _this$apiConfig18 !== void 0 && _this$apiConfig18.api2.web) {
658
711
  url = this.apiConfig.api2.web;
659
712
  }
660
713
  if (!url) throw new Error('No API2 defined');
@@ -770,14 +823,14 @@ var DivaApiHandler = /*#__PURE__*/function () {
770
823
  }, {
771
824
  key: "getI18n",
772
825
  value: function getI18n() {
773
- var _this$i18n;
774
- return (_this$i18n = this.i18n) === null || _this$i18n === void 0 ? void 0 : _this$i18n.call(this);
826
+ var _this$i18n2;
827
+ return (_this$i18n2 = this.i18n) === null || _this$i18n2 === void 0 ? void 0 : _this$i18n2.call(this);
775
828
  }
776
829
  }, {
777
830
  key: "setAccountSessionGuid",
778
831
  value: function () {
779
832
  var _setAccountSessionGuid = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref) {
780
- var os, accountGuid, catalogGuid, response, _this$actions, _this$state$navigatio, _this$state;
833
+ var os, accountGuid, catalogGuid, response, _this$actions4, _this$state$navigatio, _this$state;
781
834
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
782
835
  while (1) switch (_context5.prev = _context5.next) {
783
836
  case 0:
@@ -816,7 +869,7 @@ var DivaApiHandler = /*#__PURE__*/function () {
816
869
  break;
817
870
  case 16:
818
871
  if (this.applicationEnvironment == 'SELLER') {
819
- (_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 : {
872
+ (_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 : {
820
873
  type: 'SELLER',
821
874
  parameters: {
822
875
  module: 'Collections'
@@ -915,39 +968,39 @@ var DivaApiHandler = /*#__PURE__*/function () {
915
968
  }, {
916
969
  key: "apiUrl",
917
970
  value: function apiUrl(queryString, useWebServiceApi) {
918
- var _this$apiConfig24, _this$apiConfig25, _this$apiConfig26;
971
+ var _this$apiConfig29, _this$apiConfig30, _this$apiConfig31;
919
972
  if (useWebServiceApi == 'catalog') {
920
- var _this$apiConfig14, _this$apiConfig15;
921
- if (!((_this$apiConfig14 = this.apiConfig) !== null && _this$apiConfig14 !== void 0 && _this$apiConfig14.catalogService)) throw new Error('No catalog Service defined');
922
- return ((_this$apiConfig15 = this.apiConfig) === null || _this$apiConfig15 === void 0 ? void 0 : _this$apiConfig15.catalogService) + queryString;
973
+ var _this$apiConfig19, _this$apiConfig20;
974
+ if (!((_this$apiConfig19 = this.apiConfig) !== null && _this$apiConfig19 !== void 0 && _this$apiConfig19.catalogService)) throw new Error('No catalog Service defined');
975
+ return ((_this$apiConfig20 = this.apiConfig) === null || _this$apiConfig20 === void 0 ? void 0 : _this$apiConfig20.catalogService) + queryString;
923
976
  }
924
977
  if (useWebServiceApi == 'basket') {
925
- var _this$apiConfig16, _this$apiConfig17;
926
- if (!((_this$apiConfig16 = this.apiConfig) !== null && _this$apiConfig16 !== void 0 && _this$apiConfig16.basketService)) throw new Error('No basket Service defined');
927
- return ((_this$apiConfig17 = this.apiConfig) === null || _this$apiConfig17 === void 0 ? void 0 : _this$apiConfig17.basketService) + queryString;
978
+ var _this$apiConfig21, _this$apiConfig22;
979
+ if (!((_this$apiConfig21 = this.apiConfig) !== null && _this$apiConfig21 !== void 0 && _this$apiConfig21.basketService)) throw new Error('No basket Service defined');
980
+ return ((_this$apiConfig22 = this.apiConfig) === null || _this$apiConfig22 === void 0 ? void 0 : _this$apiConfig22.basketService) + queryString;
928
981
  }
929
982
  if (useWebServiceApi == 'report') {
930
- var _this$apiConfig18, _this$apiConfig19;
931
- if (!((_this$apiConfig18 = this.apiConfig) !== null && _this$apiConfig18 !== void 0 && _this$apiConfig18.reportService)) throw new Error('No report Service defined');
932
- return ((_this$apiConfig19 = this.apiConfig) === null || _this$apiConfig19 === void 0 ? void 0 : _this$apiConfig19.reportService) + queryString;
983
+ var _this$apiConfig23, _this$apiConfig24;
984
+ if (!((_this$apiConfig23 = this.apiConfig) !== null && _this$apiConfig23 !== void 0 && _this$apiConfig23.reportService)) throw new Error('No report Service defined');
985
+ return ((_this$apiConfig24 = this.apiConfig) === null || _this$apiConfig24 === void 0 ? void 0 : _this$apiConfig24.reportService) + queryString;
933
986
  }
934
987
  if (useWebServiceApi == 'enricher') {
935
- var _this$apiConfig22, _this$apiConfig23;
988
+ var _this$apiConfig27, _this$apiConfig28;
936
989
  if (this.useIDMService) {
937
- var _this$apiConfig20, _this$apiConfig21;
938
- if (!((_this$apiConfig20 = this.apiConfig) !== null && _this$apiConfig20 !== void 0 && _this$apiConfig20.idmService)) throw new Error('No report Service defined');
939
- return ((_this$apiConfig21 = this.apiConfig) === null || _this$apiConfig21 === void 0 ? void 0 : _this$apiConfig21.idmService) + queryString;
990
+ var _this$apiConfig25, _this$apiConfig26;
991
+ if (!((_this$apiConfig25 = this.apiConfig) !== null && _this$apiConfig25 !== void 0 && _this$apiConfig25.idmService)) throw new Error('No report Service defined');
992
+ return ((_this$apiConfig26 = this.apiConfig) === null || _this$apiConfig26 === void 0 ? void 0 : _this$apiConfig26.idmService) + queryString;
940
993
  }
941
- if (!((_this$apiConfig22 = this.apiConfig) !== null && _this$apiConfig22 !== void 0 && _this$apiConfig22.enricherService)) throw new Error('No report Service defined');
942
- return ((_this$apiConfig23 = this.apiConfig) === null || _this$apiConfig23 === void 0 ? void 0 : _this$apiConfig23.enricherService) + queryString;
994
+ if (!((_this$apiConfig27 = this.apiConfig) !== null && _this$apiConfig27 !== void 0 && _this$apiConfig27.enricherService)) throw new Error('No report Service defined');
995
+ return ((_this$apiConfig28 = this.apiConfig) === null || _this$apiConfig28 === void 0 ? void 0 : _this$apiConfig28.enricherService) + queryString;
943
996
  }
944
- var url = (_this$apiConfig24 = this.apiConfig) === null || _this$apiConfig24 === void 0 ? void 0 : _this$apiConfig24.api2["default"];
945
- if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig25 = this.apiConfig) !== null && _this$apiConfig25 !== void 0 && _this$apiConfig25.api2.web) {
997
+ var url = (_this$apiConfig29 = this.apiConfig) === null || _this$apiConfig29 === void 0 ? void 0 : _this$apiConfig29.api2["default"];
998
+ if (this.getApplicationEnvironment() == 'WEB' && (_this$apiConfig30 = this.apiConfig) !== null && _this$apiConfig30 !== void 0 && _this$apiConfig30.api2.web) {
946
999
  url = this.apiConfig.api2.web;
947
1000
  }
948
- if (this.useEkPrices && (_this$apiConfig26 = this.apiConfig) !== null && _this$apiConfig26 !== void 0 && _this$apiConfig26.api2.ek) {
949
- var _this$apiConfig27;
950
- url = (_this$apiConfig27 = this.apiConfig) === null || _this$apiConfig27 === void 0 ? void 0 : _this$apiConfig27.api2.ek;
1001
+ if (this.useEkPrices && (_this$apiConfig31 = this.apiConfig) !== null && _this$apiConfig31 !== void 0 && _this$apiConfig31.api2.ek) {
1002
+ var _this$apiConfig32;
1003
+ url = (_this$apiConfig32 = this.apiConfig) === null || _this$apiConfig32 === void 0 ? void 0 : _this$apiConfig32.api2.ek;
951
1004
  }
952
1005
  if (!url) throw new Error('No API2 defined');
953
1006
  return url + '?' + queryString;
@@ -1139,7 +1192,14 @@ var DivaApiHandler = /*#__PURE__*/function () {
1139
1192
  }, {
1140
1193
  key: "getIDMItems",
1141
1194
  value: function getIDMItems(packageId, serieId, serieNo, typeNos) {
1142
- 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) {
1195
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/series/' + (this.useIDMService ? serieId : serieNo) + '/items';
1196
+
1197
+ // The seller/configurator endpoint is purpose-built: a dedicated typeNos param instead of a generic filter,
1198
+ // and a fixed field set server-side instead of an explicit fields= list.
1199
+ if (this.isSeller) {
1200
+ return base + (typeNos !== null && typeNos !== void 0 && typeNos.length ? '?typeNos=' + typeNos.join(';') : '');
1201
+ }
1202
+ return base + (typeNos !== null && typeNos !== void 0 && typeNos.length ? '?filter=' + typeNos.map(function (t) {
1143
1203
  return encodeURIComponent('typeNo==' + t);
1144
1204
  }).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');
1145
1205
  }
@@ -1153,6 +1213,11 @@ var DivaApiHandler = /*#__PURE__*/function () {
1153
1213
  value: function getIDMDecisions(packageId, decisions) {
1154
1214
  return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions' + '?decisionNos=' + decisions.join(';') + (this.smSupplierNr ? '&supplierNo=' + this.smSupplierNr : '');
1155
1215
  }
1216
+ }, {
1217
+ key: "getIDMDecisionsQueryUrl",
1218
+ value: function getIDMDecisionsQueryUrl(packageId) {
1219
+ return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions/query' + (this.smSupplierNr ? '?supplierNo=' + this.smSupplierNr : '');
1220
+ }
1156
1221
  }, {
1157
1222
  key: "getIDMDetailInfos",
1158
1223
  value: function getIDMDetailInfos(packageId, detailinfos) {
@@ -1163,14 +1228,26 @@ var DivaApiHandler = /*#__PURE__*/function () {
1163
1228
  }, {
1164
1229
  key: "getIDMFeatureClass",
1165
1230
  value: function getIDMFeatureClass(packageId, featureclasses) {
1166
- return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/featureclasses' + '?filter=' + featureclasses.map(function (f) {
1231
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/featureclasses';
1232
+
1233
+ // The seller/configurator endpoint is purpose-built: a dedicated featureClassNos param instead of a generic filter.
1234
+ if (this.isSeller) {
1235
+ return base + '?featureClassNos=' + featureclasses.join(';');
1236
+ }
1237
+ return base + '?filter=' + featureclasses.map(function (f) {
1167
1238
  return encodeURIComponent('featureClassNo==' + f);
1168
1239
  }).join(' || ');
1169
1240
  }
1170
1241
  }, {
1171
1242
  key: "getIDMPriceFeatureGroups",
1172
1243
  value: function getIDMPriceFeatureGroups(packageId, pricefeaturegroups) {
1173
- return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/pricefeaturegroups' + '?filter=' + pricefeaturegroups.map(function (p) {
1244
+ var base = this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/pricefeaturegroups';
1245
+
1246
+ // The seller/configurator endpoint is purpose-built: a dedicated priceFeatureGroupNos param instead of a generic filter.
1247
+ if (this.isSeller) {
1248
+ return base + '?priceFeatureGroupNos=' + pricefeaturegroups.join(';');
1249
+ }
1250
+ return base + '?filter=' + pricefeaturegroups.map(function (p) {
1174
1251
  return encodeURIComponent('priceFeatureGroupNo==' + p);
1175
1252
  }).join(' || ');
1176
1253
  }
@@ -1494,12 +1571,12 @@ var DivaApiHandler = /*#__PURE__*/function () {
1494
1571
  key: "getDimensionbyId",
1495
1572
  value: function () {
1496
1573
  var _getDimensionbyId = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15(id, iln, catalogCodex, plannedOptions) {
1497
- var _this$apiConfig28;
1574
+ var _this$apiConfig33;
1498
1575
  var fullUrl, res, headers;
1499
1576
  return _regeneratorRuntime.wrap(function _callee15$(_context15) {
1500
1577
  while (1) switch (_context15.prev = _context15.next) {
1501
1578
  case 0:
1502
- fullUrl = this.getConstructorServiceUrl() + '/dimension/' + id + '?iln=' + iln + '&catalogCodex=' + catalogCodex + '&debug=' + ((_this$apiConfig28 = this.apiConfig) === null || _this$apiConfig28 === void 0 ? void 0 : _this$apiConfig28.useDebugUrl);
1579
+ fullUrl = this.getConstructorServiceUrl() + '/dimension/' + id + '?iln=' + iln + '&catalogCodex=' + catalogCodex + '&debug=' + ((_this$apiConfig33 = this.apiConfig) === null || _this$apiConfig33 === void 0 ? void 0 : _this$apiConfig33.useDebugUrl);
1503
1580
  headers = {};
1504
1581
  if (this.jwt) headers = {
1505
1582
  Authorization: 'Bearer ' + this.jwt
@@ -16505,6 +16582,11 @@ var OptionValueCatalogData = /*#__PURE__*/function () {
16505
16582
  get: function get() {
16506
16583
  return this.opv.material;
16507
16584
  }
16585
+ }, {
16586
+ key: "properties",
16587
+ get: function get() {
16588
+ return this.opv.property;
16589
+ }
16508
16590
  }, {
16509
16591
  key: "isOPVG",
16510
16592
  get: function get() {
@@ -16871,6 +16953,9 @@ var CatalogArticleData = /*#__PURE__*/function () {
16871
16953
  case 'ACCESSOIRE_POS_PRIO':
16872
16954
  this._catalogArticle.accPosPrio = Number(prop.Value);
16873
16955
  break;
16956
+ case 'ADD_AS_ZKAT':
16957
+ this._catalogArticle.addAsZKAT = prop.Value === 'true' || prop.Value === '1';
16958
+ break;
16874
16959
  case 'HEIGHTGRIDUSED':
16875
16960
  this._catalogArticle.heightGridUsed = Number(prop.Value);
16876
16961
  break;
@@ -16943,6 +17028,12 @@ var CatalogArticleData = /*#__PURE__*/function () {
16943
17028
  case 'OPTIONS_FOR_PRINT':
16944
17029
  this.catalogArticle.optionsForPrint = prop.Value.split(';');
16945
17030
  break;
17031
+ case 'TABGROUP':
17032
+ if (!this._catalogArticle.tabGroup) this._catalogArticle.tabGroup = prop.Value;
17033
+ break;
17034
+ case 'TABGROUP_OPTIONS':
17035
+ if (!this._catalogArticle.tabGroupOption) this._catalogArticle.tabGroupOption = prop.Value;
17036
+ break;
16946
17037
  default:
16947
17038
  if (_key.includes('__')) break;
16948
17039
  var values = prop.Value.split(';');
@@ -17332,6 +17423,11 @@ var CatalogArticleData = /*#__PURE__*/function () {
17332
17423
  get: function get() {
17333
17424
  return this._catalogArticle.accPosPrio;
17334
17425
  }
17426
+ }, {
17427
+ key: "addAsZKAT",
17428
+ get: function get() {
17429
+ return this._catalogArticle.addAsZKAT;
17430
+ }
17335
17431
  }, {
17336
17432
  key: "overwriteParentWidth",
17337
17433
  get: function get() {
@@ -17979,18 +18075,18 @@ function getCatalogOptionValueDataType(codex, jsonOPV, catalogData) {
17979
18075
  }
17980
18076
  function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogProps, plannerPaletteViewInfo) {
17981
18077
  //Hier muss es dann reingespeichert werden catalogPlannerArticlesView;
17982
- var getFilterType = function getFilterType(hasArticleRelation, AVLFilter, AVRFilter, catalogProps) {
18078
+ var getFilterType = function getFilterType(hasArticleRelation, hasAVL, hasAVR, catalogProps) {
17983
18079
  var ret;
17984
18080
  if (hasArticleRelation) {
17985
18081
  if (!catalogProps.showAllItemsInPlanner && !catalogProps.showAccOnDpOnly) plannerPaletteViewInfo.filterType['Accessoire'] = true;
17986
18082
  ret = 'Accessoire';
17987
- } else if (AVLFilter.length > 0 && AVRFilter.length > 0) {
18083
+ } else if (hasAVL && hasAVR) {
17988
18084
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockLR'] = true;
17989
18085
  ret = 'DockLR';
17990
- } else if (AVLFilter.length > 0) {
18086
+ } else if (hasAVL) {
17991
18087
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockR'] = true;
17992
18088
  ret = 'DockR';
17993
- } else if (AVRFilter.length > 0) {
18089
+ } else if (hasAVR) {
17994
18090
  if (!catalogProps.showAllItemsInPlanner) plannerPaletteViewInfo.filterType['DockL'] = true;
17995
18091
  ret = 'DockL';
17996
18092
  } else {
@@ -18084,12 +18180,9 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18084
18180
  if (catalogProps.diva3dPlanerShowArticleAsSvg && topSvg.SVG) {
18085
18181
  image = getSVGUrl(topSvg.SVG, mediaUrl);
18086
18182
  }
18087
- if (topSvg.HasAVL && catPlanArticle.avlFilter.length == 0) {
18088
- catPlanArticle.avlFilter = ['ALWAYS_DOCKABLE'];
18089
- }
18090
- if (topSvg.HasAVR && catPlanArticle.avrFilter.length == 0) {
18091
- catPlanArticle.avrFilter = ['ALWAYS_DOCKABLE'];
18092
- }
18183
+
18184
+ // An empty AVL/AVR filter means "no connector restriction" and is treated as a match by the
18185
+ // docking/palette comparison (see checkDPFilterDoMatch / checkDPAV*FilterDoMatch). No sentinel needed.
18093
18186
 
18094
18187
  //Wäre für Rofl Benz gedacht um die Information zu speichern welche Artikel in welcher Ausrichtung ausmultipliziert werden
18095
18188
  if (topSvg.JsFormula.includes('202_LI')) {
@@ -18097,7 +18190,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18097
18190
  } else if (topSvg.JsFormula.includes('202_RE')) {
18098
18191
  elementName = elementName + ' (Rechts)';
18099
18192
  }
18100
- var filterType = getFilterType(catPlanArticle.isArticleRelation, topSvg.HasAVL ? catPlanArticle.avlFilter : [], topSvg.HasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18193
+ var filterType = getFilterType(catPlanArticle.isArticleRelation, !!topSvg.HasAVL, !!topSvg.HasAVR, catalogProps);
18101
18194
  catPlanArticle.filterType = filterType;
18102
18195
  //ausmultiplizierte Elemente (über meherere SVGs)
18103
18196
  var catPlanArtView = {
@@ -18150,7 +18243,7 @@ function initCatalogPlannerArticleView$1(catalogData, catPlanArticle, catalogPro
18150
18243
  }
18151
18244
  if (!catPlanArticle.hasTopSvgsWithFormula || catPlanArticle.topSvgsWithFormula.length == 1) {
18152
18245
  var _catalogArticle$artic2;
18153
- var _filterType = getFilterType(catPlanArticle.isArticleRelation, catPlanArticle.topHasAVL ? catPlanArticle.avlFilter : [], catPlanArticle.topHasAVR ? catPlanArticle.avrFilter : [], catalogProps);
18246
+ var _filterType = getFilterType(catPlanArticle.isArticleRelation, !!catPlanArticle.topHasAVL, !!catPlanArticle.topHasAVR, catalogProps);
18154
18247
  catPlanArticle.filterType = _filterType;
18155
18248
  //Artikelbild ist abh�ngig von DIVA3DPlanerShowArticleAsSvg das SVG des Elements
18156
18249
  if (catalogProps.diva3dPlanerShowArticleAsSvg && (catPlanArticle.hasTopSvg || catPlanArticle.hasTopSvgsWithFormula)) {
@@ -18588,6 +18681,11 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
18588
18681
  get: function get() {
18589
18682
  return this.opv.catalogOPV.value;
18590
18683
  }
18684
+ }, {
18685
+ key: "properties",
18686
+ get: function get() {
18687
+ return this.opv.catalogOPV.properties;
18688
+ }
18591
18689
  }, {
18592
18690
  key: "metaData",
18593
18691
  get: function get() {
@@ -19693,7 +19791,15 @@ function _loadMoreFromIDMArticles() {
19693
19791
  }).map(function (a) {
19694
19792
  return a.featureClassRefNo;
19695
19793
  })));
19696
- 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];
19794
+ 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 () {
19795
+ var getUrl = set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds);
19796
+ if (getUrl.length > 2000) {
19797
+ return set.api.getDataCache(set.api.getIDMDecisionsQueryUrl(set.CatalogData.accountGuid), undefined, undefined, 'enricher', 'POST', {
19798
+ decisionNos: toLoadDecisionIds.join(';')
19799
+ });
19800
+ }
19801
+ return set.api.getDataCache(getUrl, undefined, undefined, 'enricher');
19802
+ }() : undefined];
19697
19803
  _context5.next = 16;
19698
19804
  return Promise.all(promises);
19699
19805
  case 16:
@@ -19728,7 +19834,7 @@ function _loadMoreFromIDMArticles() {
19728
19834
  catalogArticleData = catalogArticleDatas[_i6];
19729
19835
  catalogArticleData.articleIDMDecisions = sortDecisions(set.CatalogData.getDecisionsByNo(_toConsumableArray(new Set([].concat(_toConsumableArray(set.CatalogData.globalDecisions.map(function (g) {
19730
19836
  return g.decisionNo;
19731
- })), _toConsumableArray((_catalogArticleData$d2 = catalogArticleData.decisionsRefs) !== null && _catalogArticleData$d2 !== void 0 ? _catalogArticleData$d2 : []))))));
19837
+ })), _toConsumableArray(set.CatalogData.serieDecisionRefs), _toConsumableArray((_catalogArticleData$d2 = catalogArticleData.decisionsRefs) !== null && _catalogArticleData$d2 !== void 0 ? _catalogArticleData$d2 : []))))));
19732
19838
  }
19733
19839
  featureClasses.map(function (fc) {
19734
19840
  return set.CatalogData.loadedFeatureClasses.push(fc);
@@ -19897,7 +20003,7 @@ var getToLoadDecisionIds = function getToLoadDecisionIds(catalogArticleDatas, se
19897
20003
  }
19898
20004
  var neededDecisionsIds = _toConsumableArray(new Set([].concat(_toConsumableArray(set.CatalogData.globalDecisions.map(function (g) {
19899
20005
  return g.decisionNo;
19900
- })), _toConsumableArray(allArticleDecisions))));
20006
+ })), _toConsumableArray(set.CatalogData.serieDecisionRefs), _toConsumableArray(allArticleDecisions))));
19901
20007
  var toLoadDecisionIds = [];
19902
20008
  for (var _i = 0; _i < neededDecisionsIds.length; _i++) {
19903
20009
  var found = set.CatalogData.getDecisionByNo(neededDecisionsIds[_i]);
@@ -19960,15 +20066,14 @@ var getPriceFeatureGroups = function getPriceFeatureGroups(catalogArticleDatas,
19960
20066
  };
19961
20067
  var initializeDecision = function initializeDecision(decision, idmOptionGroups) {
19962
20068
  var _decision$optionCombi;
20069
+ // optionCombinations already arrive sorted by sequence from the backend.
19963
20070
  var optionCombinations = (_decision$optionCombi = decision.optionCombinations) === null || _decision$optionCombi === void 0 ? void 0 : _decision$optionCombi.map(function (c) {
19964
20071
  return _objectSpread$p(_objectSpread$p({}, c), {}, {
19965
20072
  projectOptionsSetRefs: parseOptionSetRef(c.projectOptionsSetRefs, idmOptionGroups)
19966
20073
  });
19967
20074
  });
19968
20075
  return _objectSpread$p(_objectSpread$p({}, decision), {}, {
19969
- optionCombinations: optionCombinations === null || optionCombinations === void 0 ? void 0 : optionCombinations.sort(function (a, b) {
19970
- return a.sequence - b.sequence;
19971
- })
20076
+ optionCombinations: optionCombinations
19972
20077
  });
19973
20078
  };
19974
20079
  var initializePriceFeatureGroups = function initializePriceFeatureGroups(priceFeatureGroup, idmOptionGroups) {
@@ -20067,7 +20172,7 @@ var initFeature = function initFeature(feature, catalogArticleData, set) {
20067
20172
  catalogArticleData.articleOptions[newArticleFeature.codex] = newArticleFeature;
20068
20173
  };
20069
20174
  function getCatalogFeatureType(feature, catalogArticleData, set) {
20070
- var _set$CatalogData$cata, _set$CatalogData$cata2, _set$CatalogData$cata3, _feature$detailInfos, _properties$find, _properties$find2, _ref, _properties$find3, _feature$options$, _optionMask$hidden;
20175
+ var _set$CatalogData$cata, _set$CatalogData$cata2, _set$CatalogData$cata3, _feature$detailInfos, _optionMask$hidden;
20071
20176
  var featureClass = set.CatalogData.getFeatureClass(catalogArticleData.featureClassRefNo);
20072
20177
  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];
20073
20178
  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());
@@ -20084,17 +20189,9 @@ function getCatalogFeatureType(feature, catalogArticleData, set) {
20084
20189
  headerPosVariationType: feature.headerPosVariationType,
20085
20190
  measureKey: feature.measureParameter,
20086
20191
  sequenceNo: feature.sequenceNo,
20087
- sendToPIM: !!(properties !== null && properties !== void 0 && (_properties$find = properties.find(function (p) {
20088
- return p.Codex == 'SendToPim';
20089
- })) !== null && _properties$find !== void 0 && _properties$find.Value),
20090
- isMultiselect: !!(properties !== null && properties !== void 0 && (_properties$find2 = properties.find(function (p) {
20091
- return p.Codex == 'Multiselect';
20092
- })) !== null && _properties$find2 !== void 0 && _properties$find2.Value),
20093
- layout: (_ref = properties === null || properties === void 0 || (_properties$find3 = properties.find(function (p) {
20094
- return p.Codex == 'LAYOUT';
20095
- })) === 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) {
20096
- return d.functionType == 'OPV';
20097
- }) ? 'IMAGE' : 'TEXT',
20192
+ sendToPIM: feature.sendToPim,
20193
+ isMultiselect: feature.isMultiselect,
20194
+ layout: feature.layout,
20098
20195
  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]),
20099
20196
  property: properties,
20100
20197
  propertyObj: {}
@@ -20158,12 +20255,9 @@ function getCatalogOptionType(option, set) {
20158
20255
  origName: name,
20159
20256
  name_locales: option.optionText,
20160
20257
  property: properties,
20161
- image: getLowResUrl((_option$detailInfos = option.detailInfos) === null || _option$detailInfos === void 0 || (_option$detailInfos = _option$detailInfos.find(function (d) {
20162
- return d.functionType == 'OPV';
20163
- })) === null || _option$detailInfos === void 0 ? void 0 : _option$detailInfos.url),
20164
- images: (_option$detailInfos2 = option.detailInfos) === null || _option$detailInfos2 === void 0 || (_option$detailInfos2 = _option$detailInfos2.filter(function (d) {
20165
- return d.functionType == 'OPV';
20166
- })) === null || _option$detailInfos2 === void 0 ? void 0 : _option$detailInfos2.map(function (o) {
20258
+ // detailInfos is already limited to "OPV" entries by the backend.
20259
+ 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),
20260
+ images: (_option$detailInfos2 = option.detailInfos) === null || _option$detailInfos2 === void 0 ? void 0 : _option$detailInfos2.map(function (o) {
20167
20261
  var _getLowResUrl, _option$detailInfoRef, _option$detailInfoRef2;
20168
20262
  return {
20169
20263
  detailInfoNo: o.detailInfoNo,
@@ -20173,7 +20267,7 @@ function getCatalogOptionType(option, set) {
20173
20267
  })) !== null && _option$detailInfoRef !== void 0 ? _option$detailInfoRef : []
20174
20268
  };
20175
20269
  }),
20176
- hexColor: rgbToHex(option.materialColorR, option.materialColorG, option.materialColorB),
20270
+ hexColor: option.materialColorHex,
20177
20271
  description: DivaUtils.getLocals(option.optionCommentText, set.api.getLanguageLowercase()),
20178
20272
  description_locales: option.optionCommentText,
20179
20273
  isTexture: false,
@@ -20244,20 +20338,12 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
20244
20338
  };
20245
20339
  return opv;
20246
20340
  }
20247
- function componentToHex(c) {
20248
- var hex = c.toString(16);
20249
- return hex.length == 1 ? '0' + hex : hex;
20250
- }
20251
- function rgbToHex(r, g, b) {
20252
- if (r === undefined || g === undefined || b === undefined) return undefined;
20253
- return '#' + componentToHex(r) + componentToHex(g) + componentToHex(b);
20254
- }
20255
20341
 
20256
20342
  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; }
20257
20343
  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(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; }
20258
20344
  var LOG$k = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
20259
20345
  function initIDMCatalogData(serie, orderSet, api) {
20260
- var _serie$decisions, _serie$decisions2;
20346
+ var _serie$decisions, _serie$decisions2, _serie$decisionRefs;
20261
20347
  var catalog = serie.catalogData;
20262
20348
  var catalogData = {
20263
20349
  accountGuid: orderSet.AccountGUID,
@@ -20283,6 +20369,7 @@ function initIDMCatalogData(serie, orderSet, api) {
20283
20369
  loadedDecisions: _toConsumableArray(((_serie$decisions2 = serie.decisions) !== null && _serie$decisions2 !== void 0 ? _serie$decisions2 : []).map(function (d) {
20284
20370
  return initializeDecision(d, catalog.optionGroups);
20285
20371
  })),
20372
+ serieDecisionRefs: (_serie$decisionRefs = serie.decisionRefs) !== null && _serie$decisionRefs !== void 0 ? _serie$decisionRefs : [],
20286
20373
  //TODO zu klären mit Philipp
20287
20374
  //brandName: '',
20288
20375
  //additionalCatalogPrice: json.AdditionalCatalogPrice,
@@ -20322,9 +20409,12 @@ function initIDMArticles(jsonItems, catalogData) {
20322
20409
  }
20323
20410
  }
20324
20411
  function getCatalogArticle(article, catalogData) {
20325
- 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;
20412
+ 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;
20326
20413
  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];
20327
20414
  var lang = catalogData.api.getLanguageLowercase();
20415
+ // empty locale objects ({} or only empty strings) are truthy, so ?? alone doesn't fall back
20416
+ var fullText = hasLocaleText(article.fullText) ? article.fullText : article.shortText;
20417
+ var shortText = hasLocaleText(article.shortText) ? article.shortText : article.fullText;
20328
20418
  var featureProperties = convertProperties(article.properties, lang, 'featureNos');
20329
20419
  var optionProperties = convertProperties(article.properties, lang, 'optionKeys');
20330
20420
  return {
@@ -20347,14 +20437,14 @@ function getCatalogArticle(article, catalogData) {
20347
20437
  hasArticleRelations: false,
20348
20438
  hasPartlistArticle: !!article.partListRef,
20349
20439
  hasType1Dependencies: false,
20350
- name: DivaUtils.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),
20351
- longDescription: DivaUtils.getLocals((_article$fullText = article.fullText) !== null && _article$fullText !== void 0 ? _article$fullText : article.shortText, lang),
20352
- longDescription_locales: (_article$fullText2 = article.fullText) !== null && _article$fullText2 !== void 0 ? _article$fullText2 : article.shortText,
20440
+ name: DivaUtils.getLocals((_articleMask$name = articleMask === null || articleMask === void 0 ? void 0 : articleMask.name) !== null && _articleMask$name !== void 0 ? _articleMask$name : fullText, lang),
20441
+ longDescription: DivaUtils.getLocals(fullText, lang),
20442
+ longDescription_locales: fullText,
20353
20443
  isHidden: !!(articleMask !== null && articleMask !== void 0 && articleMask.hidden),
20354
- origName: DivaUtils.getLocals((_article$fullText3 = article.fullText) !== null && _article$fullText3 !== void 0 ? _article$fullText3 : article.shortText, lang),
20355
- shortName: DivaUtils.getLocals(article.shortText, lang),
20356
- origShortName: DivaUtils.getLocals(article.shortText, lang),
20357
- shortName_locales: article.shortText,
20444
+ origName: DivaUtils.getLocals(fullText, lang),
20445
+ shortName: DivaUtils.getLocals(shortText, lang),
20446
+ origShortName: DivaUtils.getLocals(shortText, lang),
20447
+ shortName_locales: shortText,
20358
20448
  properties: [].concat(_toConsumableArray(convertProperties(article.properties, lang)), _toConsumableArray((_articleMask$properti = articleMask === null || articleMask === void 0 ? void 0 : articleMask.properties) !== null && _articleMask$properti !== void 0 ? _articleMask$properti : [])),
20359
20449
  optionProperties: optionProperties,
20360
20450
  featureProperties: featureProperties,
@@ -20414,6 +20504,11 @@ function getCatalogArticle(article, catalogData) {
20414
20504
  modelName3D: jsonArticle.ModelName3D && jsonArticle.ModelName3D != '' ? jsonArticle.ModelName3D : undefined,
20415
20505
  */
20416
20506
 
20507
+ function hasLocaleText(locales) {
20508
+ return !!locales && Object.values(locales).some(function (v) {
20509
+ return !!(v !== null && v !== void 0 && v.trim());
20510
+ });
20511
+ }
20417
20512
  function getLowResUrl(url) {
20418
20513
  return url === null || url === void 0 ? void 0 : url.replace('.jpg', '_low.jpg').replace('.jpeg', '_low.jpeg').replace('.png', '_low.png');
20419
20514
  }
@@ -20654,6 +20749,8 @@ var DivaCatalogData = /*#__PURE__*/function () {
20654
20749
  //
20655
20750
  ignoreLayerAVNAVS: false,
20656
20751
  //
20752
+ ignoreDockingNumber: false,
20753
+ // ignoriert die Nummern-Regel beim Andocken (z.B. AVU1 darf an AVO2). Die Nummer dient dann nur der Identifikation, nicht als Zuordnungsschlüssel.
20657
20754
  checkCollisionForDifferentLayers: [],
20658
20755
  //
20659
20756
 
@@ -20706,6 +20803,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
20706
20803
  // ergänzt einen Übersetzbaren string am Ende des Names
20707
20804
  dontShowAccStep: false,
20708
20805
  useTypeNrAsArticleNrEKText: false,
20806
+ hideSubPosArticleCodexEKText: false,
20807
+ addPosInvisibilityToOL: false,
20808
+ // PosInvisibility wird nur in die Orderlines übernommen wenn der MetaTag ADD_POS_INVISIBILITY_TO_OL == 1 ist
20709
20809
  addNewLineBeforRuleDesc: false,
20710
20810
  // für Kirchner neue zeile im Checkout vor der Klanner und der RuleCes von den Partlistarticles
20711
20811
  useEdoArticlesOnOpvs: [],
@@ -20953,6 +21053,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
20953
21053
  get: function get() {
20954
21054
  return this.catalogData.globalDecisions;
20955
21055
  }
21056
+ }, {
21057
+ key: "serieDecisionRefs",
21058
+ get: function get() {
21059
+ var _this$catalogData$ser;
21060
+ return (_this$catalogData$ser = this.catalogData.serieDecisionRefs) !== null && _this$catalogData$ser !== void 0 ? _this$catalogData$ser : [];
21061
+ }
20956
21062
  }, {
20957
21063
  key: "loadedFeatureClasses",
20958
21064
  get: function get() {
@@ -21199,6 +21305,24 @@ var DivaCatalogData = /*#__PURE__*/function () {
21199
21305
  return _ret;
21200
21306
  }
21201
21307
  }
21308
+
21309
+ /**
21310
+ * Default dock filter applied when nothing is selected (e.g. after a deselect or when adding a new element).
21311
+ * When completeness warnings are hidden, any element may start a planning, so every dock type the catalog
21312
+ * actually has is shown. Otherwise the catalog's configured start filter (startFilterParams / available
21313
+ * start types) is used.
21314
+ */
21315
+ }, {
21316
+ key: "defaultDockFilter",
21317
+ get: function get() {
21318
+ if (this.doHideCompletenessWarning) {
21319
+ var filterType = this.plannerPaletteViewInfo.filterType;
21320
+ return Object.keys(filterType).filter(function (key) {
21321
+ return filterType[key];
21322
+ });
21323
+ }
21324
+ return this.getStartFilter;
21325
+ }
21202
21326
  }, {
21203
21327
  key: "dontHideOption",
21204
21328
  get: function get() {
@@ -21397,6 +21521,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21397
21521
  get: function get() {
21398
21522
  return this.catalogProps.useTypeNrAsArticleNrEKText;
21399
21523
  }
21524
+ }, {
21525
+ key: "hideSubPosArticleCodexEKText",
21526
+ get: function get() {
21527
+ return this.catalogProps.hideSubPosArticleCodexEKText;
21528
+ }
21400
21529
  }, {
21401
21530
  key: "hasAlternateRenderings",
21402
21531
  get: function get() {
@@ -21679,6 +21808,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
21679
21808
  get: function get() {
21680
21809
  return this.catalogProps.dontShowAccStep;
21681
21810
  }
21811
+ }, {
21812
+ key: "addPosInvisibilityToOL",
21813
+ get: function get() {
21814
+ return this.catalogProps.addPosInvisibilityToOL;
21815
+ }
21682
21816
 
21683
21817
  //Planner configurations
21684
21818
  }, {
@@ -21688,6 +21822,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
21688
21822
  ignoreLayerAVC: this.catalogProps.ignoreLayerAVC,
21689
21823
  ignoreLayerAVOAVU: this.catalogProps.ignoreLayerAVOAVU,
21690
21824
  ignoreLayerAVNAVS: this.catalogProps.ignoreLayerAVNAVS,
21825
+ ignoreDockingNumber: this.catalogProps.ignoreDockingNumber,
21691
21826
  showAccOnDpOnly: this.catalogProps.showAccOnDpOnly,
21692
21827
  dockAccOnAvoOnly: this.catalogProps.dockAccOnAvoOnly,
21693
21828
  hideAccessoriesInPlanner: this.catalogProps.accessorieStepAsPlanner,
@@ -21847,6 +21982,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
21847
21982
  case 'IGNORELAYERAVNAVS':
21848
21983
  _this4.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
21849
21984
  break;
21985
+ case 'IGNOREDOCKINGNUMBER':
21986
+ _this4.catalogProps.ignoreDockingNumber = item.Value == '1';
21987
+ break;
21850
21988
  case 'CHECK_COLLISION_DIFFERENT_LAYERS':
21851
21989
  _this4.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
21852
21990
  return parseInt(t);
@@ -21965,6 +22103,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
21965
22103
  case 'USE_TYPENR_AS_ARTICLENR_EKTEXT':
21966
22104
  _this4.catalogProps.useTypeNrAsArticleNrEKText = '1' == item.Value;
21967
22105
  break;
22106
+ case 'HIDE_SUBPOS_ARTICLECODEX_EKTEXT':
22107
+ _this4.catalogProps.hideSubPosArticleCodexEKText = '1' == item.Value;
22108
+ break;
22109
+ case 'ADD_POS_INVISIBILITY_TO_OL':
22110
+ _this4.catalogProps.addPosInvisibilityToOL = '1' == item.Value;
22111
+ break;
21968
22112
  case 'ADD_NEW_LINE_BEFOR_RULEDESC':
21969
22113
  _this4.catalogProps.addNewLineBeforRuleDesc = '1' == item.Value;
21970
22114
  break;
@@ -22303,11 +22447,12 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22303
22447
  key: "loadDivaCatalog",
22304
22448
  value: function () {
22305
22449
  var _loadDivaCatalog = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(state, catalogCodex, orderSet) {
22450
+ var _orderSet$OrderLines;
22306
22451
  var promises, _yield$Promise$all, _yield$Promise$all2, catalogApiData, catalogArticleListData, catalogArticlePlannerListData, additionalModelInfos, mask, _state$catalogMask, catalogData;
22307
22452
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
22308
22453
  while (1) switch (_context2.prev = _context2.next) {
22309
22454
  case 0:
22310
- 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(state.onlyRunLogic ? [] : _toConsumableArray(new Map(orderSet.OrderLines.filter(function (ol) {
22455
+ 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(state.onlyRunLogic ? [] : _toConsumableArray(new Map(((_orderSet$OrderLines = orderSet.OrderLines) !== null && _orderSet$OrderLines !== void 0 ? _orderSet$OrderLines : []).filter(function (ol) {
22311
22456
  var _ol$VariantBasketData;
22312
22457
  return ((_ol$VariantBasketData = ol.VariantBasketDatas) === null || _ol$VariantBasketData === void 0 ? void 0 : _ol$VariantBasketData.length) && ol.ArticleType === 'OPTIONTREE';
22313
22458
  }).map(function (os) {
@@ -22338,7 +22483,8 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22338
22483
  break;
22339
22484
  }
22340
22485
  _context2.next = 16;
22341
- return state.api.getDataCache(state.api.getCatalogMaskQS(catalogApiData.GUID, state.api.OrganizationId), undefined, undefined, 'enricher');
22486
+ 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
22487
+ );
22342
22488
  case 16:
22343
22489
  mask = _context2.sent;
22344
22490
  case 17:
@@ -23513,45 +23659,19 @@ var DivaEngine = /*#__PURE__*/function () {
23513
23659
  value: function updateIDMSpecificFeature(ops) {
23514
23660
  var _ops$option$idmVarian, _ops$option$idmVarian2, _ops$option$idmVarian3, _ops$option$idmVarian4, _ops$option$idmVarian5;
23515
23661
  if (!this.article.parentHasSameOption(ops.optionCodex)) return;
23662
+ // The OPV codex embeds the option codex as a prefix: "OPV<body>_<connector>" (e.g. "OPV1090_CT500"),
23663
+ // while ops.optionCodex is "OPT<body>". Strip that prefix so the filter holds the bare connector codex.
23664
+ var toConnectorCodex = function toConnectorCodex(value) {
23665
+ var prefix = 'OPV' + ops.optionCodex.substring(3) + '_';
23666
+ return value.codex.startsWith(prefix) ? value.codex.substring(prefix.length) : value.codex;
23667
+ };
23516
23668
  if ([90, 1090].includes((_ops$option$idmVarian = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian !== void 0 ? _ops$option$idmVarian : 0)) {
23517
23669
  //R (Anschlusstyp R) - AVR
23518
- var newAVRFilter = [],
23519
- visibleOPVs = ops.visibleOptionValues;
23520
- var _iterator5 = _createForOfIteratorHelper$c(visibleOPVs),
23521
- _step5;
23522
- try {
23523
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23524
- var _step5$value = _slicedToArray(_step5.value, 2),
23525
- key = _step5$value[0],
23526
- value = _step5$value[1];
23527
- newAVRFilter.push(value.codex.substring(3));
23528
- }
23529
- } catch (err) {
23530
- _iterator5.e(err);
23531
- } finally {
23532
- _iterator5.f();
23533
- }
23534
- this.article.newPossibleAVRFilters = newAVRFilter;
23670
+ this.article.newPossibleAVRFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23535
23671
  }
23536
23672
  if ([89, 1089].includes((_ops$option$idmVarian2 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian2 !== void 0 ? _ops$option$idmVarian2 : 0)) {
23537
23673
  //L (Anschlusstyp L) - AVL
23538
- var newAVLFilter = [],
23539
- _visibleOPVs = ops.visibleOptionValues;
23540
- var _iterator6 = _createForOfIteratorHelper$c(_visibleOPVs),
23541
- _step6;
23542
- try {
23543
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
23544
- var _step6$value = _slicedToArray(_step6.value, 2),
23545
- _key = _step6$value[0],
23546
- _value = _step6$value[1];
23547
- newAVLFilter.push(_value.codex.substring(3));
23548
- }
23549
- } catch (err) {
23550
- _iterator6.e(err);
23551
- } finally {
23552
- _iterator6.f();
23553
- }
23554
- this.article.newPossibleAVLFilters = newAVLFilter;
23674
+ this.article.newPossibleAVLFilters = Array.from(ops.visibleOptionValues.values()).map(toConnectorCodex);
23555
23675
  }
23556
23676
  //beim article abspeichern. Das Planungselement kann es sich per Funktion von dort dann holen
23557
23677
  if ([97, 1097].includes((_ops$option$idmVarian3 = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian3 !== void 0 ? _ops$option$idmVarian3 : 0)) {
@@ -23780,18 +23900,18 @@ var DivaEngine = /*#__PURE__*/function () {
23780
23900
  myDecisions[_i].disableHistory = [];
23781
23901
  myDecisions[_i].activeCombination = undefined;
23782
23902
  }
23783
- var _iterator7 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23784
- _step7;
23903
+ var _iterator5 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23904
+ _step5;
23785
23905
  try {
23786
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
23787
- var ops = _step7.value;
23906
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
23907
+ var ops = _step5.value;
23788
23908
  ops.updateVisibleOptionValues(ops.option.articleOptionValues);
23789
23909
  ops.definedBySetFeatureFixed = false;
23790
23910
  }
23791
23911
  } catch (err) {
23792
- _iterator7.e(err);
23912
+ _iterator5.e(err);
23793
23913
  } finally {
23794
- _iterator7.f();
23914
+ _iterator5.f();
23795
23915
  }
23796
23916
  this.catalogDecisionsByNumber = new Map(this.article.catalogArticle.articleDecisions.map(function (d) {
23797
23917
  return [d.Number, d];
@@ -23922,11 +24042,11 @@ var DivaEngine = /*#__PURE__*/function () {
23922
24042
  key: "updateIDMSpecificFeatures",
23923
24043
  value: function updateIDMSpecificFeatures() {
23924
24044
  //updaten idm planner specific options
23925
- var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
23926
- _step8;
24045
+ var _iterator6 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24046
+ _step6;
23927
24047
  try {
23928
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
23929
- var ops = _step8.value;
24048
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
24049
+ var ops = _step6.value;
23930
24050
  //when an option has no decisions the first visible optionValue has to be selected per default
23931
24051
  if (ops.val === undefined && ops.visibleCount && !this.article.CatalogData.useDiomexConfigLogic) {
23932
24052
  this.assignOptionValue(ops.optionCodex, ops.visibleOPVKeys[0]);
@@ -23947,9 +24067,9 @@ var DivaEngine = /*#__PURE__*/function () {
23947
24067
  }
23948
24068
  }
23949
24069
  } catch (err) {
23950
- _iterator8.e(err);
24070
+ _iterator6.e(err);
23951
24071
  } finally {
23952
- _iterator8.f();
24072
+ _iterator6.f();
23953
24073
  }
23954
24074
  }
23955
24075
  }, {
@@ -24183,21 +24303,21 @@ var DivaEngine = /*#__PURE__*/function () {
24183
24303
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
24184
24304
  return v.slice(1);
24185
24305
  })); // remove the '!' from the value
24186
- var _iterator9 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24187
- _step9;
24306
+ var _iterator7 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
24307
+ _step7;
24188
24308
  try {
24189
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24190
- var _step9$value = _slicedToArray(_step9.value, 2),
24191
- opvKey = _step9$value[0],
24192
- _opv = _step9$value[1];
24309
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
24310
+ var _step7$value = _slicedToArray(_step7.value, 2),
24311
+ opvKey = _step7$value[0],
24312
+ _opv = _step7$value[1];
24193
24313
  if (!negatedValues.has(opvKey)) {
24194
24314
  validOPVs[OPT].set(opvKey, _opv);
24195
24315
  }
24196
24316
  }
24197
24317
  } catch (err) {
24198
- _iterator9.e(err);
24318
+ _iterator7.e(err);
24199
24319
  } finally {
24200
- _iterator9.f();
24320
+ _iterator7.f();
24201
24321
  }
24202
24322
  } else {
24203
24323
  validOPVs[OPT] = new Map(ops.visibleOptionValues);
@@ -24325,11 +24445,11 @@ var DivaEngine = /*#__PURE__*/function () {
24325
24445
  }, {
24326
24446
  key: "evalShowOnlyWhenHasPrice",
24327
24447
  value: function evalShowOnlyWhenHasPrice() {
24328
- var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24329
- _step10;
24448
+ var _iterator8 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24449
+ _step8;
24330
24450
  try {
24331
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
24332
- var ops = _step10.value;
24451
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
24452
+ var ops = _step8.value;
24333
24453
  for (var jKey in ops.visibleOptionValues) {
24334
24454
  var opv = ops.visibleOptionValues.get(jKey);
24335
24455
  if (opv.showOnlyWhenHasPrice && opv.price == 0) {
@@ -24341,9 +24461,9 @@ var DivaEngine = /*#__PURE__*/function () {
24341
24461
  }
24342
24462
  }
24343
24463
  } catch (err) {
24344
- _iterator10.e(err);
24464
+ _iterator8.e(err);
24345
24465
  } finally {
24346
- _iterator10.f();
24466
+ _iterator8.f();
24347
24467
  }
24348
24468
  }
24349
24469
 
@@ -24817,12 +24937,12 @@ var DivaEngine = /*#__PURE__*/function () {
24817
24937
  }
24818
24938
 
24819
24939
  //mengen und größenabhängige Preisberechungn.
24820
- var _iterator11 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24821
- _step11;
24940
+ var _iterator9 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24941
+ _step9;
24822
24942
  try {
24823
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
24943
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
24824
24944
  var _ops$addToMeasure;
24825
- var ops = _step11.value;
24945
+ var ops = _step9.value;
24826
24946
  var OP = ops.optionCodex;
24827
24947
  var mUnit = ops.measureUnit;
24828
24948
  var pUnit = ops.priceUnit;
@@ -24905,15 +25025,15 @@ var DivaEngine = /*#__PURE__*/function () {
24905
25025
  }
24906
25026
  //jetzt nochmal prozentuelle Preise mit TargetOption berechnen
24907
25027
  } catch (err) {
24908
- _iterator11.e(err);
25028
+ _iterator9.e(err);
24909
25029
  } finally {
24910
- _iterator11.f();
25030
+ _iterator9.f();
24911
25031
  }
24912
- var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24913
- _step12;
25032
+ var _iterator10 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25033
+ _step10;
24914
25034
  try {
24915
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
24916
- var _ops4 = _step12.value;
25035
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
25036
+ var _ops4 = _step10.value;
24917
25037
  var targetPPGPrefixes = _ops4.targetPPGPrefixes;
24918
25038
  if (!targetPPGPrefixes) continue;
24919
25039
  var _loop7 = function _loop7() {
@@ -24933,9 +25053,9 @@ var DivaEngine = /*#__PURE__*/function () {
24933
25053
  }
24934
25054
  }
24935
25055
  } catch (err) {
24936
- _iterator12.e(err);
25056
+ _iterator10.e(err);
24937
25057
  } finally {
24938
- _iterator12.f();
25058
+ _iterator10.f();
24939
25059
  }
24940
25060
  for (var _i5 = 0; _i5 < this.article.priceRefs.length; _i5++) {
24941
25061
  var basePriceRef = this.article.priceRefs[_i5];
@@ -24947,19 +25067,19 @@ var DivaEngine = /*#__PURE__*/function () {
24947
25067
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
24948
25068
  });
24949
25069
  if (!priceRef) {
24950
- var _iterator13 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
24951
- _step13;
25070
+ var _iterator11 = _createForOfIteratorHelper$c(_this5.article.articleOptionStates.values()),
25071
+ _step11;
24952
25072
  try {
24953
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
24954
- var ops = _step13.value;
25073
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
25074
+ var ops = _step11.value;
24955
25075
  if (ops.ppg && ops.ppg.split('_')[0] == targetPrefix) {
24956
25076
  myArtOpv = ops;
24957
25077
  }
24958
25078
  }
24959
25079
  } catch (err) {
24960
- _iterator13.e(err);
25080
+ _iterator11.e(err);
24961
25081
  } finally {
24962
- _iterator13.f();
25082
+ _iterator11.f();
24963
25083
  }
24964
25084
  }
24965
25085
 
@@ -24985,36 +25105,36 @@ var DivaEngine = /*#__PURE__*/function () {
24985
25105
  myArticleBasePrice += priceRef.Price ? DivaUtils.decimalAdjust('round', (_priceRef$calcPrice = priceRef.calcPrice) !== null && _priceRef$calcPrice !== void 0 ? _priceRef$calcPrice : priceRef.Price, digits) : 0.0;
24986
25106
  }
24987
25107
  var articleUsedCalcPrice = myArticleBasePrice;
24988
- var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
24989
- _step14;
25108
+ var _iterator12 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25109
+ _step12;
24990
25110
  try {
24991
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
24992
- var tmpOps = _step14.value;
25111
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
25112
+ var tmpOps = _step12.value;
24993
25113
  articleUsedCalcPrice = this.getOptionPrice(articleUsedCalcPrice, tmpOps.option, digits);
24994
25114
  }
24995
25115
 
24996
25116
  //jetzt nochmal prozentuelle Preise mit GLOBAL tarbetoption berechnen
24997
25117
  /* TODO ABklären mit Franz - ops hat nie die Optionen - targetPPGPrefixes - ich glaube hier sollte article.priceRefs durchlaufen werden. */
24998
25118
  } catch (err) {
24999
- _iterator14.e(err);
25119
+ _iterator12.e(err);
25000
25120
  } finally {
25001
- _iterator14.f();
25121
+ _iterator12.f();
25002
25122
  }
25003
- var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25004
- _step15;
25123
+ var _iterator13 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25124
+ _step13;
25005
25125
  try {
25006
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25126
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
25007
25127
  var _ops5$targetPPGPrefix, _ops5$targetPPGPrefix2;
25008
- var _ops5 = _step15.value;
25128
+ var _ops5 = _step13.value;
25009
25129
  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;
25010
25130
  if (_ops5.isPercentage && targetOption == 'GLOBAL') {
25011
25131
  articleUsedCalcPrice = articleUsedCalcPrice * (1 + _ops5.calcPrice);
25012
25132
  }
25013
25133
  }
25014
25134
  } catch (err) {
25015
- _iterator15.e(err);
25135
+ _iterator13.e(err);
25016
25136
  } finally {
25017
- _iterator15.f();
25137
+ _iterator13.f();
25018
25138
  }
25019
25139
  for (var _i7 = 0; _i7 < this.article.priceRefs.length; _i7++) {
25020
25140
  var _priceRef = this.article.priceRefs[_i7];
@@ -25156,11 +25276,11 @@ var DivaEngine = /*#__PURE__*/function () {
25156
25276
  if (a[i].trim() != '') {
25157
25277
  var searchOpt = 'OPT' + a[i].trim();
25158
25278
  //Optionsbaum des Artikels durchsuchen
25159
- var _iterator16 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25160
- _step16;
25279
+ var _iterator14 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25280
+ _step14;
25161
25281
  try {
25162
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25163
- var _ops6 = _step16.value;
25282
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
25283
+ var _ops6 = _step14.value;
25164
25284
  if (_ops6.ocd == searchOpt || _ops6.optionCodex == searchOpt) {
25165
25285
  if (_ops6 && _ops6.price > 0) {
25166
25286
  myPercBasePrice += _ops6.price * _ops6.quantity;
@@ -25169,9 +25289,9 @@ var DivaEngine = /*#__PURE__*/function () {
25169
25289
  }
25170
25290
  }
25171
25291
  } catch (err) {
25172
- _iterator16.e(err);
25292
+ _iterator14.e(err);
25173
25293
  } finally {
25174
- _iterator16.f();
25294
+ _iterator14.f();
25175
25295
  }
25176
25296
  }
25177
25297
  }
@@ -25217,18 +25337,18 @@ var DivaEngine = /*#__PURE__*/function () {
25217
25337
  }
25218
25338
 
25219
25339
  // this functions updates the images of OPVs that depend on rules
25220
- var _iterator17 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25221
- _step17;
25340
+ var _iterator15 = _createForOfIteratorHelper$c(this.article.articleOptionStates.values()),
25341
+ _step15;
25222
25342
  try {
25223
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
25224
- var ops = _step17.value;
25225
- var _iterator18 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25226
- _step18;
25343
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
25344
+ var ops = _step15.value;
25345
+ var _iterator16 = _createForOfIteratorHelper$c(ops.visibleOptionValues),
25346
+ _step16;
25227
25347
  try {
25228
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
25229
- var _step18$value = _slicedToArray(_step18.value, 2),
25230
- jKey = _step18$value[0],
25231
- opv = _step18$value[1];
25348
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
25349
+ var _step16$value = _slicedToArray(_step16.value, 2),
25350
+ jKey = _step16$value[0],
25351
+ opv = _step16$value[1];
25232
25352
  if (opv.images) {
25233
25353
  var imageFound = false;
25234
25354
  for (var _i10 = 0; _i10 < opv.images.length; _i10++) {
@@ -25247,18 +25367,18 @@ var DivaEngine = /*#__PURE__*/function () {
25247
25367
  }
25248
25368
  }
25249
25369
  } catch (err) {
25250
- _iterator18.e(err);
25370
+ _iterator16.e(err);
25251
25371
  } finally {
25252
- _iterator18.f();
25372
+ _iterator16.f();
25253
25373
  }
25254
25374
  }
25255
25375
 
25256
25376
  // this function calculates an Svg to the current configuration if neccessary (SVG Tausch)
25257
25377
  // if the Article has no SVG Tausch nothing is done
25258
25378
  } catch (err) {
25259
- _iterator17.e(err);
25379
+ _iterator15.e(err);
25260
25380
  } finally {
25261
- _iterator17.f();
25381
+ _iterator15.f();
25262
25382
  }
25263
25383
  var newSVGFile = null;
25264
25384
  var svgChangedViaSvgTausch = false;
@@ -25889,7 +26009,7 @@ var IDMEngine = /*#__PURE__*/function () {
25889
26009
  } else if (!_ops4.valCodex) {
25890
26010
  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)');
25891
26011
  } else if (!targetHasSourceValue) {
25892
- 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>'));
26012
+ 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>'));
25893
26013
  }
25894
26014
  if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set');
25895
26015
  } else if (action.optionRef) {
@@ -25987,7 +26107,7 @@ var IDMEngine = /*#__PURE__*/function () {
25987
26107
  this.logPrice(priceFeatureGroup, index);
25988
26108
  if (index !== undefined) {
25989
26109
  var _this$article$catalog, _this$article$catalog4, _priceFeatureGroup$fe, _priceFeatureGroup$fe2;
25990
- var matichingFinish = priceFeatureGroup.finishes[index];
26110
+ var matichingFinish = priceFeatureGroup.projectFinishes[index];
25991
26111
  var priceKey = 'PRFG' + priceFeatureGroup.priceFeatureGroupNo + '_' + matichingFinish.supplierPriceGroup;
25992
26112
  if (((_this$article$catalog = this.article.catalogArticle.idmPrices) === null || _this$article$catalog === void 0 ? void 0 : _this$article$catalog.prices[priceKey]) === undefined) {
25993
26113
  var _this$article$catalog2, _this$article$catalog3;
@@ -26485,13 +26605,18 @@ var IDMEngine = /*#__PURE__*/function () {
26485
26605
  value: function updateIDMSpecificFeature(myArtOPS) {
26486
26606
  var _myArtOPS$option$idmV, _myArtOPS$option$idmV2, _myArtOPS$option$idmV3, _myArtOPS$option$idmV4, _myArtOPS$option$idmV5;
26487
26607
  if (!this.article.parentHasSameOption(myArtOPS.optionCodex)) return;
26608
+ // The OPV key embeds the option codex as a prefix: "<optionCodex>_<connector>" (e.g. "1089_CT20").
26609
+ // Strip the codex AND the separator so the filter holds the bare connector codex ("CT20").
26610
+ var toConnectorCodex = function toConnectorCodex(key) {
26611
+ return key.startsWith(myArtOPS.optionCodex + '_') ? key.substring(myArtOPS.optionCodex.length + 1) : key;
26612
+ };
26488
26613
  if ([90, 1090].includes((_myArtOPS$option$idmV = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV !== void 0 ? _myArtOPS$option$idmV : 0)) {
26489
26614
  //R (Anschlusstyp R) - AVR
26490
- this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys;
26615
+ this.article.newPossibleAVRFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26491
26616
  }
26492
26617
  if ([89, 1089].includes((_myArtOPS$option$idmV2 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV2 !== void 0 ? _myArtOPS$option$idmV2 : 0)) {
26493
26618
  //L (Anschlusstyp L) - AVL
26494
- this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys;
26619
+ this.article.newPossibleAVLFilters = myArtOPS.visibleOPVKeys.map(toConnectorCodex);
26495
26620
  }
26496
26621
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
26497
26622
  try {
@@ -26855,6 +26980,7 @@ var DivaArticle = /*#__PURE__*/function () {
26855
26980
  partlistDecisionNo: initParams.partlistDecisionNo,
26856
26981
  partListParentArticle: initParams.parentArticle,
26857
26982
  partlistArticleVisibleInTree: initParams.partlistArticleVisibleInTree,
26983
+ posInvisibility: initParams.posInvisibility,
26858
26984
  partlistArticleStandalone: initParams.partlistArticleStandalone,
26859
26985
  partlistGroupPrefix: initParams.partlistGroupPrefix,
26860
26986
  hasPartlistArticle: initParams.hasPartlistArticle ? initParams.hasPartlistArticle : false,
@@ -27007,6 +27133,11 @@ var DivaArticle = /*#__PURE__*/function () {
27007
27133
  get: function get() {
27008
27134
  return this.article.partlistArticleVisibleInTree && this.hasOptionsThatParentDoesNotHave;
27009
27135
  }
27136
+ }, {
27137
+ key: "posInvisibility",
27138
+ get: function get() {
27139
+ return this.article.posInvisibility;
27140
+ }
27010
27141
  }, {
27011
27142
  key: "partlistArticleStandalone",
27012
27143
  get: function get() {
@@ -27930,6 +28061,11 @@ var DivaArticle = /*#__PURE__*/function () {
27930
28061
  get: function get() {
27931
28062
  return this.catalogArticle.bundleRules;
27932
28063
  }
28064
+ }, {
28065
+ key: "addAsZKAT",
28066
+ get: function get() {
28067
+ return this.catalogArticle.addAsZKAT;
28068
+ }
27933
28069
  }, {
27934
28070
  key: "hasPartlistArticleVisibleInTree",
27935
28071
  get: function get() {
@@ -29534,7 +29670,7 @@ var DivaArticle = /*#__PURE__*/function () {
29534
29670
  break;
29535
29671
  }
29536
29672
  _context.next = 4;
29537
- return import('./ShelfPlanner-3e4a62e1.js');
29673
+ return import('./ShelfPlanner-a0bdd125.js');
29538
29674
  case 4:
29539
29675
  _yield$import = _context.sent;
29540
29676
  ShelfPlanner = _yield$import["default"];
@@ -29807,7 +29943,7 @@ var DivaArticle = /*#__PURE__*/function () {
29807
29943
  var opv;
29808
29944
  var opt;
29809
29945
  if (ops.val) {
29810
- var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3;
29946
+ var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3, _ops$val$properties;
29811
29947
  opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
29812
29948
  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);
29813
29949
  if (this.CatalogData.isIDM3DCat && ops.val.vCodex) opv = 'OPV' + ops.idmVariantenArt + '_' + ops.val.vCodex;
@@ -29823,14 +29959,26 @@ var DivaArticle = /*#__PURE__*/function () {
29823
29959
  OPV: ops.freeText
29824
29960
  });
29825
29961
  }
29826
- if (ops.val.isTexture) {
29962
+ var divaDataEngineMat = (_ops$val$properties = ops.val.properties) === null || _ops$val$properties === void 0 ? void 0 : _ops$val$properties.find(function (prop) {
29963
+ return prop.Codex == "TEXTURENAME";
29964
+ });
29965
+ if (!ret.MAT) {
29966
+ ret.MAT = [];
29967
+ }
29968
+ if (divaDataEngineMat) {
29827
29969
  var _ops$val$name;
29828
- if (!ret.MAT) {
29829
- ret.MAT = [];
29830
- }
29831
29970
  ret.MAT.push({
29832
29971
  OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
29833
29972
  N: DivaUtils.removeSpecialChars((_ops$val$name = ops.val.name) !== null && _ops$val$name !== void 0 ? _ops$val$name : ''),
29973
+ T: divaDataEngineMat.Name,
29974
+ M: divaDataEngineMat.Value
29975
+ });
29976
+ }
29977
+ if (ops.val.isTexture) {
29978
+ var _ops$val$name2;
29979
+ ret.MAT.push({
29980
+ OPT: partlistPrefix ? 'OPT' + partlistPrefix + opt.substring(3) : opt,
29981
+ N: DivaUtils.removeSpecialChars((_ops$val$name2 = ops.val.name) !== null && _ops$val$name2 !== void 0 ? _ops$val$name2 : ''),
29834
29982
  T: ops.val.textureName,
29835
29983
  M: ops.val.material
29836
29984
  });
@@ -31320,6 +31468,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31320
31468
  supplierOrderCodex: doLoadItem.SupplierOrderCodex,
31321
31469
  initDecisions: doLoadItem.initDecisions,
31322
31470
  partlistArticleVisibleInTree: doLoadItem.PosInvisibility === 0,
31471
+ posInvisibility: doLoadItem.PosInvisibility,
31323
31472
  partlistArticleStandalone: doLoadItem.ConfigurationMode,
31324
31473
  partlistGroupPrefix: doLoadItem.partlistGroupPrefix,
31325
31474
  optionsForPrint: doLoadItem.optionsForPrint,
@@ -31702,6 +31851,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31702
31851
  ArticleCodex: article.articleCodex,
31703
31852
  ConfigArticleCodex: article.configArticleCodex,
31704
31853
  UseTypeNrAsArticleNrEKText: catalogData.useTypeNrAsArticleNrEKText,
31854
+ HideSubPosArticleCodexEKText: catalogData.hideSubPosArticleCodexEKText,
31705
31855
  TypeNr: article.typeNr,
31706
31856
  ArticleEAN: article.articleEAN,
31707
31857
  ArticleGUID: article.articleGUID,
@@ -31741,6 +31891,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
31741
31891
  IsPlannerElement: article.hasCatalogPlannerArticle,
31742
31892
  HasPartlistArticle: article.hasPartlistArticle,
31743
31893
  PartlistArticleInvisibility: !article.partlistArticleVisibleInTree && !article.optionsForPrint && !article.partlistArticleStandalone,
31894
+ PosInvisibility: catalogData.addPosInvisibilityToOL ? article.posInvisibility : undefined,
31744
31895
  SendToSAP: article.sendToSap,
31745
31896
  ShelfPlandata: article.shelfPlanner ? DivaUtils.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,
31746
31897
  MetaData: !hasFavorites ? article.MetaData : undefined,
@@ -34743,7 +34894,7 @@ var DivaFavoritesHandler = /*#__PURE__*/function () {
34743
34894
  if (targetArticle[opt] && !variantValues[opt]) variantValues[opt] = targetArticle[opt];
34744
34895
  }
34745
34896
  }
34746
- configVariant = new ConfigVariantData(variant.id, set.setName, set.setName_locales, setImage, (_hQRenderScript = hQRenderScript) === null || _hQRenderScript === void 0 ? void 0 : _hQRenderScript._id, DivaUtils.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.encodeBase64(JSON.stringify(plannerData)) : '', urlToPlanning2D, setHandlerInstance.getBBoxObject(set, dimensions), set.getBruttoSetPrice(), undefined, undefined, set.MetaData, set.MetaData_locales, DivaUtils.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);
34897
+ configVariant = new ConfigVariantData(variant.id, set.setName, set.setName_locales, setImage, (_hQRenderScript = hQRenderScript) === null || _hQRenderScript === void 0 ? void 0 : _hQRenderScript._id, DivaUtils.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.encodeBase64(JSON.stringify(plannerData), set.CatalogData.isIDM3DCat) : '', urlToPlanning2D, setHandlerInstance.getBBoxObject(set, dimensions), set.getBruttoSetPrice(), undefined, undefined, set.MetaData, set.MetaData_locales, DivaUtils.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);
34747
34898
  set.basketConfigVariants.push(configVariant);
34748
34899
  case 32:
34749
34900
  case "end":
@@ -35195,8 +35346,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35195
35346
  }
35196
35347
  var configInAccessoire = set.configAccessoiresInAccessoireStep;
35197
35348
  var configInAccessoireAndTree = set.CatalogData.configAccessoires && !article.isShelfAccessoire;
35349
+ var isRelatedAccessoire = !!article.relatedToBasketId && !(article.isPartListArticle && article.partlistArticleVisibleInTree);
35198
35350
  //give this step a unique key so it is not merged with any option of te main article
35199
- if (configInAccessoire && !!(article !== null && article !== void 0 && article.relatedToBasketId)) {
35351
+ if (configInAccessoire && isRelatedAccessoire) {
35200
35352
  if (configInAccessoireAndTree) {
35201
35353
  //remember old configStepKey to push basketId to its targetArticles anyways
35202
35354
  mainConfigStepKey = configStepKey;
@@ -35205,7 +35357,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
35205
35357
  }
35206
35358
  var plaBasketIds = Object.keys(articles[basketId].getRecursivePartlistArticles(true, true));
35207
35359
  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);
35208
- var isAccessoire = !!article.relatedToBasketId ? article.articleCodex : false;
35360
+ var isAccessoire = isRelatedAccessoire ? article.articleCodex : false;
35209
35361
  if (!configTree.getTabGroupByCodex(tabGroupCodex)) {
35210
35362
  var newTabGroup = this.createTabGroup(tabGroupCodex, tabGroupTitel, 'OPTION', configTree);
35211
35363
  configTree.addTabGroup(tabGroupCodex, newTabGroup);
@@ -37556,7 +37708,7 @@ var DivaSet = /*#__PURE__*/function () {
37556
37708
  break;
37557
37709
  }
37558
37710
  _context5.next = 3;
37559
- return import('./DoorPlanner-81a93a41.js');
37711
+ return import('./DoorPlanner-7e0146b3.js');
37560
37712
  case 3:
37561
37713
  _yield$import = _context5.sent;
37562
37714
  DoorPlanner = _yield$import["default"];
@@ -39082,7 +39234,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39082
39234
  }
39083
39235
  }
39084
39236
  if (!(from !== 'toDeleteShelf')) {
39085
- _context14.next = 15;
39237
+ _context14.next = 16;
39086
39238
  break;
39087
39239
  }
39088
39240
  set.addArticle(newArticle);
@@ -39090,7 +39242,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39090
39242
  return articleHandlerInstance.toDoAfterArticleLoaded(newArticle, defaultHeaderValues, {}, from, undefined, ignorePlanner);
39091
39243
  case 15:
39092
39244
  if (newArticle.relatedToBasketId) {
39093
- LOG$9.businessEvent('onClickAccesorie', 'Planner', 'Accesorie wurde geplant', {
39245
+ LOG$9.businessEvent('onClickAccesorie', 'Planner', 'Accessoire wurde geplant', {
39094
39246
  article: {
39095
39247
  articleCodex: articleCodex,
39096
39248
  articleName: newArticle.name
@@ -39104,6 +39256,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
39104
39256
  }
39105
39257
  });
39106
39258
  }
39259
+ case 16:
39107
39260
  return _context14.abrupt("return", newArticle);
39108
39261
  case 17:
39109
39262
  case "end":
@@ -41119,7 +41272,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
41119
41272
  break;
41120
41273
  case 32:
41121
41274
  //fill diva3DProject for renderings & AR Converter
41122
- basketData.Diva3DProject = DivaUtils.encodeBase64(set === null || set === void 0 ? void 0 : set.plannerHandler.getProject3D());
41275
+ basketData.Diva3DProject = DivaUtils.encodeBase64(set === null || set === void 0 ? void 0 : set.plannerHandler.getProject3D(), set === null || set === void 0 ? void 0 : set.CatalogData.isIDM3DCat);
41123
41276
  i = 0;
41124
41277
  case 34:
41125
41278
  if (!(i < ((_basketData$OrderSets = basketData.OrderSets) === null || _basketData$OrderSets === void 0 ? void 0 : _basketData$OrderSets.length))) {
@@ -41580,7 +41733,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
41580
41733
  FavoriteAiRoomKeys: set.getAiImagesAsJpg().map(function (img) {
41581
41734
  return img.promptId;
41582
41735
  }),
41583
- SetPlanData: plannerData != undefined ? DivaUtils.encodeBase64(JSON.stringify(plannerData)) : '',
41736
+ SetPlanData: plannerData != undefined ? DivaUtils.encodeBase64(JSON.stringify(plannerData), catalogData.isIDM3DCat) : '',
41584
41737
  SetID: set.getSetId(),
41585
41738
  SetName: set.setName,
41586
41739
  SetName_locales: set.setName_locales,
@@ -43030,7 +43183,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43030
43183
  break;
43031
43184
  case 3:
43032
43185
  _context12.next = 5;
43033
- return import('./PfisterWWSHandler-f5d757ea.js');
43186
+ return import('./PfisterWWSHandler-1abd4f92.js');
43034
43187
  case 5:
43035
43188
  _yield$import = _context12.sent;
43036
43189
  PfisterWWSHandler = _yield$import["default"];
@@ -43038,7 +43191,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43038
43191
  return _context12.abrupt("break", 27);
43039
43192
  case 9:
43040
43193
  _context12.next = 11;
43041
- return import('./LiviqueWWSHandler-1bba645a.js');
43194
+ return import('./LiviqueWWSHandler-7e2fdbd9.js');
43042
43195
  case 11:
43043
43196
  _yield$import2 = _context12.sent;
43044
43197
  LiviqueWWSHandler = _yield$import2["default"];
@@ -43046,7 +43199,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43046
43199
  return _context12.abrupt("break", 27);
43047
43200
  case 15:
43048
43201
  _context12.next = 17;
43049
- return import('./SeriousBasketHandler-ec11fc25.js');
43202
+ return import('./SeriousBasketHandler-d91fa4df.js');
43050
43203
  case 17:
43051
43204
  _yield$import3 = _context12.sent;
43052
43205
  SeriousWWSHandler = _yield$import3["default"];
@@ -43054,7 +43207,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43054
43207
  return _context12.abrupt("break", 27);
43055
43208
  case 21:
43056
43209
  _context12.next = 23;
43057
- return import('./StandardWWSHandler-4a01f807.js');
43210
+ return import('./StandardWWSHandler-370bce91.js');
43058
43211
  case 23:
43059
43212
  _yield$import4 = _context12.sent;
43060
43213
  StandardWWSHandler = _yield$import4["default"];
@@ -44478,7 +44631,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
44478
44631
  while (1) switch (_context3.prev = _context3.next) {
44479
44632
  case 0:
44480
44633
  _context3.next = 2;
44481
- return import('./Host3DSignalR-adc38975.js');
44634
+ return import('./Host3DSignalR-69df2c2d.js');
44482
44635
  case 2:
44483
44636
  _yield$import = _context3.sent;
44484
44637
  Host3DSignalR = _yield$import["default"];
@@ -46164,7 +46317,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46164
46317
  break;
46165
46318
  case 8:
46166
46319
  _context5.next = 10;
46167
- return import('./DivaStandardPlanner-6d3690b8.js');
46320
+ return import('./DivaStandardPlanner-63ce6a04.js');
46168
46321
  case 10:
46169
46322
  _yield$import = _context5.sent;
46170
46323
  DivaStandardPlanner = _yield$import["default"];
@@ -46175,7 +46328,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46175
46328
  return _context5.abrupt("break", 21);
46176
46329
  case 15:
46177
46330
  _context5.next = 17;
46178
- return import('./DivaBoxPlanner-9b70334c.js');
46331
+ return import('./DivaBoxPlanner-8b5206ab.js');
46179
46332
  case 17:
46180
46333
  _yield$import2 = _context5.sent;
46181
46334
  DivaBoxPlanner = _yield$import2["default"];
@@ -47319,7 +47472,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
47319
47472
  },
47320
47473
  updatePlannerMsgContainer: function updatePlannerMsgContainer() {}
47321
47474
  });
47322
- var setData = DivaUtils.encodeBase64(JSON.stringify(set.plannerHandler.savePlanner(origSet.getSetId())));
47475
+ var setData = DivaUtils.encodeBase64(JSON.stringify(set.plannerHandler.savePlanner(origSet.getSetId())), set.CatalogData.isIDM3DCat);
47323
47476
  this.plannerList.forEach(function (v) {
47324
47477
  clone.plannerList.set(set.getSetId(), v.clonePlanner(set, _this6.plannerIDCount, setData));
47325
47478
  _this6.plannerIDCount++;
@@ -48138,12 +48291,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
48138
48291
  case 12:
48139
48292
  loadSuccessful = _context14.sent;
48140
48293
  if (this.plannerConfig.configuratorSessionId) {
48141
- //force new configurator session id - Landingpage case
48294
+ // ID forced from outside (Landingpage, PDP, Planung-ändern)
48142
48295
  DivaUtils.businessMetrics.setConfiguratorSessionId(this.plannerConfig.configuratorSessionId);
48143
- } else {
48144
- // Only create a new configurator session if we don't already have one. This keeps the analytics
48145
- // session stable across re-inits (e.g. switching products inside the same catalog).
48296
+ } else if (cache !== undefined) {
48297
+ // Re-init with cache (Variant Select): keep existing session stable
48146
48298
  DivaUtils.businessMetrics.setConfiguratorSessionId(undefined, true);
48299
+ } else {
48300
+ // Fresh start (new catalog, archive basket, etc.): always new UUID
48301
+ DivaUtils.businessMetrics.setConfiguratorSessionId();
48147
48302
  }
48148
48303
  if (!loadSuccessful) {
48149
48304
  _context14.next = 31;
@@ -50759,7 +50914,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
50759
50914
  article_nested: articles
50760
50915
  }
50761
50916
  });
50762
- LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value:' + actualBasketvalue, {
50917
+ LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
50763
50918
  basketValue: actualBasketvalue,
50764
50919
  isInit: isInit
50765
50920
  });
@@ -50823,11 +50978,11 @@ var DivaWebPlanner = /*#__PURE__*/function () {
50823
50978
  }
50824
50979
  }
50825
50980
  }
50826
- LOG$2.businessEvent(action, 'Planner', 'Configurator wurde verändert', {
50981
+ LOG$2.businessEvent(action, 'Planner', 'Konfigurator wurde verändert', {
50827
50982
  explicitlySetConfiguration: explicitlySetConfiguration,
50828
50983
  wholeConfiguration: finalConfiguration
50829
50984
  });
50830
- LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value:' + actualBasketvalue, {
50985
+ LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
50831
50986
  basketValue: actualBasketvalue,
50832
50987
  isInit: isInit
50833
50988
  });