@crystaldesign/web-planner-logic 26.13.0-beta.1 → 26.13.0-beta.11

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 (54) hide show
  1. package/build/cjs/{DivaBoxPlanner-5e930cef.js → DivaBoxPlanner-76112465.js} +3 -3
  2. package/build/cjs/{DivaStandardPlanner-9b10f74c.js → DivaStandardPlanner-2ec3cf66.js} +3 -3
  3. package/build/cjs/{DoorPlanner-3c74f8e1.js → DoorPlanner-903b1704.js} +2 -2
  4. package/build/cjs/{Host3DSignalR-2ba0c49a.js → Host3DSignalR-18443430.js} +62 -19
  5. package/build/cjs/{LiviqueWWSHandler-a4230440.js → LiviqueWWSHandler-f8f80ead.js} +2 -2
  6. package/build/cjs/{PfisterWWSHandler-2d41405a.js → PfisterWWSHandler-1e2fa7cc.js} +2 -2
  7. package/build/cjs/{PlannerHandler2D-97dff60d.js → PlannerHandler2D-2772a96b.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-a5c22844.js → SeriousBasketHandler-db8488d2.js} +2 -2
  9. package/build/cjs/{ShelfPlanner-b30f8c39.js → ShelfPlanner-87cecae1.js} +2 -2
  10. package/build/cjs/{StandardWWSHandler-40c2a2e8.js → StandardWWSHandler-537180c7.js} +2 -2
  11. package/build/cjs/{index-70f9ba19.js → index-0fefa866.js} +449 -203
  12. package/build/cjs/index.js +2 -2
  13. package/build/esm/{DivaBoxPlanner-87010599.js → DivaBoxPlanner-9145f178.js} +3 -3
  14. package/build/esm/{DivaStandardPlanner-f5f47d3b.js → DivaStandardPlanner-7331d5ae.js} +3 -3
  15. package/build/esm/{DoorPlanner-fb5b9eb2.js → DoorPlanner-cc097ffd.js} +2 -2
  16. package/build/esm/{Host3DSignalR-d316eb88.js → Host3DSignalR-72ecec93.js} +62 -19
  17. package/build/esm/{LiviqueWWSHandler-2a135ba1.js → LiviqueWWSHandler-4d18f0f8.js} +2 -2
  18. package/build/esm/{PfisterWWSHandler-e7d55634.js → PfisterWWSHandler-156c7d93.js} +2 -2
  19. package/build/esm/{PlannerHandler2D-288e724b.js → PlannerHandler2D-83b17b7f.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-60cbf854.js → SeriousBasketHandler-1652bb9b.js} +2 -2
  21. package/build/esm/{ShelfPlanner-f3a02665.js → ShelfPlanner-9f76f2ea.js} +2 -2
  22. package/build/esm/{StandardWWSHandler-eb1ba4cf.js → StandardWWSHandler-649e12c5.js} +2 -2
  23. package/build/esm/{index-9eba9def.js → index-44a2cb08.js} +449 -203
  24. package/build/esm/index.js +2 -2
  25. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +2 -0
  26. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +2 -0
  28. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts +20 -0
  30. package/build/types/web-planner-logic/src/interface/Planner/IDM3DTranslation.d.ts.map +1 -0
  31. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +9 -1
  32. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +3 -1
  34. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts +33 -0
  36. package/build/types/web-planner-logic/src/logic/Planner/IDM3D/idm3dTranslation.d.ts.map +1 -0
  37. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts +1 -0
  38. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  40. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
  41. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  42. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
  43. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  44. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts +2 -0
  49. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts.map +1 -0
  50. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts +2 -0
  51. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts.map +1 -0
  52. package/build/types/web-planner-logic/src/test/setConfigPricePreview.test.d.ts +2 -0
  53. package/build/types/web-planner-logic/src/test/setConfigPricePreview.test.d.ts.map +1 -0
  54. package/package.json +3 -3
@@ -10,9 +10,9 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var axios$1 = require('axios');
12
12
  var DivaUtils = require('@crystaldesign/diva-utils');
13
+ var _typeof = require('@babel/runtime/helpers/typeof');
13
14
  var planner2dCore = require('@crystaldesign/planner-2d-core');
14
15
  var basketModel = require('@crystaldesign/basket-model');
15
- var _typeof = require('@babel/runtime/helpers/typeof');
16
16
  var fastXmlParser = require('fast-xml-parser');
17
17
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
18
18
  var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
@@ -3147,6 +3147,9 @@ var setOptionsProperties = function setOptionsProperties(catalogData, opt, prope
3147
3147
  case 'IsSalesText':
3148
3148
  case 'IsArtName':
3149
3149
  break;
3150
+ case 'IDM3D_TARGET':
3151
+ // read raw by the IDM3D translation (logic/Planner/IDM3D/idm3dTranslation.ts)
3152
+ break;
3150
3153
  default:
3151
3154
  LOG$q.debug('implement mapping for these props for options: ' + prop.Codex);
3152
3155
  break;
@@ -17486,6 +17489,9 @@ var setOptionValueProperties = function setOptionValueProperties(catalogData, op
17486
17489
  case 'PriceTageRelevant':
17487
17490
  case 'IsArtName':
17488
17491
  break;
17492
+ case 'IDM3D_VALUE':
17493
+ // read raw by the IDM3D translation (logic/Planner/IDM3D/idm3dTranslation.ts)
17494
+ break;
17489
17495
  default:
17490
17496
  if (key.includes('__')) break;
17491
17497
  LOG$p.debug('implement mapping for these props for optionValue: ' + prop.Codex);
@@ -17514,9 +17520,9 @@ var setOptionValueProperties = function setOptionValueProperties(catalogData, op
17514
17520
  return metaDatas;
17515
17521
  };
17516
17522
 
17517
- function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
17518
- function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$o(r, a) : void 0; } }
17519
- function _arrayLikeToArray$o(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17523
+ function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
17524
+ function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$p(r, a) : void 0; } }
17525
+ function _arrayLikeToArray$p(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17520
17526
 
17521
17527
  //kaufmännischer Artikel
17522
17528
  var CatalogArticleData = /*#__PURE__*/function () {
@@ -17617,6 +17623,9 @@ var CatalogArticleData = /*#__PURE__*/function () {
17617
17623
  case 'GROUP_CONTENT_ITEM':
17618
17624
  this._catalogArticle.groupContentItemId = prop.Value;
17619
17625
  break;
17626
+ case 'IDM3D_SKIP':
17627
+ this._catalogArticle.idm3DSkip = isPropertyOn(prop.Value);
17628
+ break;
17620
17629
  case 'HAS3D':
17621
17630
  this._catalogArticle.isVisualized = isPropertyOn(prop.Value);
17622
17631
  break;
@@ -17658,6 +17667,8 @@ var CatalogArticleData = /*#__PURE__*/function () {
17658
17667
  break;
17659
17668
  }
17660
17669
  }
17670
+ // like the old IDM import: without EAN and TYPE_NO property the type number is SALES_NUMBER, then TYPE_NO - never empty
17671
+ if (!this._catalogArticle.typeNr && catalogData.isIDMFormat) this._catalogArticle.typeNr = this._catalogArticle.salesNumber || this.articleCodex;
17661
17672
  this._catalogArticle.metaData = metaDatas;
17662
17673
  }
17663
17674
  /**************************************************GETTER ************************************************** */
@@ -18267,6 +18278,11 @@ var CatalogArticleData = /*#__PURE__*/function () {
18267
18278
  get: function get() {
18268
18279
  return !!this._catalogArticle.isVisualized;
18269
18280
  }
18281
+ }, {
18282
+ key: "isIDM3DSkipped",
18283
+ get: function get() {
18284
+ return !!this._catalogArticle.idm3DSkip;
18285
+ }
18270
18286
  }, {
18271
18287
  key: "j3D",
18272
18288
  get: function get() {
@@ -18303,7 +18319,7 @@ var CatalogArticleData = /*#__PURE__*/function () {
18303
18319
  value: function getOptionValueFromOption(opt, opv) {
18304
18320
  if (this._catalogArticle.articleOptions[opt] && this._catalogArticle.articleOptions[opt].hasOPG) {
18305
18321
  var myOPGs = this._catalogArticle.articleOptions[opt].articleOptionValues;
18306
- var _iterator = _createForOfIteratorHelper$o(myOPGs),
18322
+ var _iterator = _createForOfIteratorHelper$p(myOPGs),
18307
18323
  _step;
18308
18324
  try {
18309
18325
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19457,9 +19473,9 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
19457
19473
  }]);
19458
19474
  }();
19459
19475
 
19460
- function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19461
- function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$n(r, a) : void 0; } }
19462
- function _arrayLikeToArray$n(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19476
+ function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19477
+ function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$o(r, a) : void 0; } }
19478
+ function _arrayLikeToArray$o(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19463
19479
  var ArticleOptionData = /*#__PURE__*/function () {
19464
19480
  function ArticleOptionData(opt, catalogData) {
19465
19481
  var _this$opt$property;
@@ -19559,7 +19575,7 @@ var ArticleOptionData = /*#__PURE__*/function () {
19559
19575
  }, {
19560
19576
  key: "getOpvByOcd",
19561
19577
  value: function getOpvByOcd(codex) {
19562
- var _iterator = _createForOfIteratorHelper$n(this.opt.articleOptionValues),
19578
+ var _iterator = _createForOfIteratorHelper$o(this.opt.articleOptionValues),
19563
19579
  _step;
19564
19580
  try {
19565
19581
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19900,9 +19916,9 @@ var ArticleOptionData = /*#__PURE__*/function () {
19900
19916
  }]);
19901
19917
  }();
19902
19918
 
19903
- function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19904
- function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$m(r, a) : void 0; } }
19905
- function _arrayLikeToArray$m(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19919
+ function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19920
+ function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$n(r, a) : void 0; } }
19921
+ function _arrayLikeToArray$n(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19906
19922
  var LOG$n = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
19907
19923
  function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors, catalog, newOPT, rule) {
19908
19924
  var lang = catalog.api.getLanguage();
@@ -20275,7 +20291,7 @@ function getReferencedDecisions(decisions, decisionRefs) {
20275
20291
  });
20276
20292
  var enableTargets = getActionTargets(decisions, 'ENABLE_DECISION');
20277
20293
  for (var i = 0; i < evaluated.length; i++) {
20278
- var _iterator = _createForOfIteratorHelper$m(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
20294
+ var _iterator = _createForOfIteratorHelper$n(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
20279
20295
  _step;
20280
20296
  try {
20281
20297
  var _loop = function _loop() {
@@ -20302,19 +20318,19 @@ function getReferencedDecisions(decisions, decisionRefs) {
20302
20318
  /** Numbers of the decisions an action of the given type points at. */
20303
20319
  function getActionTargets(decisions, type) {
20304
20320
  var targets = new Set();
20305
- var _iterator2 = _createForOfIteratorHelper$m(decisions),
20321
+ var _iterator2 = _createForOfIteratorHelper$n(decisions),
20306
20322
  _step2;
20307
20323
  try {
20308
20324
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
20309
20325
  var _decision$DOC;
20310
20326
  var decision = _step2.value;
20311
- var _iterator3 = _createForOfIteratorHelper$m((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
20327
+ var _iterator3 = _createForOfIteratorHelper$n((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
20312
20328
  _step3;
20313
20329
  try {
20314
20330
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
20315
20331
  var _combination$DA;
20316
20332
  var combination = _step3.value;
20317
- var _iterator4 = _createForOfIteratorHelper$m((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
20333
+ var _iterator4 = _createForOfIteratorHelper$n((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
20318
20334
  _step4;
20319
20335
  try {
20320
20336
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -20468,9 +20484,9 @@ function getArticleOptionValueType(set, codex, jsonOPV, catalogOPV, myArticle, i
20468
20484
  return opv;
20469
20485
  }
20470
20486
 
20471
- function _createForOfIteratorHelper$l(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$l(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20472
- function _unsupportedIterableToArray$l(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$l(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$l(r, a) : void 0; } }
20473
- function _arrayLikeToArray$l(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20487
+ function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20488
+ function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$m(r, a) : void 0; } }
20489
+ function _arrayLikeToArray$m(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20474
20490
  var LOG$m = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
20475
20491
  var COUNT_KEY_BY_DOCKING_TYPE = {
20476
20492
  AVC: 'avc',
@@ -20565,7 +20581,7 @@ var SVGUtils = /*#__PURE__*/function () {
20565
20581
  avu: 0,
20566
20582
  avl: 0
20567
20583
  };
20568
- var _iterator = _createForOfIteratorHelper$l(this.getDPsInSVG(content)),
20584
+ var _iterator = _createForOfIteratorHelper$m(this.getDPsInSVG(content)),
20569
20585
  _step;
20570
20586
  try {
20571
20587
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20760,7 +20776,7 @@ var SVGUtils = /*#__PURE__*/function () {
20760
20776
  keepWidth: keep === null || keep === void 0 ? void 0 : keep.width,
20761
20777
  keepDepth: keep === null || keep === void 0 ? void 0 : keep.depth
20762
20778
  });
20763
- var _iterator2 = _createForOfIteratorHelper$l(result.warnings),
20779
+ var _iterator2 = _createForOfIteratorHelper$m(result.warnings),
20764
20780
  _step2;
20765
20781
  try {
20766
20782
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20780,9 +20796,9 @@ var SVGUtils = /*#__PURE__*/function () {
20780
20796
 
20781
20797
  function ownKeys$q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20782
20798
  function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20783
- function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20784
- function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$k(r, a) : void 0; } }
20785
- function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20799
+ function _createForOfIteratorHelper$l(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$l(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20800
+ function _unsupportedIterableToArray$l(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$l(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$l(r, a) : void 0; } }
20801
+ function _arrayLikeToArray$l(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20786
20802
  var LOG$l = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
20787
20803
 
20788
20804
  //a decision enabled by an action may itself enable further ones; the cap keeps a cyclic catalog from looping
@@ -20935,7 +20951,7 @@ function _loadMoreFromIDMArticles() {
20935
20951
  catalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i6], catalogData.idmOptionGroups));
20936
20952
  }
20937
20953
  }
20938
- _iterator6 = _createForOfIteratorHelper$k(toLoadPFGroups);
20954
+ _iterator6 = _createForOfIteratorHelper$l(toLoadPFGroups);
20939
20955
  _context8.prev = 36;
20940
20956
  _loop7 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop7() {
20941
20957
  var prfgNo, askedBy;
@@ -21101,7 +21117,7 @@ function _loadMoreFromIDMArticles() {
21101
21117
  _context8.next = 62;
21102
21118
  break;
21103
21119
  case 67:
21104
- _iterator7 = _createForOfIteratorHelper$k(toLoadFeatures);
21120
+ _iterator7 = _createForOfIteratorHelper$l(toLoadFeatures);
21105
21121
  _context8.prev = 68;
21106
21122
  _loop8 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop8() {
21107
21123
  var featureNo, askedBy;
@@ -21230,13 +21246,13 @@ function readAdditionalItemRefs(item) {
21230
21246
  var _item$mandatoryAdditi, _item$mandatoryAdditi2, _item$optionalAdditio, _item$optionalAdditio2;
21231
21247
  var merged = new Map();
21232
21248
  var add = function add(groups, quantity) {
21233
- var _iterator = _createForOfIteratorHelper$k(groups),
21249
+ var _iterator = _createForOfIteratorHelper$l(groups),
21234
21250
  _step;
21235
21251
  try {
21236
21252
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
21237
21253
  var _group$itemRef;
21238
21254
  var group = _step.value;
21239
- var _iterator2 = _createForOfIteratorHelper$k((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
21255
+ var _iterator2 = _createForOfIteratorHelper$l((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
21240
21256
  _step2;
21241
21257
  try {
21242
21258
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21303,7 +21319,7 @@ function _loadReferencedSerieCatalogs() {
21303
21319
  });
21304
21320
  }));
21305
21321
  serieNos["delete"](String(catalogData.catalogCodex));
21306
- _iterator8 = _createForOfIteratorHelper$k(serieNos);
21322
+ _iterator8 = _createForOfIteratorHelper$l(serieNos);
21307
21323
  _context9.prev = 6;
21308
21324
  _iterator8.s();
21309
21325
  case 8:
@@ -21470,11 +21486,11 @@ function _fillMissingDockingPointCounts() {
21470
21486
  case 3:
21471
21487
  // the same accessories initIDMArticleRelations maps, each with the catalog it lives in
21472
21488
  accessories = new Map();
21473
- _iterator9 = _createForOfIteratorHelper$k(items);
21489
+ _iterator9 = _createForOfIteratorHelper$l(items);
21474
21490
  try {
21475
21491
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
21476
21492
  item = _step9.value;
21477
- _iterator10 = _createForOfIteratorHelper$k(readAdditionalItemRefs(item));
21493
+ _iterator10 = _createForOfIteratorHelper$l(readAdditionalItemRefs(item));
21478
21494
  try {
21479
21495
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
21480
21496
  ref = _step10.value;
@@ -21611,16 +21627,16 @@ var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
21611
21627
  break;
21612
21628
  }
21613
21629
  toLoad = new Set();
21614
- _iterator3 = _createForOfIteratorHelper$k(catalogData.loadedDecisions);
21630
+ _iterator3 = _createForOfIteratorHelper$l(catalogData.loadedDecisions);
21615
21631
  try {
21616
21632
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
21617
21633
  decision = _step3.value;
21618
- _iterator4 = _createForOfIteratorHelper$k((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
21634
+ _iterator4 = _createForOfIteratorHelper$l((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
21619
21635
  try {
21620
21636
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
21621
21637
  combination = _step4.value;
21622
21638
  refs = [].concat(_toConsumableArray__default["default"]((_combination$projectA = (_combination$projectA2 = combination.projectActions) === null || _combination$projectA2 === void 0 ? void 0 : _combination$projectA2.disableDecision) !== null && _combination$projectA !== void 0 ? _combination$projectA : []), _toConsumableArray__default["default"]((_combination$projectA3 = (_combination$projectA4 = combination.projectActions) === null || _combination$projectA4 === void 0 ? void 0 : _combination$projectA4.enableDecision) !== null && _combination$projectA3 !== void 0 ? _combination$projectA3 : []));
21623
- _iterator5 = _createForOfIteratorHelper$k(refs);
21639
+ _iterator5 = _createForOfIteratorHelper$l(refs);
21624
21640
  try {
21625
21641
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
21626
21642
  ref = _step5.value;
@@ -22044,9 +22060,9 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
22044
22060
  return opv;
22045
22061
  }
22046
22062
 
22047
- function _createForOfIteratorHelper$j(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$j(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22048
- function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$j(r, a) : void 0; } }
22049
- function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22063
+ function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22064
+ function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$k(r, a) : void 0; } }
22065
+ function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22050
22066
  function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22051
22067
  function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22052
22068
  var LOG$k = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
@@ -22141,6 +22157,7 @@ function getCatalogArticle(article, catalogData) {
22141
22157
  guid: (_article$typeKey = article.typeKey) === null || _article$typeKey === void 0 ? void 0 : _article$typeKey.toString(),
22142
22158
  articleEAN: article.eanNumber,
22143
22159
  typeNr: article.eanNumber,
22160
+ salesNumber: article.salesNumber,
22144
22161
  retailArticleNr: (_article$salesNumber = article.salesNumber) !== null && _article$salesNumber !== void 0 ? _article$salesNumber : catalogData.retailArticleNr,
22145
22162
  configArticleCodex: article.edpNumber,
22146
22163
  decisions: [],
@@ -22269,7 +22286,7 @@ function getAdditionalItemTypeNos(jsonItems, catalogData) {
22269
22286
  var typeNos = new Set();
22270
22287
  if (catalogData.ignoreArticleRelations) return typeNos;
22271
22288
  for (var i = 0; i < jsonItems.length; i++) {
22272
- var _iterator = _createForOfIteratorHelper$j(readAdditionalItemRefs(jsonItems[i])),
22289
+ var _iterator = _createForOfIteratorHelper$k(readAdditionalItemRefs(jsonItems[i])),
22273
22290
  _step;
22274
22291
  try {
22275
22292
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22388,9 +22405,9 @@ function initCatalogPlannerArticleView(catalogData, catPlanArticle, catalogProps
22388
22405
 
22389
22406
  function ownKeys$o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22390
22407
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22391
- function _createForOfIteratorHelper$i(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$i(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22392
- function _unsupportedIterableToArray$i(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$i(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$i(r, a) : void 0; } }
22393
- function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22408
+ function _createForOfIteratorHelper$j(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$j(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22409
+ function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$j(r, a) : void 0; } }
22410
+ function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22394
22411
 
22395
22412
  /*
22396
22413
  Diese KLasse enthält Inforamtion zu einem Catalog (C)
@@ -22763,7 +22780,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22763
22780
  value: function getDecisionsByNo() {
22764
22781
  var decisionNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
22765
22782
  var decisions = [];
22766
- var _iterator = _createForOfIteratorHelper$i(decisionNos),
22783
+ var _iterator = _createForOfIteratorHelper$j(decisionNos),
22767
22784
  _step;
22768
22785
  try {
22769
22786
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22807,7 +22824,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22807
22824
  value: function getPricefeaturegroups() {
22808
22825
  var prfgNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
22809
22826
  var groups = [];
22810
- var _iterator2 = _createForOfIteratorHelper$i(prfgNos),
22827
+ var _iterator2 = _createForOfIteratorHelper$j(prfgNos),
22811
22828
  _step2;
22812
22829
  try {
22813
22830
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -23249,6 +23266,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
23249
23266
  get: function get() {
23250
23267
  return this.catalogProps.IDM3DCatCodex;
23251
23268
  }
23269
+ }, {
23270
+ key: "IDM3DTranslation",
23271
+ get: function get() {
23272
+ return this.catalogProps.IDM3DTranslation;
23273
+ }
23252
23274
  }, {
23253
23275
  key: "doCheckConstructionWarnings",
23254
23276
  get: function get() {
@@ -23773,6 +23795,14 @@ var DivaCatalogData = /*#__PURE__*/function () {
23773
23795
  case 'IDM3D_CAT_CODEX':
23774
23796
  _this2.catalogProps.IDM3DCatCodex = item.Value;
23775
23797
  break;
23798
+ case 'IDM3D_TRANSLATION':
23799
+ try {
23800
+ var translation = JSON.parse(item.Value);
23801
+ if (translation !== null && translation !== void 0 && translation.features && _typeof__default["default"](translation.features) === 'object') _this2.catalogProps.IDM3DTranslation = translation;else LOG$j.warn('Invalid IDM3D_TRANSLATION meta tag - expected a JSON object with a features map');
23802
+ } catch (e) {
23803
+ LOG$j.warn('Invalid IDM3D_TRANSLATION meta tag - expected a JSON object with a features map', e);
23804
+ }
23805
+ break;
23776
23806
  case 'DIVA3D_PLANER_DIGITS':
23777
23807
  _this2.catalogProps.divaPlanerDigits = Number(item.Value);
23778
23808
  break;
@@ -24664,9 +24694,9 @@ var catalogHandlerInstance = new DivaCatalogHandler();
24664
24694
 
24665
24695
  function ownKeys$m(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24666
24696
  function _objectSpread$m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$m(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24667
- function _createForOfIteratorHelper$h(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$h(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
24668
- function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$h(r, a) : void 0; } }
24669
- function _arrayLikeToArray$h(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
24697
+ function _createForOfIteratorHelper$i(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$i(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
24698
+ function _unsupportedIterableToArray$i(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$i(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$i(r, a) : void 0; } }
24699
+ function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
24670
24700
  var ArticleOptionStateData = /*#__PURE__*/function () {
24671
24701
  function ArticleOptionStateData(option, getIsConfigSingle, defaultOPV, useIsOptionDefinedWarning) {
24672
24702
  _classCallCheck__default["default"](this, ArticleOptionStateData);
@@ -24759,7 +24789,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
24759
24789
  return opv.codex;
24760
24790
  })) !== null && _this$articleOptionSt !== void 0 ? _this$articleOptionSt : [];
24761
24791
  var option = this.option;
24762
- var _iterator = _createForOfIteratorHelper$h(option.articleOptionValues),
24792
+ var _iterator = _createForOfIteratorHelper$i(option.articleOptionValues),
24763
24793
  _step;
24764
24794
  try {
24765
24795
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -24769,7 +24799,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
24769
24799
  if (value.isOPVG) {
24770
24800
  var _opg$articleOptionVal;
24771
24801
  var opg = value;
24772
- var _iterator2 = _createForOfIteratorHelper$h((_opg$articleOptionVal = opg.articleOptionValues) !== null && _opg$articleOptionVal !== void 0 ? _opg$articleOptionVal : new Map()),
24802
+ var _iterator2 = _createForOfIteratorHelper$i((_opg$articleOptionVal = opg.articleOptionValues) !== null && _opg$articleOptionVal !== void 0 ? _opg$articleOptionVal : new Map()),
24773
24803
  _step2;
24774
24804
  try {
24775
24805
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25281,7 +25311,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25281
25311
  get: function get() {
25282
25312
  if (!this.option.onlyVisibleIfNotDocked) return undefined;
25283
25313
  var ret = {};
25284
- var _iterator3 = _createForOfIteratorHelper$h(this.visibleOptionValues.keys()),
25314
+ var _iterator3 = _createForOfIteratorHelper$i(this.visibleOptionValues.keys()),
25285
25315
  _step3;
25286
25316
  try {
25287
25317
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -25458,9 +25488,9 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25458
25488
 
25459
25489
  function ownKeys$l(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25460
25490
  function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25461
- function _createForOfIteratorHelper$g(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$g(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25462
- function _unsupportedIterableToArray$g(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$g(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$g(r, a) : void 0; } }
25463
- function _arrayLikeToArray$g(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25491
+ function _createForOfIteratorHelper$h(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$h(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25492
+ function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$h(r, a) : void 0; } }
25493
+ function _arrayLikeToArray$h(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25464
25494
  var LOG$h = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
25465
25495
  var DivaEngine = /*#__PURE__*/function () {
25466
25496
  function DivaEngine(article) {
@@ -25480,7 +25510,7 @@ var DivaEngine = /*#__PURE__*/function () {
25480
25510
  var maxPriceOfGroup = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
25481
25511
  var maxPriceOfGroupCodex = ['', '', '', '', '', '', '', '', '', ''];
25482
25512
  var previousVaraintValues = this.article.VariantValues;
25483
- var _iterator = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
25513
+ var _iterator = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
25484
25514
  _step;
25485
25515
  try {
25486
25516
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25499,7 +25529,7 @@ var DivaEngine = /*#__PURE__*/function () {
25499
25529
  var visibleOptionValues = new Map();
25500
25530
  if (myOpt.hasOPG) {
25501
25531
  var myOPGs = myOpt.articleOptionValues;
25502
- var _iterator2 = _createForOfIteratorHelper$g(myOPGs),
25532
+ var _iterator2 = _createForOfIteratorHelper$h(myOPGs),
25503
25533
  _step2;
25504
25534
  try {
25505
25535
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25509,7 +25539,7 @@ var DivaEngine = /*#__PURE__*/function () {
25509
25539
  var myOPVsInOPG = value.articleOptionValues;
25510
25540
  if (this.checkItemVisibility(value, ops) && myOPVsInOPG) {
25511
25541
  visibleOptionValues.set(value.codex, value);
25512
- var _iterator3 = _createForOfIteratorHelper$g(myOPVsInOPG),
25542
+ var _iterator3 = _createForOfIteratorHelper$h(myOPVsInOPG),
25513
25543
  _step3;
25514
25544
  try {
25515
25545
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -25543,7 +25573,7 @@ var DivaEngine = /*#__PURE__*/function () {
25543
25573
  } else {
25544
25574
  var myOPVs = myOpt.articleOptionValues;
25545
25575
  if (myOPVs) {
25546
- var _iterator4 = _createForOfIteratorHelper$g(myOPVs),
25576
+ var _iterator4 = _createForOfIteratorHelper$h(myOPVs),
25547
25577
  _step4;
25548
25578
  try {
25549
25579
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -25968,7 +25998,7 @@ var DivaEngine = /*#__PURE__*/function () {
25968
25998
  myDecisions[_i].disableHistory = [];
25969
25999
  myDecisions[_i].activeCombination = undefined;
25970
26000
  }
25971
- var _iterator5 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
26001
+ var _iterator5 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
25972
26002
  _step5;
25973
26003
  try {
25974
26004
  var _loop2 = function _loop2() {
@@ -26129,7 +26159,7 @@ var DivaEngine = /*#__PURE__*/function () {
26129
26159
  key: "updateIDMSpecificFeatures",
26130
26160
  value: function updateIDMSpecificFeatures() {
26131
26161
  //updaten idm planner specific options
26132
- var _iterator6 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
26162
+ var _iterator6 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
26133
26163
  _step6;
26134
26164
  try {
26135
26165
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -26390,7 +26420,7 @@ var DivaEngine = /*#__PURE__*/function () {
26390
26420
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
26391
26421
  return v.slice(1);
26392
26422
  })); // remove the '!' from the value
26393
- var _iterator7 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
26423
+ var _iterator7 = _createForOfIteratorHelper$h(ops.visibleOptionValues),
26394
26424
  _step7;
26395
26425
  try {
26396
26426
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -26532,7 +26562,7 @@ var DivaEngine = /*#__PURE__*/function () {
26532
26562
  }, {
26533
26563
  key: "evalShowOnlyWhenHasPrice",
26534
26564
  value: function evalShowOnlyWhenHasPrice() {
26535
- var _iterator8 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
26565
+ var _iterator8 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
26536
26566
  _step8;
26537
26567
  try {
26538
26568
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -27024,7 +27054,7 @@ var DivaEngine = /*#__PURE__*/function () {
27024
27054
  }
27025
27055
 
27026
27056
  //mengen und größenabhängige Preisberechungn.
27027
- var _iterator9 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27057
+ var _iterator9 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27028
27058
  _step9;
27029
27059
  try {
27030
27060
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -27116,7 +27146,7 @@ var DivaEngine = /*#__PURE__*/function () {
27116
27146
  } finally {
27117
27147
  _iterator9.f();
27118
27148
  }
27119
- var _iterator10 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27149
+ var _iterator10 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27120
27150
  _step10;
27121
27151
  try {
27122
27152
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -27154,7 +27184,7 @@ var DivaEngine = /*#__PURE__*/function () {
27154
27184
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
27155
27185
  });
27156
27186
  if (!priceRef) {
27157
- var _iterator11 = _createForOfIteratorHelper$g(_this6.article.articleOptionStates.values()),
27187
+ var _iterator11 = _createForOfIteratorHelper$h(_this6.article.articleOptionStates.values()),
27158
27188
  _step11;
27159
27189
  try {
27160
27190
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
@@ -27192,7 +27222,7 @@ var DivaEngine = /*#__PURE__*/function () {
27192
27222
  myArticleBasePrice += priceRef.Price ? DivaUtils__default["default"].decimalAdjust('round', (_priceRef$calcPrice = priceRef.calcPrice) !== null && _priceRef$calcPrice !== void 0 ? _priceRef$calcPrice : priceRef.Price, digits) : 0.0;
27193
27223
  }
27194
27224
  var articleUsedCalcPrice = myArticleBasePrice;
27195
- var _iterator12 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27225
+ var _iterator12 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27196
27226
  _step12;
27197
27227
  try {
27198
27228
  for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
@@ -27207,7 +27237,7 @@ var DivaEngine = /*#__PURE__*/function () {
27207
27237
  } finally {
27208
27238
  _iterator12.f();
27209
27239
  }
27210
- var _iterator13 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27240
+ var _iterator13 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27211
27241
  _step13;
27212
27242
  try {
27213
27243
  for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
@@ -27363,7 +27393,7 @@ var DivaEngine = /*#__PURE__*/function () {
27363
27393
  if (a[i].trim() != '') {
27364
27394
  var searchOpt = 'OPT' + a[i].trim();
27365
27395
  //Optionsbaum des Artikels durchsuchen
27366
- var _iterator14 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27396
+ var _iterator14 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27367
27397
  _step14;
27368
27398
  try {
27369
27399
  for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
@@ -27424,12 +27454,12 @@ var DivaEngine = /*#__PURE__*/function () {
27424
27454
  }
27425
27455
 
27426
27456
  // this functions updates the images of OPVs that depend on rules
27427
- var _iterator15 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27457
+ var _iterator15 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27428
27458
  _step15;
27429
27459
  try {
27430
27460
  for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
27431
27461
  var ops = _step15.value;
27432
- var _iterator16 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
27462
+ var _iterator16 = _createForOfIteratorHelper$h(ops.visibleOptionValues),
27433
27463
  _step16;
27434
27464
  try {
27435
27465
  for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
@@ -27561,9 +27591,9 @@ var DivaEngine = /*#__PURE__*/function () {
27561
27591
 
27562
27592
  function ownKeys$k(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27563
27593
  function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27564
- function _createForOfIteratorHelper$f(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$f(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27565
- function _unsupportedIterableToArray$f(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$f(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$f(r, a) : void 0; } }
27566
- function _arrayLikeToArray$f(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27594
+ function _createForOfIteratorHelper$g(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$g(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27595
+ function _unsupportedIterableToArray$g(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$g(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$g(r, a) : void 0; } }
27596
+ function _arrayLikeToArray$g(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27567
27597
  var LOG$g = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
27568
27598
  var IDMEngine = /*#__PURE__*/function () {
27569
27599
  function IDMEngine(article) {
@@ -27604,7 +27634,7 @@ var IDMEngine = /*#__PURE__*/function () {
27604
27634
  var unsortedDecisons = this.article.initDecisions ? ownDecisions.concat(this.article.initDecisions) : _toConsumableArray__default["default"](ownDecisions);
27605
27635
  //a decision only an ENABLE/DISABLE_DECISION action points at takes part but starts disabled, so it applies
27606
27636
  //only while that action matches - as a copy, so neither flag nor prio leaks to another article
27607
- var _iterator = _createForOfIteratorHelper$f(this.getDecisionsReferencedByActions(unsortedDecisons)),
27637
+ var _iterator = _createForOfIteratorHelper$g(this.getDecisionsReferencedByActions(unsortedDecisons)),
27608
27638
  _step;
27609
27639
  try {
27610
27640
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -27631,14 +27661,14 @@ var IDMEngine = /*#__PURE__*/function () {
27631
27661
  while (toScan.length) {
27632
27662
  var _decision$optionCombi;
27633
27663
  var decision = toScan.shift();
27634
- var _iterator2 = _createForOfIteratorHelper$f((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []),
27664
+ var _iterator2 = _createForOfIteratorHelper$g((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []),
27635
27665
  _step2;
27636
27666
  try {
27637
27667
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
27638
27668
  var _combination$projectA, _combination$projectA2, _combination$projectA3, _combination$projectA4;
27639
27669
  var combination = _step2.value;
27640
27670
  var refs = [].concat(_toConsumableArray__default["default"]((_combination$projectA = (_combination$projectA2 = combination.projectActions) === null || _combination$projectA2 === void 0 ? void 0 : _combination$projectA2.disableDecision) !== null && _combination$projectA !== void 0 ? _combination$projectA : []), _toConsumableArray__default["default"]((_combination$projectA3 = (_combination$projectA4 = combination.projectActions) === null || _combination$projectA4 === void 0 ? void 0 : _combination$projectA4.enableDecision) !== null && _combination$projectA3 !== void 0 ? _combination$projectA3 : []));
27641
- var _iterator3 = _createForOfIteratorHelper$f(refs),
27671
+ var _iterator3 = _createForOfIteratorHelper$g(refs),
27642
27672
  _step3;
27643
27673
  try {
27644
27674
  var _loop = function _loop() {
@@ -27691,7 +27721,7 @@ var IDMEngine = /*#__PURE__*/function () {
27691
27721
  prices: []
27692
27722
  });
27693
27723
  }
27694
- var _iterator4 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
27724
+ var _iterator4 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27695
27725
  _step4;
27696
27726
  try {
27697
27727
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -27714,7 +27744,7 @@ var IDMEngine = /*#__PURE__*/function () {
27714
27744
  decisions[i].disableHistory = [];
27715
27745
  decisions[i].activeCombination = undefined;
27716
27746
  }
27717
- var _iterator5 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
27747
+ var _iterator5 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27718
27748
  _step5;
27719
27749
  try {
27720
27750
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -27774,7 +27804,7 @@ var IDMEngine = /*#__PURE__*/function () {
27774
27804
  key: "decisionStateSnapshot",
27775
27805
  value: function decisionStateSnapshot(decisions) {
27776
27806
  var ret = {};
27777
- var _iterator6 = _createForOfIteratorHelper$f(decisions),
27807
+ var _iterator6 = _createForOfIteratorHelper$g(decisions),
27778
27808
  _step6;
27779
27809
  try {
27780
27810
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -27866,7 +27896,7 @@ var IDMEngine = /*#__PURE__*/function () {
27866
27896
  var decisionsToEval = decisions.filter(function (decision) {
27867
27897
  return relevantDecisions.includes(decision) || controllingDecisions.includes(decision);
27868
27898
  });
27869
- var _iterator7 = _createForOfIteratorHelper$f(decisionsToEval),
27899
+ var _iterator7 = _createForOfIteratorHelper$g(decisionsToEval),
27870
27900
  _step7;
27871
27901
  try {
27872
27902
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -27880,13 +27910,13 @@ var IDMEngine = /*#__PURE__*/function () {
27880
27910
  } finally {
27881
27911
  _iterator7.f();
27882
27912
  }
27883
- var _iterator8 = _createForOfIteratorHelper$f(relevantDecisions),
27913
+ var _iterator8 = _createForOfIteratorHelper$g(relevantDecisions),
27884
27914
  _step8;
27885
27915
  try {
27886
27916
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
27887
27917
  var _decision$featureRefs2;
27888
27918
  var _decision = _step8.value;
27889
- var _iterator10 = _createForOfIteratorHelper$f((_decision$featureRefs2 = _decision.featureRefs) !== null && _decision$featureRefs2 !== void 0 ? _decision$featureRefs2 : []),
27919
+ var _iterator10 = _createForOfIteratorHelper$g((_decision$featureRefs2 = _decision.featureRefs) !== null && _decision$featureRefs2 !== void 0 ? _decision$featureRefs2 : []),
27890
27920
  _step10;
27891
27921
  try {
27892
27922
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -27905,7 +27935,7 @@ var IDMEngine = /*#__PURE__*/function () {
27905
27935
  } finally {
27906
27936
  _iterator8.f();
27907
27937
  }
27908
- var _iterator9 = _createForOfIteratorHelper$f(decisionsToEval),
27938
+ var _iterator9 = _createForOfIteratorHelper$g(decisionsToEval),
27909
27939
  _step9;
27910
27940
  try {
27911
27941
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -27955,7 +27985,7 @@ var IDMEngine = /*#__PURE__*/function () {
27955
27985
  var _decision$featureRefs3;
27956
27986
  return decision.decisionType != 2 && ((_decision$featureRefs3 = decision.featureRefs) === null || _decision$featureRefs3 === void 0 ? void 0 : _decision$featureRefs3.includes(targetFeatureNo));
27957
27987
  });
27958
- var _iterator11 = _createForOfIteratorHelper$f(influencing),
27988
+ var _iterator11 = _createForOfIteratorHelper$g(influencing),
27959
27989
  _step11;
27960
27990
  try {
27961
27991
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
@@ -27996,7 +28026,7 @@ var IDMEngine = /*#__PURE__*/function () {
27996
28026
 
27997
28027
  // Pool per decision = UNION of matching rows' target options; successive decisions INTERSECT (mirrors evalType1Decision).
27998
28028
  var pool = undefined;
27999
- var _iterator12 = _createForOfIteratorHelper$f(influencing),
28029
+ var _iterator12 = _createForOfIteratorHelper$g(influencing),
28000
28030
  _step12;
28001
28031
  try {
28002
28032
  for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
@@ -28004,7 +28034,7 @@ var IDMEngine = /*#__PURE__*/function () {
28004
28034
  var _decision3 = _step12.value;
28005
28035
  var decisionPool = new Set();
28006
28036
  var anyRowMatched = false;
28007
- var _iterator14 = _createForOfIteratorHelper$f((_decision3$optionComb = _decision3.optionCombinations) !== null && _decision3$optionComb !== void 0 ? _decision3$optionComb : []),
28037
+ var _iterator14 = _createForOfIteratorHelper$g((_decision3$optionComb = _decision3.optionCombinations) !== null && _decision3$optionComb !== void 0 ? _decision3$optionComb : []),
28008
28038
  _step14;
28009
28039
  try {
28010
28040
  for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
@@ -28023,7 +28053,7 @@ var IDMEngine = /*#__PURE__*/function () {
28023
28053
  // the static pool cannot express that, so leave this feature to the reconfiguration fallback.
28024
28054
  if (!((_targetRef$options = targetRef.options) !== null && _targetRef$options !== void 0 && _targetRef$options.length)) return undefined;
28025
28055
  anyRowMatched = true;
28026
- var _iterator15 = _createForOfIteratorHelper$f(targetRef.options),
28056
+ var _iterator15 = _createForOfIteratorHelper$g(targetRef.options),
28027
28057
  _step15;
28028
28058
  try {
28029
28059
  for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
@@ -28061,7 +28091,7 @@ var IDMEngine = /*#__PURE__*/function () {
28061
28091
  return !allValues.has(key);
28062
28092
  })) return undefined;
28063
28093
  var result = new Map();
28064
- var _iterator13 = _createForOfIteratorHelper$f(allValues),
28094
+ var _iterator13 = _createForOfIteratorHelper$g(allValues),
28065
28095
  _step13;
28066
28096
  try {
28067
28097
  for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
@@ -28370,7 +28400,7 @@ var IDMEngine = /*#__PURE__*/function () {
28370
28400
  key: "evalDisableDecision",
28371
28401
  value: function evalDisableDecision(actions, decision, allDecisions, disable) {
28372
28402
  var verb = disable ? 'disabled' : 'enabled';
28373
- var _iterator16 = _createForOfIteratorHelper$f(actions),
28403
+ var _iterator16 = _createForOfIteratorHelper$g(actions),
28374
28404
  _step16;
28375
28405
  try {
28376
28406
  var _loop6 = function _loop6() {
@@ -28398,7 +28428,7 @@ var IDMEngine = /*#__PURE__*/function () {
28398
28428
  }, {
28399
28429
  key: "evalSetFeatureVisible",
28400
28430
  value: function evalSetFeatureVisible(actions, hasSetFeatureInvisible, invisible) {
28401
- var _iterator17 = _createForOfIteratorHelper$f(actions),
28431
+ var _iterator17 = _createForOfIteratorHelper$g(actions),
28402
28432
  _step17;
28403
28433
  try {
28404
28434
  for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
@@ -28417,7 +28447,7 @@ var IDMEngine = /*#__PURE__*/function () {
28417
28447
  }, {
28418
28448
  key: "evalSetFeatureDefault",
28419
28449
  value: function evalSetFeatureDefault(actions, decision, isNull) {
28420
- var _iterator18 = _createForOfIteratorHelper$f(actions),
28450
+ var _iterator18 = _createForOfIteratorHelper$g(actions),
28421
28451
  _step18;
28422
28452
  try {
28423
28453
  for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
@@ -28454,7 +28484,7 @@ var IDMEngine = /*#__PURE__*/function () {
28454
28484
  }, {
28455
28485
  key: "evalSetFeature",
28456
28486
  value: function evalSetFeature(actions, decision, isFixed) {
28457
- var _iterator19 = _createForOfIteratorHelper$f(actions),
28487
+ var _iterator19 = _createForOfIteratorHelper$g(actions),
28458
28488
  _step19;
28459
28489
  try {
28460
28490
  for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
@@ -29138,20 +29168,20 @@ var IDMEngine = /*#__PURE__*/function () {
29138
29168
  var cached = this.featureDefaultIndex;
29139
29169
  if (cached && cached.sources[0] === sources[0] && cached.sources[1] === sources[1]) return cached.byFeature;
29140
29170
  var byFeature = new Map();
29141
- var _iterator20 = _createForOfIteratorHelper$f(this.decisions),
29171
+ var _iterator20 = _createForOfIteratorHelper$g(this.decisions),
29142
29172
  _step20;
29143
29173
  try {
29144
29174
  for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
29145
29175
  var _decision$optionCombi6;
29146
29176
  var decision = _step20.value;
29147
29177
  if (decision.decisionType !== 2) continue;
29148
- var _iterator21 = _createForOfIteratorHelper$f((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
29178
+ var _iterator21 = _createForOfIteratorHelper$g((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
29149
29179
  _step21;
29150
29180
  try {
29151
29181
  for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
29152
29182
  var _combination$projectA10, _combination$projectA11;
29153
29183
  var combination = _step21.value;
29154
- var _iterator22 = _createForOfIteratorHelper$f((_combination$projectA10 = (_combination$projectA11 = combination.projectActions) === null || _combination$projectA11 === void 0 ? void 0 : _combination$projectA11.setFeatureDefault) !== null && _combination$projectA10 !== void 0 ? _combination$projectA10 : []),
29184
+ var _iterator22 = _createForOfIteratorHelper$g((_combination$projectA10 = (_combination$projectA11 = combination.projectActions) === null || _combination$projectA11 === void 0 ? void 0 : _combination$projectA11.setFeatureDefault) !== null && _combination$projectA10 !== void 0 ? _combination$projectA10 : []),
29155
29185
  _step22;
29156
29186
  try {
29157
29187
  for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
@@ -29193,7 +29223,7 @@ var IDMEngine = /*#__PURE__*/function () {
29193
29223
  value: function setFeatureDefaultKey(featureNo) {
29194
29224
  var decisions = this.type2DefaultsByFeature().get(featureNo);
29195
29225
  if (!decisions) return undefined;
29196
- var _iterator23 = _createForOfIteratorHelper$f(decisions),
29226
+ var _iterator23 = _createForOfIteratorHelper$g(decisions),
29197
29227
  _step23;
29198
29228
  try {
29199
29229
  for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
@@ -29234,7 +29264,7 @@ var IDMEngine = /*#__PURE__*/function () {
29234
29264
  key: "updateIDMSpecificFeatures",
29235
29265
  value: function updateIDMSpecificFeatures() {
29236
29266
  //updaten idm planner specific options
29237
- var _iterator24 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
29267
+ var _iterator24 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
29238
29268
  _step24;
29239
29269
  try {
29240
29270
  for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
@@ -29350,7 +29380,7 @@ var IDMEngine = /*#__PURE__*/function () {
29350
29380
  key: "getConditionValuesOfCombination",
29351
29381
  value: function getConditionValuesOfCombination(combination, featureNo, optionKey) {
29352
29382
  var variantValues = {};
29353
- var _iterator25 = _createForOfIteratorHelper$f(combination.projectOptionsSetRefs),
29383
+ var _iterator25 = _createForOfIteratorHelper$g(combination.projectOptionsSetRefs),
29354
29384
  _step25;
29355
29385
  try {
29356
29386
  for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
@@ -29391,13 +29421,13 @@ var IDMEngine = /*#__PURE__*/function () {
29391
29421
  })) return false;
29392
29422
  return _this8.decisionRemovesOption(restriction, featureNo, optionKey);
29393
29423
  };
29394
- var _iterator26 = _createForOfIteratorHelper$f(articleDecisions),
29424
+ var _iterator26 = _createForOfIteratorHelper$g(articleDecisions),
29395
29425
  _step26;
29396
29426
  try {
29397
29427
  for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
29398
29428
  var gate = _step26.value;
29399
29429
  if (gate.decisionType != 2) continue;
29400
- var _iterator27 = _createForOfIteratorHelper$f(gate.optionCombinations),
29430
+ var _iterator27 = _createForOfIteratorHelper$g(gate.optionCombinations),
29401
29431
  _step27;
29402
29432
  try {
29403
29433
  for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
@@ -29443,7 +29473,7 @@ var IDMEngine = /*#__PURE__*/function () {
29443
29473
  key: "getValuesNotMatchingCombination",
29444
29474
  value: function getValuesNotMatchingCombination(combination) {
29445
29475
  var variantValuesArr = [];
29446
- var _iterator28 = _createForOfIteratorHelper$f(combination.projectOptionsSetRefs),
29476
+ var _iterator28 = _createForOfIteratorHelper$g(combination.projectOptionsSetRefs),
29447
29477
  _step28;
29448
29478
  try {
29449
29479
  for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
@@ -29453,7 +29483,7 @@ var IDMEngine = /*#__PURE__*/function () {
29453
29483
  var conditionFeatureNo = optionSetRef.featureNo.toString();
29454
29484
  var ops = this.article.getArticleOptionState(conditionFeatureNo);
29455
29485
  if (!ops) continue;
29456
- var _iterator29 = _createForOfIteratorHelper$f(ops.visibleOPVKeys),
29486
+ var _iterator29 = _createForOfIteratorHelper$g(ops.visibleOPVKeys),
29457
29487
  _step29;
29458
29488
  try {
29459
29489
  for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
@@ -29564,12 +29594,12 @@ var IDMEngine = /*#__PURE__*/function () {
29564
29594
  }
29565
29595
 
29566
29596
  // this functions updates the images of OPVs that depend on rules
29567
- var _iterator30 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
29597
+ var _iterator30 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
29568
29598
  _step30;
29569
29599
  try {
29570
29600
  for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
29571
29601
  var ops = _step30.value;
29572
- var _iterator31 = _createForOfIteratorHelper$f(ops.visibleOptionValues),
29602
+ var _iterator31 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
29573
29603
  _step31;
29574
29604
  try {
29575
29605
  for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
@@ -29720,6 +29750,154 @@ var IDMEngine = /*#__PURE__*/function () {
29720
29750
  }]);
29721
29751
  }();
29722
29752
 
29753
+ function _createForOfIteratorHelper$f(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$f(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
29754
+ function _unsupportedIterableToArray$f(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$f(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$f(r, a) : void 0; } }
29755
+ function _arrayLikeToArray$f(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
29756
+ /**
29757
+ * Feature property naming the Diomex properties a feature feeds, e.g. `13,15/L2`. `<group>@@<property>` scopes a
29758
+ * property to one partlist group of the set, e.g. `PrRef_Füsse@@13` for the wood of the feet only.
29759
+ */
29760
+ var IDM3D_TARGET = 'IDM3D_TARGET';
29761
+ var GROUP_SEPARATOR = '@@';
29762
+ /**
29763
+ * Option value property: either the value sent to every target of the feature (`96`), explicit
29764
+ * `<target>=<value>` pairs separated by `;` that replace the feature's targets for this value (`65=7428.0XXXXXXXXXXXX`),
29765
+ * or `SKIP` for a value the supplier's 3D catalog does not know (nothing is sent instead of our own key).
29766
+ */
29767
+ var IDM3D_VALUE = 'IDM3D_VALUE';
29768
+ var IDM3D_SKIP = 'SKIP';
29769
+
29770
+ /** One selected value of the article tree together with its raw feature and value properties. */
29771
+
29772
+ // the parsers also accept the codex prefixed with its catalog codex (`<catalogCodex>__IDM3D_TARGET`)
29773
+ var findProperty = function findProperty(properties, codex) {
29774
+ var _properties$find;
29775
+ return (_properties$find = properties.find(function (p) {
29776
+ return p.Codex === codex || p.Codex.endsWith('__' + codex);
29777
+ })) === null || _properties$find === void 0 ? void 0 : _properties$find.Value;
29778
+ };
29779
+ var normalizeTarget = function normalizeTarget(target) {
29780
+ return target.includes('/L') ? target : target + '/L1';
29781
+ };
29782
+
29783
+ /** `PrRef_Füsse@@13` -> [`PrRef_Füsse`, `13`]; a target without group -> [undefined, target]. */
29784
+ var splitGroup = function splitGroup(target) {
29785
+ var at = target.indexOf(GROUP_SEPARATOR);
29786
+ return at === -1 ? [undefined, target] : [target.slice(0, at), target.slice(at + GROUP_SEPARATOR.length)];
29787
+ };
29788
+ var parsePairs = function parsePairs(pairs) {
29789
+ return pairs.split(';').filter(function (pair) {
29790
+ return pair.includes('=');
29791
+ }).map(function (pair) {
29792
+ var _pair$split = pair.split('='),
29793
+ _pair$split2 = _slicedToArray__default["default"](_pair$split, 2),
29794
+ target = _pair$split2[0],
29795
+ value = _pair$split2[1];
29796
+ return {
29797
+ target: target.trim(),
29798
+ value: value.trim()
29799
+ };
29800
+ });
29801
+ };
29802
+
29803
+ /**
29804
+ * Translates the selected values of an article tree into the flat configuration the supplier's IDM3D engine
29805
+ * expects: only values with a target are sent and every supplier feature at most once (Unity adds them to a
29806
+ * dictionary). Visible values win over hidden ones; within each, explicit `<target>=<value>` pairs of an option value
29807
+ * win over the generic targets of a feature; otherwise the first source wins, so pass the preferred values first.
29808
+ */
29809
+ function translateToIDM3DConfig(sources, model, translation) {
29810
+ var _translation$setChild, _translation$setChild2, _model$split$;
29811
+ var setChildren = (_translation$setChild = (_translation$setChild2 = translation.setChildren) === null || _translation$setChild2 === void 0 ? void 0 : _translation$setChild2[(_model$split$ = model === null || model === void 0 ? void 0 : model.split('|')[1]) !== null && _model$split$ !== void 0 ? _model$split$ : '']) !== null && _translation$setChild !== void 0 ? _translation$setChild : {};
29812
+ // [visible explicit, visible generic, hidden explicit, hidden generic]
29813
+ var tiers = [[], [], [], []];
29814
+ var _iterator = _createForOfIteratorHelper$f(sources),
29815
+ _step;
29816
+ try {
29817
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
29818
+ var source = _step.value;
29819
+ var tier = source.hidden ? 2 : 0;
29820
+ var override = findProperty(source.valueProperties, IDM3D_VALUE);
29821
+ if (override === IDM3D_SKIP) continue;
29822
+ if (override !== null && override !== void 0 && override.includes('=')) {
29823
+ var _tiers$tier;
29824
+ (_tiers$tier = tiers[tier]).push.apply(_tiers$tier, _toConsumableArray__default["default"](parsePairs(override)));
29825
+ continue;
29826
+ }
29827
+ var targets = findProperty(source.featureProperties, IDM3D_TARGET);
29828
+ if (!targets) continue;
29829
+ var _iterator3 = _createForOfIteratorHelper$f(targets.split(',')),
29830
+ _step3;
29831
+ try {
29832
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
29833
+ var target = _step3.value;
29834
+ tiers[tier + 1].push({
29835
+ target: target.trim(),
29836
+ value: override !== null && override !== void 0 ? override : source.value
29837
+ });
29838
+ }
29839
+ } catch (err) {
29840
+ _iterator3.e(err);
29841
+ } finally {
29842
+ _iterator3.f();
29843
+ }
29844
+ }
29845
+ } catch (err) {
29846
+ _iterator.e(err);
29847
+ } finally {
29848
+ _iterator.f();
29849
+ }
29850
+ var config = new Map();
29851
+ var _iterator2 = _createForOfIteratorHelper$f(tiers.flat()),
29852
+ _step2;
29853
+ try {
29854
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
29855
+ var _setChildren$value, _translation$features;
29856
+ var _step2$value = _step2.value,
29857
+ _target = _step2$value.target,
29858
+ value = _step2$value.value;
29859
+ // the set's own key for this child replaces the plain child
29860
+ var setValue = (_setChildren$value = setChildren[value]) !== null && _setChildren$value !== void 0 ? _setChildren$value : value;
29861
+ var _splitGroup = splitGroup(_target),
29862
+ _splitGroup2 = _slicedToArray__default["default"](_splitGroup, 2),
29863
+ group = _splitGroup2[0],
29864
+ property = _splitGroup2[1];
29865
+ var _iterator4 = _createForOfIteratorHelper$f((_translation$features = translation.features[normalizeTarget(property)]) !== null && _translation$features !== void 0 ? _translation$features : []),
29866
+ _step4;
29867
+ try {
29868
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
29869
+ var featureNo = _step4.value;
29870
+ // the engine reads `<group>|<featureNo>` as its state `<group>@@<property>`, e.g. the wood of the feet only
29871
+ var key = group ? group + '|' + featureNo : featureNo;
29872
+ if (!config.has(key)) config.set(key, {
29873
+ featureNo: featureNo,
29874
+ value: setValue
29875
+ });
29876
+ }
29877
+ } catch (err) {
29878
+ _iterator4.e(err);
29879
+ } finally {
29880
+ _iterator4.f();
29881
+ }
29882
+ }
29883
+ } catch (err) {
29884
+ _iterator2.e(err);
29885
+ } finally {
29886
+ _iterator2.f();
29887
+ }
29888
+ return Array.from(config, function (_ref) {
29889
+ var _ref2 = _slicedToArray__default["default"](_ref, 2),
29890
+ key = _ref2[0],
29891
+ _ref2$ = _ref2[1],
29892
+ featureNo = _ref2$.featureNo,
29893
+ value = _ref2$.value;
29894
+ return {
29895
+ OPT: 'OPT' + key,
29896
+ OPV: 'OPV' + featureNo + '_' + value
29897
+ };
29898
+ });
29899
+ }
29900
+
29723
29901
  function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
29724
29902
  function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$e(r, a) : void 0; } }
29725
29903
  function _arrayLikeToArray$e(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -32702,7 +32880,7 @@ var DivaArticle = /*#__PURE__*/function () {
32702
32880
  break;
32703
32881
  }
32704
32882
  _context.next = 4;
32705
- return Promise.resolve().then(function () { return require('./ShelfPlanner-b30f8c39.js'); });
32883
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-87cecae1.js'); });
32706
32884
  case 4:
32707
32885
  _yield$import = _context.sent;
32708
32886
  ShelfPlanner = _yield$import["default"];
@@ -32809,7 +32987,7 @@ var DivaArticle = /*#__PURE__*/function () {
32809
32987
  }
32810
32988
  }, {
32811
32989
  key: "getValidValues",
32812
- value: function getValidValues(myValues, mergeOptionToSameOption, setConfigDoesOverWrite) {
32990
+ value: function getValidValues(myValues, mergeOptionToSameOption, setConfigDoesOverWrite, skipSetConfigOfUnchangedValues) {
32813
32991
  var validValues = {};
32814
32992
  if (mergeOptionToSameOption) {
32815
32993
  for (var i = 0; i < mergeOptionToSameOption.length; i++) {
@@ -32828,7 +33006,8 @@ var DivaArticle = /*#__PURE__*/function () {
32828
33006
  var ops = this.getArticleOptionState(_key);
32829
33007
  if (!ops) continue;
32830
33008
  var opv = ops === null || ops === void 0 ? void 0 : ops.visibleOptionValues.get(myValues[_key]);
32831
- if (opv) {
33009
+ // A value the option already holds was not chosen now (the price preview re-submits it) - a click would not fire its SET_CONFIG either.
33010
+ if (opv && !(skipSetConfigOfUnchangedValues && ops.valCodex === opv.codex)) {
32832
33011
  var value = opv.setConfig;
32833
33012
  if (value) {
32834
33013
  for (var _i3 = 0; _i3 < value.split(';').length; _i3++) {
@@ -32911,7 +33090,8 @@ var DivaArticle = /*#__PURE__*/function () {
32911
33090
  ArtNr: this.article.catalogArticle.articleCodex,
32912
33091
  CFG: []
32913
33092
  };
32914
- this.addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo);
33093
+ var idm3DTranslation = this.CatalogData.isIDM3DCat ? this.CatalogData.IDM3DTranslation : undefined;
33094
+ if (idm3DTranslation) ret.CFG = translateToIDM3DConfig(this.getIDM3DSources(alternateRenderInfo), this.model3DName, idm3DTranslation);else this.addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo);
32915
33095
  ret.CFG.push({
32916
33096
  OPT: 'QUANTITY',
32917
33097
  OPV: this.quantity.toString()
@@ -32944,22 +33124,67 @@ var DivaArticle = /*#__PURE__*/function () {
32944
33124
  config: ret
32945
33125
  };
32946
33126
  }
33127
+
33128
+ /** Whether this article or one of its partlist parents is excluded from the IDM3D translation (item property IDM3D_SKIP). */
33129
+ }, {
33130
+ key: "isIDM3DSkipped",
33131
+ get: function get() {
33132
+ var _this$partListParentA12;
33133
+ return this.catalogArticle.isIDM3DSkipped || !!((_this$partListParentA12 = this.partListParentArticle) !== null && _this$partListParentA12 !== void 0 && _this$partListParentA12.isIDM3DSkipped);
33134
+ }
33135
+
33136
+ /**
33137
+ * Selected values of this article and its whole partlist tree as input for the IDM3D translation, main article first.
33138
+ * Hidden values are flagged so a hidden leftover (e.g. the default of a step the customer cannot see) never outranks
33139
+ * a choice for the same Diomex property. Options an alternate rendering hides from the 3D image are left out.
33140
+ */
33141
+ }, {
33142
+ key: "getIDM3DSources",
33143
+ value: function getIDM3DSources(alternateRenderInfo) {
33144
+ var sources = [];
33145
+ for (var _i4 = 0, _arr = [this].concat(_toConsumableArray__default["default"](this.partlistArticlesReqursive)); _i4 < _arr.length; _i4++) {
33146
+ var article = _arr[_i4];
33147
+ if (article.isIDM3DSkipped) continue;
33148
+ var _iterator38 = _createForOfIteratorHelper$e(article.getArticleOptionStatesWithOptionsForPrint().values()),
33149
+ _step38;
33150
+ try {
33151
+ for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
33152
+ var _ops$option$ocd, _ops$option$property, _ops$option$catalogPr, _ops$val$ocd3, _ops$val$property, _ops$val$properties;
33153
+ var ops = _step38.value;
33154
+ if (!ops.val || article.isPartListArticle && ops.val.isNotRelevant) continue;
33155
+ var opt = (article.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
33156
+ if (alternateRenderInfo !== null && alternateRenderInfo !== void 0 && alternateRenderInfo.hideOptionsIn3DImage.includes(opt)) continue;
33157
+ sources.push({
33158
+ featureProperties: [].concat(_toConsumableArray__default["default"]((_ops$option$property = ops.option.property) !== null && _ops$option$property !== void 0 ? _ops$option$property : []), _toConsumableArray__default["default"]((_ops$option$catalogPr = ops.option.catalogProperty) !== null && _ops$option$catalogPr !== void 0 ? _ops$option$catalogPr : [])),
33159
+ value: (_ops$val$ocd3 = ops.val.ocd) !== null && _ops$val$ocd3 !== void 0 ? _ops$val$ocd3 : ops.val.codex,
33160
+ valueProperties: [].concat(_toConsumableArray__default["default"]((_ops$val$property = ops.val.property) !== null && _ops$val$property !== void 0 ? _ops$val$property : []), _toConsumableArray__default["default"]((_ops$val$properties = ops.val.properties) !== null && _ops$val$properties !== void 0 ? _ops$val$properties : [])),
33161
+ hidden: ops.isInvisible
33162
+ });
33163
+ }
33164
+ } catch (err) {
33165
+ _iterator38.e(err);
33166
+ } finally {
33167
+ _iterator38.f();
33168
+ }
33169
+ }
33170
+ return sources;
33171
+ }
32947
33172
  }, {
32948
33173
  key: "addOptionStateFromArticleToPlannerData",
32949
33174
  value: function addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo, partlistPrefix) {
32950
33175
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
32951
- var _iterator38 = _createForOfIteratorHelper$e(articleOptions.values()),
32952
- _step38;
33176
+ var _iterator39 = _createForOfIteratorHelper$e(articleOptions.values()),
33177
+ _step39;
32953
33178
  try {
32954
- for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
33179
+ for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
32955
33180
  var _ops$val5;
32956
- var ops = _step38.value;
33181
+ var ops = _step39.value;
32957
33182
  if (!this.article.isPartlistArticle || !((_ops$val5 = ops.val) !== null && _ops$val5 !== void 0 && _ops$val5.isNotRelevant)) this.addOptionStateToPlannerData(ret, ops, alternateRenderInfo, partlistPrefix);
32958
33183
  }
32959
33184
  } catch (err) {
32960
- _iterator38.e(err);
33185
+ _iterator39.e(err);
32961
33186
  } finally {
32962
- _iterator38.f();
33187
+ _iterator39.f();
32963
33188
  }
32964
33189
  for (var key in this.article.partlistArticles) {
32965
33190
  var _pla$partlistGroupPre;
@@ -32975,9 +33200,9 @@ var DivaArticle = /*#__PURE__*/function () {
32975
33200
  var opv;
32976
33201
  var opt;
32977
33202
  if (ops.val) {
32978
- var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3, _ops$val$properties;
32979
- opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
32980
- opv = (this.CatalogData.isIDMFormat ? 'OPV' + ((_ops$option$ocd2 = ops.option.ocd) !== null && _ops$option$ocd2 !== void 0 ? _ops$option$ocd2 : ops.optionCodex) + '_' : '') + ((_ops$val$ocd3 = ops.val.ocd) !== null && _ops$val$ocd3 !== void 0 ? _ops$val$ocd3 : ops.val.codex);
33203
+ var _ops$option$ocd2, _ops$option$ocd3, _ops$val$ocd4, _ops$val$properties2;
33204
+ opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd2 = ops.option.ocd) !== null && _ops$option$ocd2 !== void 0 ? _ops$option$ocd2 : ops.optionCodex);
33205
+ opv = (this.CatalogData.isIDMFormat ? 'OPV' + ((_ops$option$ocd3 = ops.option.ocd) !== null && _ops$option$ocd3 !== void 0 ? _ops$option$ocd3 : ops.optionCodex) + '_' : '') + ((_ops$val$ocd4 = ops.val.ocd) !== null && _ops$val$ocd4 !== void 0 ? _ops$val$ocd4 : ops.val.codex);
32981
33206
  if (this.CatalogData.isIDM3DCat && ops.val.vCodex) opv = 'OPV' + ops.idmVariantenArt + '_' + ops.val.vCodex;
32982
33207
  if (alternateRenderInfo != undefined && alternateRenderInfo.hideOptionsIn3DImage.includes(opt)) return;
32983
33208
  ret.CFG.push({
@@ -32991,7 +33216,7 @@ var DivaArticle = /*#__PURE__*/function () {
32991
33216
  OPV: ops.freeText
32992
33217
  });
32993
33218
  }
32994
- var divaDataEngineMat = (_ops$val$properties = ops.val.properties) === null || _ops$val$properties === void 0 ? void 0 : _ops$val$properties.find(function (prop) {
33219
+ var divaDataEngineMat = (_ops$val$properties2 = ops.val.properties) === null || _ops$val$properties2 === void 0 ? void 0 : _ops$val$properties2.find(function (prop) {
32995
33220
  return prop.Codex == 'TEXTURENAME';
32996
33221
  });
32997
33222
  if (!ret.MAT) {
@@ -33021,11 +33246,11 @@ var DivaArticle = /*#__PURE__*/function () {
33021
33246
  key: "getAccessoireMATData",
33022
33247
  value: function getAccessoireMATData(onString) {
33023
33248
  var MAT = [];
33024
- var _iterator39 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33025
- _step39;
33249
+ var _iterator40 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33250
+ _step40;
33026
33251
  try {
33027
- for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
33028
- var ops = _step39.value;
33252
+ for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
33253
+ var ops = _step40.value;
33029
33254
  var opt = void 0;
33030
33255
  if (!ops.val) continue;
33031
33256
  opt = ops.optionCodex;
@@ -33038,9 +33263,9 @@ var DivaArticle = /*#__PURE__*/function () {
33038
33263
  });
33039
33264
  }
33040
33265
  } catch (err) {
33041
- _iterator39.e(err);
33266
+ _iterator40.e(err);
33042
33267
  } finally {
33043
- _iterator39.f();
33268
+ _iterator40.f();
33044
33269
  }
33045
33270
  return MAT;
33046
33271
  }
@@ -33084,11 +33309,11 @@ var DivaArticle = /*#__PURE__*/function () {
33084
33309
  value: function getVariantBasketData() {
33085
33310
  var variantBasketData = [];
33086
33311
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
33087
- var _iterator40 = _createForOfIteratorHelper$e(articleOptions.values()),
33088
- _step40;
33312
+ var _iterator41 = _createForOfIteratorHelper$e(articleOptions.values()),
33313
+ _step41;
33089
33314
  try {
33090
- for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
33091
- var ops = _step40.value;
33315
+ for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
33316
+ var ops = _step41.value;
33092
33317
  var OP = ops.optionCodex;
33093
33318
  if (ops) {
33094
33319
  var _ops$idmVariantenArt2;
@@ -33156,9 +33381,9 @@ var DivaArticle = /*#__PURE__*/function () {
33156
33381
  }
33157
33382
  }
33158
33383
  } catch (err) {
33159
- _iterator40.e(err);
33384
+ _iterator41.e(err);
33160
33385
  } finally {
33161
- _iterator40.f();
33386
+ _iterator41.f();
33162
33387
  }
33163
33388
  return variantBasketData;
33164
33389
  }
@@ -33191,11 +33416,11 @@ var DivaArticle = /*#__PURE__*/function () {
33191
33416
  if (checkPrice.IsPercentage) {
33192
33417
  //Check if variantBasketdata is set as addPercentage
33193
33418
  //TODO klären mit Franz - ist das schon der richtige Ort? In dem Fall wird VariantBasketDatas nicht als AddPercentage gekennzeichnet und im Checkout 1 wird CHF stattt % angezeigt.
33194
- for (var _i4 = 0; _i4 < VariantBasketDatas.length; _i4++) {
33419
+ for (var _i5 = 0; _i5 < VariantBasketDatas.length; _i5++) {
33195
33420
  var priceOPT = checkPrice.OPT.startsWith('OPT') ? checkPrice.OPT.substring(3) : checkPrice;
33196
- if (VariantBasketDatas[_i4].OPT == priceOPT) {
33421
+ if (VariantBasketDatas[_i5].OPT == priceOPT) {
33197
33422
  if (!isNaN(checkPrice.Price)) {
33198
- VariantBasketDatas[_i4].AddPercentage = checkPrice.Price * 100;
33423
+ VariantBasketDatas[_i5].AddPercentage = checkPrice.Price * 100;
33199
33424
  }
33200
33425
  }
33201
33426
  }
@@ -33212,18 +33437,18 @@ var DivaArticle = /*#__PURE__*/function () {
33212
33437
  var maxPrice = 0,
33213
33438
  maxPriceOPT = '';
33214
33439
  if (!myPriceData.BasePrice && !this.CatalogData.ignoreMaxPriceAsBP) {
33215
- for (var _i5 = 0; _i5 < VariantBasketDatas.length; _i5++) {
33216
- var variant = VariantBasketDatas[_i5];
33440
+ for (var _i6 = 0; _i6 < VariantBasketDatas.length; _i6++) {
33441
+ var variant = VariantBasketDatas[_i6];
33217
33442
  if (variant.AddPrice && (!variant.AddPrice || variant.AddPrice > maxPrice)) {
33218
33443
  maxPrice = variant.AddPrice;
33219
33444
  maxPriceOPT = variant.OPT;
33220
33445
  }
33221
33446
  }
33222
33447
  }
33223
- for (var _i6 = 0; _i6 < VariantBasketDatas.length; _i6++) {
33448
+ for (var _i7 = 0; _i7 < VariantBasketDatas.length; _i7++) {
33224
33449
  //WCTODO Prio 2 bei Maßauswahl
33225
33450
  var CalcPrice = void 0,
33226
- _variant = VariantBasketDatas[_i6],
33451
+ _variant = VariantBasketDatas[_i7],
33227
33452
  isPercentage = false;
33228
33453
  if (_variant.AddPercentage) {
33229
33454
  isPercentage = true;
@@ -33460,18 +33685,18 @@ var DivaArticle = /*#__PURE__*/function () {
33460
33685
  value: function cloneArticle(set) {
33461
33686
  var clonedArticle = new DivaArticle(set, this.basketId, _objectSpread$j({}, this.article), this.article.catalogArticle, set.CatalogData);
33462
33687
  clonedArticle.articleOptionStatesData = new Map();
33463
- var _iterator41 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33464
- _step41;
33688
+ var _iterator42 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33689
+ _step42;
33465
33690
  try {
33466
- for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
33467
- var ops = _step41.value;
33691
+ for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
33692
+ var ops = _step42.value;
33468
33693
  var clonedOps = ops.cloneOptionState(clonedArticle.getIsConfigSingle);
33469
33694
  clonedArticle.articleOptionStatesData.set(ops.optionCodex, clonedOps);
33470
33695
  }
33471
33696
  } catch (err) {
33472
- _iterator41.e(err);
33697
+ _iterator42.e(err);
33473
33698
  } finally {
33474
- _iterator41.f();
33699
+ _iterator42.f();
33475
33700
  }
33476
33701
  clonedArticle.initEngine();
33477
33702
  clonedArticle.hasDecisionsInitialized = true;
@@ -33799,7 +34024,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
33799
34024
  return _context6.abrupt("continue", 39);
33800
34025
  case 14:
33801
34026
  if (targetArticlesWithNewValues.includes(targetArticlesToUpdate[i])) {
33802
- valuesArray[i] = actArticle.getValidValues(_objectSpread$i({}, myValues), actArticle.CatalogData.mergeOptionsToSameOption);
34027
+ valuesArray[i] = actArticle.getValidValues(_objectSpread$i({}, myValues), actArticle.CatalogData.mergeOptionsToSameOption, undefined, from === 'calcVariant');
33803
34028
  // Remember what the USER picked: a rule may hide that value for a while, and it has to come back when the rule frees it again.
33804
34029
  // Only the keys the VIEW supplied — getValidValues also adds merge-group and setConfig values, and those are derived, not chosen.
33805
34030
  if (from === 'FromViewClick') {
@@ -41348,7 +41573,7 @@ var DivaSet = /*#__PURE__*/function () {
41348
41573
  break;
41349
41574
  }
41350
41575
  _context5.next = 3;
41351
- return Promise.resolve().then(function () { return require('./DoorPlanner-3c74f8e1.js'); });
41576
+ return Promise.resolve().then(function () { return require('./DoorPlanner-903b1704.js'); });
41352
41577
  case 3:
41353
41578
  _yield$import = _context5.sent;
41354
41579
  DoorPlanner = _yield$import["default"];
@@ -49302,7 +49527,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49302
49527
  break;
49303
49528
  case 3:
49304
49529
  _context12.next = 5;
49305
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-2d41405a.js'); });
49530
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-1e2fa7cc.js'); });
49306
49531
  case 5:
49307
49532
  _yield$import = _context12.sent;
49308
49533
  PfisterWWSHandler = _yield$import["default"];
@@ -49310,7 +49535,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49310
49535
  return _context12.abrupt("break", 27);
49311
49536
  case 9:
49312
49537
  _context12.next = 11;
49313
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-a4230440.js'); });
49538
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-f8f80ead.js'); });
49314
49539
  case 11:
49315
49540
  _yield$import2 = _context12.sent;
49316
49541
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49318,7 +49543,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49318
49543
  return _context12.abrupt("break", 27);
49319
49544
  case 15:
49320
49545
  _context12.next = 17;
49321
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-a5c22844.js'); });
49546
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-db8488d2.js'); });
49322
49547
  case 17:
49323
49548
  _yield$import3 = _context12.sent;
49324
49549
  SeriousWWSHandler = _yield$import3["default"];
@@ -49326,7 +49551,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49326
49551
  return _context12.abrupt("break", 27);
49327
49552
  case 21:
49328
49553
  _context12.next = 23;
49329
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-40c2a2e8.js'); });
49554
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-537180c7.js'); });
49330
49555
  case 23:
49331
49556
  _yield$import4 = _context12.sent;
49332
49557
  StandardWWSHandler = _yield$import4["default"];
@@ -50705,7 +50930,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50705
50930
  key: "initializeConnection",
50706
50931
  value: function () {
50707
50932
  var _initializeConnection = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
50708
- var _this$connectionHandl2;
50933
+ var _this$connectionHandl2, _this$connectionHandl3;
50709
50934
  var _yield$import, Host3DSignalR;
50710
50935
  return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
50711
50936
  while (1) switch (_context3.prev = _context3.next) {
@@ -50713,16 +50938,18 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50713
50938
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50714
50939
  bootMark('signalr: chunk import start');
50715
50940
  _context3.next = 3;
50716
- return Promise.resolve().then(function () { return require('./Host3DSignalR-2ba0c49a.js'); });
50941
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-18443430.js'); });
50717
50942
  case 3:
50718
50943
  _yield$import = _context3.sent;
50719
50944
  Host3DSignalR = _yield$import["default"];
50720
50945
  bootMark('signalr: chunk imported');
50946
+ // A replaced connection left open stays logged in on the 3D host and keeps reporting to this handler.
50947
+ (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 || _this$connectionHandl2.closeConnection();
50721
50948
  this.connectionHandler = new Host3DSignalR(this.renderSettings, this);
50722
50949
  LOG$4.debug('initializeConnection to Host3DSignalR');
50723
- _context3.next = 10;
50724
- return (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 ? void 0 : _this$connectionHandl2.initializeConnection();
50725
- case 10:
50950
+ _context3.next = 11;
50951
+ return (_this$connectionHandl3 = this.connectionHandler) === null || _this$connectionHandl3 === void 0 ? void 0 : _this$connectionHandl3.initializeConnection();
50952
+ case 11:
50726
50953
  case "end":
50727
50954
  return _context3.stop();
50728
50955
  }
@@ -50737,12 +50964,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50737
50964
  key: "joinDivaNr",
50738
50965
  value: function () {
50739
50966
  var _joinDivaNr = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(divaNr) {
50740
- var _this$connectionHandl3;
50967
+ var _this$connectionHandl4;
50741
50968
  return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
50742
50969
  while (1) switch (_context4.prev = _context4.next) {
50743
50970
  case 0:
50744
50971
  this.divaNr = divaNr;
50745
- if (!((_this$connectionHandl3 = this.connectionHandler) !== null && _this$connectionHandl3 !== void 0 && _this$connectionHandl3.getConnectionReady())) {
50972
+ if (!((_this$connectionHandl4 = this.connectionHandler) !== null && _this$connectionHandl4 !== void 0 && _this$connectionHandl4.getConnectionReady())) {
50746
50973
  _context4.next = 4;
50747
50974
  break;
50748
50975
  }
@@ -50764,12 +50991,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50764
50991
  key: "onConnectionInitialized",
50765
50992
  value: function () {
50766
50993
  var _onConnectionInitialized = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(params) {
50767
- var _this$connectionHandl4;
50768
- var i;
50994
+ var _this$connectionHandl5;
50995
+ var queuedRoomLists, _iterator, _step, roomList;
50769
50996
  return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
50770
50997
  while (1) switch (_context5.prev = _context5.next) {
50771
50998
  case 0:
50772
- (_this$connectionHandl4 = this.connectionHandler) === null || _this$connectionHandl4 === void 0 || _this$connectionHandl4.joinDivaNr(this.divaNr);
50999
+ (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 || _this$connectionHandl5.joinDivaNr(this.divaNr);
50773
51000
  if (!(params.status != 'SUCCESSFULL')) {
50774
51001
  _context5.next = 3;
50775
51002
  break;
@@ -50778,10 +51005,21 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50778
51005
  case 3:
50779
51006
  //Login
50780
51007
  if (this.todoAfterLogin.loadRoomlist.length > 0) {
50781
- for (i = 0; i < this.todoAfterLogin.loadRoomlist.length; i++) {
50782
- this.initializeStaticRoomList(this.todoAfterLogin.loadRoomlist[i].list, this.todoAfterLogin.loadRoomlist[i].mainCategory);
50783
- }
51008
+ // Take the queue before replaying it: a replay while the connection is not ready parks the list again,
51009
+ // and appending to the list being iterated never ends the loop.
51010
+ queuedRoomLists = this.todoAfterLogin.loadRoomlist;
50784
51011
  this.todoAfterLogin.loadRoomlist = [];
51012
+ _iterator = _createForOfIteratorHelper$3(queuedRoomLists);
51013
+ try {
51014
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
51015
+ roomList = _step.value;
51016
+ this.initializeStaticRoomList(roomList.list, roomList.mainCategory);
51017
+ }
51018
+ } catch (err) {
51019
+ _iterator.e(err);
51020
+ } finally {
51021
+ _iterator.f();
51022
+ }
50785
51023
  }
50786
51024
  if (this.todoAfterLogin.initViewPoint.doUpdate) {
50787
51025
  this.initializeViewPoint(this.todoAfterLogin.initViewPoint.stdWhiteRoom);
@@ -50836,22 +51074,22 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50836
51074
  hqRenderScript.HqRenderScript = hqRenderScriptString;
50837
51075
  this.hqRenderScriptCache.set(planningHash, hqRenderScript);
50838
51076
  this.waitForHQRenderScript["delete"](planningHash);
50839
- var _iterator = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50840
- _step;
51077
+ var _iterator2 = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
51078
+ _step2;
50841
51079
  try {
50842
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
50843
- var _step$value = _slicedToArray__default["default"](_step.value, 2),
50844
- key = _step$value[0],
50845
- _hqr = _step$value[1];
51080
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
51081
+ var _step2$value = _slicedToArray__default["default"](_step2.value, 2),
51082
+ key = _step2$value[0],
51083
+ _hqr = _step2$value[1];
50846
51084
  if (!(_hqr !== null && _hqr !== void 0 && _hqr.CreationTime)) continue;
50847
51085
  if (_hqr.CreationTime < hqRenderScript.CreationTime) this.waitForHQRenderScript["delete"](key);
50848
51086
  }
50849
51087
 
50850
51088
  // The AR live viewer is fed from this path too — it is the only source of render scripts.
50851
51089
  } catch (err) {
50852
- _iterator.e(err);
51090
+ _iterator2.e(err);
50853
51091
  } finally {
50854
- _iterator.f();
51092
+ _iterator2.f();
50855
51093
  }
50856
51094
  this.sendARRenderScript(hqRenderScript, planningHash);
50857
51095
  this.updatePlannerHqRenderScriptInView(hqRenderScript);
@@ -51223,7 +51461,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51223
51461
  value: (function () {
51224
51462
  var _request3D = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee8(params) {
51225
51463
  var _params$renderRequest, _params$renderRequest2, _params$renderRequest3, _params$renderRequest4, _params$renderRequest5, _params$renderRequest6, _this$viewPointHandle, _this$viewPointHandle2;
51226
- var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl5, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51464
+ var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl6, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51227
51465
  return _regeneratorRuntime__default["default"].wrap(function _callee8$(_context8) {
51228
51466
  while (1) switch (_context8.prev = _context8.next) {
51229
51467
  case 0:
@@ -51346,7 +51584,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51346
51584
  }
51347
51585
  if (params.catalogData.lang) params.planningData.SCE.Lang = params.catalogData.lang;
51348
51586
  bootMark('3d: request3D sent to host');
51349
- returnRequest = (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 ? void 0 : _this$connectionHandl5.request3D({
51587
+ returnRequest = (_this$connectionHandl6 = this.connectionHandler) === null || _this$connectionHandl6 === void 0 ? void 0 : _this$connectionHandl6.request3D({
51350
51588
  doRequestRendering: params.doRequestRendering,
51351
51589
  doRequestHqRenderScript: params.doRequestHqRenderScript,
51352
51590
  planningHash: planningHash,
@@ -52445,7 +52683,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52445
52683
  break;
52446
52684
  case 8:
52447
52685
  _context5.next = 10;
52448
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-9b10f74c.js'); });
52686
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-2ec3cf66.js'); });
52449
52687
  case 10:
52450
52688
  _yield$import = _context5.sent;
52451
52689
  DivaStandardPlanner = _yield$import["default"];
@@ -52456,7 +52694,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52456
52694
  return _context5.abrupt("break", 21);
52457
52695
  case 15:
52458
52696
  _context5.next = 17;
52459
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-5e930cef.js'); });
52697
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-76112465.js'); });
52460
52698
  case 17:
52461
52699
  _yield$import2 = _context5.sent;
52462
52700
  DivaBoxPlanner = _yield$import2["default"];
@@ -54365,11 +54603,13 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54365
54603
  * @param myValues a dictionary with the key of the OptionCodex and the value of the OptionValueCodex
54366
54604
  * @param targetArticles array if BasketIds
54367
54605
  * @param freeText freeText is null when specificly set to null. When nopt set at all its undefined
54606
+ * @param isUserAction true only when the user changed the option in the UI. Host, URL parameter, headless and agent
54607
+ * calls leave it unset, so analytics can tell a user's change from a programmatic one.
54368
54608
  *
54369
54609
  */
54370
54610
  //onConfigItemClick ist ein Click auf das Item der ConfigPalette um die OPV zu ändern
54371
54611
  _defineProperty__default["default"](this, "doConfigure", /*#__PURE__*/function () {
54372
- var _ref15 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee15(myValues, targetArticles, dontUpdatePlannerView, dontCallEvents, eventKey) {
54612
+ var _ref15 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee15(myValues, targetArticles, dontUpdatePlannerView, dontCallEvents, eventKey, isUserAction) {
54373
54613
  var _this$actions13, _this$actions13$toggl;
54374
54614
  var set, returnValues, _this$actions14, _this$actions14$toggl, structure, _this$view42, _returnValues$element, _this$view45, _this$view43, _this$view44;
54375
54615
  return _regeneratorRuntime__default["default"].wrap(function _callee15$(_context15) {
@@ -54414,14 +54654,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54414
54654
  _context15.next = 24;
54415
54655
  return _this.fillBaksetforOnWebPlanerConfigChange(myValues, undefined, eventKey);
54416
54656
  case 24:
54417
- _this.configuratorChangeLog('onConfigurationChange', myValues);
54657
+ _this.configuratorChangeLog('onConfigurationChange', myValues, false, !!isUserAction);
54418
54658
  case 25:
54419
54659
  case "end":
54420
54660
  return _context15.stop();
54421
54661
  }
54422
54662
  }, _callee15, null, [[2,, 6, 9]]);
54423
54663
  }));
54424
- return function (_x49, _x50, _x51, _x52, _x53) {
54664
+ return function (_x49, _x50, _x51, _x52, _x53, _x54) {
54425
54665
  return _ref15.apply(this, arguments);
54426
54666
  };
54427
54667
  }());
@@ -54477,7 +54717,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54477
54717
  }
54478
54718
  }, _callee16);
54479
54719
  }));
54480
- return function (_x54, _x55, _x56) {
54720
+ return function (_x55, _x56, _x57) {
54481
54721
  return _ref16.apply(this, arguments);
54482
54722
  };
54483
54723
  }());
@@ -54628,7 +54868,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54628
54868
  }
54629
54869
  }, _callee17, this, [[19, 28]]);
54630
54870
  }));
54631
- function initialize(_x57) {
54871
+ function initialize(_x58) {
54632
54872
  return _initialize.apply(this, arguments);
54633
54873
  }
54634
54874
  return initialize;
@@ -54801,7 +55041,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54801
55041
  }
54802
55042
  }, _callee18, this);
54803
55043
  }));
54804
- function initializeSets(_x58, _x59) {
55044
+ function initializeSets(_x59, _x60) {
54805
55045
  return _initializeSets.apply(this, arguments);
54806
55046
  }
54807
55047
  return initializeSets;
@@ -55148,7 +55388,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55148
55388
  }
55149
55389
  }, _callee21, this);
55150
55390
  }));
55151
- function runInitMode(_x60) {
55391
+ function runInitMode(_x61) {
55152
55392
  return _runInitMode.apply(this, arguments);
55153
55393
  }
55154
55394
  return runInitMode;
@@ -55212,7 +55452,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55212
55452
  }
55213
55453
  }, _callee22, this);
55214
55454
  }));
55215
- function addSetToActPlanningByDivaNr(_x61) {
55455
+ function addSetToActPlanningByDivaNr(_x62) {
55216
55456
  return _addSetToActPlanningByDivaNr.apply(this, arguments);
55217
55457
  }
55218
55458
  return addSetToActPlanningByDivaNr;
@@ -55266,7 +55506,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55266
55506
  }
55267
55507
  }, _callee23, this);
55268
55508
  }));
55269
- function setActSetCurConfigStepKey(_x62) {
55509
+ function setActSetCurConfigStepKey(_x63) {
55270
55510
  return _setActSetCurConfigStepKey.apply(this, arguments);
55271
55511
  }
55272
55512
  return setActSetCurConfigStepKey;
@@ -55494,7 +55734,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55494
55734
  }
55495
55735
  }, _callee24, this);
55496
55736
  }));
55497
- function deletePlannerElement(_x63, _x64, _x65) {
55737
+ function deletePlannerElement(_x64, _x65, _x66) {
55498
55738
  return _deletePlannerElement.apply(this, arguments);
55499
55739
  }
55500
55740
  return deletePlannerElement;
@@ -55528,7 +55768,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55528
55768
  }
55529
55769
  }, _callee25, this);
55530
55770
  }));
55531
- function movePlannerElement(_x66, _x67, _x68, _x69) {
55771
+ function movePlannerElement(_x67, _x68, _x69, _x70) {
55532
55772
  return _movePlannerElement.apply(this, arguments);
55533
55773
  }
55534
55774
  return movePlannerElement;
@@ -55580,7 +55820,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55580
55820
  }
55581
55821
  }, _callee26, this);
55582
55822
  }));
55583
- function copyPlannerElement(_x70, _x71, _x72, _x73) {
55823
+ function copyPlannerElement(_x71, _x72, _x73, _x74) {
55584
55824
  return _copyPlannerElement.apply(this, arguments);
55585
55825
  }
55586
55826
  return copyPlannerElement;
@@ -55664,7 +55904,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55664
55904
  }
55665
55905
  }, _callee27, this);
55666
55906
  }));
55667
- function getFreePlacesOnGrids(_x74, _x75) {
55907
+ function getFreePlacesOnGrids(_x75, _x76) {
55668
55908
  return _getFreePlacesOnGrids.apply(this, arguments);
55669
55909
  }
55670
55910
  return getFreePlacesOnGrids;
@@ -55717,7 +55957,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55717
55957
  }
55718
55958
  }, _callee28, this);
55719
55959
  }));
55720
- function moveShelfItemToGrid(_x76, _x77, _x78, _x79, _x80) {
55960
+ function moveShelfItemToGrid(_x77, _x78, _x79, _x80, _x81) {
55721
55961
  return _moveShelfItemToGrid.apply(this, arguments);
55722
55962
  }
55723
55963
  return moveShelfItemToGrid;
@@ -55759,7 +55999,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55759
55999
  }
55760
56000
  }, _callee29, this);
55761
56001
  }));
55762
- function resetArticle(_x81) {
56002
+ function resetArticle(_x82) {
55763
56003
  return _resetArticle.apply(this, arguments);
55764
56004
  }
55765
56005
  return resetArticle;
@@ -55819,7 +56059,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55819
56059
  }
55820
56060
  }, _callee30, this);
55821
56061
  }));
55822
- function checkMatchingProducts(_x82) {
56062
+ function checkMatchingProducts(_x83) {
55823
56063
  return _checkMatchingProducts.apply(this, arguments);
55824
56064
  }
55825
56065
  return checkMatchingProducts;
@@ -55972,7 +56212,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55972
56212
  }
55973
56213
  }, _callee31, this);
55974
56214
  }));
55975
- function saveToBasketWrapper(_x83, _x84, _x85, _x86) {
56215
+ function saveToBasketWrapper(_x84, _x85, _x86, _x87) {
55976
56216
  return _saveToBasketWrapper.apply(this, arguments);
55977
56217
  }
55978
56218
  return saveToBasketWrapper;
@@ -56116,7 +56356,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56116
56356
  }
56117
56357
  }, _callee32, this);
56118
56358
  }));
56119
- function saveToBasket(_x87, _x88, _x89) {
56359
+ function saveToBasket(_x88, _x89, _x90) {
56120
56360
  return _saveToBasket.apply(this, arguments);
56121
56361
  }
56122
56362
  return saveToBasket;
@@ -56150,7 +56390,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56150
56390
  }
56151
56391
  }, _callee33, this);
56152
56392
  }));
56153
- function generateAiImageWithReferenceImages(_x90, _x91) {
56393
+ function generateAiImageWithReferenceImages(_x91, _x92) {
56154
56394
  return _generateAiImageWithReferenceImages.apply(this, arguments);
56155
56395
  }
56156
56396
  return generateAiImageWithReferenceImages;
@@ -56245,7 +56485,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56245
56485
  }
56246
56486
  }, _callee36, this);
56247
56487
  }));
56248
- function createLeadKey(_x92) {
56488
+ function createLeadKey(_x93) {
56249
56489
  return _createLeadKey.apply(this, arguments);
56250
56490
  }
56251
56491
  return createLeadKey;
@@ -56718,7 +56958,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56718
56958
  }
56719
56959
  }, _callee38, this);
56720
56960
  }));
56721
- function addToBasket(_x93) {
56961
+ function addToBasket(_x94) {
56722
56962
  return _addToBasket.apply(this, arguments);
56723
56963
  }
56724
56964
  return addToBasket;
@@ -56794,7 +57034,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56794
57034
  }
56795
57035
  }, _callee39, this);
56796
57036
  }));
56797
- function getCurrentBasket(_x94, _x95, _x96, _x97, _x98) {
57037
+ function getCurrentBasket(_x95, _x96, _x97, _x98, _x99) {
56798
57038
  return _getCurrentBasket.apply(this, arguments);
56799
57039
  }
56800
57040
  return getCurrentBasket;
@@ -56904,7 +57144,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56904
57144
  }
56905
57145
  }, _callee40, this);
56906
57146
  }));
56907
- function initApiForLogicOnly(_x99, _x100, _x101, _x102, _x103, _x104, _x105) {
57147
+ function initApiForLogicOnly(_x100, _x101, _x102, _x103, _x104, _x105, _x106) {
56908
57148
  return _initApiForLogicOnly.apply(this, arguments);
56909
57149
  }
56910
57150
  return initApiForLogicOnly;
@@ -56975,7 +57215,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56975
57215
  }
56976
57216
  }, _callee42, this);
56977
57217
  }));
56978
- function initBasket(_x106, _x107) {
57218
+ function initBasket(_x107, _x108) {
56979
57219
  return _initBasket.apply(this, arguments);
56980
57220
  }
56981
57221
  return initBasket;
@@ -57075,7 +57315,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57075
57315
  }
57076
57316
  }, _callee44, this);
57077
57317
  }));
57078
- function handleFavorites(_x108) {
57318
+ function handleFavorites(_x109) {
57079
57319
  return _handleFavorites.apply(this, arguments);
57080
57320
  }
57081
57321
  return handleFavorites;
@@ -57129,7 +57369,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57129
57369
  }
57130
57370
  }, _callee45, this);
57131
57371
  }));
57132
- function initSapOrderLinesFromBasket(_x109, _x110, _x111) {
57372
+ function initSapOrderLinesFromBasket(_x110, _x111, _x112) {
57133
57373
  return _initSapOrderLinesFromBasket.apply(this, arguments);
57134
57374
  }
57135
57375
  return initSapOrderLinesFromBasket;
@@ -57251,6 +57491,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57251
57491
  key: "configuratorChangeLog",
57252
57492
  value: function configuratorChangeLog(action, myValues) {
57253
57493
  var isInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
57494
+ var isUserAction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
57254
57495
  var set = this.actSet();
57255
57496
  var actualBasketvalue = 0;
57256
57497
  //handle Price
@@ -57308,7 +57549,8 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57308
57549
  }
57309
57550
  LOG$2.businessEvent(action, 'Planner', 'Konfigurator wurde verändert', {
57310
57551
  explicitlySetConfiguration: explicitlySetConfiguration,
57311
- wholeConfiguration: finalConfiguration
57552
+ wholeConfiguration: finalConfiguration,
57553
+ isUserAction: isUserAction
57312
57554
  });
57313
57555
  LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
57314
57556
  basketValue: actualBasketvalue,
@@ -59225,7 +59467,7 @@ var PlannerElementData = /*#__PURE__*/function () {
59225
59467
 
59226
59468
  /** The encoding per property codex, for one entity. */
59227
59469
 
59228
- /** 95 properties parsed on the catalog entity. */
59470
+ /** 96 properties parsed on the catalog entity. */
59229
59471
  var CATALOG_PROPERTIES = {
59230
59472
  '3D_COMPATIBLE_WITH_IMAGE_CACHE': 'boolean:1',
59231
59473
  ACCESSOIRE_STEP_AS_PLANNER: 'boolean:1',
@@ -59280,6 +59522,7 @@ var CATALOG_PROPERTIES = {
59280
59522
  HIDE_SUBPOS_ARTICLECODEX_EKTEXT: 'boolean:1',
59281
59523
  IDM3D_CAT_CODEX: 'string',
59282
59524
  IDM3D_ENVIRONMENT: 'string',
59525
+ IDM3D_TRANSLATION: 'json',
59283
59526
  IGNOREDOCKINGNUMBER: 'boolean:1',
59284
59527
  IGNORELAYERAVC: 'boolean:1',
59285
59528
  IGNORELAYERAVNAVS: 'boolean:1',
@@ -59324,7 +59567,7 @@ var CATALOG_PROPERTIES = {
59324
59567
  WARNINGS: 'json'
59325
59568
  };
59326
59569
 
59327
- /** 30 properties parsed on the article entity. */
59570
+ /** 31 properties parsed on the article entity. */
59328
59571
  var ARTICLE_PROPERTIES = {
59329
59572
  '3DMODELNAME': 'string',
59330
59573
  ACCESSOIRE_POS_PRIO: 'number',
@@ -59341,6 +59584,7 @@ var ARTICLE_PROPERTIES = {
59341
59584
  HEIGHTGRIDUSED: 'number',
59342
59585
  HEIGHT_HAS_PRICE: 'boolean:on',
59343
59586
  HIDE_IN_PLANNERSTEP: 'boolean:on',
59587
+ IDM3D_SKIP: 'boolean:1|true',
59344
59588
  INVALID_ACCESSORIES: 'list:,',
59345
59589
  MAX_PLANNING_COUNT: 'number',
59346
59590
  ON_CONFIG_OPTION: 'string',
@@ -59358,7 +59602,7 @@ var ARTICLE_PROPERTIES = {
59358
59602
  ZUBEHOER_FAMILIE: 'string'
59359
59603
  };
59360
59604
 
59361
- /** 40 properties parsed on the option entity. */
59605
+ /** 41 properties parsed on the option entity. */
59362
59606
  var OPTION_PROPERTIES = {
59363
59607
  ADDITIONAL_GROUP_FILTER: 'json',
59364
59608
  ADD_OPT_TO_TABGROUP_IN_PL_SUM: 'string',
@@ -59377,6 +59621,7 @@ var OPTION_PROPERTIES = {
59377
59621
  FREETEXT_DEFAULT_VALUE: 'string',
59378
59622
  GROUP_OPTIONS_LEFT_AND_RIGHT: 'list:;',
59379
59623
  HIDE_OPTION_IN_CONFIGURATOR: 'boolean:on',
59624
+ IDM3D_TARGET: 'list:,',
59380
59625
  IGNORE_GROUPS: 'boolean:1',
59381
59626
  IGNORE_PGR_GROUP_POSITION: 'boolean:1',
59382
59627
  INFO_PDF: 'string',
@@ -59402,7 +59647,7 @@ var OPTION_PROPERTIES = {
59402
59647
  SUGGESTED_OPTION: 'boolean:on'
59403
59648
  };
59404
59649
 
59405
- /** 30 properties parsed on the optionValue entity. */
59650
+ /** 31 properties parsed on the optionValue entity. */
59406
59651
  var OPTIONVALUE_PROPERTIES = {
59407
59652
  ADD_TO_MEASURE: 'list:;',
59408
59653
  CONTENT_ITEM: 'string',
@@ -59411,6 +59656,7 @@ var OPTIONVALUE_PROPERTIES = {
59411
59656
  EshopCategoryMapping: 'ignored',
59412
59657
  GROUP_CONTENT_ITEM: 'string',
59413
59658
  HIDE_IN_SUMMARY: 'boolean:on',
59659
+ IDM3D_VALUE: 'string',
59414
59660
  INFO_PDF: 'string',
59415
59661
  INFO_URL: 'string',
59416
59662
  ION_COMMENT_TEXT: 'ignored',