@crystaldesign/web-planner-logic 26.14.0-beta.32 → 26.14.0-beta.33

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 (68) hide show
  1. package/build/cjs/{DivaBoxPlanner-67edb68b.js → DivaBoxPlanner-93e40ff6.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-29d25b93.js → DivaStandardPlanner-90493d1b.js} +2 -2
  3. package/build/cjs/{DoorPlanner-3193abf9.js → DoorPlanner-8cbae86f.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-c8859493.js → Host3DSignalR-c5052424.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-7804d581.js → LiviqueWWSHandler-ab4ce5c7.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-c6b93520.js → PfisterWWSHandler-6dbfcff4.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-7a79e191.js → PlannerHandler2D-4549a20c.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-534a81ba.js → SeriousBasketHandler-b4461030.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-f6b19965.js → ShelfPlanner-18139c57.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-eb367f31.js → StandardWWSHandler-612f003d.js} +1 -1
  11. package/build/cjs/{index-03575eb4.js → index-11211a0e.js} +755 -639
  12. package/build/cjs/index.js +2 -1
  13. package/build/esm/{DivaBoxPlanner-b5817973.js → DivaBoxPlanner-d616cefc.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-2084715b.js → DivaStandardPlanner-2a024ff0.js} +2 -2
  15. package/build/esm/{DoorPlanner-d2a5deac.js → DoorPlanner-1dd81e60.js} +1 -1
  16. package/build/esm/{Host3DSignalR-ae4a5ae9.js → Host3DSignalR-727454f0.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-7bfacb71.js → LiviqueWWSHandler-23c7b65a.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-cc745e52.js → PfisterWWSHandler-954b5cda.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-2bf51f9b.js → PlannerHandler2D-f77d2f78.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-817d4898.js → SeriousBasketHandler-53824123.js} +1 -1
  21. package/build/esm/{ShelfPlanner-e996961c.js → ShelfPlanner-295d17cc.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-314f6b1f.js → StandardWWSHandler-8debfb39.js} +1 -1
  23. package/build/esm/{index-51900283.js → index-b070e6c1.js} +755 -640
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +7 -0
  30. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts +2 -0
  34. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts +1 -1
  36. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts +0 -1
  38. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +3 -1
  40. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +10 -3
  42. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +12 -0
  44. package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +2 -0
  48. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/test/bundleRulesKeepConfigurations.test.d.ts +2 -0
  51. package/build/types/web-planner-logic/src/test/bundleRulesKeepConfigurations.test.d.ts.map +1 -0
  52. package/build/types/web-planner-logic/src/test/idmPartsCatalogReports.test.d.ts +2 -0
  53. package/build/types/web-planner-logic/src/test/idmPartsCatalogReports.test.d.ts.map +1 -0
  54. package/build/types/web-planner-logic/src/test/measureUnitSymbol.test.d.ts +2 -0
  55. package/build/types/web-planner-logic/src/test/measureUnitSymbol.test.d.ts.map +1 -0
  56. package/build/types/web-planner-logic/src/test/pricePreviewConflictingOptions.test.d.ts +2 -0
  57. package/build/types/web-planner-logic/src/test/pricePreviewConflictingOptions.test.d.ts.map +1 -0
  58. package/build/types/web-planner-logic/src/test/reopenPartlistLinesLookup.test.d.ts +2 -0
  59. package/build/types/web-planner-logic/src/test/reopenPartlistLinesLookup.test.d.ts.map +1 -0
  60. package/build/types/web-planner-logic/src/test/setCatalogOptionLookup.test.d.ts +3 -0
  61. package/build/types/web-planner-logic/src/test/setCatalogOptionLookup.test.d.ts.map +1 -0
  62. package/build/types/web-planner-logic/src/test/setTitleArticleName.test.d.ts +2 -0
  63. package/build/types/web-planner-logic/src/test/setTitleArticleName.test.d.ts.map +1 -0
  64. package/build/types/web-planner-logic/src/test/shelfMoveOverOwnCells.test.d.ts +2 -0
  65. package/build/types/web-planner-logic/src/test/shelfMoveOverOwnCells.test.d.ts.map +1 -0
  66. package/build/types/web-planner-logic/src/test/viewActions.test.d.ts +2 -0
  67. package/build/types/web-planner-logic/src/test/viewActions.test.d.ts.map +1 -0
  68. package/package.json +3 -3
@@ -2046,7 +2046,7 @@ function isPropertyOn(value) {
2046
2046
 
2047
2047
  /** The encoding per property codex, for one entity. */
2048
2048
 
2049
- /** 100 properties parsed on the catalog entity. */
2049
+ /** 101 properties parsed on the catalog entity. */
2050
2050
  var CATALOG_PROPERTIES = {
2051
2051
  '3D_COMPATIBLE_WITH_IMAGE_CACHE': 'boolean:1',
2052
2052
  ACCESSOIRE_STEP_AS_PLANNER: 'boolean:1',
@@ -2143,6 +2143,7 @@ var CATALOG_PROPERTIES = {
2143
2143
  USEGLOBALSVGSCALE: 'boolean:1',
2144
2144
  USEPOSCOUNTVALUE: 'boolean:1',
2145
2145
  USEPRGASOPVARTICLENR: 'boolean:1',
2146
+ USE_ARTICLE_NAME_AS_TITLE: 'boolean:1',
2146
2147
  USE_DECISION_POS_COUNT_VALUE: 'boolean:1',
2147
2148
  USE_DIOMEX_CONFIG_LOGIC: 'boolean:1',
2148
2149
  USE_SHELFPLANNER_RTV: 'boolean:1',
@@ -18122,6 +18123,21 @@ function measureInUnit(centimeters, unit) {
18122
18123
  return Math.round(centimeters / TO_CENTIMETERS[unit](1) * 1e6) / 1e6;
18123
18124
  }
18124
18125
 
18126
+ /** The symbol of each IDM length code, the same in every language. */
18127
+ var SYMBOL_OF_IDM_CODE = {
18128
+ MMT: 'mm',
18129
+ CMT: 'cm',
18130
+ DMT: 'dm',
18131
+ MTR: 'm',
18132
+ INH: 'in'
18133
+ };
18134
+
18135
+ /** An option's unit as people read it: the symbol of an IDM length code (MMT → mm), any other unit as the catalog writes it. */
18136
+ function measureUnitSymbol(unit) {
18137
+ var code = idmMeasureUnit(unit);
18138
+ return code && Object.prototype.hasOwnProperty.call(SYMBOL_OF_IDM_CODE, code) ? SYMBOL_OF_IDM_CODE[code] : unit;
18139
+ }
18140
+
18125
18141
  var LOG$s = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
18126
18142
  var OptionValueCatalogData = /*#__PURE__*/function () {
18127
18143
  function OptionValueCatalogData(opv, catalogData) {
@@ -22216,7 +22232,7 @@ function _loadMoreFromIDMArticles() {
22216
22232
  while (1) switch (_context5.prev = _context5.next) {
22217
22233
  case 0:
22218
22234
  prfgNo = _step6.value;
22219
- if (!set.CatalogData.getPricefeaturegroup(prfgNo)) {
22235
+ if (!catalogData.getPricefeaturegroup(prfgNo)) {
22220
22236
  _context5.next = 3;
22221
22237
  break;
22222
22238
  }
@@ -22228,7 +22244,7 @@ function _loadMoreFromIDMArticles() {
22228
22244
  }).map(function (a) {
22229
22245
  return a.articleCodex;
22230
22246
  });
22231
- set.CatalogData.reportMissingPricefeaturegroup(prfgNo, {
22247
+ catalogData.reportMissingPricefeaturegroup(prfgNo, {
22232
22248
  articleCodices: askedBy
22233
22249
  });
22234
22250
  case 5:
@@ -22382,7 +22398,7 @@ function _loadMoreFromIDMArticles() {
22382
22398
  while (1) switch (_context6.prev = _context6.next) {
22383
22399
  case 0:
22384
22400
  featureNo = _step7.value;
22385
- if (!set.CatalogData.loadedFeatures.some(function (f) {
22401
+ if (!catalogData.loadedFeatures.some(function (f) {
22386
22402
  return f.featureNo == featureNo;
22387
22403
  })) {
22388
22404
  _context6.next = 3;
@@ -22395,7 +22411,7 @@ function _loadMoreFromIDMArticles() {
22395
22411
  }).map(function (fc) {
22396
22412
  return fc.featureClassNo;
22397
22413
  });
22398
- set.CatalogData.reportMissingFeature(Number(featureNo), {
22414
+ catalogData.reportMissingFeature(Number(featureNo), {
22399
22415
  featureClassNos: askedBy
22400
22416
  });
22401
22417
  case 5:
@@ -24589,6 +24605,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
24589
24605
  get: function get() {
24590
24606
  return this.catalogProps.divaForceRTV;
24591
24607
  }
24608
+ }, {
24609
+ key: "useArticleNameAsTitle",
24610
+ get: function get() {
24611
+ return this.catalogProps.useArticleNameAsTitle;
24612
+ }
24592
24613
  }, {
24593
24614
  key: "PlannerMeasureDigits",
24594
24615
  get: function get() {
@@ -25416,6 +25437,10 @@ var DivaCatalogData = /*#__PURE__*/function () {
25416
25437
  case 'DIVA3D_AR_FORCERTV':
25417
25438
  _this2.catalogProps.divaForceRTV = item.Value === true;
25418
25439
  break;
25440
+ case 'USE_ARTICLE_NAME_AS_TITLE':
25441
+ // no stored value = not set: the view config keeps deciding
25442
+ _this2.catalogProps.useArticleNameAsTitle = item.Value === undefined ? undefined : item.Value === true;
25443
+ break;
25419
25444
  case 'DIVA3D_USE_RTV_NEXT':
25420
25445
  _this2.catalogProps.divaUseRtvNext = item.Value === true;
25421
25446
  break;
@@ -28813,20 +28838,18 @@ var DivaEngine = /*#__PURE__*/function () {
28813
28838
  }
28814
28839
  break;
28815
28840
  }
28816
- if ((mUnit || OP == 'OPTUMFANG' || OP == 'OPTUMFANG_KREIS') && this.article.parentHasSameOption(OP) && !((_ops$addToMeasure = ops.addToMeasure) !== null && _ops$addToMeasure !== void 0 && _ops$addToMeasure.length)) {
28841
+ var perimeter = this.article.getPerimeter(OP);
28842
+ if ((mUnit || perimeter !== undefined) && this.article.parentHasSameOption(OP) && !((_ops$addToMeasure = ops.addToMeasure) !== null && _ops$addToMeasure !== void 0 && _ops$addToMeasure.length)) {
28817
28843
  var freeTextMeasure = parseFloat(ops.freeText ? ops.freeText : '');
28818
28844
  var newFreeTextMeasure = this.article.calcAddToMeasure(OP, freeTextMeasure);
28819
28845
  if (newFreeTextMeasure) LOG$j.debug('freetext changed by addToMeasure at price calculation', newFreeTextMeasure, freeTextMeasure, ops.addToMeasure);
28820
28846
  freeTextMeasure = newFreeTextMeasure;
28821
- if (freeTextMeasure || OP == 'OPTUMFANG' || OP == 'OPTUMFANG_KREIS') {
28847
+ if (freeTextMeasure || perimeter !== undefined) {
28822
28848
  if (calcUnitPrice != 0) {
28823
28849
  var quantity = 0;
28824
- if (OP == 'OPTUMFANG') {
28825
- mUnit = 'cm';
28826
- quantity = this.article.calcWidth * 2 + this.article.calcDepth * 2;
28827
- } else if (OP == 'OPTUMFANG_KREIS') {
28850
+ if (perimeter !== undefined) {
28828
28851
  mUnit = 'cm';
28829
- quantity = this.article.calcWidth * Math.PI;
28852
+ quantity = perimeter;
28830
28853
  } else {
28831
28854
  quantity = freeTextMeasure;
28832
28855
  }
@@ -33496,6 +33519,14 @@ var DivaArticle = /*#__PURE__*/function () {
33496
33519
  this.actPlannerData.depthFromSVG = false;
33497
33520
  }
33498
33521
  }
33522
+ /** The band length in cm the perimeter options OPTUMFANG and OPTUMFANG_KREIS stand for; undefined for every other option. */
33523
+ }, {
33524
+ key: "getPerimeter",
33525
+ value: function getPerimeter(optionCodex) {
33526
+ if (optionCodex == 'OPTUMFANG') return this.calcWidth * 2 + this.calcDepth * 2;
33527
+ if (optionCodex == 'OPTUMFANG_KREIS') return this.calcWidth * Math.PI;
33528
+ return undefined;
33529
+ }
33499
33530
  }, {
33500
33531
  key: "height",
33501
33532
  get: function get() {
@@ -33715,25 +33746,57 @@ var DivaArticle = /*#__PURE__*/function () {
33715
33746
  }
33716
33747
  return ret;
33717
33748
  }
33749
+
33750
+ /**
33751
+ * Options that hold different values inside this article's partlist tree, e.g. a frame and a headboard with their
33752
+ * own fabric. The flat VisibleVariantValues can keep only one of those values.
33753
+ */
33718
33754
  }, {
33719
- key: "AllVariantValues",
33755
+ key: "conflictingOptionCodices",
33720
33756
  get: function get() {
33721
- var ret = {};
33722
- var opss = this.getAllArticleOptionsStates();
33723
- var _iterator11 = _createForOfIteratorHelper$o(opss),
33757
+ var values = new Map();
33758
+ var conflicting = new Set();
33759
+ var _iterator11 = _createForOfIteratorHelper$o(this.getAllArticleOptionsStates()),
33724
33760
  _step11;
33725
33761
  try {
33726
33762
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
33763
+ var _ops$freeText2;
33727
33764
  var ops = _step11.value;
33765
+ if (!ops.valCodex) continue;
33766
+ var value = ops.valCodex + ((_ops$freeText2 = ops.freeText) !== null && _ops$freeText2 !== void 0 ? _ops$freeText2 : '');
33767
+ var otherValue = values.get(ops.optionCodex);
33768
+ if (otherValue !== undefined && otherValue !== value) {
33769
+ conflicting.add(ops.optionCodex);
33770
+ conflicting.add(ops.optionCodex + '_val');
33771
+ }
33772
+ values.set(ops.optionCodex, value);
33773
+ }
33774
+ } catch (err) {
33775
+ _iterator11.e(err);
33776
+ } finally {
33777
+ _iterator11.f();
33778
+ }
33779
+ return conflicting;
33780
+ }
33781
+ }, {
33782
+ key: "AllVariantValues",
33783
+ get: function get() {
33784
+ var ret = {};
33785
+ var opss = this.getAllArticleOptionsStates();
33786
+ var _iterator12 = _createForOfIteratorHelper$o(opss),
33787
+ _step12;
33788
+ try {
33789
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
33790
+ var ops = _step12.value;
33728
33791
  ret[ops.optionCodex] = ops.valCodex;
33729
33792
  if (ops.freeText) {
33730
33793
  ret[ops.optionCodex + '_val'] = ops.freeText;
33731
33794
  }
33732
33795
  }
33733
33796
  } catch (err) {
33734
- _iterator11.e(err);
33797
+ _iterator12.e(err);
33735
33798
  } finally {
33736
- _iterator11.f();
33799
+ _iterator12.f();
33737
33800
  }
33738
33801
  return ret;
33739
33802
  }
@@ -33741,12 +33804,12 @@ var DivaArticle = /*#__PURE__*/function () {
33741
33804
  key: "VariantValuesWithoutEmptyFreetext",
33742
33805
  get: function get() {
33743
33806
  var ret = {};
33744
- var _iterator12 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33745
- _step12;
33807
+ var _iterator13 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33808
+ _step13;
33746
33809
  try {
33747
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
33810
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
33748
33811
  var _ops$freeTextLang;
33749
- var ops = _step12.value;
33812
+ var ops = _step13.value;
33750
33813
  // free text entered per language (classification) lives in freeTextLang only, in any of its languages; 'OPV_TEXT_FREI' is the codex, not a text
33751
33814
  var hasFreeTextLang = Object.values((_ops$freeTextLang = ops.freeTextLang) !== null && _ops$freeTextLang !== void 0 ? _ops$freeTextLang : {}).some(function (text) {
33752
33815
  return !!text && text !== 'OPV_TEXT_FREI';
@@ -33756,9 +33819,9 @@ var DivaArticle = /*#__PURE__*/function () {
33756
33819
  }
33757
33820
  }
33758
33821
  } catch (err) {
33759
- _iterator12.e(err);
33822
+ _iterator13.e(err);
33760
33823
  } finally {
33761
- _iterator12.f();
33824
+ _iterator13.f();
33762
33825
  }
33763
33826
  return ret;
33764
33827
  }
@@ -33766,12 +33829,12 @@ var DivaArticle = /*#__PURE__*/function () {
33766
33829
  key: "VariantValuesParentOption",
33767
33830
  get: function get() {
33768
33831
  var ret = {};
33769
- var _iterator13 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33770
- _step13;
33832
+ var _iterator14 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33833
+ _step14;
33771
33834
  try {
33772
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
33835
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
33773
33836
  var _ops$optionOcd;
33774
- var ops = _step13.value;
33837
+ var ops = _step14.value;
33775
33838
  var optionCodex = (ops.option.parentOptionCodex ? ops.option.parentOptionCodex + '.' : '') + ((_ops$optionOcd = ops.optionOcd) !== null && _ops$optionOcd !== void 0 ? _ops$optionOcd : ops.option.codex);
33776
33839
  if (ops.isMultiselect && ops.multiSelects) {
33777
33840
  ret[optionCodex] = ops.multiSelects.map(function (v) {
@@ -33792,9 +33855,9 @@ var DivaArticle = /*#__PURE__*/function () {
33792
33855
  }
33793
33856
  }
33794
33857
  } catch (err) {
33795
- _iterator13.e(err);
33858
+ _iterator14.e(err);
33796
33859
  } finally {
33797
- _iterator13.f();
33860
+ _iterator14.f();
33798
33861
  }
33799
33862
  return ret;
33800
33863
  }
@@ -33814,11 +33877,11 @@ var DivaArticle = /*#__PURE__*/function () {
33814
33877
  key: "setDifferentOptions",
33815
33878
  value: function setDifferentOptions(options) {
33816
33879
  var _this3 = this;
33817
- var _iterator14 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33818
- _step14;
33880
+ var _iterator15 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33881
+ _step15;
33819
33882
  try {
33820
33883
  var _loop = function _loop() {
33821
- var ops = _step14.value;
33884
+ var ops = _step15.value;
33822
33885
  var found = false;
33823
33886
  for (var i = 0; i < options.length; i++) {
33824
33887
  var option = options[i];
@@ -33835,13 +33898,13 @@ var DivaArticle = /*#__PURE__*/function () {
33835
33898
  }
33836
33899
  if (!found) ops.isDifferentOption = false;
33837
33900
  };
33838
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
33901
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
33839
33902
  _loop();
33840
33903
  }
33841
33904
  } catch (err) {
33842
- _iterator14.e(err);
33905
+ _iterator15.e(err);
33843
33906
  } finally {
33844
- _iterator14.f();
33907
+ _iterator15.f();
33845
33908
  }
33846
33909
  }
33847
33910
  }, {
@@ -33854,20 +33917,20 @@ var DivaArticle = /*#__PURE__*/function () {
33854
33917
  get: function get() {
33855
33918
  var hash = this.catalogCodex + '_' + this.articleCodex + '_' + this.quantity + '_';
33856
33919
  var variantValues = [];
33857
- var _iterator15 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33858
- _step15;
33920
+ var _iterator16 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33921
+ _step16;
33859
33922
  try {
33860
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
33923
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
33861
33924
  var _ops$idmVariantenArt;
33862
- var ops = _step15.value;
33925
+ var ops = _step16.value;
33863
33926
  if (ops.isDoShow && (![95, 96, 97, 1095, 1096, 1097].includes((_ops$idmVariantenArt = ops.idmVariantenArt) !== null && _ops$idmVariantenArt !== void 0 ? _ops$idmVariantenArt : 0) || ops.isVisibleFreeText) && ops.val && ops.visibleCount > 0 && !ops.isDescribingState) {
33864
33927
  variantValues.push((this.CatalogData.isIDMFormat ? ops.optionCodex : ops.optionCodex.substring(3)) + '_' + (this.CatalogData.isIDMFormat ? ops.val.codex : ops.val.codex.substring(3)) + (ops.freeText ? '_' + ops.freeText : ops.value ? '_' + ops.value : ''));
33865
33928
  }
33866
33929
  }
33867
33930
  } catch (err) {
33868
- _iterator15.e(err);
33931
+ _iterator16.e(err);
33869
33932
  } finally {
33870
- _iterator15.f();
33933
+ _iterator16.f();
33871
33934
  }
33872
33935
  return md5(hash + variantValues.join());
33873
33936
  }
@@ -33875,11 +33938,11 @@ var DivaArticle = /*#__PURE__*/function () {
33875
33938
  key: "VariantValuesWithoutOPTandOPV",
33876
33939
  get: function get() {
33877
33940
  var ret = {};
33878
- var _iterator16 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33879
- _step16;
33941
+ var _iterator17 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33942
+ _step17;
33880
33943
  try {
33881
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
33882
- var ops = _step16.value;
33944
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
33945
+ var ops = _step17.value;
33883
33946
  if (ops.valCodex && !ops.isDescribingState) {
33884
33947
  ret[this.CatalogData.isIDMFormat ? ops.optionCodex : ops.optionCodex.substring(3)] = this.CatalogData.isIDMFormat ? ops.valCodex : ops.valCodex.substring(3);
33885
33948
  if (ops.freeText) {
@@ -33888,9 +33951,9 @@ var DivaArticle = /*#__PURE__*/function () {
33888
33951
  }
33889
33952
  }
33890
33953
  } catch (err) {
33891
- _iterator16.e(err);
33954
+ _iterator17.e(err);
33892
33955
  } finally {
33893
- _iterator16.f();
33956
+ _iterator17.f();
33894
33957
  }
33895
33958
  return ret;
33896
33959
  }
@@ -33909,11 +33972,11 @@ var DivaArticle = /*#__PURE__*/function () {
33909
33972
  key: "getVariantValuesTillOPT",
33910
33973
  value: function getVariantValuesTillOPT(opt) {
33911
33974
  var ret = {};
33912
- var _iterator17 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33913
- _step17;
33975
+ var _iterator18 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
33976
+ _step18;
33914
33977
  try {
33915
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
33916
- var ops = _step17.value;
33978
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
33979
+ var ops = _step18.value;
33917
33980
  if (opt != ops.optionCodex) {
33918
33981
  if (ops.valCodex) {
33919
33982
  ret[ops.optionCodex] = ops.valCodex;
@@ -33923,9 +33986,9 @@ var DivaArticle = /*#__PURE__*/function () {
33923
33986
  }
33924
33987
  }
33925
33988
  } catch (err) {
33926
- _iterator17.e(err);
33989
+ _iterator18.e(err);
33927
33990
  } finally {
33928
- _iterator17.f();
33991
+ _iterator18.f();
33929
33992
  }
33930
33993
  return ret;
33931
33994
  }
@@ -33960,18 +34023,18 @@ var DivaArticle = /*#__PURE__*/function () {
33960
34023
  key: "requiredUserInputOptions",
33961
34024
  get: function get() {
33962
34025
  var options = [];
33963
- var _iterator18 = _createForOfIteratorHelper$o(this.openRequiredUserInputOptions),
33964
- _step18;
34026
+ var _iterator19 = _createForOfIteratorHelper$o(this.openRequiredUserInputOptions),
34027
+ _step19;
33965
34028
  try {
33966
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
33967
- var ops = _step18.value;
34029
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
34030
+ var ops = _step19.value;
33968
34031
  ops.showWarningForRequiresUserInput = true;
33969
34032
  options.push(ops.optionCodex);
33970
34033
  }
33971
34034
  } catch (err) {
33972
- _iterator18.e(err);
34035
+ _iterator19.e(err);
33973
34036
  } finally {
33974
- _iterator18.f();
34037
+ _iterator19.f();
33975
34038
  }
33976
34039
  return options;
33977
34040
  }
@@ -34073,20 +34136,20 @@ var DivaArticle = /*#__PURE__*/function () {
34073
34136
  key: "getMetaData",
34074
34137
  value: function getMetaData(locales) {
34075
34138
  var metaDatas = locales ? this.article.catalogArticle.metaData_locales : this.article.catalogArticle.metaData;
34076
- var _iterator19 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34077
- _step19;
34139
+ var _iterator20 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34140
+ _step20;
34078
34141
  try {
34079
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
34142
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
34080
34143
  var _ref3;
34081
- var ops = _step19.value;
34144
+ var ops = _step20.value;
34082
34145
  var opv = ops.val;
34083
34146
  var opsMetaData = (_ref3 = locales ? opv === null || opv === void 0 ? void 0 : opv.metaData_locales : opv === null || opv === void 0 ? void 0 : opv.metaData) !== null && _ref3 !== void 0 ? _ref3 : {};
34084
34147
  this.mergeMetaDatas(metaDatas, opsMetaData);
34085
34148
  }
34086
34149
  } catch (err) {
34087
- _iterator19.e(err);
34150
+ _iterator20.e(err);
34088
34151
  } finally {
34089
- _iterator19.f();
34152
+ _iterator20.f();
34090
34153
  }
34091
34154
  for (var basketId in this.partlistArticles) {
34092
34155
  this.mergeMetaDatas(metaDatas, locales ? this.partlistArticles[basketId].MetaData_locales : this.partlistArticles[basketId].MetaData);
@@ -34145,11 +34208,11 @@ var DivaArticle = /*#__PURE__*/function () {
34145
34208
  opvDoesExist = false;
34146
34209
  var opvsInOption = refOptData.articleOptionValues;
34147
34210
  if (refOptData.hasOPG && opvsInOption) {
34148
- var _iterator20 = _createForOfIteratorHelper$o(opvsInOption.keys()),
34149
- _step20;
34211
+ var _iterator21 = _createForOfIteratorHelper$o(opvsInOption.keys()),
34212
+ _step21;
34150
34213
  try {
34151
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
34152
- var iKey = _step20.value;
34214
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
34215
+ var iKey = _step21.value;
34153
34216
  if (opvIsValid && anyDoShowFound) break;
34154
34217
  var opg = opvsInOption.get(iKey);
34155
34218
  if (!opg) continue;
@@ -34158,11 +34221,11 @@ var DivaArticle = /*#__PURE__*/function () {
34158
34221
  if (refOps.visibleOptionValues.get(iKey)) {
34159
34222
  anyDoShowFound = true;
34160
34223
  }
34161
- var _iterator21 = _createForOfIteratorHelper$o(opvsFromOpg.keys()),
34162
- _step21;
34224
+ var _iterator22 = _createForOfIteratorHelper$o(opvsFromOpg.keys()),
34225
+ _step22;
34163
34226
  try {
34164
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
34165
- var jKey = _step21.value;
34227
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
34228
+ var jKey = _step22.value;
34166
34229
  var opv = opvsFromOpg.get(jKey);
34167
34230
  if (opv && refOps.visibleOptionValues.get(iKey)) {
34168
34231
  var parentName = opv.parentName;
@@ -34184,22 +34247,22 @@ var DivaArticle = /*#__PURE__*/function () {
34184
34247
  }
34185
34248
  }
34186
34249
  } catch (err) {
34187
- _iterator21.e(err);
34250
+ _iterator22.e(err);
34188
34251
  } finally {
34189
- _iterator21.f();
34252
+ _iterator22.f();
34190
34253
  }
34191
34254
  }
34192
34255
  } catch (err) {
34193
- _iterator20.e(err);
34256
+ _iterator21.e(err);
34194
34257
  } finally {
34195
- _iterator20.f();
34258
+ _iterator21.f();
34196
34259
  }
34197
34260
  } else if (opvsInOption) {
34198
- var _iterator22 = _createForOfIteratorHelper$o(opvsInOption.keys()),
34199
- _step22;
34261
+ var _iterator23 = _createForOfIteratorHelper$o(opvsInOption.keys()),
34262
+ _step23;
34200
34263
  try {
34201
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
34202
- var _iKey = _step22.value;
34264
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
34265
+ var _iKey = _step23.value;
34203
34266
  if (opvIsValid && anyDoShowFound) break;
34204
34267
  if (refOps.visibleOptionValues.get(_iKey)) {
34205
34268
  anyDoShowFound = true;
@@ -34220,9 +34283,9 @@ var DivaArticle = /*#__PURE__*/function () {
34220
34283
  }
34221
34284
  }
34222
34285
  } catch (err) {
34223
- _iterator22.e(err);
34286
+ _iterator23.e(err);
34224
34287
  } finally {
34225
- _iterator22.f();
34288
+ _iterator23.f();
34226
34289
  }
34227
34290
  }
34228
34291
  if (!opvIsValid || ignoreOPVIsValid) {
@@ -34273,11 +34336,11 @@ var DivaArticle = /*#__PURE__*/function () {
34273
34336
  var _accessoiresToUpdate$;
34274
34337
  var variantValues = {};
34275
34338
  var accessoire = articles[_i2];
34276
- var _iterator23 = _createForOfIteratorHelper$o(accessoire.articleOptionStates.values()),
34277
- _step23;
34339
+ var _iterator24 = _createForOfIteratorHelper$o(accessoire.articleOptionStates.values()),
34340
+ _step24;
34278
34341
  try {
34279
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
34280
- var ops = _step23.value;
34342
+ for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
34343
+ var ops = _step24.value;
34281
34344
  if (singleOpts.includes(ops.optionCodex)) {
34282
34345
  if (accessoire.hasType1Dependencies) {
34283
34346
  variantValues[ops.optionCodex] = curOpvValue.replace('OPV' + opt.substring(3), 'OPV' + ops.optionCodex.substring(3));
@@ -34288,9 +34351,9 @@ var DivaArticle = /*#__PURE__*/function () {
34288
34351
  }
34289
34352
  //an accessoire can get values of several global options, the ones of the previous options must stay
34290
34353
  } catch (err) {
34291
- _iterator23.e(err);
34354
+ _iterator24.e(err);
34292
34355
  } finally {
34293
- _iterator23.f();
34356
+ _iterator24.f();
34294
34357
  }
34295
34358
  if (Object.entries(variantValues).length > 0) accessoiresToUpdate[accessoire.basketId] = {
34296
34359
  accessoire: accessoire,
@@ -34306,11 +34369,11 @@ var DivaArticle = /*#__PURE__*/function () {
34306
34369
  value: function getGlobalOptions() {
34307
34370
  var ret = {};
34308
34371
  var opss = this.articleOptionStatesWithParents;
34309
- var _iterator24 = _createForOfIteratorHelper$o(opss),
34310
- _step24;
34372
+ var _iterator25 = _createForOfIteratorHelper$o(opss),
34373
+ _step25;
34311
34374
  try {
34312
- for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
34313
- var ops = _step24.value;
34375
+ for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
34376
+ var ops = _step25.value;
34314
34377
  var value = ops.option.isDefaultValueForOptions;
34315
34378
  if (value) {
34316
34379
  var entires = value.split(';');
@@ -34319,9 +34382,9 @@ var DivaArticle = /*#__PURE__*/function () {
34319
34382
  }
34320
34383
  }
34321
34384
  } catch (err) {
34322
- _iterator24.e(err);
34385
+ _iterator25.e(err);
34323
34386
  } finally {
34324
- _iterator24.f();
34387
+ _iterator25.f();
34325
34388
  }
34326
34389
  return ret;
34327
34390
  }
@@ -34361,34 +34424,34 @@ var DivaArticle = /*#__PURE__*/function () {
34361
34424
  }
34362
34425
  if (Object.keys(ret.opt).length === 0) {
34363
34426
  //nicht gefunden - jetzt OCD kontrollieren
34364
- var _iterator25 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34365
- _step25;
34427
+ var _iterator26 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34428
+ _step26;
34366
34429
  try {
34367
- for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
34368
- var _ops4 = _step25.value;
34430
+ for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
34431
+ var _ops4 = _step26.value;
34369
34432
  if (_ops4.option.ocd == optionCodex && _ops4.isDoShow && (parentOptionCodex == '' || parentOptionCodex == _ops4.option.parentOptionCodex)) {
34370
34433
  ret = this.checkOptionSearchOPV(_ops4.option, optionValueCodex, ret);
34371
34434
  }
34372
34435
  }
34373
34436
  //fallback for pfister classification usecase
34374
34437
  } catch (err) {
34375
- _iterator25.e(err);
34438
+ _iterator26.e(err);
34376
34439
  } finally {
34377
- _iterator25.f();
34440
+ _iterator26.f();
34378
34441
  }
34379
- var _iterator26 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34380
- _step26;
34442
+ var _iterator27 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34443
+ _step27;
34381
34444
  try {
34382
- for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
34383
- var _ops5 = _step26.value;
34445
+ for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
34446
+ var _ops5 = _step27.value;
34384
34447
  if (_ops5.option.ocd == optionCodex && optionCodex !== null && optionCodex !== void 0 && optionCodex.startsWith('OPTOPT') && (parentOptionCodex == '' || parentOptionCodex == _ops5.option.parentOptionCodex)) {
34385
34448
  return this.checkOptionSearchOPV(_ops5.option, optionValueCodex, ret);
34386
34449
  }
34387
34450
  }
34388
34451
  } catch (err) {
34389
- _iterator26.e(err);
34452
+ _iterator27.e(err);
34390
34453
  } finally {
34391
- _iterator26.f();
34454
+ _iterator27.f();
34392
34455
  }
34393
34456
  }
34394
34457
  }
@@ -34404,26 +34467,26 @@ var DivaArticle = /*#__PURE__*/function () {
34404
34467
  }
34405
34468
  if (myOPT.hasOPG) {
34406
34469
  var myOPGs = myOPT.articleOptionValues;
34407
- var _iterator27 = _createForOfIteratorHelper$o(myOPGs),
34408
- _step27;
34470
+ var _iterator28 = _createForOfIteratorHelper$o(myOPGs),
34471
+ _step28;
34409
34472
  try {
34410
- for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
34411
- var _step27$value = _slicedToArray(_step27.value, 2),
34412
- iKey = _step27$value[0],
34413
- opg = _step27$value[1];
34473
+ for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
34474
+ var _step28$value = _slicedToArray(_step28.value, 2),
34475
+ iKey = _step28$value[0],
34476
+ opg = _step28$value[1];
34414
34477
  var myOPVs = opg.articleOptionValues;
34415
34478
  if (myOPVs && myOPVs.get(optionValueCodex)) {
34416
34479
  ret.opv = myOPVs.get(optionValueCodex);
34417
34480
  found = true;
34418
34481
  }
34419
34482
  if (!found) {
34420
- var _iterator28 = _createForOfIteratorHelper$o(myOPVs),
34421
- _step28;
34483
+ var _iterator29 = _createForOfIteratorHelper$o(myOPVs),
34484
+ _step29;
34422
34485
  try {
34423
- for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
34424
- var _step28$value = _slicedToArray(_step28.value, 2),
34425
- jKey = _step28$value[0],
34426
- opv = _step28$value[1];
34486
+ for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
34487
+ var _step29$value = _slicedToArray(_step29.value, 2),
34488
+ jKey = _step29$value[0],
34489
+ opv = _step29$value[1];
34427
34490
  if (opv.ocd == optionValueCodex || opv.codex == optionValueCodex || optionValueCodex === 'OPVOPV_NICHT_RELEVANT' && jKey.startsWith('OPVOPV_NICHT_RELEVANT')) {
34428
34491
  ret.opv = opv;
34429
34492
  found = true;
@@ -34431,19 +34494,19 @@ var DivaArticle = /*#__PURE__*/function () {
34431
34494
  }
34432
34495
  }
34433
34496
  } catch (err) {
34434
- _iterator28.e(err);
34497
+ _iterator29.e(err);
34435
34498
  } finally {
34436
- _iterator28.f();
34499
+ _iterator29.f();
34437
34500
  }
34438
34501
  }
34439
34502
  if (!found && myOPT.parentOptionCodex) {
34440
- var _iterator29 = _createForOfIteratorHelper$o(myOPVs),
34441
- _step29;
34503
+ var _iterator30 = _createForOfIteratorHelper$o(myOPVs),
34504
+ _step30;
34442
34505
  try {
34443
- for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
34444
- var _step29$value = _slicedToArray(_step29.value, 2),
34445
- _jKey = _step29$value[0],
34446
- _opv = _step29$value[1];
34506
+ for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
34507
+ var _step30$value = _slicedToArray(_step30.value, 2),
34508
+ _jKey = _step30$value[0],
34509
+ _opv = _step30$value[1];
34447
34510
  if (_opv.ocd && _opv.ocd.startsWith(optionValueCodex) || _opv.codex.startsWith(optionValueCodex)) {
34448
34511
  ret.opv = _opv;
34449
34512
  found = true;
@@ -34451,17 +34514,17 @@ var DivaArticle = /*#__PURE__*/function () {
34451
34514
  }
34452
34515
  }
34453
34516
  } catch (err) {
34454
- _iterator29.e(err);
34517
+ _iterator30.e(err);
34455
34518
  } finally {
34456
- _iterator29.f();
34519
+ _iterator30.f();
34457
34520
  }
34458
34521
  }
34459
34522
  if (ret.opv && Object.entries(ret.opv).length != 0) break;
34460
34523
  }
34461
34524
  } catch (err) {
34462
- _iterator27.e(err);
34525
+ _iterator28.e(err);
34463
34526
  } finally {
34464
- _iterator27.f();
34527
+ _iterator28.f();
34465
34528
  }
34466
34529
  } else {
34467
34530
  var _myOPVs = myOPT.articleOptionValues;
@@ -34470,13 +34533,13 @@ var DivaArticle = /*#__PURE__*/function () {
34470
34533
  found = true;
34471
34534
  }
34472
34535
  if (!found) {
34473
- var _iterator30 = _createForOfIteratorHelper$o(_myOPVs),
34474
- _step30;
34536
+ var _iterator31 = _createForOfIteratorHelper$o(_myOPVs),
34537
+ _step31;
34475
34538
  try {
34476
- for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
34477
- var _step30$value = _slicedToArray(_step30.value, 2),
34478
- _jKey2 = _step30$value[0],
34479
- _opv2 = _step30$value[1];
34539
+ for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
34540
+ var _step31$value = _slicedToArray(_step31.value, 2),
34541
+ _jKey2 = _step31$value[0],
34542
+ _opv2 = _step31$value[1];
34480
34543
  if (_opv2.ocd == optionValueCodex || optionValueCodex === 'OPVOPV_NICHT_RELEVANT' && _jKey2.startsWith('OPVOPV_NICHT_RELEVANT')) {
34481
34544
  ret.opv = _opv2;
34482
34545
  found = true;
@@ -34484,9 +34547,9 @@ var DivaArticle = /*#__PURE__*/function () {
34484
34547
  }
34485
34548
  }
34486
34549
  } catch (err) {
34487
- _iterator30.e(err);
34550
+ _iterator31.e(err);
34488
34551
  } finally {
34489
- _iterator30.f();
34552
+ _iterator31.f();
34490
34553
  }
34491
34554
  }
34492
34555
  }
@@ -34496,11 +34559,11 @@ var DivaArticle = /*#__PURE__*/function () {
34496
34559
  key: "getArticleJsonVariantValues",
34497
34560
  value: function getArticleJsonVariantValues() {
34498
34561
  var retval = {};
34499
- var _iterator31 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34500
- _step31;
34562
+ var _iterator32 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34563
+ _step32;
34501
34564
  try {
34502
- for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
34503
- var ops = _step31.value;
34565
+ for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
34566
+ var ops = _step32.value;
34504
34567
  if (ops.valCodex) {
34505
34568
  retval[ops.optionCodex] = ops.valCodex;
34506
34569
  var opsVal = this.getArticleOptionStateFlat(ops.optionCodex + '_val');
@@ -34513,9 +34576,9 @@ var DivaArticle = /*#__PURE__*/function () {
34513
34576
  }
34514
34577
  }
34515
34578
  } catch (err) {
34516
- _iterator31.e(err);
34579
+ _iterator32.e(err);
34517
34580
  } finally {
34518
- _iterator31.f();
34581
+ _iterator32.f();
34519
34582
  }
34520
34583
  return retval;
34521
34584
  }
@@ -34615,38 +34678,38 @@ var DivaArticle = /*#__PURE__*/function () {
34615
34678
  }, {
34616
34679
  key: "findFreeTextOpv",
34617
34680
  value: function findFreeTextOpv(ops) {
34618
- var _iterator32 = _createForOfIteratorHelper$o(ops.visibleOptionValues),
34619
- _step32;
34681
+ var _iterator33 = _createForOfIteratorHelper$o(ops.visibleOptionValues),
34682
+ _step33;
34620
34683
  try {
34621
- for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
34622
- var _step32$value = _slicedToArray(_step32.value, 2),
34623
- key = _step32$value[0],
34624
- opv = _step32$value[1];
34684
+ for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
34685
+ var _step33$value = _slicedToArray(_step33.value, 2),
34686
+ key = _step33$value[0],
34687
+ opv = _step33$value[1];
34625
34688
  if (opv.isFreeText) {
34626
34689
  return opv;
34627
34690
  }
34628
34691
  }
34629
34692
  } catch (err) {
34630
- _iterator32.e(err);
34693
+ _iterator33.e(err);
34631
34694
  } finally {
34632
- _iterator32.f();
34695
+ _iterator33.f();
34633
34696
  }
34634
34697
  return undefined;
34635
34698
  }
34636
34699
  }, {
34637
34700
  key: "defineAllOptions",
34638
34701
  value: function defineAllOptions() {
34639
- var _iterator33 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34640
- _step33;
34702
+ var _iterator34 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34703
+ _step34;
34641
34704
  try {
34642
- for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) {
34643
- var ops = _step33.value;
34705
+ for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
34706
+ var ops = _step34.value;
34644
34707
  ops.isDefined = true;
34645
34708
  }
34646
34709
  } catch (err) {
34647
- _iterator33.e(err);
34710
+ _iterator34.e(err);
34648
34711
  } finally {
34649
- _iterator33.f();
34712
+ _iterator34.f();
34650
34713
  }
34651
34714
  }
34652
34715
  }, {
@@ -34658,13 +34721,13 @@ var DivaArticle = /*#__PURE__*/function () {
34658
34721
  }, {
34659
34722
  key: "getDefaultOpv",
34660
34723
  value: function getDefaultOpv(visibleOptionValues) {
34661
- var _iterator34 = _createForOfIteratorHelper$o(visibleOptionValues),
34662
- _step34;
34724
+ var _iterator35 = _createForOfIteratorHelper$o(visibleOptionValues),
34725
+ _step35;
34663
34726
  try {
34664
- for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) {
34665
- var _step34$value = _slicedToArray(_step34.value, 2),
34666
- iKey = _step34$value[0],
34667
- opv = _step34$value[1];
34727
+ for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
34728
+ var _step35$value = _slicedToArray(_step35.value, 2),
34729
+ iKey = _step35$value[0],
34730
+ opv = _step35$value[1];
34668
34731
  if (opv.isOPVG) {
34669
34732
  var _opv$articleOptionVal, _opv$articleOptionVal2;
34670
34733
  var defaultOPV = Array.from((_opv$articleOptionVal = (_opv$articleOptionVal2 = opv.articleOptionValues) === null || _opv$articleOptionVal2 === void 0 ? void 0 : _opv$articleOptionVal2.values()) !== null && _opv$articleOptionVal !== void 0 ? _opv$articleOptionVal : []).find(function (opv) {
@@ -34679,9 +34742,9 @@ var DivaArticle = /*#__PURE__*/function () {
34679
34742
  }
34680
34743
  }
34681
34744
  } catch (err) {
34682
- _iterator34.e(err);
34745
+ _iterator35.e(err);
34683
34746
  } finally {
34684
- _iterator34.f();
34747
+ _iterator35.f();
34685
34748
  }
34686
34749
  return Array.from(visibleOptionValues.values())[0];
34687
34750
  }
@@ -34789,7 +34852,7 @@ var DivaArticle = /*#__PURE__*/function () {
34789
34852
  break;
34790
34853
  }
34791
34854
  _context.next = 4;
34792
- return import('./ShelfPlanner-e996961c.js');
34855
+ return import('./ShelfPlanner-295d17cc.js');
34793
34856
  case 4:
34794
34857
  _yield$import = _context.sent;
34795
34858
  ShelfPlanner = _yield$import["default"];
@@ -34878,19 +34941,19 @@ var DivaArticle = /*#__PURE__*/function () {
34878
34941
  value: function afterInit() {
34879
34942
  if (!this.CatalogData.useDiomexConfigLogic) return {};
34880
34943
  var variantValues = {};
34881
- var _iterator35 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34882
- _step35;
34944
+ var _iterator36 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34945
+ _step36;
34883
34946
  try {
34884
- for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) {
34885
- var ops = _step35.value;
34947
+ for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
34948
+ var ops = _step36.value;
34886
34949
  if (ops.val === undefined && ops.visibleOPVKeys.length && !ops.invisibleWithoutMaskeInfluence) {
34887
34950
  variantValues[ops.optionCodex] = ops.visibleOPVKeys[0];
34888
34951
  }
34889
34952
  }
34890
34953
  } catch (err) {
34891
- _iterator35.e(err);
34954
+ _iterator36.e(err);
34892
34955
  } finally {
34893
- _iterator35.f();
34956
+ _iterator36.f();
34894
34957
  }
34895
34958
  return variantValues;
34896
34959
  }
@@ -34931,13 +34994,13 @@ var DivaArticle = /*#__PURE__*/function () {
34931
34994
  var catalogopv = ops.option.articleOptionValues.get(myValues[_key]);
34932
34995
  if (catalogopv !== null && catalogopv !== void 0 && catalogopv.sameopv) {
34933
34996
  var opvs = ops.option.articleOptionValues;
34934
- var _iterator36 = _createForOfIteratorHelper$o(opvs),
34935
- _step36;
34997
+ var _iterator37 = _createForOfIteratorHelper$o(opvs),
34998
+ _step37;
34936
34999
  try {
34937
- for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) {
34938
- var _step36$value = _slicedToArray(_step36.value, 2),
34939
- opvKey = _step36$value[0],
34940
- checkingOpv = _step36$value[1];
35000
+ for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
35001
+ var _step37$value = _slicedToArray(_step37.value, 2),
35002
+ opvKey = _step37$value[0],
35003
+ checkingOpv = _step37$value[1];
34941
35004
  if (opvKey === catalogopv.codex) continue;
34942
35005
  if (checkingOpv !== null && checkingOpv !== void 0 && checkingOpv.sameopv && catalogopv.sameopv == checkingOpv.sameopv) {
34943
35006
  if (!ops.visibleOptionValues.get(catalogopv.codex) && ops.visibleOptionValues.get(checkingOpv.codex)) {
@@ -34946,9 +35009,9 @@ var DivaArticle = /*#__PURE__*/function () {
34946
35009
  }
34947
35010
  }
34948
35011
  } catch (err) {
34949
- _iterator36.e(err);
35012
+ _iterator37.e(err);
34950
35013
  } finally {
34951
- _iterator36.f();
35014
+ _iterator37.f();
34952
35015
  }
34953
35016
  }
34954
35017
  }
@@ -34959,20 +35022,20 @@ var DivaArticle = /*#__PURE__*/function () {
34959
35022
  } else if (_key2.endsWith('_val') && this.getArticleOptionState(_key2.replace(/_val/g, ''))) {
34960
35023
  validValues[_key2] = myValues[_key2];
34961
35024
  } else {
34962
- var _iterator37 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
34963
- _step37;
35025
+ var _iterator38 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
35026
+ _step38;
34964
35027
  try {
34965
- for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) {
34966
- var _ops7 = _step37.value;
35028
+ for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
35029
+ var _ops7 = _step38.value;
34967
35030
  if (_ops7.optionOcd == _key2) {
34968
35031
  var values = this.checkOptionSearchOPV(_ops7.option, myValues[_key2], {});
34969
35032
  if (values !== null && values !== void 0 && values.opv) validValues[_ops7.optionCodex] = values.opv.codex;
34970
35033
  }
34971
35034
  }
34972
35035
  } catch (err) {
34973
- _iterator37.e(err);
35036
+ _iterator38.e(err);
34974
35037
  } finally {
34975
- _iterator37.f();
35038
+ _iterator38.f();
34976
35039
  }
34977
35040
  }
34978
35041
  //for classification usecase when suboption and option have the same name like OPTOPT_MATERIAL_1_00 and OPTOPT_MATERIAL_1_00.OPTOPT_MATERIAL_1_00
@@ -35054,12 +35117,12 @@ var DivaArticle = /*#__PURE__*/function () {
35054
35117
  for (var _i4 = 0, _arr = [this].concat(_toConsumableArray(this.partlistArticlesReqursive)); _i4 < _arr.length; _i4++) {
35055
35118
  var article = _arr[_i4];
35056
35119
  if (article.isIDM3DSkipped) continue;
35057
- var _iterator38 = _createForOfIteratorHelper$o(article.getArticleOptionStatesWithOptionsForPrint().values()),
35058
- _step38;
35120
+ var _iterator39 = _createForOfIteratorHelper$o(article.getArticleOptionStatesWithOptionsForPrint().values()),
35121
+ _step39;
35059
35122
  try {
35060
- for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
35123
+ for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
35061
35124
  var _ops$option$ocd, _ops$val$ocd3, _ops$val$property, _ops$val$properties;
35062
- var ops = _step38.value;
35125
+ var ops = _step39.value;
35063
35126
  if (!ops.val || article.isPartListArticle && ops.val.isNotRelevant) continue;
35064
35127
  var opt = (article.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
35065
35128
  if (alternateRenderInfo !== null && alternateRenderInfo !== void 0 && alternateRenderInfo.hideOptionsIn3DImage.includes(opt)) continue;
@@ -35071,9 +35134,9 @@ var DivaArticle = /*#__PURE__*/function () {
35071
35134
  });
35072
35135
  }
35073
35136
  } catch (err) {
35074
- _iterator38.e(err);
35137
+ _iterator39.e(err);
35075
35138
  } finally {
35076
- _iterator38.f();
35139
+ _iterator39.f();
35077
35140
  }
35078
35141
  }
35079
35142
  return sources;
@@ -35082,18 +35145,18 @@ var DivaArticle = /*#__PURE__*/function () {
35082
35145
  key: "addOptionStateFromArticleToPlannerData",
35083
35146
  value: function addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo, partlistPrefix) {
35084
35147
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
35085
- var _iterator39 = _createForOfIteratorHelper$o(articleOptions.values()),
35086
- _step39;
35148
+ var _iterator40 = _createForOfIteratorHelper$o(articleOptions.values()),
35149
+ _step40;
35087
35150
  try {
35088
- for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
35151
+ for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
35089
35152
  var _ops$val5;
35090
- var ops = _step39.value;
35153
+ var ops = _step40.value;
35091
35154
  if (!this.article.isPartlistArticle || !((_ops$val5 = ops.val) !== null && _ops$val5 !== void 0 && _ops$val5.isNotRelevant)) this.addOptionStateToPlannerData(ret, ops, alternateRenderInfo, partlistPrefix);
35092
35155
  }
35093
35156
  } catch (err) {
35094
- _iterator39.e(err);
35157
+ _iterator40.e(err);
35095
35158
  } finally {
35096
- _iterator39.f();
35159
+ _iterator40.f();
35097
35160
  }
35098
35161
  for (var key in this.article.partlistArticles) {
35099
35162
  var _pla$partlistGroupPre;
@@ -35155,11 +35218,11 @@ var DivaArticle = /*#__PURE__*/function () {
35155
35218
  key: "getAccessoireMATData",
35156
35219
  value: function getAccessoireMATData(onString) {
35157
35220
  var MAT = [];
35158
- var _iterator40 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
35159
- _step40;
35221
+ var _iterator41 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
35222
+ _step41;
35160
35223
  try {
35161
- for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
35162
- var ops = _step40.value;
35224
+ for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
35225
+ var ops = _step41.value;
35163
35226
  var opt = void 0;
35164
35227
  if (!ops.val) continue;
35165
35228
  opt = ops.optionCodex;
@@ -35172,9 +35235,9 @@ var DivaArticle = /*#__PURE__*/function () {
35172
35235
  });
35173
35236
  }
35174
35237
  } catch (err) {
35175
- _iterator40.e(err);
35238
+ _iterator41.e(err);
35176
35239
  } finally {
35177
- _iterator40.f();
35240
+ _iterator41.f();
35178
35241
  }
35179
35242
  return MAT;
35180
35243
  }
@@ -35218,11 +35281,11 @@ var DivaArticle = /*#__PURE__*/function () {
35218
35281
  value: function getVariantBasketData() {
35219
35282
  var variantBasketData = [];
35220
35283
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
35221
- var _iterator41 = _createForOfIteratorHelper$o(articleOptions.values()),
35222
- _step41;
35284
+ var _iterator42 = _createForOfIteratorHelper$o(articleOptions.values()),
35285
+ _step42;
35223
35286
  try {
35224
- for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
35225
- var ops = _step41.value;
35287
+ for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
35288
+ var ops = _step42.value;
35226
35289
  var OP = ops.optionCodex;
35227
35290
  if (ops) {
35228
35291
  var _ops$idmVariantenArt2;
@@ -35249,6 +35312,10 @@ var DivaArticle = /*#__PURE__*/function () {
35249
35312
  var opvNames = this.getMergedOPGNames(ops);
35250
35313
  // a partlist position prints the options its OptionsForPrint names, even implicit (type I) ones
35251
35314
  var isOptionForPrint = this.isPartListArticle && !!((_this$optionsForPrint2 = this.optionsForPrint) !== null && _this$optionsForPrint2 !== void 0 && _this$optionsForPrint2.includes(OP));
35315
+ // the perimeter options name the formula the price is calculated with; print its result instead, rounded up so the
35316
+ // band reaches around the carpet (to 2 decimals first, so float noise like 890.0000001 does not add a centimetre)
35317
+ var perimeter = this.getPerimeter(OP);
35318
+ var perimeterName = perimeter !== undefined && perimeter > 0 ? Math.ceil(DivaUtils.decimalAdjust('round', perimeter, 2)) + ' cm' : undefined;
35252
35319
  var myOptItem = {
35253
35320
  BasketID: this.basketId,
35254
35321
  OPT: this.CatalogData.isIDMFormat ? OP : OP.substring(3),
@@ -35259,9 +35326,9 @@ var DivaArticle = /*#__PURE__*/function () {
35259
35326
  OCD: ops.ocd,
35260
35327
  OPV: this.CatalogData.isIDMFormat ? ops.val.codex : ops.val.codex.substring(3),
35261
35328
  vOPV: !this.CatalogData.dontUseVCodexInBasket ? ops.vCodex : undefined,
35262
- OPVName: DivaUtils.stripTags(opvNames.origName),
35263
- MaskOPVName: opvNames.origName !== opvNames.name ? DivaUtils.stripTags(opvNames.name) : undefined,
35264
- OPVName_locales: DivaUtils.stripTagsFromDict((_ops$valName_locales2 = ops.valName_locales) !== null && _ops$valName_locales2 !== void 0 ? _ops$valName_locales2 : {}),
35329
+ OPVName: perimeterName !== null && perimeterName !== void 0 ? perimeterName : DivaUtils.stripTags(opvNames.origName),
35330
+ MaskOPVName: !perimeterName && opvNames.origName !== opvNames.name ? DivaUtils.stripTags(opvNames.name) : undefined,
35331
+ OPVName_locales: perimeterName ? {} : DivaUtils.stripTagsFromDict((_ops$valName_locales2 = ops.valName_locales) !== null && _ops$valName_locales2 !== void 0 ? _ops$valName_locales2 : {}),
35265
35332
  OPVImage: ops.val.image ? this.CatalogData.getCatImageURL(ops.val.image, '_gal') : '',
35266
35333
  FreeText: freeText,
35267
35334
  MeasureUnit: ops.measureUnit,
@@ -35280,7 +35347,9 @@ var DivaArticle = /*#__PURE__*/function () {
35280
35347
  TabGroup_locales: ops.optionTabGroup_locales,
35281
35348
  SendToSAP: ops.option.sendToSAP,
35282
35349
  ArticlePlaceholder: ops.option.articlePlaceholder,
35283
- Hidden: !!(ops.headerPosVariationType == 'I' && !isOptionForPrint || ops.invisibleWithoutMaskeInfluence || ops.val.hideInSummary || this.isPartListArticle && (_this$optionsForPrint3 = this.optionsForPrint) !== null && _this$optionsForPrint3 !== void 0 && _this$optionsForPrint3.length && !isOptionForPrint),
35350
+ Hidden: !!(ops.headerPosVariationType == 'I' && !isOptionForPrint || ops.invisibleWithoutMaskeInfluence || ops.val.hideInSummary || this.isPartListArticle && (_this$optionsForPrint3 = this.optionsForPrint) !== null && _this$optionsForPrint3 !== void 0 && _this$optionsForPrint3.length && !isOptionForPrint ||
35351
+ // a band position may name both perimeter options; only the one its carpet has is the band's length, as in the price
35352
+ perimeter !== undefined && !this.parentHasSameOption(OP)),
35284
35353
  HideInOrderText: ops.hideInOrderText,
35285
35354
  IsDescribingState: ops.isDescribingState,
35286
35355
  FreeTextLang: ops.freeTextLang,
@@ -35292,9 +35361,9 @@ var DivaArticle = /*#__PURE__*/function () {
35292
35361
  }
35293
35362
  }
35294
35363
  } catch (err) {
35295
- _iterator41.e(err);
35364
+ _iterator42.e(err);
35296
35365
  } finally {
35297
- _iterator41.f();
35366
+ _iterator42.f();
35298
35367
  }
35299
35368
  return variantBasketData;
35300
35369
  }
@@ -35485,13 +35554,13 @@ var DivaArticle = /*#__PURE__*/function () {
35485
35554
  key: "unresolvedTemplateTokens",
35486
35555
  value: function unresolvedTemplateTokens(template) {
35487
35556
  var unresolved = [];
35488
- var _iterator42 = _createForOfIteratorHelper$o(template.matchAll(/\{(.*?)\}/g)),
35489
- _step42;
35557
+ var _iterator43 = _createForOfIteratorHelper$o(template.matchAll(/\{(.*?)\}/g)),
35558
+ _step43;
35490
35559
  try {
35491
- for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
35492
- var _step42$value = _slicedToArray(_step42.value, 2),
35493
- token = _step42$value[0],
35494
- expression = _step42$value[1];
35560
+ for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
35561
+ var _step43$value = _slicedToArray(_step43.value, 2),
35562
+ token = _step43$value[0],
35563
+ expression = _step43$value[1];
35495
35564
  var resolved = this.resolveTemplateToken(String(expression));
35496
35565
  if (resolved === '' || resolved.startsWith('___')) unresolved.push({
35497
35566
  token: token,
@@ -35499,9 +35568,9 @@ var DivaArticle = /*#__PURE__*/function () {
35499
35568
  });
35500
35569
  }
35501
35570
  } catch (err) {
35502
- _iterator42.e(err);
35571
+ _iterator43.e(err);
35503
35572
  } finally {
35504
- _iterator42.f();
35573
+ _iterator43.f();
35505
35574
  }
35506
35575
  return unresolved;
35507
35576
  }
@@ -35629,18 +35698,18 @@ var DivaArticle = /*#__PURE__*/function () {
35629
35698
  value: function cloneArticle(set) {
35630
35699
  var clonedArticle = new DivaArticle(set, this.basketId, _objectSpread$p({}, this.article), this.article.catalogArticle, set.CatalogData);
35631
35700
  clonedArticle.articleOptionStatesData = new Map();
35632
- var _iterator43 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
35633
- _step43;
35701
+ var _iterator44 = _createForOfIteratorHelper$o(this.articleOptionStates.values()),
35702
+ _step44;
35634
35703
  try {
35635
- for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) {
35636
- var ops = _step43.value;
35704
+ for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) {
35705
+ var ops = _step44.value;
35637
35706
  var clonedOps = ops.cloneOptionState(clonedArticle.getIsConfigSingle);
35638
35707
  clonedArticle.articleOptionStatesData.set(ops.optionCodex, clonedOps);
35639
35708
  }
35640
35709
  } catch (err) {
35641
- _iterator43.e(err);
35710
+ _iterator44.e(err);
35642
35711
  } finally {
35643
- _iterator43.f();
35712
+ _iterator44.f();
35644
35713
  }
35645
35714
  clonedArticle.initEngine();
35646
35715
  clonedArticle.hasDecisionsInitialized = true;
@@ -37510,7 +37579,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37510
37579
  key: "correctPartlistArticlesByGlobalRules",
37511
37580
  value: (function () {
37512
37581
  var _correctPartlistArticlesByGlobalRules = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee18(set, partlistArticlesToLoad, bundleRules, doChangeRetailArticleNumbers) {
37513
- var article, ownPositions, bundledCodices, _loop4, _i8, _arr, _iterator8, _step8, _step8$value, source, positions;
37582
+ var article, ownPositions, bundledCodices, _iterator8, _step8, position, source, toCompare, _loop4, _i8, _arr, _iterator9, _step9, _step9$value, _source, positions;
37514
37583
  return _regeneratorRuntime.wrap(function _callee18$(_context20) {
37515
37584
  while (1) switch (_context20.prev = _context20.next) {
37516
37585
  case 0:
@@ -37519,26 +37588,78 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37519
37588
  }); //a shelf accessoire that can be planned for free keeps the positions no rule names: its noPrice has to waive the parts
37520
37589
  //it brings along, and pooled onto the first article they would be charged there. Everything else is pooled.
37521
37590
  ownPositions = new Map();
37522
- if (bundleRules) {
37523
- bundledCodices = new Set(bundleRules.flatMap(function (rule) {
37524
- var _rule$result;
37525
- return [].concat(_toConsumableArray(rule.toBundle), _toConsumableArray((_rule$result = rule.result) !== null && _rule$result !== void 0 ? _rule$result : [])).map(function (entry) {
37526
- return entry.articleCodex;
37527
- });
37528
- }));
37529
- partlistArticlesToLoad = partlistArticlesToLoad.filter(function (position) {
37530
- var _source$accessoirePar, _ownPositions$get;
37531
- var source = position.SourceBasketID ? set.getArticleByBasketId(position.SourceBasketID) : undefined;
37532
- if (!source || source.deleted || source === article || bundledCodices.has(position.ArticleCodex)) return true;
37533
- if (!((_source$accessoirePar = source.accessoireParentArticle) !== null && _source$accessoirePar !== void 0 && (_source$accessoirePar = _source$accessoirePar.shelfPlanner) !== null && _source$accessoirePar !== void 0 && _source$accessoirePar.canBeFree(source.articleCodex))) return true;
37534
- ownPositions.set(source, [].concat(_toConsumableArray((_ownPositions$get = ownPositions.get(source)) !== null && _ownPositions$get !== void 0 ? _ownPositions$get : []), [position]));
37535
- return false;
37591
+ if (!bundleRules) {
37592
+ _context20.next = 29;
37593
+ break;
37594
+ }
37595
+ bundledCodices = new Set(bundleRules.flatMap(function (rule) {
37596
+ var _rule$result;
37597
+ return [].concat(_toConsumableArray(rule.toBundle), _toConsumableArray((_rule$result = rule.result) !== null && _rule$result !== void 0 ? _rule$result : [])).map(function (entry) {
37598
+ return entry.articleCodex;
37536
37599
  });
37537
- partlistArticlesToLoad = this.bundlePartlistArticles(partlistArticlesToLoad, bundleRules, set.getDivaArticles());
37600
+ })); //pooled positions load onto the first article without their own article's values (loaded on their own they get them
37601
+ //as the parent's values): each takes them along, so a position of the second article is not resolved with the first's
37602
+ _iterator8 = _createForOfIteratorHelper$n(partlistArticlesToLoad);
37603
+ _context20.prev = 5;
37604
+ _iterator8.s();
37605
+ case 7:
37606
+ if ((_step8 = _iterator8.n()).done) {
37607
+ _context20.next = 15;
37608
+ break;
37538
37609
  }
37539
- //Correct RetailArticleNumbers
37610
+ position = _step8.value;
37611
+ source = position.SourceBasketID ? set.getArticleByBasketId(position.SourceBasketID) : undefined;
37612
+ if (!(!source || source.deleted)) {
37613
+ _context20.next = 12;
37614
+ break;
37615
+ }
37616
+ return _context20.abrupt("continue", 13);
37617
+ case 12:
37618
+ position.VariantValues = position.ConfigurationMode ? _objectSpread$o(_objectSpread$o({}, source.VariantValues), position.VariantValues) : _objectSpread$o(_objectSpread$o({}, position.VariantValues), source.VariantValues);
37619
+ case 13:
37620
+ _context20.next = 7;
37621
+ break;
37622
+ case 15:
37623
+ _context20.next = 20;
37624
+ break;
37625
+ case 17:
37626
+ _context20.prev = 17;
37627
+ _context20.t0 = _context20["catch"](5);
37628
+ _iterator8.e(_context20.t0);
37629
+ case 20:
37630
+ _context20.prev = 20;
37631
+ _iterator8.f();
37632
+ return _context20.finish(20);
37633
+ case 23:
37634
+ partlistArticlesToLoad = partlistArticlesToLoad.filter(function (position) {
37635
+ var _source$accessoirePar, _ownPositions$get;
37636
+ var source = position.SourceBasketID ? set.getArticleByBasketId(position.SourceBasketID) : undefined;
37637
+ if (!source || source.deleted || source === article || bundledCodices.has(position.ArticleCodex)) return true;
37638
+ if (!((_source$accessoirePar = source.accessoireParentArticle) !== null && _source$accessoirePar !== void 0 && (_source$accessoirePar = _source$accessoirePar.shelfPlanner) !== null && _source$accessoirePar !== void 0 && _source$accessoirePar.canBeFree(source.articleCodex))) return true;
37639
+ ownPositions.set(source, [].concat(_toConsumableArray((_ownPositions$get = ownPositions.get(source)) !== null && _ownPositions$get !== void 0 ? _ownPositions$get : []), [position]));
37640
+ return false;
37641
+ });
37642
+ //the positions merge by the values of their own features, which a catalog loads with the article on demand: load
37643
+ //them before they are compared (they are loaded right after anyway)
37644
+ toCompare = partlistArticlesToLoad.filter(function (position) {
37645
+ return !bundledCodices.has(position.ArticleCodex);
37646
+ });
37647
+ if (!toCompare.length) {
37648
+ _context20.next = 28;
37649
+ break;
37650
+ }
37651
+ _context20.next = 28;
37652
+ return this.preLoadArticles(set, toCompare.map(function (position) {
37653
+ return {
37654
+ articleCodex: position.ArticleCodex,
37655
+ catalogCodex: position.CatalogCodex
37656
+ };
37657
+ }));
37658
+ case 28:
37659
+ partlistArticlesToLoad = this.bundlePartlistArticles(partlistArticlesToLoad, bundleRules, set.getDivaArticles());
37660
+ case 29:
37540
37661
  if (!(doChangeRetailArticleNumbers !== null && doChangeRetailArticleNumbers !== void 0 && doChangeRetailArticleNumbers.doChange && doChangeRetailArticleNumbers.retailArticleRules)) {
37541
- _context20.next = 11;
37662
+ _context20.next = 37;
37542
37663
  break;
37543
37664
  }
37544
37665
  _loop4 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop4() {
@@ -37562,50 +37683,50 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37562
37683
  }, _loop4);
37563
37684
  });
37564
37685
  _i8 = 0, _arr = [].concat(_toConsumableArray(partlistArticlesToLoad), _toConsumableArray(_toConsumableArray(ownPositions.values()).flat()));
37565
- case 6:
37686
+ case 32:
37566
37687
  if (!(_i8 < _arr.length)) {
37567
- _context20.next = 11;
37688
+ _context20.next = 37;
37568
37689
  break;
37569
37690
  }
37570
- return _context20.delegateYield(_loop4(), "t0", 8);
37571
- case 8:
37691
+ return _context20.delegateYield(_loop4(), "t1", 34);
37692
+ case 34:
37572
37693
  _i8++;
37573
- _context20.next = 6;
37694
+ _context20.next = 32;
37574
37695
  break;
37575
- case 11:
37576
- _context20.next = 13;
37696
+ case 37:
37697
+ _context20.next = 39;
37577
37698
  return this.loadPartlistArticles(partlistArticlesToLoad, article, {});
37578
- case 13:
37579
- _iterator8 = _createForOfIteratorHelper$n(ownPositions);
37580
- _context20.prev = 14;
37581
- _iterator8.s();
37582
- case 16:
37583
- if ((_step8 = _iterator8.n()).done) {
37584
- _context20.next = 22;
37699
+ case 39:
37700
+ _iterator9 = _createForOfIteratorHelper$n(ownPositions);
37701
+ _context20.prev = 40;
37702
+ _iterator9.s();
37703
+ case 42:
37704
+ if ((_step9 = _iterator9.n()).done) {
37705
+ _context20.next = 48;
37585
37706
  break;
37586
37707
  }
37587
- _step8$value = _slicedToArray(_step8.value, 2), source = _step8$value[0], positions = _step8$value[1];
37588
- _context20.next = 20;
37589
- return this.loadPartlistArticles(positions, source, {});
37590
- case 20:
37591
- _context20.next = 16;
37708
+ _step9$value = _slicedToArray(_step9.value, 2), _source = _step9$value[0], positions = _step9$value[1];
37709
+ _context20.next = 46;
37710
+ return this.loadPartlistArticles(positions, _source, {});
37711
+ case 46:
37712
+ _context20.next = 42;
37592
37713
  break;
37593
- case 22:
37594
- _context20.next = 27;
37714
+ case 48:
37715
+ _context20.next = 53;
37595
37716
  break;
37596
- case 24:
37597
- _context20.prev = 24;
37598
- _context20.t1 = _context20["catch"](14);
37599
- _iterator8.e(_context20.t1);
37600
- case 27:
37601
- _context20.prev = 27;
37602
- _iterator8.f();
37603
- return _context20.finish(27);
37604
- case 30:
37717
+ case 50:
37718
+ _context20.prev = 50;
37719
+ _context20.t2 = _context20["catch"](40);
37720
+ _iterator9.e(_context20.t2);
37721
+ case 53:
37722
+ _context20.prev = 53;
37723
+ _iterator9.f();
37724
+ return _context20.finish(53);
37725
+ case 56:
37605
37726
  case "end":
37606
37727
  return _context20.stop();
37607
37728
  }
37608
- }, _callee18, this, [[14, 24, 27, 30]]);
37729
+ }, _callee18, this, [[5, 17, 20, 23], [40, 50, 53, 56]]);
37609
37730
  }));
37610
37731
  function correctPartlistArticlesByGlobalRules(_x53, _x54, _x55, _x56) {
37611
37732
  return _correctPartlistArticlesByGlobalRules.apply(this, arguments);
@@ -37615,10 +37736,36 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37615
37736
  }, {
37616
37737
  key: "bundlePartlistArticles",
37617
37738
  value: function bundlePartlistArticles(partlistArticlesToLoad, bundleRules, articles) {
37739
+ var _Object$values$0$set$, _Object$values$;
37618
37740
  var partlistArticlesToLoadGrouped = [];
37741
+ // A position resolves its numbers and sub-positions from the values of its own features, so only positions equal in
37742
+ // those merge - a layout of a 3-raster box is not the one of a 1-raster box. The features come from the loaded
37743
+ // catalog articles (the global rules load them first; one not loaded yet merges by number); what a rule bundles
37744
+ // pools by number, so the rule counts it across the articles.
37745
+ var bundledCodices = new Set(bundleRules.flatMap(function (rule) {
37746
+ var _rule$result2;
37747
+ return [].concat(_toConsumableArray(rule.toBundle), _toConsumableArray((_rule$result2 = rule.result) !== null && _rule$result2 !== void 0 ? _rule$result2 : [])).map(function (entry) {
37748
+ return entry.articleCodex;
37749
+ });
37750
+ }));
37751
+ var catalogs = Object.values((_Object$values$0$set$ = (_Object$values$ = Object.values(articles)[0]) === null || _Object$values$ === void 0 || (_Object$values$ = _Object$values$.set) === null || _Object$values$ === void 0 || (_Object$values$ = _Object$values$.getSetState) === null || _Object$values$ === void 0 ? void 0 : _Object$values$.divaCatalogs) !== null && _Object$values$0$set$ !== void 0 ? _Object$values$0$set$ : {});
37752
+ var ownFeatures = function ownFeatures(position) {
37753
+ var _catalog$getCatalogAr, _catalog$getCatalogAr2;
37754
+ var catalog = catalogs.find(function (catalogData) {
37755
+ return String(catalogData.catalogCodex) === String(position.CatalogCodex);
37756
+ });
37757
+ return Object.keys((_catalog$getCatalogAr = catalog === null || catalog === void 0 || (_catalog$getCatalogAr2 = catalog.getCatalogArticle(position.ArticleCodex)) === null || _catalog$getCatalogAr2 === void 0 ? void 0 : _catalog$getCatalogAr2.articleOptions) !== null && _catalog$getCatalogAr !== void 0 ? _catalog$getCatalogAr : {});
37758
+ };
37759
+ var sameConfiguration = function sameConfiguration(a, b) {
37760
+ if (bundledCodices.has(a.ArticleCodex)) return true;
37761
+ return ownFeatures(a).every(function (feature) {
37762
+ var _a$VariantValues, _b$VariantValues;
37763
+ return ((_a$VariantValues = a.VariantValues) === null || _a$VariantValues === void 0 ? void 0 : _a$VariantValues[feature]) === ((_b$VariantValues = b.VariantValues) === null || _b$VariantValues === void 0 ? void 0 : _b$VariantValues[feature]);
37764
+ });
37765
+ };
37619
37766
  var _loop5 = function _loop5(i) {
37620
37767
  var index = partlistArticlesToLoadGrouped.findIndex(function (item, j) {
37621
- if (item.CatalogCodex == partlistArticlesToLoad[i].CatalogCodex && item.ArticleCodex == partlistArticlesToLoad[i].ArticleCodex && item.RetailArticleNr == partlistArticlesToLoad[i].RetailArticleNr && item.RetailPrefix == partlistArticlesToLoad[i].RetailPrefix) {
37768
+ if (item.CatalogCodex == partlistArticlesToLoad[i].CatalogCodex && item.ArticleCodex == partlistArticlesToLoad[i].ArticleCodex && item.RetailArticleNr == partlistArticlesToLoad[i].RetailArticleNr && item.RetailPrefix == partlistArticlesToLoad[i].RetailPrefix && sameConfiguration(item, partlistArticlesToLoad[i])) {
37622
37769
  return true;
37623
37770
  }
37624
37771
  return false;
@@ -37657,10 +37804,14 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37657
37804
  var _bundleRule$result;
37658
37805
  bundleUsedCounter++;
37659
37806
  var _toBundleList = bundleRule.toBundle;
37807
+ // the catalog of the bundled positions: where a result no partlist names and no loaded article knows comes from
37808
+ var bundledCatalogCodex = void 0;
37660
37809
  for (var _j = 0; _j < _toBundleList.length; _j++) {
37661
37810
  var _toBundle = _toBundleList[_j];
37662
37811
  for (var _m = 0; _m < partlistArticlesToLoadGrouped.length; _m++) {
37663
37812
  if (_toBundle.articleCodex == partlistArticlesToLoadGrouped[_m].ArticleCodex && _toBundle.quantity <= partlistArticlesToLoadGrouped[_m].Quantity) {
37813
+ var _bundledCatalogCodex;
37814
+ (_bundledCatalogCodex = bundledCatalogCodex) !== null && _bundledCatalogCodex !== void 0 ? _bundledCatalogCodex : bundledCatalogCodex = partlistArticlesToLoadGrouped[_m].CatalogCodex;
37664
37815
  partlistArticlesToLoadGrouped[_m].Quantity -= _toBundle.quantity;
37665
37816
  if (partlistArticlesToLoadGrouped[_m].Quantity == 0) {
37666
37817
  partlistArticlesToLoadGrouped.splice(_m, 1);
@@ -37682,7 +37833,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37682
37833
  }
37683
37834
  }
37684
37835
  if (!resutlAlreadyExists) {
37685
- partlistArticlesToLoadGrouped.push(this.createNewPartlistArticleByArticleCodex(result.articleCodex, result.quantity, articles));
37836
+ partlistArticlesToLoadGrouped.push(this.createNewPartlistArticleByArticleCodex(result.articleCodex, result.quantity, articles, bundledCatalogCodex));
37686
37837
  }
37687
37838
  }
37688
37839
  }
@@ -37692,7 +37843,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37692
37843
  }
37693
37844
  }, {
37694
37845
  key: "createNewPartlistArticleByArticleCodex",
37695
- value: function createNewPartlistArticleByArticleCodex(articleCodex, quantity, articles) {
37846
+ value: function createNewPartlistArticleByArticleCodex(articleCodex, quantity, articles, bundledCatalogCodex) {
37696
37847
  var alreadyCheckedArticles = [];
37697
37848
  var catalogData = undefined;
37698
37849
  for (var iKey in articles) {
@@ -37720,6 +37871,18 @@ var DivaArticleHandler = /*#__PURE__*/function () {
37720
37871
  };
37721
37872
  }
37722
37873
  }
37874
+
37875
+ // A catalog loads its articles on demand, so the result may be one nobody has asked for yet: it comes from the
37876
+ // catalog of the positions it replaces and is fetched when the partlist loads, with its own numbers.
37877
+ if (bundledCatalogCodex) {
37878
+ return {
37879
+ CatalogCodex: bundledCatalogCodex,
37880
+ ArticleCodex: articleCodex,
37881
+ RetailArticleNr: '',
37882
+ Quantity: quantity,
37883
+ VariantValues: {}
37884
+ };
37885
+ }
37723
37886
  throw new Error('Bundle Creation Failed. not Result with the Codex: ' + articleCodex + ' found');
37724
37887
  }
37725
37888
  }]);
@@ -38390,10 +38553,10 @@ var DivaConfigTreeData = /*#__PURE__*/function () {
38390
38553
  }
38391
38554
  }, {
38392
38555
  key: "getVisibility",
38393
- value: function getVisibility(configStepKey, visible, catalogData) {
38556
+ value: function getVisibility(configStepKey, visible, set) {
38394
38557
  var allSteps = this.getAllByKey(configStepKey);
38395
38558
  if (allSteps) {
38396
- var option = catalogData.getOption(allSteps.optionStep.codex);
38559
+ var option = set.getCatalogOption(allSteps.optionStep.codex, allSteps.configStep.targetArticles[0]);
38397
38560
  if (allSteps.configStep.singleOPVOnly && option !== null && option !== void 0 && option.hideOptionInConfigurator) {
38398
38561
  return false;
38399
38562
  }
@@ -38483,7 +38646,7 @@ var DivaConfigTreeData = /*#__PURE__*/function () {
38483
38646
  lKey = _step20$value[0],
38484
38647
  myOption = _step20$value[1];
38485
38648
  if (myOption.idmVariantType) {
38486
- var _catalog$getOption;
38649
+ var _myOption$configSteps, _set$getCatalogOption;
38487
38650
  var opgPairs = [[2, 3], [4, 5], [6, 7], [11, 12]];
38488
38651
  for (var i = 0; i < opgPairs.length; i++) {
38489
38652
  var optionStep = this.getOptionWhereIDMVariantIs(iKey, opgPairs[i][1]);
@@ -38492,7 +38655,8 @@ var DivaConfigTreeData = /*#__PURE__*/function () {
38492
38655
  optionStep.mergesToOPG = true;
38493
38656
  }
38494
38657
  }
38495
- var toMergeWithOption = (_catalog$getOption = catalog.getOption(lKey)) === null || _catalog$getOption === void 0 ? void 0 : _catalog$getOption.mergeIDMToOPG;
38658
+ var ownerBasketId = (_myOption$configSteps = myOption.configSteps.values().next().value) === null || _myOption$configSteps === void 0 || (_myOption$configSteps = _myOption$configSteps.targetArticles) === null || _myOption$configSteps === void 0 ? void 0 : _myOption$configSteps[0];
38659
+ var toMergeWithOption = (_set$getCatalogOption = set.getCatalogOption(lKey, ownerBasketId)) === null || _set$getCatalogOption === void 0 ? void 0 : _set$getCatalogOption.mergeIDMToOPG;
38496
38660
  var mergeWithOption = (!catalog.isIDMFormat ? 'OPT' : '') + toMergeWithOption;
38497
38661
  if (toMergeWithOption && myTabGroup.options.has(mergeWithOption)) {
38498
38662
  var _iterator21 = _createForOfIteratorHelper$m(myTabGroup.options),
@@ -39069,7 +39233,7 @@ var SummaryHandler = /*#__PURE__*/function () {
39069
39233
  var lookupBasketId = article.partlistArticleVisibleInTree ? (_article$partListPare = (_article$partListPare2 = article.partListParentArticle) === null || _article$partListPare2 === void 0 ? void 0 : _article$partListPare2.basketId) !== null && _article$partListPare !== void 0 ? _article$partListPare : article.basketId : article.basketId;
39070
39234
  var configStep = (_set$configTree$getCo = set.configTree.getConfigStepBasketIdAndOptionCodex(lookupBasketId, ops.optionCodex)) !== null && _set$configTree$getCo !== void 0 ? _set$configTree$getCo : (_set$hiddenConfigTree = set.hiddenConfigTree) === null || _set$hiddenConfigTree === void 0 ? void 0 : _set$hiddenConfigTree.getConfigStepBasketIdAndOptionCodex(lookupBasketId, ops.optionCodex);
39071
39235
  var itemsInTabGroup = summaryTabItems[tabGroupCodex].summaryItems;
39072
- var itemImage = ops.val.image ? set.CatalogData.getCatImageURL(ops.val.image, '') : undefined;
39236
+ var itemImage = ops.val.image ? article.CatalogData.getCatImageURL(ops.val.image, '') : undefined;
39073
39237
  var opsName = article.getMergedOPGNames(ops).name;
39074
39238
  if (configStep && itemsInTabGroup) {
39075
39239
  var _ops$val2, _this$getAdditionalPr;
@@ -39685,7 +39849,7 @@ var SummaryHandler = /*#__PURE__*/function () {
39685
39849
  key: "getVariantsSummary",
39686
39850
  value: function () {
39687
39851
  var _getVariantsSummary = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(doConfigure, set) {
39688
- var summaryVariants, _yield$DivaFavorites$, variants, disabled, singleOptions, catalogData, _loop2, i;
39852
+ var summaryVariants, _yield$DivaFavorites$, variants, disabled, singleOptions, _loop2, i;
39689
39853
  return _regeneratorRuntime.wrap(function _callee3$(_context5) {
39690
39854
  while (1) switch (_context5.prev = _context5.next) {
39691
39855
  case 0:
@@ -39697,7 +39861,6 @@ var SummaryHandler = /*#__PURE__*/function () {
39697
39861
  variants = _yield$DivaFavorites$.variants;
39698
39862
  disabled = _yield$DivaFavorites$.disabled;
39699
39863
  singleOptions = _yield$DivaFavorites$.singleOptions;
39700
- catalogData = set.CatalogData; //index that does not count upo for diabled variants
39701
39864
  _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2(i) {
39702
39865
  var _variant$price, _variant$title;
39703
39866
  var variant, result, basketID, variantVals, _loop3, opt, isDisabled;
@@ -39715,7 +39878,7 @@ var SummaryHandler = /*#__PURE__*/function () {
39715
39878
  basketID = _context4.t1.value;
39716
39879
  variantVals = variant.targetArticles[basketID];
39717
39880
  _loop3 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop3(opt) {
39718
- var _variant$configVarian, _optObject$name, _opvObject$name, optObject, opvObject;
39881
+ var _variant$configVarian, _optObject$name, _opvObject$name, optObject, opvCatalog, opvObject;
39719
39882
  return _regeneratorRuntime.wrap(function _loop3$(_context2) {
39720
39883
  while (1) switch (_context2.prev = _context2.next) {
39721
39884
  case 0:
@@ -39723,14 +39886,15 @@ var SummaryHandler = /*#__PURE__*/function () {
39723
39886
  return item.opt === opt;
39724
39887
  }) && !singleOptions.includes(opt)) {
39725
39888
  if (((_variant$configVarian = variant.configVariantValues) === null || _variant$configVarian === void 0 || (_variant$configVarian = _variant$configVarian[basketID]) === null || _variant$configVarian === void 0 ? void 0 : _variant$configVarian[opt.substring(3)]) === variantVals[opt].substring(3)) {
39726
- optObject = catalogData.getOption(opt);
39727
- opvObject = catalogData.getOptionValue(variantVals[opt]);
39889
+ optObject = set.getCatalogOption(opt, basketID);
39890
+ opvCatalog = set.getOptionValueCatalog(variantVals[opt], basketID);
39891
+ opvObject = opvCatalog === null || opvCatalog === void 0 ? void 0 : opvCatalog.getOptionValue(variantVals[opt]);
39728
39892
  result.push({
39729
39893
  opt: opt,
39730
39894
  opv: variantVals[opt],
39731
39895
  optionName: (_optObject$name = optObject === null || optObject === void 0 ? void 0 : optObject.name) !== null && _optObject$name !== void 0 ? _optObject$name : '',
39732
39896
  optionValueName: (_opvObject$name = opvObject === null || opvObject === void 0 ? void 0 : opvObject.name) !== null && _opvObject$name !== void 0 ? _opvObject$name : '',
39733
- optionValueImage: opvObject !== null && opvObject !== void 0 && opvObject.image ? catalogData.getCatImageURL(opvObject.image, '_gal') : undefined
39897
+ optionValueImage: opvObject !== null && opvObject !== void 0 && opvObject.image ? opvCatalog === null || opvCatalog === void 0 ? void 0 : opvCatalog.getCatImageURL(opvObject.image, '_gal') : undefined
39734
39898
  });
39735
39899
  } else {
39736
39900
  result.push({
@@ -39814,17 +39978,17 @@ var SummaryHandler = /*#__PURE__*/function () {
39814
39978
  }, _loop2);
39815
39979
  });
39816
39980
  i = 0;
39817
- case 10:
39981
+ case 9:
39818
39982
  if (!(i < variants.length)) {
39819
- _context5.next = 15;
39983
+ _context5.next = 14;
39820
39984
  break;
39821
39985
  }
39822
- return _context5.delegateYield(_loop2(i), "t0", 12);
39823
- case 12:
39986
+ return _context5.delegateYield(_loop2(i), "t0", 11);
39987
+ case 11:
39824
39988
  i++;
39825
- _context5.next = 10;
39989
+ _context5.next = 9;
39826
39990
  break;
39827
- case 15:
39991
+ case 14:
39828
39992
  return _context5.abrupt("return", {
39829
39993
  items: summaryVariants,
39830
39994
  name: '',
@@ -39832,7 +39996,7 @@ var SummaryHandler = /*#__PURE__*/function () {
39832
39996
  quantity: 1,
39833
39997
  type: 'VARIANTS'
39834
39998
  });
39835
- case 16:
39999
+ case 15:
39836
40000
  case "end":
39837
40001
  return _context5.stop();
39838
40002
  }
@@ -40192,7 +40356,7 @@ var DivaFavoritesHandler = /*#__PURE__*/function () {
40192
40356
  value: function changeOnFavorites(set, opt, opvs, targetArticles, remove, openModal) {
40193
40357
  var favorit = undefined;
40194
40358
  for (var i = 0; i < opvs.length; i++) {
40195
- var _set$CatalogData$getO;
40359
+ var _set$getCatalogOption;
40196
40360
  if (!remove) {
40197
40361
  var _set$favorites2;
40198
40362
  favorit = (_set$favorites2 = set.favorites) === null || _set$favorites2 === void 0 || (_set$favorites2 = _set$favorites2.VariantValues[opt]) === null || _set$favorites2 === void 0 ? void 0 : _set$favorites2[opvs[i]];
@@ -40200,8 +40364,8 @@ var DivaFavoritesHandler = /*#__PURE__*/function () {
40200
40364
  favorit.targetArticles = _toConsumableArray(new Set(favorit.targetArticles.concat(targetArticles)));
40201
40365
  }
40202
40366
  }
40203
- var optionName = (_set$CatalogData$getO = set.CatalogData.getOption(opt)) === null || _set$CatalogData$getO === void 0 ? void 0 : _set$CatalogData$getO.name;
40204
- var optionValue = set.CatalogData.getOptionValue(opvs[i]);
40367
+ var optionName = (_set$getCatalogOption = set.getCatalogOption(opt, targetArticles[0])) === null || _set$getCatalogOption === void 0 ? void 0 : _set$getCatalogOption.name;
40368
+ var optionValue = set.getCatalogOptionValue(opvs[i], targetArticles[0]);
40205
40369
  var optionValueName = optionValue === null || optionValue === void 0 ? void 0 : optionValue.name;
40206
40370
  var optionValueImage = optionValue === null || optionValue === void 0 ? void 0 : optionValue.image;
40207
40371
  favorit = new Favorite(opt, opvs[i], targetArticles, optionName, optionValueName, optionValueImage);
@@ -40864,180 +41028,6 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
40864
41028
  } finally {
40865
41029
  _iterator2.f();
40866
41030
  }
40867
- this.checkForMergableSelectionModes(set.configTree, set.getDivaArticles());
40868
- }
40869
- }, {
40870
- key: "checkForMergableSelectionModes",
40871
- value: function checkForMergableSelectionModes(configTree, articles) {
40872
- if (Object.values(articles).find(function (article) {
40873
- return article.shelfPlanner;
40874
- })) return;
40875
- if (Object.values(articles).find(function (article) {
40876
- return article.set.CatalogData.useBoxPlanner;
40877
- })) return;
40878
- var _iterator3 = _createForOfIteratorHelper$k(configTree.tabGroups),
40879
- _step3;
40880
- try {
40881
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
40882
- var _step3$value = _slicedToArray(_step3.value, 2),
40883
- tabGroupCodex = _step3$value[0],
40884
- tabGroup = _step3$value[1];
40885
- if (tabGroup.type == 'OPTION') {
40886
- var hasSelectionMode1 = [];
40887
- var hasSelectionMode2 = [];
40888
- var hasSelectionMode3 = [];
40889
- var basketIds = [];
40890
- var breakTabgroup = false;
40891
- var _iterator4 = _createForOfIteratorHelper$k(tabGroup.options),
40892
- _step4;
40893
- try {
40894
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
40895
- var _step4$value = _slicedToArray(_step4.value, 2),
40896
- _optionCodex2 = _step4$value[0],
40897
- _option2 = _step4$value[1];
40898
- var configSteps = Array.from(_option2.configSteps.values());
40899
- if (configSteps.find(function (configStep) {
40900
- return configStep.notDisplayedInMainConfigTree;
40901
- })) breakTabgroup = true;
40902
- switch (_option2.selectionmode) {
40903
- case 1:
40904
- hasSelectionMode1.push(_optionCodex2);
40905
- break;
40906
- case 2:
40907
- hasSelectionMode2.push(_optionCodex2);
40908
- break;
40909
- case 3:
40910
- hasSelectionMode3.push(_optionCodex2);
40911
- break;
40912
- }
40913
- var _iterator10 = _createForOfIteratorHelper$k(_option2.configSteps),
40914
- _step10;
40915
- try {
40916
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
40917
- var _step10$value = _slicedToArray(_step10.value, 2),
40918
- x = _step10$value[0],
40919
- _configStep2 = _step10$value[1];
40920
- var _iterator11 = _createForOfIteratorHelper$k(_configStep2.targetArticles),
40921
- _step11;
40922
- try {
40923
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
40924
- var basketId = _step11.value;
40925
- if (!basketIds.includes(basketId)) basketIds.push(basketId);
40926
- }
40927
- } catch (err) {
40928
- _iterator11.e(err);
40929
- } finally {
40930
- _iterator11.f();
40931
- }
40932
- }
40933
- } catch (err) {
40934
- _iterator10.e(err);
40935
- } finally {
40936
- _iterator10.f();
40937
- }
40938
- }
40939
- } catch (err) {
40940
- _iterator4.e(err);
40941
- } finally {
40942
- _iterator4.f();
40943
- }
40944
- if (breakTabgroup) continue;
40945
- if (hasSelectionMode2.length > 0 && hasSelectionMode3.length > 0 && hasSelectionMode1.length == 0) {
40946
- //make the selectionmode 2 options -> selectionmode 3
40947
- var _iterator5 = _createForOfIteratorHelper$k(hasSelectionMode2),
40948
- _step5;
40949
- try {
40950
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
40951
- var optionCodex = _step5.value;
40952
- var option = tabGroup.options.get(optionCodex);
40953
- option.selectionmode = 3;
40954
- var newConfigSteps = new Map();
40955
- var _iterator6 = _createForOfIteratorHelper$k(option.configSteps),
40956
- _step6;
40957
- try {
40958
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
40959
- var _step6$value = _slicedToArray(_step6.value, 2),
40960
- configStepCodex = _step6$value[0],
40961
- configStep = _step6$value[1];
40962
- if (configStep.keyType == 'ALL') {
40963
- var targetArticles = _toConsumableArray(configStep.targetArticles);
40964
- var _iterator7 = _createForOfIteratorHelper$k(targetArticles),
40965
- _step7;
40966
- try {
40967
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
40968
- var targetArticle = _step7.value;
40969
- var newConfigStepKey = configStepCodex.replace('_ALL', '') + '_' + targetArticle;
40970
- newConfigSteps.set(newConfigStepKey, _objectSpread$l(_objectSpread$l({}, configStep), {}, {
40971
- keyType: 'BasketId',
40972
- key: newConfigStepKey,
40973
- targetArticles: [targetArticle]
40974
- }));
40975
- }
40976
- } catch (err) {
40977
- _iterator7.e(err);
40978
- } finally {
40979
- _iterator7.f();
40980
- }
40981
- } else {
40982
- newConfigSteps.set(configStepCodex, configStep);
40983
- }
40984
- }
40985
- } catch (err) {
40986
- _iterator6.e(err);
40987
- } finally {
40988
- _iterator6.f();
40989
- }
40990
- option.configSteps = newConfigSteps;
40991
- }
40992
- } catch (err) {
40993
- _iterator5.e(err);
40994
- } finally {
40995
- _iterator5.f();
40996
- }
40997
- } else if (hasSelectionMode1.length > 0 && hasSelectionMode2.length > 0 && hasSelectionMode3.length == 0 || basketIds.length == 1) {
40998
- //make the selectionmode 2 options -> selectionmode 1
40999
- var stepsToConvertToSelectionmode1 = [].concat(hasSelectionMode2, hasSelectionMode3);
41000
- var _iterator8 = _createForOfIteratorHelper$k(stepsToConvertToSelectionmode1),
41001
- _step8;
41002
- try {
41003
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
41004
- var _optionCodex = _step8.value;
41005
- var _option = tabGroup.options.get(_optionCodex);
41006
- _option.selectionmode = 1;
41007
- var _newConfigSteps = new Map();
41008
- var _iterator9 = _createForOfIteratorHelper$k(_option.configSteps),
41009
- _step9;
41010
- try {
41011
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
41012
- var _step9$value = _slicedToArray(_step9.value, 2),
41013
- _configStepCodex = _step9$value[0],
41014
- _configStep = _step9$value[1];
41015
- var _newConfigStepKey = _configStepCodex.replace('_ALL', '').replace('_' + _configStep.targetArticles[0], '') + '_' + 'ALL';
41016
- _newConfigSteps.set(_newConfigStepKey, _objectSpread$l(_objectSpread$l({}, _configStep), {}, {
41017
- keyType: 'ALL',
41018
- key: _newConfigStepKey
41019
- }));
41020
- }
41021
- } catch (err) {
41022
- _iterator9.e(err);
41023
- } finally {
41024
- _iterator9.f();
41025
- }
41026
- _option.configSteps = _newConfigSteps;
41027
- }
41028
- } catch (err) {
41029
- _iterator8.e(err);
41030
- } finally {
41031
- _iterator8.f();
41032
- }
41033
- }
41034
- }
41035
- }
41036
- } catch (err) {
41037
- _iterator3.e(err);
41038
- } finally {
41039
- _iterator3.f();
41040
- }
41041
41031
  }
41042
41032
  }, {
41043
41033
  key: "addOptionsStateToConfigTree",
@@ -41345,7 +41335,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41345
41335
  key: "getConifgItemsForView",
41346
41336
  value: function () {
41347
41337
  var _getConifgItemsForView = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(set, configStepKey) {
41348
- var articles, step, retValues, optionCodex, configItems, selectedItems, optionState, _iterator12, _step12, _configItem$parent$oc, key, configItem, configItemsInOPG, retVal, _retVal, configStepOPG, configStepOPV, staticItems;
41338
+ var articles, step, retValues, optionCodex, configItems, selectedItems, optionState, _iterator3, _step3, _configItem$parent$oc, key, configItem, configItemsInOPG, retVal, _retVal, configStepOPG, configStepOPV, staticItems;
41349
41339
  return _regeneratorRuntime.wrap(function _callee$(_context) {
41350
41340
  while (1) switch (_context.prev = _context.next) {
41351
41341
  case 0:
@@ -41371,15 +41361,15 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41371
41361
  _context.next = 36;
41372
41362
  break;
41373
41363
  }
41374
- _iterator12 = _createForOfIteratorHelper$k(retValues.configItems.keys());
41364
+ _iterator3 = _createForOfIteratorHelper$k(retValues.configItems.keys());
41375
41365
  _context.prev = 13;
41376
- _iterator12.s();
41366
+ _iterator3.s();
41377
41367
  case 15:
41378
- if ((_step12 = _iterator12.n()).done) {
41368
+ if ((_step3 = _iterator3.n()).done) {
41379
41369
  _context.next = 26;
41380
41370
  break;
41381
41371
  }
41382
- key = _step12.value;
41372
+ key = _step3.value;
41383
41373
  configItem = retValues.configItems.get(key);
41384
41374
  if (configItem) {
41385
41375
  _context.next = 20;
@@ -41408,10 +41398,10 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41408
41398
  case 28:
41409
41399
  _context.prev = 28;
41410
41400
  _context.t0 = _context["catch"](13);
41411
- _iterator12.e(_context.t0);
41401
+ _iterator3.e(_context.t0);
41412
41402
  case 31:
41413
41403
  _context.prev = 31;
41414
- _iterator12.f();
41404
+ _iterator3.f();
41415
41405
  return _context.finish(31);
41416
41406
  case 34:
41417
41407
  _context.next = 52;
@@ -41494,11 +41484,11 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41494
41484
  var owner = targetArticle.articleOptionStates.has(ops.optionCodex) ? targetArticle : (_targetArticle$partli = targetArticle.partlistArticlesAsArray.find(function (child) {
41495
41485
  return child.articleOptionStates.get(ops.optionCodex) === ops;
41496
41486
  })) !== null && _targetArticle$partli !== void 0 ? _targetArticle$partli : targetArticle;
41497
- var _iterator13 = _createForOfIteratorHelper$k(owner.articleOptionStates.values()),
41498
- _step13;
41487
+ var _iterator4 = _createForOfIteratorHelper$k(owner.articleOptionStates.values()),
41488
+ _step4;
41499
41489
  try {
41500
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
41501
- var state = _step13.value;
41490
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
41491
+ var state = _step4.value;
41502
41492
  if (state.optionCodex === opg.optionCodex || state.optionCodex === ops.optionCodex || !state.isInvisible) continue;
41503
41493
  var parentValues = state.option.articleOptionValues;
41504
41494
  if (!(parentValues !== null && parentValues !== void 0 && parentValues.size)) continue;
@@ -41506,12 +41496,12 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41506
41496
  // a parent family: EVERY option value of the invisible feature is an option group over the value feature
41507
41497
  var parentMembers = new Map();
41508
41498
  var isFamily = true;
41509
- var _iterator14 = _createForOfIteratorHelper$k(parentValues.keys()),
41510
- _step14;
41499
+ var _iterator5 = _createForOfIteratorHelper$k(parentValues.keys()),
41500
+ _step5;
41511
41501
  try {
41512
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
41502
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
41513
41503
  var _optionGroups$parentC;
41514
- var parentCodex = _step14.value;
41504
+ var parentCodex = _step5.value;
41515
41505
  var members = (_optionGroups$parentC = optionGroups[parentCodex]) === null || _optionGroups$parentC === void 0 ? void 0 : _optionGroups$parentC.map(optionGroupMemberKey);
41516
41506
  if (!(members !== null && members !== void 0 && members.length) || !members.every(function (key) {
41517
41507
  return valueKeys.has(key);
@@ -41522,19 +41512,19 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41522
41512
  parentMembers.set(parentCodex, new Set(members));
41523
41513
  }
41524
41514
  } catch (err) {
41525
- _iterator14.e(err);
41515
+ _iterator5.e(err);
41526
41516
  } finally {
41527
- _iterator14.f();
41517
+ _iterator5.f();
41528
41518
  }
41529
41519
  if (!isFamily) continue;
41530
41520
  var parentNames = new Map();
41531
- var _iterator15 = _createForOfIteratorHelper$k(opg.visibleOptionValues),
41532
- _step15;
41521
+ var _iterator6 = _createForOfIteratorHelper$k(opg.visibleOptionValues),
41522
+ _step6;
41533
41523
  try {
41534
41524
  var _loop4 = function _loop4() {
41535
41525
  var _optionGroups$opgValu, _parentValues$get;
41536
- var _step15$value = _slicedToArray(_step15.value, 2),
41537
- opgValue = _step15$value[1];
41526
+ var _step6$value = _slicedToArray(_step6.value, 2),
41527
+ opgValue = _step6$value[1];
41538
41528
  var groupMembers = (_optionGroups$opgValu = optionGroups[opgValue.codex]) === null || _optionGroups$opgValu === void 0 ? void 0 : _optionGroups$opgValu.map(optionGroupMemberKey);
41539
41529
  if (!(groupMembers !== null && groupMembers !== void 0 && groupMembers.length)) return 0; // continue
41540
41530
  var parent = _toConsumableArray(parentMembers.entries()).find(function (_ref2) {
@@ -41549,21 +41539,21 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41549
41539
  if (parentName) parentNames.set(opgValue.codex, parentName);
41550
41540
  },
41551
41541
  _ret;
41552
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
41542
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
41553
41543
  _ret = _loop4();
41554
41544
  if (_ret === 0) continue;
41555
41545
  }
41556
41546
  } catch (err) {
41557
- _iterator15.e(err);
41547
+ _iterator6.e(err);
41558
41548
  } finally {
41559
- _iterator15.f();
41549
+ _iterator6.f();
41560
41550
  }
41561
41551
  if (parentNames.size) return parentNames;
41562
41552
  }
41563
41553
  } catch (err) {
41564
- _iterator13.e(err);
41554
+ _iterator4.e(err);
41565
41555
  } finally {
41566
- _iterator13.f();
41556
+ _iterator4.f();
41567
41557
  }
41568
41558
  return undefined;
41569
41559
  }
@@ -41581,22 +41571,22 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41581
41571
  if (!opg || !ops) return undefined;
41582
41572
  var parentNames = this.idmOpgParentNames(targetArticle, opg, ops);
41583
41573
  var configItems = [];
41584
- var _iterator16 = _createForOfIteratorHelper$k(opg.visibleOptionValues),
41585
- _step16;
41574
+ var _iterator7 = _createForOfIteratorHelper$k(opg.visibleOptionValues),
41575
+ _step7;
41586
41576
  try {
41587
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
41577
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
41588
41578
  var _targetArticle$engine, _targetArticle$engine2, _ops$optionOcd2;
41589
- var _step16$value = _slicedToArray(_step16.value, 2),
41590
- opgValue = _step16$value[1];
41579
+ var _step7$value = _slicedToArray(_step7.value, 2),
41580
+ opgValue = _step7$value[1];
41591
41581
  var pool = (_targetArticle$engine = (_targetArticle$engine2 = targetArticle.engine).staticVisibleOptionValuesForFeature) === null || _targetArticle$engine === void 0 ? void 0 : _targetArticle$engine.call(_targetArticle$engine2, ops.optionCodex, opg.optionCodex, opgValue.codex);
41592
41582
  if (!pool) return undefined;
41593
41583
  var retVal = this.prepareConfigItemsForView(set, optionState, pool, constructionRules, [], configStepOPG.targetArticles, (_ops$optionOcd2 = ops.optionOcd) !== null && _ops$optionOcd2 !== void 0 ? _ops$optionOcd2 : ops.optionCodex, opgValue.name, opgValue.codex, opg.optionCodex, parentNames === null || parentNames === void 0 ? void 0 : parentNames.get(opgValue.codex));
41594
41584
  configItems = configItems.concat(retVal.myConfigItemsForView);
41595
41585
  }
41596
41586
  } catch (err) {
41597
- _iterator16.e(err);
41587
+ _iterator7.e(err);
41598
41588
  } finally {
41599
- _iterator16.f();
41589
+ _iterator7.f();
41600
41590
  }
41601
41591
  var _loop5 = function _loop5() {
41602
41592
  var _articles$configStepO;
@@ -41620,7 +41610,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41620
41610
  key: "mergeOPGItemsByReconfiguration",
41621
41611
  value: (function () {
41622
41612
  var _mergeOPGItemsByReconfiguration = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(set, step, configStepOPG, configStepOPV, optionState, constructionRules, selectedItems) {
41623
- var configItems, clonedSet, clonedArticles, targetArticle, opg, ops, selectedOpv, originalVariantValues, parentNames, mergedOptionOnPartlistArticle, useFastPath, fastPathValidated, variantValues, _iterator17, _step17, _clonedSet$favorites$, _clonedSet$favorites, _step17$value, opgValue, alreadyCalcedVisibleOPVs, _loop7, _i2, _targetArticle$engine3, _targetArticle$engine4, _ops$optionOcd3, visibleOptionValues, updatedOps, fastPathKeys, fullKeys, retVal, clonedConfigItemsForView, _loop6, i;
41613
+ var configItems, clonedSet, clonedArticles, targetArticle, opg, ops, selectedOpv, originalVariantValues, parentNames, mergedOptionOnPartlistArticle, useFastPath, fastPathValidated, variantValues, _iterator8, _step8, _clonedSet$favorites$, _clonedSet$favorites, _step8$value, opgValue, alreadyCalcedVisibleOPVs, _loop7, _i2, _targetArticle$engine3, _targetArticle$engine4, _ops$optionOcd3, visibleOptionValues, updatedOps, fastPathKeys, fullKeys, retVal, clonedConfigItemsForView, _loop6, i;
41624
41614
  return _regeneratorRuntime.wrap(function _callee2$(_context4) {
41625
41615
  while (1) switch (_context4.prev = _context4.next) {
41626
41616
  case 0:
@@ -41648,15 +41638,15 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41648
41638
  mergedOptionOnPartlistArticle = !targetArticle.getArticleOptionStateFlat(ops.optionCodex);
41649
41639
  useFastPath = true, fastPathValidated = false;
41650
41640
  variantValues = {};
41651
- _iterator17 = _createForOfIteratorHelper$k(opg.visibleOptionValues);
41641
+ _iterator8 = _createForOfIteratorHelper$k(opg.visibleOptionValues);
41652
41642
  _context4.prev = 17;
41653
- _iterator17.s();
41643
+ _iterator8.s();
41654
41644
  case 19:
41655
- if ((_step17 = _iterator17.n()).done) {
41645
+ if ((_step8 = _iterator8.n()).done) {
41656
41646
  _context4.next = 51;
41657
41647
  break;
41658
41648
  }
41659
- _step17$value = _slicedToArray(_step17.value, 2), opgValue = _step17$value[1];
41649
+ _step8$value = _slicedToArray(_step8.value, 2), opgValue = _step8$value[1];
41660
41650
  // The visible groups are set on the article one after another and each group's valid values fetched -> visibleOptionValues.
41661
41651
  variantValues[opg.optionCodex] = opgValue.codex;
41662
41652
  alreadyCalcedVisibleOPVs = targetArticle.getMergesToOPG(opg.optionCodex + '_' + opgValue.codex, JSON.stringify(targetArticle.getVariantValuesTillOPT(opg.optionCodex)));
@@ -41741,10 +41731,10 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41741
41731
  case 53:
41742
41732
  _context4.prev = 53;
41743
41733
  _context4.t1 = _context4["catch"](17);
41744
- _iterator17.e(_context4.t1);
41734
+ _iterator8.e(_context4.t1);
41745
41735
  case 56:
41746
41736
  _context4.prev = 56;
41747
- _iterator17.f();
41737
+ _iterator8.f();
41748
41738
  return _context4.finish(56);
41749
41739
  case 59:
41750
41740
  _loop6 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop6() {
@@ -41827,11 +41817,11 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41827
41817
  constructionRules = myOptionState.constructionRules;
41828
41818
  configItems = new Map(myOptionState.visibleOptionValues);
41829
41819
  } else {
41830
- var _iterator18 = _createForOfIteratorHelper$k(configItems.keys()),
41831
- _step18;
41820
+ var _iterator9 = _createForOfIteratorHelper$k(configItems.keys()),
41821
+ _step9;
41832
41822
  try {
41833
41823
  var _loop8 = function _loop8() {
41834
- var key = _step18.value;
41824
+ var key = _step9.value;
41835
41825
  if (!myOptionState.visibleOptionValues.get(key) && !myOptionState.visibleOptionValues.values().find(function (v) {
41836
41826
  var _configItems$get;
41837
41827
  return v.sameopv && v.sameopv == ((_configItems$get = configItems.get(key)) === null || _configItems$get === void 0 ? void 0 : _configItems$get.sameopv);
@@ -41839,13 +41829,13 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41839
41829
  configItems["delete"](key);
41840
41830
  }
41841
41831
  };
41842
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
41832
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
41843
41833
  _loop8();
41844
41834
  }
41845
41835
  } catch (err) {
41846
- _iterator18.e(err);
41836
+ _iterator9.e(err);
41847
41837
  } finally {
41848
- _iterator18.f();
41838
+ _iterator9.f();
41849
41839
  }
41850
41840
  }
41851
41841
  } else if (i == 0 && configStep.targetArticles.length == 1) {
@@ -41960,11 +41950,11 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41960
41950
  ret = false;
41961
41951
  var articles = set.getDivaArticles();
41962
41952
  for (var basketId in articles) {
41963
- var _iterator19 = _createForOfIteratorHelper$k(articles[basketId].articleOptionStates.values()),
41964
- _step19;
41953
+ var _iterator10 = _createForOfIteratorHelper$k(articles[basketId].articleOptionStates.values()),
41954
+ _step10;
41965
41955
  try {
41966
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
41967
- var ops = _step19.value;
41956
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
41957
+ var ops = _step10.value;
41968
41958
  if (ops.headerPosVariationType == 'K') {
41969
41959
  if (optionValues[ops.optionCodex] == undefined) {
41970
41960
  optionValues[ops.optionCodex] = ops.valCodex ? ops.valCodex : null;
@@ -41977,9 +41967,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
41977
41967
  }
41978
41968
  }
41979
41969
  } catch (err) {
41980
- _iterator19.e(err);
41970
+ _iterator10.e(err);
41981
41971
  } finally {
41982
- _iterator19.f();
41972
+ _iterator10.f();
41983
41973
  }
41984
41974
  if (ret == true) break;
41985
41975
  }
@@ -42227,12 +42217,12 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
42227
42217
  for (var iKey in optionStatesOfArticles) {
42228
42218
  //hier evtl. die Article mit einer gewissen reihenfolge durchlaufen!
42229
42219
  var optionsStates = optionStatesOfArticles[iKey];
42230
- var _iterator20 = _createForOfIteratorHelper$k(optionsStates.values()),
42231
- _step20;
42220
+ var _iterator11 = _createForOfIteratorHelper$k(optionsStates.values()),
42221
+ _step11;
42232
42222
  try {
42233
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
42223
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
42234
42224
  var _ops$addToMeasure2;
42235
- var ops = _step20.value;
42225
+ var ops = _step11.value;
42236
42226
  var selectionmode = ops.selectionmode;
42237
42227
  if (set.CatalogData.forceConfigSingle && (selectionmode == 1 || selectionmode == 2)) selectionmode = 3;
42238
42228
  if (ops.isInvisible || selectionmode == 0 || !ops.isDoShow || ops.visibleCount == 0 || !!((_ops$addToMeasure2 = ops.addToMeasure) !== null && _ops$addToMeasure2 !== void 0 && _ops$addToMeasure2.length)) {
@@ -42240,9 +42230,9 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
42240
42230
  }
42241
42231
  }
42242
42232
  } catch (err) {
42243
- _iterator20.e(err);
42233
+ _iterator11.e(err);
42244
42234
  } finally {
42245
- _iterator20.f();
42235
+ _iterator11.f();
42246
42236
  }
42247
42237
  }
42248
42238
  return configTree;
@@ -42916,12 +42906,14 @@ var DivaSet = /*#__PURE__*/function () {
42916
42906
  }, {
42917
42907
  key: "getSetTitle",
42918
42908
  value: function getSetTitle() {
42919
- var _this$ViewConfig, _this$setState$config;
42920
- if ((_this$ViewConfig = this.ViewConfig) !== null && _this$ViewConfig !== void 0 && _this$ViewConfig.useArticleNameAsTitle && _toConsumableArray(new Set(this.mainArtcles.map(function (a) {
42909
+ var _this$catalogData$use, _this$ViewConfig, _this$setState$config;
42910
+ // the series property USE_ARTICLE_NAME_AS_TITLE, when set, replaces the view config value
42911
+ var useArticleNameAsTitle = (_this$catalogData$use = this.catalogData.useArticleNameAsTitle) !== null && _this$catalogData$use !== void 0 ? _this$catalogData$use : (_this$ViewConfig = this.ViewConfig) === null || _this$ViewConfig === void 0 ? void 0 : _this$ViewConfig.useArticleNameAsTitle;
42912
+ if (useArticleNameAsTitle && _toConsumableArray(new Set(this.mainArtcles.map(function (a) {
42921
42913
  return a.articleCodex;
42922
42914
  }))).length == 1) {
42923
42915
  var name = this.mainArtcles[0].name.replace(/\(.+?\)/g, '');
42924
- if (typeof this.ViewConfig.useArticleNameAsTitle !== 'number' || name.length < this.ViewConfig.useArticleNameAsTitle) return name;
42916
+ if (typeof useArticleNameAsTitle !== 'number' || name.length < useArticleNameAsTitle) return name;
42925
42917
  }
42926
42918
  return (_this$setState$config = this.setState.configuratorTitle) !== null && _this$setState$config !== void 0 ? _this$setState$config : this.getSetName();
42927
42919
  }
@@ -42997,6 +42989,76 @@ var DivaSet = /*#__PURE__*/function () {
42997
42989
  }
42998
42990
  return articles;
42999
42991
  }
42992
+
42993
+ /**
42994
+ * Catalog option of `codex`, from the catalog of the article `basketId` first, then from the set catalog and every
42995
+ * other article's catalog: partlist components of another serie (e.g. serie 0) register theirs in that serie's catalog.
42996
+ */
42997
+ }, {
42998
+ key: "getCatalogOption",
42999
+ value: function getCatalogOption(codex, basketId) {
43000
+ var _iterator = _createForOfIteratorHelper$j(this.getAllCatalogs(basketId)),
43001
+ _step;
43002
+ try {
43003
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
43004
+ var catalog = _step.value;
43005
+ var option = catalog.getOption(codex);
43006
+ if (option) return option;
43007
+ }
43008
+ } catch (err) {
43009
+ _iterator.e(err);
43010
+ } finally {
43011
+ _iterator.f();
43012
+ }
43013
+ return undefined;
43014
+ }
43015
+
43016
+ /** Catalog option value of `codex`, looked up across the same catalogs as getCatalogOption. */
43017
+ }, {
43018
+ key: "getCatalogOptionValue",
43019
+ value: function getCatalogOptionValue(codex, basketId) {
43020
+ var _this$getOptionValueC;
43021
+ return (_this$getOptionValueC = this.getOptionValueCatalog(codex, basketId)) === null || _this$getOptionValueC === void 0 ? void 0 : _this$getOptionValueC.getOptionValue(codex);
43022
+ }
43023
+
43024
+ /** The catalog holding the option value `codex`; its media settings resolve the value's images. */
43025
+ }, {
43026
+ key: "getOptionValueCatalog",
43027
+ value: function getOptionValueCatalog(codex, basketId) {
43028
+ var _iterator2 = _createForOfIteratorHelper$j(this.getAllCatalogs(basketId)),
43029
+ _step2;
43030
+ try {
43031
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
43032
+ var catalog = _step2.value;
43033
+ if (catalog.getOptionValue(codex)) return catalog;
43034
+ }
43035
+ } catch (err) {
43036
+ _iterator2.e(err);
43037
+ } finally {
43038
+ _iterator2.f();
43039
+ }
43040
+ return undefined;
43041
+ }
43042
+
43043
+ // one walk over articles and partlist components, without building the recursive article map: this runs per looked-up value on every doConfigure
43044
+ }, {
43045
+ key: "getAllCatalogs",
43046
+ value: function getAllCatalogs(basketId) {
43047
+ var catalogs = [this.catalogData];
43048
+ var ownCatalog;
43049
+ var _collect = function collect(articles) {
43050
+ for (var key in articles) {
43051
+ var article = articles[key];
43052
+ if (key === basketId) ownCatalog = article.CatalogData;
43053
+ if (!catalogs.includes(article.CatalogData)) catalogs.push(article.CatalogData);
43054
+ _collect(article.partlistArticles);
43055
+ }
43056
+ };
43057
+ _collect(this.divaArticles);
43058
+ return ownCatalog ? [ownCatalog].concat(_toConsumableArray(catalogs.filter(function (catalog) {
43059
+ return catalog !== ownCatalog;
43060
+ }))) : catalogs;
43061
+ }
43000
43062
  }, {
43001
43063
  key: "getDivaArticlesByGridGroup",
43002
43064
  value: function getDivaArticlesByGridGroup(gridGroup) {
@@ -43048,30 +43110,30 @@ var DivaSet = /*#__PURE__*/function () {
43048
43110
  value: function () {
43049
43111
  var _getCustomDimsFromCostructionService = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
43050
43112
  var _this2 = this;
43051
- var dims, dimensions, _iterator, _step, article, _iterator2, _step2, dimensionId, dimension, cleanedDimensions;
43113
+ var dims, dimensions, _iterator3, _step3, article, _iterator4, _step4, dimensionId, dimension, cleanedDimensions;
43052
43114
  return _regeneratorRuntime.wrap(function _callee3$(_context4) {
43053
43115
  while (1) switch (_context4.prev = _context4.next) {
43054
43116
  case 0:
43055
43117
  dims = [];
43056
43118
  dimensions = [];
43057
- _iterator = _createForOfIteratorHelper$j(this.getArticleVariantValues());
43119
+ _iterator3 = _createForOfIteratorHelper$j(this.getArticleVariantValues());
43058
43120
  _context4.prev = 3;
43059
- _iterator.s();
43121
+ _iterator3.s();
43060
43122
  case 5:
43061
- if ((_step = _iterator.n()).done) {
43123
+ if ((_step3 = _iterator3.n()).done) {
43062
43124
  _context4.next = 28;
43063
43125
  break;
43064
43126
  }
43065
- article = _step.value;
43066
- _iterator2 = _createForOfIteratorHelper$j(article.headerDimensions);
43127
+ article = _step3.value;
43128
+ _iterator4 = _createForOfIteratorHelper$j(article.headerDimensions);
43067
43129
  _context4.prev = 8;
43068
- _iterator2.s();
43130
+ _iterator4.s();
43069
43131
  case 10:
43070
- if ((_step2 = _iterator2.n()).done) {
43132
+ if ((_step4 = _iterator4.n()).done) {
43071
43133
  _context4.next = 18;
43072
43134
  break;
43073
43135
  }
43074
- dimensionId = _step2.value;
43136
+ dimensionId = _step4.value;
43075
43137
  _context4.next = 14;
43076
43138
  return this.api.getDimensionbyId(dimensionId, article.iln, this.getCatalogCodex(), article.variantValues);
43077
43139
  case 14:
@@ -43090,10 +43152,10 @@ var DivaSet = /*#__PURE__*/function () {
43090
43152
  case 20:
43091
43153
  _context4.prev = 20;
43092
43154
  _context4.t0 = _context4["catch"](8);
43093
- _iterator2.e(_context4.t0);
43155
+ _iterator4.e(_context4.t0);
43094
43156
  case 23:
43095
43157
  _context4.prev = 23;
43096
- _iterator2.f();
43158
+ _iterator4.f();
43097
43159
  return _context4.finish(23);
43098
43160
  case 26:
43099
43161
  _context4.next = 5;
@@ -43104,10 +43166,10 @@ var DivaSet = /*#__PURE__*/function () {
43104
43166
  case 30:
43105
43167
  _context4.prev = 30;
43106
43168
  _context4.t1 = _context4["catch"](3);
43107
- _iterator.e(_context4.t1);
43169
+ _iterator3.e(_context4.t1);
43108
43170
  case 33:
43109
43171
  _context4.prev = 33;
43110
- _iterator.f();
43172
+ _iterator3.f();
43111
43173
  return _context4.finish(33);
43112
43174
  case 36:
43113
43175
  if (!(!dims || dims.every(function (r, idx) {
@@ -43153,11 +43215,11 @@ var DivaSet = /*#__PURE__*/function () {
43153
43215
  var cleanedDimensions = [];
43154
43216
  for (var basketId in articles) {
43155
43217
  var artice = articles[basketId];
43156
- var _iterator3 = _createForOfIteratorHelper$j(artice.articleOptionStates.values()),
43157
- _step3;
43218
+ var _iterator5 = _createForOfIteratorHelper$j(artice.articleOptionStates.values()),
43219
+ _step5;
43158
43220
  try {
43159
43221
  var _loop2 = function _loop2() {
43160
- var ops = _step3.value;
43222
+ var ops = _step5.value;
43161
43223
  if (ops.customDimension && artice.posNr !== -1) {
43162
43224
  var value;
43163
43225
  if (typeof ops.customDimension == 'number') {
@@ -43187,13 +43249,13 @@ var DivaSet = /*#__PURE__*/function () {
43187
43249
  }
43188
43250
  }
43189
43251
  };
43190
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
43252
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
43191
43253
  _loop2();
43192
43254
  }
43193
43255
  } catch (err) {
43194
- _iterator3.e(err);
43256
+ _iterator5.e(err);
43195
43257
  } finally {
43196
- _iterator3.f();
43258
+ _iterator5.f();
43197
43259
  }
43198
43260
  }
43199
43261
  return cleanedDimensions;
@@ -43382,20 +43444,20 @@ var DivaSet = /*#__PURE__*/function () {
43382
43444
  var options = [];
43383
43445
  for (var key in this.divaArticles) {
43384
43446
  var article = this.divaArticles[key];
43385
- var _iterator4 = _createForOfIteratorHelper$j(article.articleOptionStates.values()),
43386
- _step4;
43447
+ var _iterator6 = _createForOfIteratorHelper$j(article.articleOptionStates.values()),
43448
+ _step6;
43387
43449
  try {
43388
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
43389
- var ops = _step4.value;
43450
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
43451
+ var ops = _step6.value;
43390
43452
  if (!ops.invisibleWithoutMaskeInfluence && ops.isDoShow && ops.val && ops.valCodex != 'OPVNR' && ops.valCodex != 'OPOHNE') {
43391
43453
  var _ops$val$setName;
43392
43454
  if (ops.option.setName) options.push((_ops$val$setName = ops.val.setName) !== null && _ops$val$setName !== void 0 ? _ops$val$setName : ops.val.name);
43393
43455
  }
43394
43456
  }
43395
43457
  } catch (err) {
43396
- _iterator4.e(err);
43458
+ _iterator6.e(err);
43397
43459
  } finally {
43398
- _iterator4.f();
43460
+ _iterator6.f();
43399
43461
  }
43400
43462
  }
43401
43463
  return options;
@@ -43643,7 +43705,7 @@ var DivaSet = /*#__PURE__*/function () {
43643
43705
  break;
43644
43706
  }
43645
43707
  _context5.next = 3;
43646
- return import('./DoorPlanner-d2a5deac.js');
43708
+ return import('./DoorPlanner-1dd81e60.js');
43647
43709
  case 3:
43648
43710
  _yield$import = _context5.sent;
43649
43711
  DoorPlanner = _yield$import["default"];
@@ -43778,6 +43840,11 @@ var DivaSet = /*#__PURE__*/function () {
43778
43840
  get: function get() {
43779
43841
  return this.setState.actions;
43780
43842
  }
43843
+
43844
+ /** Set by the planner when a view adopts or releases it. */,
43845
+ set: function set(actions) {
43846
+ this.setState.actions = actions;
43847
+ }
43781
43848
  }, {
43782
43849
  key: "getPlanning2DAsJpg",
43783
43850
  get: function get() {
@@ -44495,13 +44562,15 @@ var Grid = /*#__PURE__*/function () {
44495
44562
  */
44496
44563
  return _createClass(Grid, [{
44497
44564
  key: "tryFitOnShelf",
44498
- value: function tryFitOnShelf(accessoire, index, accessorieShelfPlanner, checkParentRuleOnly // when remove old shelfplanner logic remove this param
44565
+ value: function tryFitOnShelf(accessoire, index, accessorieShelfPlanner, checkParentRuleOnly,
44566
+ // when remove old shelfplanner logic remove this param
44567
+ movingBasketId // the accessoire being moved: its own cells are free for it
44499
44568
  ) {
44500
44569
  var gridAllowedOnCells = accessorieShelfPlanner === null || accessorieShelfPlanner === void 0 ? void 0 : accessorieShelfPlanner.GridAllowedOnCells;
44501
44570
  var gridAllowedOntoArticles = accessorieShelfPlanner === null || accessorieShelfPlanner === void 0 ? void 0 : accessorieShelfPlanner.GridAllowedOntoArticles;
44502
44571
  var size = accessoire.shelfHeight;
44503
44572
  if (gridAllowedOntoArticles) {
44504
- return this.checkIfFitting(index, size, 'fitsOnToAccessoire', undefined, gridAllowedOntoArticles);
44573
+ return this.checkIfFitting(index, size, 'fitsOnToAccessoire', undefined, gridAllowedOntoArticles, undefined, movingBasketId);
44505
44574
  }
44506
44575
  if (gridAllowedOnCells && gridAllowedOnCells.length > 0) {
44507
44576
  var noSpaceOn = false;
@@ -44511,11 +44580,11 @@ var Grid = /*#__PURE__*/function () {
44511
44580
  if (gridAllowedOnCell.onParent == this.article.articleCodex || gridAllowedOnCell.onParent == undefined) {
44512
44581
  noSpaceOn = gridAllowedOnCell.Cells;
44513
44582
  if (gridAllowedOnCell.Cells.includes(index)) {
44514
- return this.checkIfFitting(index, size, 'fitsOnParentRule', gridAllowedOnCell.Cells, undefined, checkParentRuleOnly);
44583
+ return this.checkIfFitting(index, size, 'fitsOnParentRule', gridAllowedOnCell.Cells, undefined, checkParentRuleOnly, movingBasketId);
44515
44584
  } else {
44516
44585
  for (var j = 0; j < gridAllowedOnCell.Cells.length; j++) {
44517
- if (this.tryFitOnIndex(size, gridAllowedOnCell.Cells[j], undefined, checkParentRuleOnly)) {
44518
- return this.checkIfFitting(gridAllowedOnCell.Cells[j], size, 'fitsOnParentRuleButOriginalNotAllowed', gridAllowedOnCell.Cells, undefined, checkParentRuleOnly);
44586
+ if (this.tryFitOnIndex(size, gridAllowedOnCell.Cells[j], undefined, checkParentRuleOnly, movingBasketId)) {
44587
+ return this.checkIfFitting(gridAllowedOnCell.Cells[j], size, 'fitsOnParentRuleButOriginalNotAllowed', gridAllowedOnCell.Cells, undefined, checkParentRuleOnly, movingBasketId);
44519
44588
  }
44520
44589
  }
44521
44590
  }
@@ -44544,7 +44613,7 @@ var Grid = /*#__PURE__*/function () {
44544
44613
  canOnlyFitOn: noSpaceOn
44545
44614
  };
44546
44615
  }
44547
- var ret = this.checkIfFitting(index, size);
44616
+ var ret = this.checkIfFitting(index, size, undefined, undefined, undefined, undefined, movingBasketId);
44548
44617
  return ret;
44549
44618
  }
44550
44619
  }, {
@@ -44554,25 +44623,26 @@ var Grid = /*#__PURE__*/function () {
44554
44623
  var gridAllowedOnCell = arguments.length > 3 ? arguments[3] : undefined;
44555
44624
  var placedOnToAccessoire = arguments.length > 4 ? arguments[4] : undefined;
44556
44625
  var checkParentRuleOnly = arguments.length > 5 ? arguments[5] : undefined;
44626
+ var movingBasketId = arguments.length > 6 ? arguments[6] : undefined;
44557
44627
  var count = 0;
44558
44628
  var noFitType = 'doesNotFit';
44559
44629
  var canOnlyFitOn = undefined;
44560
44630
  while (true) {
44561
- if (!this.cells[index - count] || this.cells[index - count].InUse > -1 && !checkParentRuleOnly) {
44631
+ if (!this.cells[index - count] || this.isTakenFor(index - count, movingBasketId) && !checkParentRuleOnly) {
44562
44632
  return {
44563
44633
  type: noFitType,
44564
44634
  size: size,
44565
44635
  canOnlyFitOn: canOnlyFitOn
44566
44636
  };
44567
44637
  }
44568
- if (this.tryFitOnIndex(size, index - count, gridAllowedOnCell, checkParentRuleOnly)) {
44569
- if (!placedOnToAccessoire || this.checkIfPlacedOnToAccessoireRule(placedOnToAccessoire, index - count)) {
44638
+ if (this.tryFitOnIndex(size, index - count, gridAllowedOnCell, checkParentRuleOnly, movingBasketId)) {
44639
+ if (!placedOnToAccessoire || this.checkIfPlacedOnToAccessoireRule(placedOnToAccessoire, index - count, movingBasketId)) {
44570
44640
  return {
44571
44641
  type: type,
44572
44642
  size: size,
44573
44643
  index: index - count
44574
44644
  };
44575
- } else if (!this.cells[index - (count + 1)] || this.cells[index - (count + 1)].InUse > -1 && !checkParentRuleOnly) {
44645
+ } else if (!this.cells[index - (count + 1)] || this.isTakenFor(index - (count + 1), movingBasketId) && !checkParentRuleOnly) {
44576
44646
  noFitType = 'notAllowedByAccessoireRule';
44577
44647
  canOnlyFitOn = this.getNamesOfArticles(placedOnToAccessoire);
44578
44648
  }
@@ -44580,11 +44650,20 @@ var Grid = /*#__PURE__*/function () {
44580
44650
  count++;
44581
44651
  }
44582
44652
  }
44653
+
44654
+ // Whether cell `index` holds an accessoire other than the one being moved (`movingBasketId`), which leaves its own cells.
44655
+ }, {
44656
+ key: "isTakenFor",
44657
+ value: function isTakenFor(index, movingBasketId) {
44658
+ var _cell$Article;
44659
+ var cell = this.cells[index];
44660
+ return cell.InUse > -1 && (movingBasketId === undefined || ((_cell$Article = cell.Article) === null || _cell$Article === void 0 ? void 0 : _cell$Article.basketId) !== movingBasketId);
44661
+ }
44583
44662
  }, {
44584
44663
  key: "tryFitOnIndex",
44585
- value: function tryFitOnIndex(size, index, gridAllowedOnCell, checkParentRuleOnly) {
44664
+ value: function tryFitOnIndex(size, index, gridAllowedOnCell, checkParentRuleOnly, movingBasketId) {
44586
44665
  for (var i = index; i < size + index; i++) {
44587
- if (this.cells[i] == undefined || this.cells[i].InUse > -1 && !checkParentRuleOnly || gridAllowedOnCell && !gridAllowedOnCell.includes(i)) {
44666
+ if (this.cells[i] == undefined || this.isTakenFor(i, movingBasketId) && !checkParentRuleOnly || gridAllowedOnCell && !gridAllowedOnCell.includes(i)) {
44588
44667
  return false;
44589
44668
  }
44590
44669
  }
@@ -44601,11 +44680,14 @@ var Grid = /*#__PURE__*/function () {
44601
44680
  }
44602
44681
  return true;
44603
44682
  }
44683
+
44684
+ // The accessoire being moved (`movingBasketId`) leaves its cells, so it is no support for itself.
44604
44685
  }, {
44605
44686
  key: "checkIfPlacedOnToAccessoireRule",
44606
- value: function checkIfPlacedOnToAccessoireRule(fitsOnToAccessoire, position) {
44607
- var article = this.cells[position - 1].Article;
44608
- return article ? fitsOnToAccessoire.includes(article.articleCodex) : false;
44687
+ value: function checkIfPlacedOnToAccessoireRule(fitsOnToAccessoire, position, movingBasketId) {
44688
+ var _this$cells;
44689
+ var article = (_this$cells = this.cells[position - 1]) === null || _this$cells === void 0 ? void 0 : _this$cells.Article;
44690
+ return article && article.basketId !== movingBasketId ? fitsOnToAccessoire.includes(article.articleCodex) : false;
44609
44691
  }
44610
44692
  }, {
44611
44693
  key: "getNamesOfArticles",
@@ -44911,10 +44993,10 @@ var Grid = /*#__PURE__*/function () {
44911
44993
  var after = accessoire.shelfHeightAbove;
44912
44994
  if (before) {
44913
44995
  for (var i = 1; i <= before; i++) {
44914
- var _this$cells$index, _cell$Article;
44996
+ var _this$cells$index, _cell$Article2;
44915
44997
  var index = cellIndex - i;
44916
44998
  var cell = this.cells[index];
44917
- if (this.cells[index] && ((_this$cells$index = this.cells[index]) === null || _this$cells$index === void 0 ? void 0 : _this$cells$index.InUse) != -1 && accessoire.basketId !== ((_cell$Article = cell.Article) === null || _cell$Article === void 0 ? void 0 : _cell$Article.basketId)) {
44999
+ if (this.cells[index] && ((_this$cells$index = this.cells[index]) === null || _this$cells$index === void 0 ? void 0 : _this$cells$index.InUse) != -1 && accessoire.basketId !== ((_cell$Article2 = cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId)) {
44918
45000
  return true;
44919
45001
  }
44920
45002
  }
@@ -45097,18 +45179,18 @@ var Grid = /*#__PURE__*/function () {
45097
45179
  //check for all the accessoires that moved during the process if they are allowed to be there
45098
45180
  accessoriesMoved = [];
45099
45181
  _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
45100
- var cell, _cell$Article3;
45182
+ var cell, _cell$Article4;
45101
45183
  return _regeneratorRuntime.wrap(function _loop2$(_context7) {
45102
45184
  while (1) switch (_context7.prev = _context7.next) {
45103
45185
  case 0:
45104
45186
  cell = _this2.cells[_i13];
45105
45187
  if (cell.Type == 'fitsOnParentRule' && cell.InUse > -1 && !accessoriesMoved.find(function (a) {
45106
- var _cell$Article2;
45107
- return ((_cell$Article2 = cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId) == a.basketId;
45188
+ var _cell$Article3;
45189
+ return ((_cell$Article3 = cell.Article) === null || _cell$Article3 === void 0 ? void 0 : _cell$Article3.basketId) == a.basketId;
45108
45190
  })) {
45109
45191
  accessoriesMoved.push({
45110
45192
  article: cell.Article,
45111
- basketId: (_cell$Article3 = cell.Article) === null || _cell$Article3 === void 0 ? void 0 : _cell$Article3.basketId,
45193
+ basketId: (_cell$Article4 = cell.Article) === null || _cell$Article4 === void 0 ? void 0 : _cell$Article4.basketId,
45112
45194
  index: cell.InUse
45113
45195
  });
45114
45196
  }
@@ -45224,8 +45306,8 @@ var Grid = /*#__PURE__*/function () {
45224
45306
  var cells = this.cells,
45225
45307
  accessoires = this.accessoires;
45226
45308
  this.cells = cells.map(function (cell) {
45227
- var _cell$Article4;
45228
- if (((_cell$Article4 = cell.Article) === null || _cell$Article4 === void 0 ? void 0 : _cell$Article4.basketId) !== basketId) return cell;
45309
+ var _cell$Article5;
45310
+ if (((_cell$Article5 = cell.Article) === null || _cell$Article5 === void 0 ? void 0 : _cell$Article5.basketId) !== basketId) return cell;
45229
45311
  var free = new Cell(cell.Index);
45230
45312
  free.IsDisabled = cell.IsDisabled;
45231
45313
  return free;
@@ -45249,11 +45331,11 @@ var Grid = /*#__PURE__*/function () {
45249
45331
  if (!size || this.disabledByRule || this.checkAccessoireInGridRules(accessoire)) return [];
45250
45332
  var freeCells = [];
45251
45333
  for (var i = 0; i < this.Cells.length; i++) {
45252
- var _cell$Article5;
45334
+ var _cell$Article6;
45253
45335
  var cell = this.Cells[i];
45254
45336
  if (!this.getAllArticleRelations().includes(accessoire.articleCodex)) continue;
45255
- var ret = this.tryFitOnShelf(accessoire, cell.Index, accessoire.shelfPlanner);
45256
- if (((_cell$Article5 = cell.Article) === null || _cell$Article5 === void 0 ? void 0 : _cell$Article5.basketId) === accessoire.basketId) {
45337
+ var ret = this.tryFitOnShelf(accessoire, cell.Index, accessoire.shelfPlanner, undefined, accessoire.basketId);
45338
+ if (((_cell$Article6 = cell.Article) === null || _cell$Article6 === void 0 ? void 0 : _cell$Article6.basketId) === accessoire.basketId) {
45257
45339
  var _ret$canOnlyFitOn;
45258
45340
  if (cell.Index == cell.InUse || ret && (_ret$canOnlyFitOn = ret.canOnlyFitOn) !== null && _ret$canOnlyFitOn !== void 0 && _ret$canOnlyFitOn.includes(cell.Index) || ret && ret.type !== 'fitsOnParentRule' && cell.OnlyPlaceHolder) {
45259
45341
  ret = {
@@ -45378,9 +45460,9 @@ var Grid = /*#__PURE__*/function () {
45378
45460
  if (!neighborGrid) continue;
45379
45461
  if (neighborGrid.Direction === this.Direction) {
45380
45462
  for (var _j3 = 0; _j3 < size; _j3++) {
45381
- var _cell$Article6;
45463
+ var _cell$Article7;
45382
45464
  var cell = neighborGrid.cells[_j3 + index];
45383
- if ((cell === null || cell === void 0 ? void 0 : cell.InUse) !== -1 && ((_cell$Article6 = cell.Article) === null || _cell$Article6 === void 0 ? void 0 : _cell$Article6.basketId) !== accessoire.basketId) {
45465
+ if ((cell === null || cell === void 0 ? void 0 : cell.InUse) !== -1 && ((_cell$Article7 = cell.Article) === null || _cell$Article7 === void 0 ? void 0 : _cell$Article7.basketId) !== accessoire.basketId) {
45384
45466
  _ret = true;
45385
45467
  }
45386
45468
  }
@@ -46284,7 +46366,8 @@ var DivaSetHandler = /*#__PURE__*/function () {
46284
46366
  }
46285
46367
  return _context3.abrupt("return", 1);
46286
46368
  case 3:
46287
- isPartlistExclusive = (_catalogData$getCatal = catalogData.getCatalogArticleByArticleCodex(orderline.ArticleCodex)) === null || _catalogData$getCatal === void 0 ? void 0 : _catalogData$getCatal.isPartlistExclusive;
46369
+ // only asked for a line of its own: a partlist line goes to its parent either way, and may come from another serie
46370
+ isPartlistExclusive = !orderline.IsPartlistArticle && ((_catalogData$getCatal = catalogData.getCatalogArticleByArticleCodex(orderline.ArticleCodex)) === null || _catalogData$getCatal === void 0 ? void 0 : _catalogData$getCatal.isPartlistExclusive);
46288
46371
  if (!orderline.IsPartlistArticle && (!isPartlistExclusive || !orderline.RelatedToBasketID)) {
46289
46372
  variantValues = catalogData.repairVariantValues(orderline.getVariantValues(set.CatalogData.isIDMFormat), orderline.ArticleCodex);
46290
46373
  toLoadArticles.push({
@@ -48770,7 +48853,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
48770
48853
  return _context32.abrupt("return", _objectSpread$h(_objectSpread$h(_objectSpread$h({
48771
48854
  isRenderedNotInSettingPalette: set.configTree.isRenderedNotInSettingPalette(configStepKey),
48772
48855
  isRenderedInAccessorieStep: set.configTree.isRenderedInAccessorieStep(configStepKey),
48773
- visible: set.configTree.getVisibility(configStepKey, visible, set.CatalogData)
48856
+ visible: set.configTree.getVisibility(configStepKey, visible, set)
48774
48857
  }, configItems), {}, {
48775
48858
  paletteType: paletteType,
48776
48859
  filterType: filterType,
@@ -48841,7 +48924,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
48841
48924
  }
48842
48925
  return _context33.abrupt("return", configItems);
48843
48926
  case 2:
48844
- opt = set.CatalogData.getOption((_configItems$0$option = configItems[0].optionOcd) !== null && _configItems$0$option !== void 0 ? _configItems$0$option : configItems[0].op);
48927
+ opt = set.getCatalogOption((_configItems$0$option = configItems[0].optionOcd) !== null && _configItems$0$option !== void 0 ? _configItems$0$option : configItems[0].op, set.configTree.getTargetArticles(configStepKey)[0]);
48845
48928
  previewType = set.api.pricePreview;
48846
48929
  if (!(!opt || opt.mergeIDMToOPG || configItems[0].isOPVG || opt.showOnSeparatTabgroup || set.PlannerMode === 'BoxPlanner' || ['TEXTBOX', 'NUMBERBOX', 'RANGE'].includes(paletteType) || (_set$api$ReturnToFrom = set.api.ReturnToFromParams) !== null && _set$api$ReturnToFrom !== void 0 && _set$api$ReturnToFrom.includes('PRODUCTCREATOR'))) {
48847
48930
  _context33.next = 6;
@@ -48912,7 +48995,8 @@ var DivaSetHandler = /*#__PURE__*/function () {
48912
48995
  case 9:
48913
48996
  articleConfigs[_basketId3] = {
48914
48997
  config: articles[_basketId3].VisibleVariantValues,
48915
- articleCodex: articles[_basketId3].articleCodex
48998
+ articleCodex: articles[_basketId3].articleCodex,
48999
+ conflictingOptions: articles[_basketId3].conflictingOptionCodices
48916
49000
  };
48917
49001
  case 10:
48918
49002
  i++;
@@ -48969,7 +49053,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
48969
49053
  key: "getVariant",
48970
49054
  value: function () {
48971
49055
  var _getVariant = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee33(set, item, origConfigs, totalConfig, targetArticles, option, origPrice, index, previousPromise) {
48972
- var firstPrice, prevProm, startTime, doUseConfigs, hashVariantValues, variantValues, i, _basketId4, origConfig, key, hash, dataHash, _i9, reversingCheck, ret, endTime, calcTime, price, priceObj;
49056
+ var firstPrice, prevProm, startTime, doUseConfigs, hashVariantValues, variantValues, i, _basketId4, origConfig, key, _origConfigs$_basketI, hash, dataHash, variantBasketIds, _i9, reversingCheck, ret, endTime, calcTime, price, priceObj;
48973
49057
  return _regeneratorRuntime.wrap(function _callee33$(_context35) {
48974
49058
  while (1) switch (_context35.prev = _context35.next) {
48975
49059
  case 0:
@@ -49010,7 +49094,8 @@ var DivaSetHandler = /*#__PURE__*/function () {
49010
49094
  for (key in origConfig) {
49011
49095
  if (key == item.op || key == item.idmOpgOptionCodex) {
49012
49096
  doUseConfigs = true;
49013
- } else if (doUseConfigs) {
49097
+ } else if (doUseConfigs && !((_origConfigs$_basketI = origConfigs[_basketId4].conflictingOptions) !== null && _origConfigs$_basketI !== void 0 && _origConfigs$_basketI.has(key))) {
49098
+ // A value the partlist children disagree on would overwrite the other children, a real click keeps them.
49014
49099
  variantValues[i][key] = origConfig[key];
49015
49100
  }
49016
49101
  hashVariantValues[i][key] = origConfig[key];
@@ -49033,34 +49118,36 @@ var DivaSetHandler = /*#__PURE__*/function () {
49033
49118
  firstPrice: firstPrice
49034
49119
  }));
49035
49120
  case 24:
49121
+ // variantValues follow origConfigs, which skips target articles the set no longer holds
49122
+ variantBasketIds = Object.keys(origConfigs);
49036
49123
  _i9 = 0;
49037
- case 25:
49124
+ case 26:
49038
49125
  if (!(_i9 < variantValues.length)) {
49039
- _context35.next = 31;
49126
+ _context35.next = 32;
49040
49127
  break;
49041
49128
  }
49042
- _context35.next = 28;
49043
- return this.updateArticlesOptionStatesOfActSet(set, variantValues[_i9], [targetArticles[_i9]], true, 'calcVariant');
49044
- case 28:
49129
+ _context35.next = 29;
49130
+ return this.updateArticlesOptionStatesOfActSet(set, variantValues[_i9], [variantBasketIds[_i9]], true, 'calcVariant');
49131
+ case 29:
49045
49132
  _i9++;
49046
- _context35.next = 25;
49133
+ _context35.next = 26;
49047
49134
  break;
49048
- case 31:
49135
+ case 32:
49049
49136
  reversingCheck = undefined;
49050
49137
  if (!option.checkForReversed) {
49051
- _context35.next = 37;
49138
+ _context35.next = 38;
49052
49139
  break;
49053
49140
  }
49054
- _context35.next = 35;
49141
+ _context35.next = 36;
49055
49142
  return this.checkForReversingChanges(set, origConfigs, option, option.checkForReversed.checkOnlyForOptions);
49056
- case 35:
49143
+ case 36:
49057
49144
  ret = _context35.sent;
49058
49145
  reversingCheck = {
49059
49146
  checkingForReversingChanges: option.checkForReversed.checkForReversingChanges,
49060
49147
  hasReversingChanges: ret.hasReversingChanges,
49061
49148
  reversingVariantValues: ret.reversingVariantValues
49062
49149
  };
49063
- case 37:
49150
+ case 38:
49064
49151
  endTime = new Date();
49065
49152
  calcTime = endTime.getTime() - startTime.getTime();
49066
49153
  LOG$b.debug('calcingVariant Time from Option:' + option.codex + ' and index: ' + index + ' time is: ' + calcTime + 'ms' + targetArticles.join(';'), [].concat(hashVariantValues, _toConsumableArray(Object.values(totalConfig))));
@@ -49079,7 +49166,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
49079
49166
  };
49080
49167
  set.CatalogData.setVariantsPriceByHash(hash, priceObj);
49081
49168
  return _context35.abrupt("return", priceObj);
49082
- case 44:
49169
+ case 45:
49083
49170
  case "end":
49084
49171
  return _context35.stop();
49085
49172
  }
@@ -51984,7 +52071,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51984
52071
  break;
51985
52072
  case 3:
51986
52073
  _context13.next = 5;
51987
- return import('./PfisterWWSHandler-cc745e52.js');
52074
+ return import('./PfisterWWSHandler-954b5cda.js');
51988
52075
  case 5:
51989
52076
  _yield$import = _context13.sent;
51990
52077
  PfisterWWSHandler = _yield$import["default"];
@@ -51992,7 +52079,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51992
52079
  return _context13.abrupt("break", 27);
51993
52080
  case 9:
51994
52081
  _context13.next = 11;
51995
- return import('./LiviqueWWSHandler-7bfacb71.js');
52082
+ return import('./LiviqueWWSHandler-23c7b65a.js');
51996
52083
  case 11:
51997
52084
  _yield$import2 = _context13.sent;
51998
52085
  LiviqueWWSHandler = _yield$import2["default"];
@@ -52000,7 +52087,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
52000
52087
  return _context13.abrupt("break", 27);
52001
52088
  case 15:
52002
52089
  _context13.next = 17;
52003
- return import('./SeriousBasketHandler-817d4898.js');
52090
+ return import('./SeriousBasketHandler-53824123.js');
52004
52091
  case 17:
52005
52092
  _yield$import3 = _context13.sent;
52006
52093
  SeriousWWSHandler = _yield$import3["default"];
@@ -52008,7 +52095,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
52008
52095
  return _context13.abrupt("break", 27);
52009
52096
  case 21:
52010
52097
  _context13.next = 23;
52011
- return import('./StandardWWSHandler-314f6b1f.js');
52098
+ return import('./StandardWWSHandler-8debfb39.js');
52012
52099
  case 23:
52013
52100
  _yield$import4 = _context13.sent;
52014
52101
  StandardWWSHandler = _yield$import4["default"];
@@ -53412,7 +53499,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
53412
53499
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
53413
53500
  bootMark('signalr: chunk import start');
53414
53501
  _context3.next = 3;
53415
- return import('./Host3DSignalR-ae4a5ae9.js');
53502
+ return import('./Host3DSignalR-727454f0.js');
53416
53503
  case 3:
53417
53504
  _yield$import = _context3.sent;
53418
53505
  Host3DSignalR = _yield$import["default"];
@@ -57859,7 +57946,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
57859
57946
  break;
57860
57947
  case 9:
57861
57948
  _context5.next = 11;
57862
- return import('./DivaStandardPlanner-2084715b.js');
57949
+ return import('./DivaStandardPlanner-2a024ff0.js');
57863
57950
  case 11:
57864
57951
  _yield$import = _context5.sent;
57865
57952
  DivaStandardPlanner = _yield$import["default"];
@@ -57874,7 +57961,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
57874
57961
  return _context5.abrupt("break", 22);
57875
57962
  case 16:
57876
57963
  _context5.next = 18;
57877
- return import('./DivaBoxPlanner-b5817973.js');
57964
+ return import('./DivaBoxPlanner-d616cefc.js');
57878
57965
  case 18:
57879
57966
  _yield$import2 = _context5.sent;
57880
57967
  DivaBoxPlanner = _yield$import2["default"];
@@ -59637,6 +59724,8 @@ var DivaWebPlanner = /*#__PURE__*/function () {
59637
59724
  _defineProperty(this, "plannerConfig", void 0);
59638
59725
  _defineProperty(this, "lastInitError", void 0);
59639
59726
  _defineProperty(this, "actions", void 0);
59727
+ /** The actions of whoever created this instance; it reports through them whenever no view has adopted it. */
59728
+ _defineProperty(this, "ownActions", void 0);
59640
59729
  _defineProperty(this, "handler", void 0);
59641
59730
  _defineProperty(this, "state", void 0);
59642
59731
  _defineProperty(this, "_doLoadHQR", void 0);
@@ -60506,7 +60595,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
60506
60595
  _context18.next = 24;
60507
60596
  return _this.fillBaksetforOnWebPlanerConfigChange(myValues, undefined, eventKey);
60508
60597
  case 24:
60509
- _this.configuratorChangeLog('onConfigurationChange', myValues, false, !!isUserAction);
60598
+ _this.configuratorChangeLog('onConfigurationChange', myValues, false, !!isUserAction, targetArticles);
60510
60599
  case 25:
60511
60600
  case "end":
60512
60601
  return _context18.stop();
@@ -60618,6 +60707,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
60618
60707
  });
60619
60708
  this.plannerConfig = Object.assign(plannerConfig, {});
60620
60709
  this.actions = plannerConfig.actions;
60710
+ this.ownActions = plannerConfig.actions;
60621
60711
  this.state = plannerConfig.state;
60622
60712
  this.handler = plannerConfig.handler;
60623
60713
  if (typeof window !== 'undefined') window.webPlanner = this;
@@ -63266,18 +63356,38 @@ var DivaWebPlanner = /*#__PURE__*/function () {
63266
63356
  }()
63267
63357
  /*********************************END Functions in Logik called From View END *************************************/
63268
63358
  /*********************************** View attachment (Logik -> View) ***************************************/
63269
- /** Attach the view (initial mount or adoption of an existing, possibly headless instance). */
63359
+ /**
63360
+ * Attach the view (initial mount or adoption of an existing, possibly headless instance). With `actions`, the
63361
+ * instance reports through the view's host actions (modals, loading, events) until the view detaches.
63362
+ */
63270
63363
  }, {
63271
63364
  key: "attachView",
63272
- value: function attachView(view) {
63365
+ value: function attachView(view, actions) {
63273
63366
  this.view = view;
63367
+ if (actions) this.reportTo(actions);
63274
63368
  }
63275
63369
 
63276
- /** Detach the view; the instance keeps working headless and can be re-attached later. */
63370
+ /** Detach the view; the instance keeps working headless on its creator's actions and can be re-attached later. */
63277
63371
  }, {
63278
63372
  key: "detachView",
63279
63373
  value: function detachView() {
63280
63374
  this.view = undefined;
63375
+ // a destroyed instance gets no actions back
63376
+ if (!this._isDestroyed) this.reportTo(this.ownActions);
63377
+ }
63378
+
63379
+ /** Every holder of the host actions: this planner, its config (the basket handler shares it), the API handler and each set. */
63380
+ }, {
63381
+ key: "reportTo",
63382
+ value: function reportTo(actions) {
63383
+ var _this$api4;
63384
+ this.actions = actions;
63385
+ this.plannerConfig.actions = actions;
63386
+ (_this$api4 = this.api) === null || _this$api4 === void 0 || _this$api4.setActions(actions);
63387
+ for (var _i = 0, _Object$values = Object.values(this.sets); _i < _Object$values.length; _i++) {
63388
+ var set = _Object$values[_i];
63389
+ set.actions = actions;
63390
+ }
63281
63391
  }
63282
63392
 
63283
63393
  /** See {@link DivaPlannerHandler.strictArtifactGeneration}. Auto-propagates. */
@@ -63694,8 +63804,8 @@ var DivaWebPlanner = /*#__PURE__*/function () {
63694
63804
  var actualBasketvalue = 0;
63695
63805
  if (set) {
63696
63806
  actualBasketvalue = set === null || set === void 0 ? void 0 : set.getSetPrice();
63697
- for (var _i = 0, _Object$values = Object.values(set.getDivaArticles()); _i < _Object$values.length; _i++) {
63698
- var article = _Object$values[_i];
63807
+ for (var _i2 = 0, _Object$values2 = Object.values(set.getDivaArticles()); _i2 < _Object$values2.length; _i2++) {
63808
+ var article = _Object$values2[_i2];
63699
63809
  if (article.relatedToBasketId) {
63700
63810
  var toAdd = {
63701
63811
  codex: article.configArticleCodex,
@@ -63741,6 +63851,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
63741
63851
  value: function configuratorChangeLog(action, myValues) {
63742
63852
  var isInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
63743
63853
  var isUserAction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
63854
+ var targetArticles = arguments.length > 4 ? arguments[4] : undefined;
63744
63855
  var set = this.actSet();
63745
63856
  var actualBasketvalue = 0;
63746
63857
  //handle Price
@@ -63751,15 +63862,18 @@ var DivaWebPlanner = /*#__PURE__*/function () {
63751
63862
  //handle user selected
63752
63863
  var explicitlySetConfiguration = undefined;
63753
63864
  if (myValues && set) {
63754
- var _set$CatalogData$getO, _set$CatalogData$getO2, _set$CatalogData$getO3;
63865
+ var _set$getCatalogOption;
63866
+ var optCodex = Object.keys(myValues)[0];
63867
+ var opvCodex = Object.values(myValues)[0];
63868
+ var opvObject = set.getCatalogOptionValue(opvCodex, targetArticles === null || targetArticles === void 0 ? void 0 : targetArticles[0]);
63755
63869
  explicitlySetConfiguration = {
63756
- optCodex: Object.keys(myValues)[0],
63757
- optName: (set === null || set === void 0 || (_set$CatalogData$getO = set.CatalogData.getOption(Object.keys(myValues)[0])) === null || _set$CatalogData$getO === void 0 ? void 0 : _set$CatalogData$getO.name) || '',
63758
- opvCodex: Object.values(myValues)[0],
63759
- opvName: (set === null || set === void 0 || (_set$CatalogData$getO2 = set.CatalogData.getOptionValue(Object.values(myValues)[0])) === null || _set$CatalogData$getO2 === void 0 ? void 0 : _set$CatalogData$getO2.name) || '',
63870
+ optCodex: optCodex,
63871
+ optName: ((_set$getCatalogOption = set.getCatalogOption(optCodex, targetArticles === null || targetArticles === void 0 ? void 0 : targetArticles[0])) === null || _set$getCatalogOption === void 0 ? void 0 : _set$getCatalogOption.name) || '',
63872
+ opvCodex: opvCodex,
63873
+ opvName: (opvObject === null || opvObject === void 0 ? void 0 : opvObject.name) || '',
63760
63874
  stage: 'USER_CHANGE'
63761
63875
  };
63762
- var latestColor = ((_set$CatalogData$getO3 = set.CatalogData.getOptionValue(Object.values(myValues)[0])) === null || _set$CatalogData$getO3 === void 0 ? void 0 : _set$CatalogData$getO3.colorGroups) || [];
63876
+ var latestColor = (opvObject === null || opvObject === void 0 ? void 0 : opvObject.colorGroups) || [];
63763
63877
  if (latestColor.length > 0) {
63764
63878
  explicitlySetConfiguration.optClassification = 'COLOR';
63765
63879
  explicitlySetConfiguration.opvClassification = latestColor;
@@ -63769,25 +63883,26 @@ var DivaWebPlanner = /*#__PURE__*/function () {
63769
63883
  //handle final configuration
63770
63884
  var finalConfiguration = [];
63771
63885
  if (set) {
63772
- for (var _i2 = 0, _Object$values2 = Object.values(set.getDivaArticles()); _i2 < _Object$values2.length; _i2++) {
63773
- var article = _Object$values2[_i2];
63886
+ for (var _i3 = 0, _Object$values3 = Object.values(set.getDivaArticles()); _i3 < _Object$values3.length; _i3++) {
63887
+ var article = _Object$values3[_i3];
63774
63888
  var variantValues = article.AllVariantValues;
63775
- for (var _i3 = 0, _Object$entries = Object.entries(variantValues); _i3 < _Object$entries.length; _i3++) {
63776
- var _set$CatalogData$getO4, _set$CatalogData$getO5, _set$CatalogData$getO6, _set$CatalogData$getO7;
63777
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i3], 2),
63889
+ for (var _i4 = 0, _Object$entries = Object.entries(variantValues); _i4 < _Object$entries.length; _i4++) {
63890
+ var _set$getCatalogOption2;
63891
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i4], 2),
63778
63892
  opt = _Object$entries$_i[0],
63779
63893
  opv = _Object$entries$_i[1];
63780
- if (!set.CatalogData.getOptionValue(opv) || !((_set$CatalogData$getO4 = set.CatalogData.getOptionValue(opv)) !== null && _set$CatalogData$getO4 !== void 0 && _set$CatalogData$getO4.name)) {
63894
+ var _opvObject = set.getCatalogOptionValue(opv, article.basketId);
63895
+ if (!(_opvObject !== null && _opvObject !== void 0 && _opvObject.name)) {
63781
63896
  continue;
63782
63897
  }
63783
63898
  var finalConfigurationItem = {
63784
63899
  optCodex: opt,
63785
- optName: ((_set$CatalogData$getO5 = set.CatalogData.getOption(opt)) === null || _set$CatalogData$getO5 === void 0 ? void 0 : _set$CatalogData$getO5.name) || '',
63900
+ optName: ((_set$getCatalogOption2 = set.getCatalogOption(opt, article.basketId)) === null || _set$getCatalogOption2 === void 0 ? void 0 : _set$getCatalogOption2.name) || '',
63786
63901
  opvCodex: opv,
63787
- opvName: ((_set$CatalogData$getO6 = set.CatalogData.getOptionValue(opv)) === null || _set$CatalogData$getO6 === void 0 ? void 0 : _set$CatalogData$getO6.name) || '',
63902
+ opvName: _opvObject.name,
63788
63903
  stage: action == 'onConfigurationChange' ? 'FINAL' : 'INITIAL'
63789
63904
  };
63790
- var color = ((_set$CatalogData$getO7 = set.CatalogData.getOptionValue(opv)) === null || _set$CatalogData$getO7 === void 0 ? void 0 : _set$CatalogData$getO7.colorGroups) || [];
63905
+ var color = _opvObject.colorGroups || [];
63791
63906
  if (color.length > 0) {
63792
63907
  finalConfigurationItem.optClassification = 'COLOR';
63793
63908
  finalConfigurationItem.opvClassification = color;
@@ -83880,4 +83995,4 @@ function _withTimeout() {
83880
83995
  return _withTimeout.apply(this, arguments);
83881
83996
  }
83882
83997
 
83883
- export { createHeadlessPreviewRenderer as $, moveSlotMember as A, moveShape as B, layersCollide as C, shapesCollide as D, parseGuestPlacement as E, saveElementArticleCodex as F, Grid as G, parseSetPlanData as H, isSavePlannerV2 as I, BoundingBox as J, movePoints as K, bootMark as L, MAX_GUEST_DEPTH as M, HQRenderScript as N, DivaWebPlanner as O, PlannerElementData as P, DivaArticle as Q, Rendering as R, SVGUtils as S, DivaCatalogData as T, OptionCatalogData as U, Vector3 as V, Cell as W, loadAndRepairBasket as X, DivaBasketHandler as Y, CatalogPlannerArticleData as Z, SET_IMAGES_CAPTURED_EVENT as _, articleHandlerInstance as a, PROPERTY_SCHEMAS as a0, propertyEncodingOf as a1, JsonDataCache as a2, getSeriousSetNamePlaceholder as a3, bootMarksEnabled as a4, bootNetworkMark as a5, bootNow as a6, bootRequestName as a7, getElementPartDefinitions as a8, choosableValueCount as a9, loadElementPartStepValues as aa, canSwitchTo as ab, dockingFiltersMatch as ac, switchElementOf as ad, switchInitParamsOf as ae, getViewerStateToggles as af, setViewerStateToggle as ag, Vector4 as ah, creatRenderOrders as ai, getOrigProductId as aj, describeMeasurePrice as ak, measureWithUnit as al, headlessSession as am, findOptionValue as an, collectStructureStepKeys as ao, runHeadlessArtifactPass as ap, runHeadlessArtifactPassBatch as aq, applyArtifactsToBasketJson as ar, ArtifactGenerationError as as, setHandlerInstance as b, getDockingGroups as c, getElementShape as d, getCarrierSlots as e, familyMembersOf as f, getSnapPlace as g, getSlotPlaces as h, isSamePose as i, getGroupBlock as j, fitsInsideRoom as k, keepInsideRoom as l, moveGroupRigidly as m, bindToWalls as n, sameGeoExtent as o, poseOf as p, getCornerEnd as q, getDoorClearanceRects as r, summaryHandlerInstance as s, rectCorners as t, Vector2 as u, slotExempt as v, bodiesOverlap as w, getNearestMember as x, toPlacementOffset as y, getTurnDeg as z };
83998
+ export { createHeadlessPreviewRenderer as $, moveSlotMember as A, moveShape as B, layersCollide as C, shapesCollide as D, parseGuestPlacement as E, saveElementArticleCodex as F, Grid as G, parseSetPlanData as H, isSavePlannerV2 as I, BoundingBox as J, movePoints as K, bootMark as L, MAX_GUEST_DEPTH as M, HQRenderScript as N, DivaWebPlanner as O, PlannerElementData as P, DivaArticle as Q, Rendering as R, SVGUtils as S, DivaCatalogData as T, OptionCatalogData as U, Vector3 as V, Cell as W, loadAndRepairBasket as X, DivaBasketHandler as Y, CatalogPlannerArticleData as Z, SET_IMAGES_CAPTURED_EVENT as _, articleHandlerInstance as a, PROPERTY_SCHEMAS as a0, propertyEncodingOf as a1, JsonDataCache as a2, getSeriousSetNamePlaceholder as a3, bootMarksEnabled as a4, bootNetworkMark as a5, bootNow as a6, bootRequestName as a7, getElementPartDefinitions as a8, choosableValueCount as a9, loadElementPartStepValues as aa, canSwitchTo as ab, dockingFiltersMatch as ac, switchElementOf as ad, switchInitParamsOf as ae, getViewerStateToggles as af, setViewerStateToggle as ag, Vector4 as ah, creatRenderOrders as ai, getOrigProductId as aj, describeMeasurePrice as ak, measureWithUnit as al, measureUnitSymbol as am, headlessSession as an, findOptionValue as ao, collectStructureStepKeys as ap, runHeadlessArtifactPass as aq, runHeadlessArtifactPassBatch as ar, applyArtifactsToBasketJson as as, ArtifactGenerationError as at, setHandlerInstance as b, getDockingGroups as c, getElementShape as d, getCarrierSlots as e, familyMembersOf as f, getSnapPlace as g, getSlotPlaces as h, isSamePose as i, getGroupBlock as j, fitsInsideRoom as k, keepInsideRoom as l, moveGroupRigidly as m, bindToWalls as n, sameGeoExtent as o, poseOf as p, getCornerEnd as q, getDoorClearanceRects as r, summaryHandlerInstance as s, rectCorners as t, Vector2 as u, slotExempt as v, bodiesOverlap as w, getNearestMember as x, toPlacementOffset as y, getTurnDeg as z };