@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
@@ -8,9 +8,9 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import axios$1 from 'axios';
10
10
  import DivaUtils, { DivaError, md5, nanoid } from '@crystaldesign/diva-utils';
11
+ import _typeof from '@babel/runtime/helpers/typeof';
11
12
  import { parseXml, serializeXml, removeMask, stretchArticleSvg } from '@crystaldesign/planner-2d-core';
12
13
  import { PriceObjectData, VariantItemData, JsonConfigPriceData, OrderLineData, CompactOrderLineData, GroupsData, Favorites, Favorite, ConfigVariantData, BASKET_UPLOAD_FUNCTION_TYPES, BASKET_UPLOAD_MEDIA_TYPES, OrderSetData, BasketData } from '@crystaldesign/basket-model';
13
- import _typeof from '@babel/runtime/helpers/typeof';
14
14
  import { XMLParser } from 'fast-xml-parser';
15
15
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
16
16
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
@@ -3126,6 +3126,9 @@ var setOptionsProperties = function setOptionsProperties(catalogData, opt, prope
3126
3126
  case 'IsSalesText':
3127
3127
  case 'IsArtName':
3128
3128
  break;
3129
+ case 'IDM3D_TARGET':
3130
+ // read raw by the IDM3D translation (logic/Planner/IDM3D/idm3dTranslation.ts)
3131
+ break;
3129
3132
  default:
3130
3133
  LOG$q.debug('implement mapping for these props for options: ' + prop.Codex);
3131
3134
  break;
@@ -17465,6 +17468,9 @@ var setOptionValueProperties = function setOptionValueProperties(catalogData, op
17465
17468
  case 'PriceTageRelevant':
17466
17469
  case 'IsArtName':
17467
17470
  break;
17471
+ case 'IDM3D_VALUE':
17472
+ // read raw by the IDM3D translation (logic/Planner/IDM3D/idm3dTranslation.ts)
17473
+ break;
17468
17474
  default:
17469
17475
  if (key.includes('__')) break;
17470
17476
  LOG$p.debug('implement mapping for these props for optionValue: ' + prop.Codex);
@@ -17493,9 +17499,9 @@ var setOptionValueProperties = function setOptionValueProperties(catalogData, op
17493
17499
  return metaDatas;
17494
17500
  };
17495
17501
 
17496
- 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; } } }; }
17497
- 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; } }
17498
- 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; }
17502
+ 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; } } }; }
17503
+ 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; } }
17504
+ 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; }
17499
17505
 
17500
17506
  //kaufmännischer Artikel
17501
17507
  var CatalogArticleData = /*#__PURE__*/function () {
@@ -17596,6 +17602,9 @@ var CatalogArticleData = /*#__PURE__*/function () {
17596
17602
  case 'GROUP_CONTENT_ITEM':
17597
17603
  this._catalogArticle.groupContentItemId = prop.Value;
17598
17604
  break;
17605
+ case 'IDM3D_SKIP':
17606
+ this._catalogArticle.idm3DSkip = isPropertyOn(prop.Value);
17607
+ break;
17599
17608
  case 'HAS3D':
17600
17609
  this._catalogArticle.isVisualized = isPropertyOn(prop.Value);
17601
17610
  break;
@@ -17637,6 +17646,8 @@ var CatalogArticleData = /*#__PURE__*/function () {
17637
17646
  break;
17638
17647
  }
17639
17648
  }
17649
+ // like the old IDM import: without EAN and TYPE_NO property the type number is SALES_NUMBER, then TYPE_NO - never empty
17650
+ if (!this._catalogArticle.typeNr && catalogData.isIDMFormat) this._catalogArticle.typeNr = this._catalogArticle.salesNumber || this.articleCodex;
17640
17651
  this._catalogArticle.metaData = metaDatas;
17641
17652
  }
17642
17653
  /**************************************************GETTER ************************************************** */
@@ -18246,6 +18257,11 @@ var CatalogArticleData = /*#__PURE__*/function () {
18246
18257
  get: function get() {
18247
18258
  return !!this._catalogArticle.isVisualized;
18248
18259
  }
18260
+ }, {
18261
+ key: "isIDM3DSkipped",
18262
+ get: function get() {
18263
+ return !!this._catalogArticle.idm3DSkip;
18264
+ }
18249
18265
  }, {
18250
18266
  key: "j3D",
18251
18267
  get: function get() {
@@ -18282,7 +18298,7 @@ var CatalogArticleData = /*#__PURE__*/function () {
18282
18298
  value: function getOptionValueFromOption(opt, opv) {
18283
18299
  if (this._catalogArticle.articleOptions[opt] && this._catalogArticle.articleOptions[opt].hasOPG) {
18284
18300
  var myOPGs = this._catalogArticle.articleOptions[opt].articleOptionValues;
18285
- var _iterator = _createForOfIteratorHelper$o(myOPGs),
18301
+ var _iterator = _createForOfIteratorHelper$p(myOPGs),
18286
18302
  _step;
18287
18303
  try {
18288
18304
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19436,9 +19452,9 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
19436
19452
  }]);
19437
19453
  }();
19438
19454
 
19439
- 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; } } }; }
19440
- 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; } }
19441
- 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; }
19455
+ 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; } } }; }
19456
+ 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; } }
19457
+ 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; }
19442
19458
  var ArticleOptionData = /*#__PURE__*/function () {
19443
19459
  function ArticleOptionData(opt, catalogData) {
19444
19460
  var _this$opt$property;
@@ -19538,7 +19554,7 @@ var ArticleOptionData = /*#__PURE__*/function () {
19538
19554
  }, {
19539
19555
  key: "getOpvByOcd",
19540
19556
  value: function getOpvByOcd(codex) {
19541
- var _iterator = _createForOfIteratorHelper$n(this.opt.articleOptionValues),
19557
+ var _iterator = _createForOfIteratorHelper$o(this.opt.articleOptionValues),
19542
19558
  _step;
19543
19559
  try {
19544
19560
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19879,9 +19895,9 @@ var ArticleOptionData = /*#__PURE__*/function () {
19879
19895
  }]);
19880
19896
  }();
19881
19897
 
19882
- 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; } } }; }
19883
- 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; } }
19884
- 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; }
19898
+ 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; } } }; }
19899
+ 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; } }
19900
+ 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; }
19885
19901
  var LOG$n = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
19886
19902
  function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors, catalog, newOPT, rule) {
19887
19903
  var lang = catalog.api.getLanguage();
@@ -20254,7 +20270,7 @@ function getReferencedDecisions(decisions, decisionRefs) {
20254
20270
  });
20255
20271
  var enableTargets = getActionTargets(decisions, 'ENABLE_DECISION');
20256
20272
  for (var i = 0; i < evaluated.length; i++) {
20257
- var _iterator = _createForOfIteratorHelper$m(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
20273
+ var _iterator = _createForOfIteratorHelper$n(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
20258
20274
  _step;
20259
20275
  try {
20260
20276
  var _loop = function _loop() {
@@ -20281,19 +20297,19 @@ function getReferencedDecisions(decisions, decisionRefs) {
20281
20297
  /** Numbers of the decisions an action of the given type points at. */
20282
20298
  function getActionTargets(decisions, type) {
20283
20299
  var targets = new Set();
20284
- var _iterator2 = _createForOfIteratorHelper$m(decisions),
20300
+ var _iterator2 = _createForOfIteratorHelper$n(decisions),
20285
20301
  _step2;
20286
20302
  try {
20287
20303
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
20288
20304
  var _decision$DOC;
20289
20305
  var decision = _step2.value;
20290
- var _iterator3 = _createForOfIteratorHelper$m((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
20306
+ var _iterator3 = _createForOfIteratorHelper$n((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
20291
20307
  _step3;
20292
20308
  try {
20293
20309
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
20294
20310
  var _combination$DA;
20295
20311
  var combination = _step3.value;
20296
- var _iterator4 = _createForOfIteratorHelper$m((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
20312
+ var _iterator4 = _createForOfIteratorHelper$n((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
20297
20313
  _step4;
20298
20314
  try {
20299
20315
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -20447,9 +20463,9 @@ function getArticleOptionValueType(set, codex, jsonOPV, catalogOPV, myArticle, i
20447
20463
  return opv;
20448
20464
  }
20449
20465
 
20450
- 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; } } }; }
20451
- 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; } }
20452
- 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; }
20466
+ 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; } } }; }
20467
+ 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; } }
20468
+ 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; }
20453
20469
  var LOG$m = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
20454
20470
  var COUNT_KEY_BY_DOCKING_TYPE = {
20455
20471
  AVC: 'avc',
@@ -20544,7 +20560,7 @@ var SVGUtils = /*#__PURE__*/function () {
20544
20560
  avu: 0,
20545
20561
  avl: 0
20546
20562
  };
20547
- var _iterator = _createForOfIteratorHelper$l(this.getDPsInSVG(content)),
20563
+ var _iterator = _createForOfIteratorHelper$m(this.getDPsInSVG(content)),
20548
20564
  _step;
20549
20565
  try {
20550
20566
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20739,7 +20755,7 @@ var SVGUtils = /*#__PURE__*/function () {
20739
20755
  keepWidth: keep === null || keep === void 0 ? void 0 : keep.width,
20740
20756
  keepDepth: keep === null || keep === void 0 ? void 0 : keep.depth
20741
20757
  });
20742
- var _iterator2 = _createForOfIteratorHelper$l(result.warnings),
20758
+ var _iterator2 = _createForOfIteratorHelper$m(result.warnings),
20743
20759
  _step2;
20744
20760
  try {
20745
20761
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20759,9 +20775,9 @@ var SVGUtils = /*#__PURE__*/function () {
20759
20775
 
20760
20776
  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; }
20761
20777
  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(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; }
20762
- 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; } } }; }
20763
- 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; } }
20764
- 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; }
20778
+ 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; } } }; }
20779
+ 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; } }
20780
+ 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; }
20765
20781
  var LOG$l = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
20766
20782
 
20767
20783
  //a decision enabled by an action may itself enable further ones; the cap keeps a cyclic catalog from looping
@@ -20914,7 +20930,7 @@ function _loadMoreFromIDMArticles() {
20914
20930
  catalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i6], catalogData.idmOptionGroups));
20915
20931
  }
20916
20932
  }
20917
- _iterator6 = _createForOfIteratorHelper$k(toLoadPFGroups);
20933
+ _iterator6 = _createForOfIteratorHelper$l(toLoadPFGroups);
20918
20934
  _context8.prev = 36;
20919
20935
  _loop7 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop7() {
20920
20936
  var prfgNo, askedBy;
@@ -21080,7 +21096,7 @@ function _loadMoreFromIDMArticles() {
21080
21096
  _context8.next = 62;
21081
21097
  break;
21082
21098
  case 67:
21083
- _iterator7 = _createForOfIteratorHelper$k(toLoadFeatures);
21099
+ _iterator7 = _createForOfIteratorHelper$l(toLoadFeatures);
21084
21100
  _context8.prev = 68;
21085
21101
  _loop8 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop8() {
21086
21102
  var featureNo, askedBy;
@@ -21209,13 +21225,13 @@ function readAdditionalItemRefs(item) {
21209
21225
  var _item$mandatoryAdditi, _item$mandatoryAdditi2, _item$optionalAdditio, _item$optionalAdditio2;
21210
21226
  var merged = new Map();
21211
21227
  var add = function add(groups, quantity) {
21212
- var _iterator = _createForOfIteratorHelper$k(groups),
21228
+ var _iterator = _createForOfIteratorHelper$l(groups),
21213
21229
  _step;
21214
21230
  try {
21215
21231
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
21216
21232
  var _group$itemRef;
21217
21233
  var group = _step.value;
21218
- var _iterator2 = _createForOfIteratorHelper$k((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
21234
+ var _iterator2 = _createForOfIteratorHelper$l((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
21219
21235
  _step2;
21220
21236
  try {
21221
21237
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -21282,7 +21298,7 @@ function _loadReferencedSerieCatalogs() {
21282
21298
  });
21283
21299
  }));
21284
21300
  serieNos["delete"](String(catalogData.catalogCodex));
21285
- _iterator8 = _createForOfIteratorHelper$k(serieNos);
21301
+ _iterator8 = _createForOfIteratorHelper$l(serieNos);
21286
21302
  _context9.prev = 6;
21287
21303
  _iterator8.s();
21288
21304
  case 8:
@@ -21449,11 +21465,11 @@ function _fillMissingDockingPointCounts() {
21449
21465
  case 3:
21450
21466
  // the same accessories initIDMArticleRelations maps, each with the catalog it lives in
21451
21467
  accessories = new Map();
21452
- _iterator9 = _createForOfIteratorHelper$k(items);
21468
+ _iterator9 = _createForOfIteratorHelper$l(items);
21453
21469
  try {
21454
21470
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
21455
21471
  item = _step9.value;
21456
- _iterator10 = _createForOfIteratorHelper$k(readAdditionalItemRefs(item));
21472
+ _iterator10 = _createForOfIteratorHelper$l(readAdditionalItemRefs(item));
21457
21473
  try {
21458
21474
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
21459
21475
  ref = _step10.value;
@@ -21590,16 +21606,16 @@ var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
21590
21606
  break;
21591
21607
  }
21592
21608
  toLoad = new Set();
21593
- _iterator3 = _createForOfIteratorHelper$k(catalogData.loadedDecisions);
21609
+ _iterator3 = _createForOfIteratorHelper$l(catalogData.loadedDecisions);
21594
21610
  try {
21595
21611
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
21596
21612
  decision = _step3.value;
21597
- _iterator4 = _createForOfIteratorHelper$k((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
21613
+ _iterator4 = _createForOfIteratorHelper$l((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
21598
21614
  try {
21599
21615
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
21600
21616
  combination = _step4.value;
21601
21617
  refs = [].concat(_toConsumableArray((_combination$projectA = (_combination$projectA2 = combination.projectActions) === null || _combination$projectA2 === void 0 ? void 0 : _combination$projectA2.disableDecision) !== null && _combination$projectA !== void 0 ? _combination$projectA : []), _toConsumableArray((_combination$projectA3 = (_combination$projectA4 = combination.projectActions) === null || _combination$projectA4 === void 0 ? void 0 : _combination$projectA4.enableDecision) !== null && _combination$projectA3 !== void 0 ? _combination$projectA3 : []));
21602
- _iterator5 = _createForOfIteratorHelper$k(refs);
21618
+ _iterator5 = _createForOfIteratorHelper$l(refs);
21603
21619
  try {
21604
21620
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
21605
21621
  ref = _step5.value;
@@ -22023,9 +22039,9 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
22023
22039
  return opv;
22024
22040
  }
22025
22041
 
22026
- 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; } } }; }
22027
- 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; } }
22028
- 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; }
22042
+ 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; } } }; }
22043
+ 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; } }
22044
+ 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; }
22029
22045
  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; }
22030
22046
  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(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; }
22031
22047
  var LOG$k = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
@@ -22120,6 +22136,7 @@ function getCatalogArticle(article, catalogData) {
22120
22136
  guid: (_article$typeKey = article.typeKey) === null || _article$typeKey === void 0 ? void 0 : _article$typeKey.toString(),
22121
22137
  articleEAN: article.eanNumber,
22122
22138
  typeNr: article.eanNumber,
22139
+ salesNumber: article.salesNumber,
22123
22140
  retailArticleNr: (_article$salesNumber = article.salesNumber) !== null && _article$salesNumber !== void 0 ? _article$salesNumber : catalogData.retailArticleNr,
22124
22141
  configArticleCodex: article.edpNumber,
22125
22142
  decisions: [],
@@ -22248,7 +22265,7 @@ function getAdditionalItemTypeNos(jsonItems, catalogData) {
22248
22265
  var typeNos = new Set();
22249
22266
  if (catalogData.ignoreArticleRelations) return typeNos;
22250
22267
  for (var i = 0; i < jsonItems.length; i++) {
22251
- var _iterator = _createForOfIteratorHelper$j(readAdditionalItemRefs(jsonItems[i])),
22268
+ var _iterator = _createForOfIteratorHelper$k(readAdditionalItemRefs(jsonItems[i])),
22252
22269
  _step;
22253
22270
  try {
22254
22271
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22367,9 +22384,9 @@ function initCatalogPlannerArticleView(catalogData, catPlanArticle, catalogProps
22367
22384
 
22368
22385
  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; }
22369
22386
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22370
- 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; } } }; }
22371
- 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; } }
22372
- 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; }
22387
+ 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; } } }; }
22388
+ 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; } }
22389
+ 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; }
22373
22390
 
22374
22391
  /*
22375
22392
  Diese KLasse enthält Inforamtion zu einem Catalog (C)
@@ -22742,7 +22759,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22742
22759
  value: function getDecisionsByNo() {
22743
22760
  var decisionNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
22744
22761
  var decisions = [];
22745
- var _iterator = _createForOfIteratorHelper$i(decisionNos),
22762
+ var _iterator = _createForOfIteratorHelper$j(decisionNos),
22746
22763
  _step;
22747
22764
  try {
22748
22765
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22786,7 +22803,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22786
22803
  value: function getPricefeaturegroups() {
22787
22804
  var prfgNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
22788
22805
  var groups = [];
22789
- var _iterator2 = _createForOfIteratorHelper$i(prfgNos),
22806
+ var _iterator2 = _createForOfIteratorHelper$j(prfgNos),
22790
22807
  _step2;
22791
22808
  try {
22792
22809
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -23228,6 +23245,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
23228
23245
  get: function get() {
23229
23246
  return this.catalogProps.IDM3DCatCodex;
23230
23247
  }
23248
+ }, {
23249
+ key: "IDM3DTranslation",
23250
+ get: function get() {
23251
+ return this.catalogProps.IDM3DTranslation;
23252
+ }
23231
23253
  }, {
23232
23254
  key: "doCheckConstructionWarnings",
23233
23255
  get: function get() {
@@ -23752,6 +23774,14 @@ var DivaCatalogData = /*#__PURE__*/function () {
23752
23774
  case 'IDM3D_CAT_CODEX':
23753
23775
  _this2.catalogProps.IDM3DCatCodex = item.Value;
23754
23776
  break;
23777
+ case 'IDM3D_TRANSLATION':
23778
+ try {
23779
+ var translation = JSON.parse(item.Value);
23780
+ if (translation !== null && translation !== void 0 && translation.features && _typeof(translation.features) === 'object') _this2.catalogProps.IDM3DTranslation = translation;else LOG$j.warn('Invalid IDM3D_TRANSLATION meta tag - expected a JSON object with a features map');
23781
+ } catch (e) {
23782
+ LOG$j.warn('Invalid IDM3D_TRANSLATION meta tag - expected a JSON object with a features map', e);
23783
+ }
23784
+ break;
23755
23785
  case 'DIVA3D_PLANER_DIGITS':
23756
23786
  _this2.catalogProps.divaPlanerDigits = Number(item.Value);
23757
23787
  break;
@@ -24643,9 +24673,9 @@ var catalogHandlerInstance = new DivaCatalogHandler();
24643
24673
 
24644
24674
  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; }
24645
24675
  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(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; }
24646
- 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; } } }; }
24647
- 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; } }
24648
- 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; }
24676
+ 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; } } }; }
24677
+ 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; } }
24678
+ 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; }
24649
24679
  var ArticleOptionStateData = /*#__PURE__*/function () {
24650
24680
  function ArticleOptionStateData(option, getIsConfigSingle, defaultOPV, useIsOptionDefinedWarning) {
24651
24681
  _classCallCheck(this, ArticleOptionStateData);
@@ -24738,7 +24768,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
24738
24768
  return opv.codex;
24739
24769
  })) !== null && _this$articleOptionSt !== void 0 ? _this$articleOptionSt : [];
24740
24770
  var option = this.option;
24741
- var _iterator = _createForOfIteratorHelper$h(option.articleOptionValues),
24771
+ var _iterator = _createForOfIteratorHelper$i(option.articleOptionValues),
24742
24772
  _step;
24743
24773
  try {
24744
24774
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -24748,7 +24778,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
24748
24778
  if (value.isOPVG) {
24749
24779
  var _opg$articleOptionVal;
24750
24780
  var opg = value;
24751
- var _iterator2 = _createForOfIteratorHelper$h((_opg$articleOptionVal = opg.articleOptionValues) !== null && _opg$articleOptionVal !== void 0 ? _opg$articleOptionVal : new Map()),
24781
+ var _iterator2 = _createForOfIteratorHelper$i((_opg$articleOptionVal = opg.articleOptionValues) !== null && _opg$articleOptionVal !== void 0 ? _opg$articleOptionVal : new Map()),
24752
24782
  _step2;
24753
24783
  try {
24754
24784
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25260,7 +25290,7 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25260
25290
  get: function get() {
25261
25291
  if (!this.option.onlyVisibleIfNotDocked) return undefined;
25262
25292
  var ret = {};
25263
- var _iterator3 = _createForOfIteratorHelper$h(this.visibleOptionValues.keys()),
25293
+ var _iterator3 = _createForOfIteratorHelper$i(this.visibleOptionValues.keys()),
25264
25294
  _step3;
25265
25295
  try {
25266
25296
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -25437,9 +25467,9 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25437
25467
 
25438
25468
  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; }
25439
25469
  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(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; }
25440
- 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; } } }; }
25441
- 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; } }
25442
- 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; }
25470
+ 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; } } }; }
25471
+ 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; } }
25472
+ 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; }
25443
25473
  var LOG$h = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
25444
25474
  var DivaEngine = /*#__PURE__*/function () {
25445
25475
  function DivaEngine(article) {
@@ -25459,7 +25489,7 @@ var DivaEngine = /*#__PURE__*/function () {
25459
25489
  var maxPriceOfGroup = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
25460
25490
  var maxPriceOfGroupCodex = ['', '', '', '', '', '', '', '', '', ''];
25461
25491
  var previousVaraintValues = this.article.VariantValues;
25462
- var _iterator = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
25492
+ var _iterator = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
25463
25493
  _step;
25464
25494
  try {
25465
25495
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25478,7 +25508,7 @@ var DivaEngine = /*#__PURE__*/function () {
25478
25508
  var visibleOptionValues = new Map();
25479
25509
  if (myOpt.hasOPG) {
25480
25510
  var myOPGs = myOpt.articleOptionValues;
25481
- var _iterator2 = _createForOfIteratorHelper$g(myOPGs),
25511
+ var _iterator2 = _createForOfIteratorHelper$h(myOPGs),
25482
25512
  _step2;
25483
25513
  try {
25484
25514
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25488,7 +25518,7 @@ var DivaEngine = /*#__PURE__*/function () {
25488
25518
  var myOPVsInOPG = value.articleOptionValues;
25489
25519
  if (this.checkItemVisibility(value, ops) && myOPVsInOPG) {
25490
25520
  visibleOptionValues.set(value.codex, value);
25491
- var _iterator3 = _createForOfIteratorHelper$g(myOPVsInOPG),
25521
+ var _iterator3 = _createForOfIteratorHelper$h(myOPVsInOPG),
25492
25522
  _step3;
25493
25523
  try {
25494
25524
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -25522,7 +25552,7 @@ var DivaEngine = /*#__PURE__*/function () {
25522
25552
  } else {
25523
25553
  var myOPVs = myOpt.articleOptionValues;
25524
25554
  if (myOPVs) {
25525
- var _iterator4 = _createForOfIteratorHelper$g(myOPVs),
25555
+ var _iterator4 = _createForOfIteratorHelper$h(myOPVs),
25526
25556
  _step4;
25527
25557
  try {
25528
25558
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -25947,7 +25977,7 @@ var DivaEngine = /*#__PURE__*/function () {
25947
25977
  myDecisions[_i].disableHistory = [];
25948
25978
  myDecisions[_i].activeCombination = undefined;
25949
25979
  }
25950
- var _iterator5 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
25980
+ var _iterator5 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
25951
25981
  _step5;
25952
25982
  try {
25953
25983
  var _loop2 = function _loop2() {
@@ -26108,7 +26138,7 @@ var DivaEngine = /*#__PURE__*/function () {
26108
26138
  key: "updateIDMSpecificFeatures",
26109
26139
  value: function updateIDMSpecificFeatures() {
26110
26140
  //updaten idm planner specific options
26111
- var _iterator6 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
26141
+ var _iterator6 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
26112
26142
  _step6;
26113
26143
  try {
26114
26144
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -26369,7 +26399,7 @@ var DivaEngine = /*#__PURE__*/function () {
26369
26399
  var negatedValues = new Set(myDoc.Row[OPT].map(function (v) {
26370
26400
  return v.slice(1);
26371
26401
  })); // remove the '!' from the value
26372
- var _iterator7 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
26402
+ var _iterator7 = _createForOfIteratorHelper$h(ops.visibleOptionValues),
26373
26403
  _step7;
26374
26404
  try {
26375
26405
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -26511,7 +26541,7 @@ var DivaEngine = /*#__PURE__*/function () {
26511
26541
  }, {
26512
26542
  key: "evalShowOnlyWhenHasPrice",
26513
26543
  value: function evalShowOnlyWhenHasPrice() {
26514
- var _iterator8 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
26544
+ var _iterator8 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
26515
26545
  _step8;
26516
26546
  try {
26517
26547
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -27003,7 +27033,7 @@ var DivaEngine = /*#__PURE__*/function () {
27003
27033
  }
27004
27034
 
27005
27035
  //mengen und größenabhängige Preisberechungn.
27006
- var _iterator9 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27036
+ var _iterator9 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27007
27037
  _step9;
27008
27038
  try {
27009
27039
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -27095,7 +27125,7 @@ var DivaEngine = /*#__PURE__*/function () {
27095
27125
  } finally {
27096
27126
  _iterator9.f();
27097
27127
  }
27098
- var _iterator10 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27128
+ var _iterator10 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27099
27129
  _step10;
27100
27130
  try {
27101
27131
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -27133,7 +27163,7 @@ var DivaEngine = /*#__PURE__*/function () {
27133
27163
  return item.PPG && item.PPG.split('_')[0] == targetPrefix;
27134
27164
  });
27135
27165
  if (!priceRef) {
27136
- var _iterator11 = _createForOfIteratorHelper$g(_this6.article.articleOptionStates.values()),
27166
+ var _iterator11 = _createForOfIteratorHelper$h(_this6.article.articleOptionStates.values()),
27137
27167
  _step11;
27138
27168
  try {
27139
27169
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
@@ -27171,7 +27201,7 @@ var DivaEngine = /*#__PURE__*/function () {
27171
27201
  myArticleBasePrice += priceRef.Price ? DivaUtils.decimalAdjust('round', (_priceRef$calcPrice = priceRef.calcPrice) !== null && _priceRef$calcPrice !== void 0 ? _priceRef$calcPrice : priceRef.Price, digits) : 0.0;
27172
27202
  }
27173
27203
  var articleUsedCalcPrice = myArticleBasePrice;
27174
- var _iterator12 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27204
+ var _iterator12 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27175
27205
  _step12;
27176
27206
  try {
27177
27207
  for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
@@ -27186,7 +27216,7 @@ var DivaEngine = /*#__PURE__*/function () {
27186
27216
  } finally {
27187
27217
  _iterator12.f();
27188
27218
  }
27189
- var _iterator13 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27219
+ var _iterator13 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27190
27220
  _step13;
27191
27221
  try {
27192
27222
  for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
@@ -27342,7 +27372,7 @@ var DivaEngine = /*#__PURE__*/function () {
27342
27372
  if (a[i].trim() != '') {
27343
27373
  var searchOpt = 'OPT' + a[i].trim();
27344
27374
  //Optionsbaum des Artikels durchsuchen
27345
- var _iterator14 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27375
+ var _iterator14 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27346
27376
  _step14;
27347
27377
  try {
27348
27378
  for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
@@ -27403,12 +27433,12 @@ var DivaEngine = /*#__PURE__*/function () {
27403
27433
  }
27404
27434
 
27405
27435
  // this functions updates the images of OPVs that depend on rules
27406
- var _iterator15 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27436
+ var _iterator15 = _createForOfIteratorHelper$h(this.article.articleOptionStates.values()),
27407
27437
  _step15;
27408
27438
  try {
27409
27439
  for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
27410
27440
  var ops = _step15.value;
27411
- var _iterator16 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
27441
+ var _iterator16 = _createForOfIteratorHelper$h(ops.visibleOptionValues),
27412
27442
  _step16;
27413
27443
  try {
27414
27444
  for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
@@ -27540,9 +27570,9 @@ var DivaEngine = /*#__PURE__*/function () {
27540
27570
 
27541
27571
  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; }
27542
27572
  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(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; }
27543
- 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; } } }; }
27544
- 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; } }
27545
- 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; }
27573
+ 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; } } }; }
27574
+ 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; } }
27575
+ 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; }
27546
27576
  var LOG$g = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
27547
27577
  var IDMEngine = /*#__PURE__*/function () {
27548
27578
  function IDMEngine(article) {
@@ -27583,7 +27613,7 @@ var IDMEngine = /*#__PURE__*/function () {
27583
27613
  var unsortedDecisons = this.article.initDecisions ? ownDecisions.concat(this.article.initDecisions) : _toConsumableArray(ownDecisions);
27584
27614
  //a decision only an ENABLE/DISABLE_DECISION action points at takes part but starts disabled, so it applies
27585
27615
  //only while that action matches - as a copy, so neither flag nor prio leaks to another article
27586
- var _iterator = _createForOfIteratorHelper$f(this.getDecisionsReferencedByActions(unsortedDecisons)),
27616
+ var _iterator = _createForOfIteratorHelper$g(this.getDecisionsReferencedByActions(unsortedDecisons)),
27587
27617
  _step;
27588
27618
  try {
27589
27619
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -27610,14 +27640,14 @@ var IDMEngine = /*#__PURE__*/function () {
27610
27640
  while (toScan.length) {
27611
27641
  var _decision$optionCombi;
27612
27642
  var decision = toScan.shift();
27613
- var _iterator2 = _createForOfIteratorHelper$f((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []),
27643
+ var _iterator2 = _createForOfIteratorHelper$g((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []),
27614
27644
  _step2;
27615
27645
  try {
27616
27646
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
27617
27647
  var _combination$projectA, _combination$projectA2, _combination$projectA3, _combination$projectA4;
27618
27648
  var combination = _step2.value;
27619
27649
  var refs = [].concat(_toConsumableArray((_combination$projectA = (_combination$projectA2 = combination.projectActions) === null || _combination$projectA2 === void 0 ? void 0 : _combination$projectA2.disableDecision) !== null && _combination$projectA !== void 0 ? _combination$projectA : []), _toConsumableArray((_combination$projectA3 = (_combination$projectA4 = combination.projectActions) === null || _combination$projectA4 === void 0 ? void 0 : _combination$projectA4.enableDecision) !== null && _combination$projectA3 !== void 0 ? _combination$projectA3 : []));
27620
- var _iterator3 = _createForOfIteratorHelper$f(refs),
27650
+ var _iterator3 = _createForOfIteratorHelper$g(refs),
27621
27651
  _step3;
27622
27652
  try {
27623
27653
  var _loop = function _loop() {
@@ -27670,7 +27700,7 @@ var IDMEngine = /*#__PURE__*/function () {
27670
27700
  prices: []
27671
27701
  });
27672
27702
  }
27673
- var _iterator4 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
27703
+ var _iterator4 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27674
27704
  _step4;
27675
27705
  try {
27676
27706
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -27693,7 +27723,7 @@ var IDMEngine = /*#__PURE__*/function () {
27693
27723
  decisions[i].disableHistory = [];
27694
27724
  decisions[i].activeCombination = undefined;
27695
27725
  }
27696
- var _iterator5 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
27726
+ var _iterator5 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
27697
27727
  _step5;
27698
27728
  try {
27699
27729
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -27753,7 +27783,7 @@ var IDMEngine = /*#__PURE__*/function () {
27753
27783
  key: "decisionStateSnapshot",
27754
27784
  value: function decisionStateSnapshot(decisions) {
27755
27785
  var ret = {};
27756
- var _iterator6 = _createForOfIteratorHelper$f(decisions),
27786
+ var _iterator6 = _createForOfIteratorHelper$g(decisions),
27757
27787
  _step6;
27758
27788
  try {
27759
27789
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -27845,7 +27875,7 @@ var IDMEngine = /*#__PURE__*/function () {
27845
27875
  var decisionsToEval = decisions.filter(function (decision) {
27846
27876
  return relevantDecisions.includes(decision) || controllingDecisions.includes(decision);
27847
27877
  });
27848
- var _iterator7 = _createForOfIteratorHelper$f(decisionsToEval),
27878
+ var _iterator7 = _createForOfIteratorHelper$g(decisionsToEval),
27849
27879
  _step7;
27850
27880
  try {
27851
27881
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -27859,13 +27889,13 @@ var IDMEngine = /*#__PURE__*/function () {
27859
27889
  } finally {
27860
27890
  _iterator7.f();
27861
27891
  }
27862
- var _iterator8 = _createForOfIteratorHelper$f(relevantDecisions),
27892
+ var _iterator8 = _createForOfIteratorHelper$g(relevantDecisions),
27863
27893
  _step8;
27864
27894
  try {
27865
27895
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
27866
27896
  var _decision$featureRefs2;
27867
27897
  var _decision = _step8.value;
27868
- var _iterator10 = _createForOfIteratorHelper$f((_decision$featureRefs2 = _decision.featureRefs) !== null && _decision$featureRefs2 !== void 0 ? _decision$featureRefs2 : []),
27898
+ var _iterator10 = _createForOfIteratorHelper$g((_decision$featureRefs2 = _decision.featureRefs) !== null && _decision$featureRefs2 !== void 0 ? _decision$featureRefs2 : []),
27869
27899
  _step10;
27870
27900
  try {
27871
27901
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
@@ -27884,7 +27914,7 @@ var IDMEngine = /*#__PURE__*/function () {
27884
27914
  } finally {
27885
27915
  _iterator8.f();
27886
27916
  }
27887
- var _iterator9 = _createForOfIteratorHelper$f(decisionsToEval),
27917
+ var _iterator9 = _createForOfIteratorHelper$g(decisionsToEval),
27888
27918
  _step9;
27889
27919
  try {
27890
27920
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -27934,7 +27964,7 @@ var IDMEngine = /*#__PURE__*/function () {
27934
27964
  var _decision$featureRefs3;
27935
27965
  return decision.decisionType != 2 && ((_decision$featureRefs3 = decision.featureRefs) === null || _decision$featureRefs3 === void 0 ? void 0 : _decision$featureRefs3.includes(targetFeatureNo));
27936
27966
  });
27937
- var _iterator11 = _createForOfIteratorHelper$f(influencing),
27967
+ var _iterator11 = _createForOfIteratorHelper$g(influencing),
27938
27968
  _step11;
27939
27969
  try {
27940
27970
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
@@ -27975,7 +28005,7 @@ var IDMEngine = /*#__PURE__*/function () {
27975
28005
 
27976
28006
  // Pool per decision = UNION of matching rows' target options; successive decisions INTERSECT (mirrors evalType1Decision).
27977
28007
  var pool = undefined;
27978
- var _iterator12 = _createForOfIteratorHelper$f(influencing),
28008
+ var _iterator12 = _createForOfIteratorHelper$g(influencing),
27979
28009
  _step12;
27980
28010
  try {
27981
28011
  for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
@@ -27983,7 +28013,7 @@ var IDMEngine = /*#__PURE__*/function () {
27983
28013
  var _decision3 = _step12.value;
27984
28014
  var decisionPool = new Set();
27985
28015
  var anyRowMatched = false;
27986
- var _iterator14 = _createForOfIteratorHelper$f((_decision3$optionComb = _decision3.optionCombinations) !== null && _decision3$optionComb !== void 0 ? _decision3$optionComb : []),
28016
+ var _iterator14 = _createForOfIteratorHelper$g((_decision3$optionComb = _decision3.optionCombinations) !== null && _decision3$optionComb !== void 0 ? _decision3$optionComb : []),
27987
28017
  _step14;
27988
28018
  try {
27989
28019
  for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
@@ -28002,7 +28032,7 @@ var IDMEngine = /*#__PURE__*/function () {
28002
28032
  // the static pool cannot express that, so leave this feature to the reconfiguration fallback.
28003
28033
  if (!((_targetRef$options = targetRef.options) !== null && _targetRef$options !== void 0 && _targetRef$options.length)) return undefined;
28004
28034
  anyRowMatched = true;
28005
- var _iterator15 = _createForOfIteratorHelper$f(targetRef.options),
28035
+ var _iterator15 = _createForOfIteratorHelper$g(targetRef.options),
28006
28036
  _step15;
28007
28037
  try {
28008
28038
  for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
@@ -28040,7 +28070,7 @@ var IDMEngine = /*#__PURE__*/function () {
28040
28070
  return !allValues.has(key);
28041
28071
  })) return undefined;
28042
28072
  var result = new Map();
28043
- var _iterator13 = _createForOfIteratorHelper$f(allValues),
28073
+ var _iterator13 = _createForOfIteratorHelper$g(allValues),
28044
28074
  _step13;
28045
28075
  try {
28046
28076
  for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
@@ -28349,7 +28379,7 @@ var IDMEngine = /*#__PURE__*/function () {
28349
28379
  key: "evalDisableDecision",
28350
28380
  value: function evalDisableDecision(actions, decision, allDecisions, disable) {
28351
28381
  var verb = disable ? 'disabled' : 'enabled';
28352
- var _iterator16 = _createForOfIteratorHelper$f(actions),
28382
+ var _iterator16 = _createForOfIteratorHelper$g(actions),
28353
28383
  _step16;
28354
28384
  try {
28355
28385
  var _loop6 = function _loop6() {
@@ -28377,7 +28407,7 @@ var IDMEngine = /*#__PURE__*/function () {
28377
28407
  }, {
28378
28408
  key: "evalSetFeatureVisible",
28379
28409
  value: function evalSetFeatureVisible(actions, hasSetFeatureInvisible, invisible) {
28380
- var _iterator17 = _createForOfIteratorHelper$f(actions),
28410
+ var _iterator17 = _createForOfIteratorHelper$g(actions),
28381
28411
  _step17;
28382
28412
  try {
28383
28413
  for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
@@ -28396,7 +28426,7 @@ var IDMEngine = /*#__PURE__*/function () {
28396
28426
  }, {
28397
28427
  key: "evalSetFeatureDefault",
28398
28428
  value: function evalSetFeatureDefault(actions, decision, isNull) {
28399
- var _iterator18 = _createForOfIteratorHelper$f(actions),
28429
+ var _iterator18 = _createForOfIteratorHelper$g(actions),
28400
28430
  _step18;
28401
28431
  try {
28402
28432
  for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
@@ -28433,7 +28463,7 @@ var IDMEngine = /*#__PURE__*/function () {
28433
28463
  }, {
28434
28464
  key: "evalSetFeature",
28435
28465
  value: function evalSetFeature(actions, decision, isFixed) {
28436
- var _iterator19 = _createForOfIteratorHelper$f(actions),
28466
+ var _iterator19 = _createForOfIteratorHelper$g(actions),
28437
28467
  _step19;
28438
28468
  try {
28439
28469
  for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
@@ -29117,20 +29147,20 @@ var IDMEngine = /*#__PURE__*/function () {
29117
29147
  var cached = this.featureDefaultIndex;
29118
29148
  if (cached && cached.sources[0] === sources[0] && cached.sources[1] === sources[1]) return cached.byFeature;
29119
29149
  var byFeature = new Map();
29120
- var _iterator20 = _createForOfIteratorHelper$f(this.decisions),
29150
+ var _iterator20 = _createForOfIteratorHelper$g(this.decisions),
29121
29151
  _step20;
29122
29152
  try {
29123
29153
  for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
29124
29154
  var _decision$optionCombi6;
29125
29155
  var decision = _step20.value;
29126
29156
  if (decision.decisionType !== 2) continue;
29127
- var _iterator21 = _createForOfIteratorHelper$f((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
29157
+ var _iterator21 = _createForOfIteratorHelper$g((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
29128
29158
  _step21;
29129
29159
  try {
29130
29160
  for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
29131
29161
  var _combination$projectA10, _combination$projectA11;
29132
29162
  var combination = _step21.value;
29133
- 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 : []),
29163
+ 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 : []),
29134
29164
  _step22;
29135
29165
  try {
29136
29166
  for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
@@ -29172,7 +29202,7 @@ var IDMEngine = /*#__PURE__*/function () {
29172
29202
  value: function setFeatureDefaultKey(featureNo) {
29173
29203
  var decisions = this.type2DefaultsByFeature().get(featureNo);
29174
29204
  if (!decisions) return undefined;
29175
- var _iterator23 = _createForOfIteratorHelper$f(decisions),
29205
+ var _iterator23 = _createForOfIteratorHelper$g(decisions),
29176
29206
  _step23;
29177
29207
  try {
29178
29208
  for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
@@ -29213,7 +29243,7 @@ var IDMEngine = /*#__PURE__*/function () {
29213
29243
  key: "updateIDMSpecificFeatures",
29214
29244
  value: function updateIDMSpecificFeatures() {
29215
29245
  //updaten idm planner specific options
29216
- var _iterator24 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
29246
+ var _iterator24 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
29217
29247
  _step24;
29218
29248
  try {
29219
29249
  for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
@@ -29329,7 +29359,7 @@ var IDMEngine = /*#__PURE__*/function () {
29329
29359
  key: "getConditionValuesOfCombination",
29330
29360
  value: function getConditionValuesOfCombination(combination, featureNo, optionKey) {
29331
29361
  var variantValues = {};
29332
- var _iterator25 = _createForOfIteratorHelper$f(combination.projectOptionsSetRefs),
29362
+ var _iterator25 = _createForOfIteratorHelper$g(combination.projectOptionsSetRefs),
29333
29363
  _step25;
29334
29364
  try {
29335
29365
  for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
@@ -29370,13 +29400,13 @@ var IDMEngine = /*#__PURE__*/function () {
29370
29400
  })) return false;
29371
29401
  return _this8.decisionRemovesOption(restriction, featureNo, optionKey);
29372
29402
  };
29373
- var _iterator26 = _createForOfIteratorHelper$f(articleDecisions),
29403
+ var _iterator26 = _createForOfIteratorHelper$g(articleDecisions),
29374
29404
  _step26;
29375
29405
  try {
29376
29406
  for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
29377
29407
  var gate = _step26.value;
29378
29408
  if (gate.decisionType != 2) continue;
29379
- var _iterator27 = _createForOfIteratorHelper$f(gate.optionCombinations),
29409
+ var _iterator27 = _createForOfIteratorHelper$g(gate.optionCombinations),
29380
29410
  _step27;
29381
29411
  try {
29382
29412
  for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
@@ -29422,7 +29452,7 @@ var IDMEngine = /*#__PURE__*/function () {
29422
29452
  key: "getValuesNotMatchingCombination",
29423
29453
  value: function getValuesNotMatchingCombination(combination) {
29424
29454
  var variantValuesArr = [];
29425
- var _iterator28 = _createForOfIteratorHelper$f(combination.projectOptionsSetRefs),
29455
+ var _iterator28 = _createForOfIteratorHelper$g(combination.projectOptionsSetRefs),
29426
29456
  _step28;
29427
29457
  try {
29428
29458
  for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
@@ -29432,7 +29462,7 @@ var IDMEngine = /*#__PURE__*/function () {
29432
29462
  var conditionFeatureNo = optionSetRef.featureNo.toString();
29433
29463
  var ops = this.article.getArticleOptionState(conditionFeatureNo);
29434
29464
  if (!ops) continue;
29435
- var _iterator29 = _createForOfIteratorHelper$f(ops.visibleOPVKeys),
29465
+ var _iterator29 = _createForOfIteratorHelper$g(ops.visibleOPVKeys),
29436
29466
  _step29;
29437
29467
  try {
29438
29468
  for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
@@ -29543,12 +29573,12 @@ var IDMEngine = /*#__PURE__*/function () {
29543
29573
  }
29544
29574
 
29545
29575
  // this functions updates the images of OPVs that depend on rules
29546
- var _iterator30 = _createForOfIteratorHelper$f(this.article.articleOptionStates.values()),
29576
+ var _iterator30 = _createForOfIteratorHelper$g(this.article.articleOptionStates.values()),
29547
29577
  _step30;
29548
29578
  try {
29549
29579
  for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
29550
29580
  var ops = _step30.value;
29551
- var _iterator31 = _createForOfIteratorHelper$f(ops.visibleOptionValues),
29581
+ var _iterator31 = _createForOfIteratorHelper$g(ops.visibleOptionValues),
29552
29582
  _step31;
29553
29583
  try {
29554
29584
  for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
@@ -29699,6 +29729,154 @@ var IDMEngine = /*#__PURE__*/function () {
29699
29729
  }]);
29700
29730
  }();
29701
29731
 
29732
+ 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; } } }; }
29733
+ 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; } }
29734
+ 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; }
29735
+ /**
29736
+ * Feature property naming the Diomex properties a feature feeds, e.g. `13,15/L2`. `<group>@@<property>` scopes a
29737
+ * property to one partlist group of the set, e.g. `PrRef_Füsse@@13` for the wood of the feet only.
29738
+ */
29739
+ var IDM3D_TARGET = 'IDM3D_TARGET';
29740
+ var GROUP_SEPARATOR = '@@';
29741
+ /**
29742
+ * Option value property: either the value sent to every target of the feature (`96`), explicit
29743
+ * `<target>=<value>` pairs separated by `;` that replace the feature's targets for this value (`65=7428.0XXXXXXXXXXXX`),
29744
+ * or `SKIP` for a value the supplier's 3D catalog does not know (nothing is sent instead of our own key).
29745
+ */
29746
+ var IDM3D_VALUE = 'IDM3D_VALUE';
29747
+ var IDM3D_SKIP = 'SKIP';
29748
+
29749
+ /** One selected value of the article tree together with its raw feature and value properties. */
29750
+
29751
+ // the parsers also accept the codex prefixed with its catalog codex (`<catalogCodex>__IDM3D_TARGET`)
29752
+ var findProperty = function findProperty(properties, codex) {
29753
+ var _properties$find;
29754
+ return (_properties$find = properties.find(function (p) {
29755
+ return p.Codex === codex || p.Codex.endsWith('__' + codex);
29756
+ })) === null || _properties$find === void 0 ? void 0 : _properties$find.Value;
29757
+ };
29758
+ var normalizeTarget = function normalizeTarget(target) {
29759
+ return target.includes('/L') ? target : target + '/L1';
29760
+ };
29761
+
29762
+ /** `PrRef_Füsse@@13` -> [`PrRef_Füsse`, `13`]; a target without group -> [undefined, target]. */
29763
+ var splitGroup = function splitGroup(target) {
29764
+ var at = target.indexOf(GROUP_SEPARATOR);
29765
+ return at === -1 ? [undefined, target] : [target.slice(0, at), target.slice(at + GROUP_SEPARATOR.length)];
29766
+ };
29767
+ var parsePairs = function parsePairs(pairs) {
29768
+ return pairs.split(';').filter(function (pair) {
29769
+ return pair.includes('=');
29770
+ }).map(function (pair) {
29771
+ var _pair$split = pair.split('='),
29772
+ _pair$split2 = _slicedToArray(_pair$split, 2),
29773
+ target = _pair$split2[0],
29774
+ value = _pair$split2[1];
29775
+ return {
29776
+ target: target.trim(),
29777
+ value: value.trim()
29778
+ };
29779
+ });
29780
+ };
29781
+
29782
+ /**
29783
+ * Translates the selected values of an article tree into the flat configuration the supplier's IDM3D engine
29784
+ * expects: only values with a target are sent and every supplier feature at most once (Unity adds them to a
29785
+ * dictionary). Visible values win over hidden ones; within each, explicit `<target>=<value>` pairs of an option value
29786
+ * win over the generic targets of a feature; otherwise the first source wins, so pass the preferred values first.
29787
+ */
29788
+ function translateToIDM3DConfig(sources, model, translation) {
29789
+ var _translation$setChild, _translation$setChild2, _model$split$;
29790
+ 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 : {};
29791
+ // [visible explicit, visible generic, hidden explicit, hidden generic]
29792
+ var tiers = [[], [], [], []];
29793
+ var _iterator = _createForOfIteratorHelper$f(sources),
29794
+ _step;
29795
+ try {
29796
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
29797
+ var source = _step.value;
29798
+ var tier = source.hidden ? 2 : 0;
29799
+ var override = findProperty(source.valueProperties, IDM3D_VALUE);
29800
+ if (override === IDM3D_SKIP) continue;
29801
+ if (override !== null && override !== void 0 && override.includes('=')) {
29802
+ var _tiers$tier;
29803
+ (_tiers$tier = tiers[tier]).push.apply(_tiers$tier, _toConsumableArray(parsePairs(override)));
29804
+ continue;
29805
+ }
29806
+ var targets = findProperty(source.featureProperties, IDM3D_TARGET);
29807
+ if (!targets) continue;
29808
+ var _iterator3 = _createForOfIteratorHelper$f(targets.split(',')),
29809
+ _step3;
29810
+ try {
29811
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
29812
+ var target = _step3.value;
29813
+ tiers[tier + 1].push({
29814
+ target: target.trim(),
29815
+ value: override !== null && override !== void 0 ? override : source.value
29816
+ });
29817
+ }
29818
+ } catch (err) {
29819
+ _iterator3.e(err);
29820
+ } finally {
29821
+ _iterator3.f();
29822
+ }
29823
+ }
29824
+ } catch (err) {
29825
+ _iterator.e(err);
29826
+ } finally {
29827
+ _iterator.f();
29828
+ }
29829
+ var config = new Map();
29830
+ var _iterator2 = _createForOfIteratorHelper$f(tiers.flat()),
29831
+ _step2;
29832
+ try {
29833
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
29834
+ var _setChildren$value, _translation$features;
29835
+ var _step2$value = _step2.value,
29836
+ _target = _step2$value.target,
29837
+ value = _step2$value.value;
29838
+ // the set's own key for this child replaces the plain child
29839
+ var setValue = (_setChildren$value = setChildren[value]) !== null && _setChildren$value !== void 0 ? _setChildren$value : value;
29840
+ var _splitGroup = splitGroup(_target),
29841
+ _splitGroup2 = _slicedToArray(_splitGroup, 2),
29842
+ group = _splitGroup2[0],
29843
+ property = _splitGroup2[1];
29844
+ var _iterator4 = _createForOfIteratorHelper$f((_translation$features = translation.features[normalizeTarget(property)]) !== null && _translation$features !== void 0 ? _translation$features : []),
29845
+ _step4;
29846
+ try {
29847
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
29848
+ var featureNo = _step4.value;
29849
+ // the engine reads `<group>|<featureNo>` as its state `<group>@@<property>`, e.g. the wood of the feet only
29850
+ var key = group ? group + '|' + featureNo : featureNo;
29851
+ if (!config.has(key)) config.set(key, {
29852
+ featureNo: featureNo,
29853
+ value: setValue
29854
+ });
29855
+ }
29856
+ } catch (err) {
29857
+ _iterator4.e(err);
29858
+ } finally {
29859
+ _iterator4.f();
29860
+ }
29861
+ }
29862
+ } catch (err) {
29863
+ _iterator2.e(err);
29864
+ } finally {
29865
+ _iterator2.f();
29866
+ }
29867
+ return Array.from(config, function (_ref) {
29868
+ var _ref2 = _slicedToArray(_ref, 2),
29869
+ key = _ref2[0],
29870
+ _ref2$ = _ref2[1],
29871
+ featureNo = _ref2$.featureNo,
29872
+ value = _ref2$.value;
29873
+ return {
29874
+ OPT: 'OPT' + key,
29875
+ OPV: 'OPV' + featureNo + '_' + value
29876
+ };
29877
+ });
29878
+ }
29879
+
29702
29880
  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; } } }; }
29703
29881
  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; } }
29704
29882
  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; }
@@ -32681,7 +32859,7 @@ var DivaArticle = /*#__PURE__*/function () {
32681
32859
  break;
32682
32860
  }
32683
32861
  _context.next = 4;
32684
- return import('./ShelfPlanner-f3a02665.js');
32862
+ return import('./ShelfPlanner-9f76f2ea.js');
32685
32863
  case 4:
32686
32864
  _yield$import = _context.sent;
32687
32865
  ShelfPlanner = _yield$import["default"];
@@ -32788,7 +32966,7 @@ var DivaArticle = /*#__PURE__*/function () {
32788
32966
  }
32789
32967
  }, {
32790
32968
  key: "getValidValues",
32791
- value: function getValidValues(myValues, mergeOptionToSameOption, setConfigDoesOverWrite) {
32969
+ value: function getValidValues(myValues, mergeOptionToSameOption, setConfigDoesOverWrite, skipSetConfigOfUnchangedValues) {
32792
32970
  var validValues = {};
32793
32971
  if (mergeOptionToSameOption) {
32794
32972
  for (var i = 0; i < mergeOptionToSameOption.length; i++) {
@@ -32807,7 +32985,8 @@ var DivaArticle = /*#__PURE__*/function () {
32807
32985
  var ops = this.getArticleOptionState(_key);
32808
32986
  if (!ops) continue;
32809
32987
  var opv = ops === null || ops === void 0 ? void 0 : ops.visibleOptionValues.get(myValues[_key]);
32810
- if (opv) {
32988
+ // 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.
32989
+ if (opv && !(skipSetConfigOfUnchangedValues && ops.valCodex === opv.codex)) {
32811
32990
  var value = opv.setConfig;
32812
32991
  if (value) {
32813
32992
  for (var _i3 = 0; _i3 < value.split(';').length; _i3++) {
@@ -32890,7 +33069,8 @@ var DivaArticle = /*#__PURE__*/function () {
32890
33069
  ArtNr: this.article.catalogArticle.articleCodex,
32891
33070
  CFG: []
32892
33071
  };
32893
- this.addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo);
33072
+ var idm3DTranslation = this.CatalogData.isIDM3DCat ? this.CatalogData.IDM3DTranslation : undefined;
33073
+ if (idm3DTranslation) ret.CFG = translateToIDM3DConfig(this.getIDM3DSources(alternateRenderInfo), this.model3DName, idm3DTranslation);else this.addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo);
32894
33074
  ret.CFG.push({
32895
33075
  OPT: 'QUANTITY',
32896
33076
  OPV: this.quantity.toString()
@@ -32923,22 +33103,67 @@ var DivaArticle = /*#__PURE__*/function () {
32923
33103
  config: ret
32924
33104
  };
32925
33105
  }
33106
+
33107
+ /** Whether this article or one of its partlist parents is excluded from the IDM3D translation (item property IDM3D_SKIP). */
33108
+ }, {
33109
+ key: "isIDM3DSkipped",
33110
+ get: function get() {
33111
+ var _this$partListParentA12;
33112
+ return this.catalogArticle.isIDM3DSkipped || !!((_this$partListParentA12 = this.partListParentArticle) !== null && _this$partListParentA12 !== void 0 && _this$partListParentA12.isIDM3DSkipped);
33113
+ }
33114
+
33115
+ /**
33116
+ * Selected values of this article and its whole partlist tree as input for the IDM3D translation, main article first.
33117
+ * Hidden values are flagged so a hidden leftover (e.g. the default of a step the customer cannot see) never outranks
33118
+ * a choice for the same Diomex property. Options an alternate rendering hides from the 3D image are left out.
33119
+ */
33120
+ }, {
33121
+ key: "getIDM3DSources",
33122
+ value: function getIDM3DSources(alternateRenderInfo) {
33123
+ var sources = [];
33124
+ for (var _i4 = 0, _arr = [this].concat(_toConsumableArray(this.partlistArticlesReqursive)); _i4 < _arr.length; _i4++) {
33125
+ var article = _arr[_i4];
33126
+ if (article.isIDM3DSkipped) continue;
33127
+ var _iterator38 = _createForOfIteratorHelper$e(article.getArticleOptionStatesWithOptionsForPrint().values()),
33128
+ _step38;
33129
+ try {
33130
+ for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
33131
+ var _ops$option$ocd, _ops$option$property, _ops$option$catalogPr, _ops$val$ocd3, _ops$val$property, _ops$val$properties;
33132
+ var ops = _step38.value;
33133
+ if (!ops.val || article.isPartListArticle && ops.val.isNotRelevant) continue;
33134
+ var opt = (article.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
33135
+ if (alternateRenderInfo !== null && alternateRenderInfo !== void 0 && alternateRenderInfo.hideOptionsIn3DImage.includes(opt)) continue;
33136
+ sources.push({
33137
+ featureProperties: [].concat(_toConsumableArray((_ops$option$property = ops.option.property) !== null && _ops$option$property !== void 0 ? _ops$option$property : []), _toConsumableArray((_ops$option$catalogPr = ops.option.catalogProperty) !== null && _ops$option$catalogPr !== void 0 ? _ops$option$catalogPr : [])),
33138
+ value: (_ops$val$ocd3 = ops.val.ocd) !== null && _ops$val$ocd3 !== void 0 ? _ops$val$ocd3 : ops.val.codex,
33139
+ valueProperties: [].concat(_toConsumableArray((_ops$val$property = ops.val.property) !== null && _ops$val$property !== void 0 ? _ops$val$property : []), _toConsumableArray((_ops$val$properties = ops.val.properties) !== null && _ops$val$properties !== void 0 ? _ops$val$properties : [])),
33140
+ hidden: ops.isInvisible
33141
+ });
33142
+ }
33143
+ } catch (err) {
33144
+ _iterator38.e(err);
33145
+ } finally {
33146
+ _iterator38.f();
33147
+ }
33148
+ }
33149
+ return sources;
33150
+ }
32926
33151
  }, {
32927
33152
  key: "addOptionStateFromArticleToPlannerData",
32928
33153
  value: function addOptionStateFromArticleToPlannerData(ret, alternateRenderInfo, partlistPrefix) {
32929
33154
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
32930
- var _iterator38 = _createForOfIteratorHelper$e(articleOptions.values()),
32931
- _step38;
33155
+ var _iterator39 = _createForOfIteratorHelper$e(articleOptions.values()),
33156
+ _step39;
32932
33157
  try {
32933
- for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) {
33158
+ for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
32934
33159
  var _ops$val5;
32935
- var ops = _step38.value;
33160
+ var ops = _step39.value;
32936
33161
  if (!this.article.isPartlistArticle || !((_ops$val5 = ops.val) !== null && _ops$val5 !== void 0 && _ops$val5.isNotRelevant)) this.addOptionStateToPlannerData(ret, ops, alternateRenderInfo, partlistPrefix);
32937
33162
  }
32938
33163
  } catch (err) {
32939
- _iterator38.e(err);
33164
+ _iterator39.e(err);
32940
33165
  } finally {
32941
- _iterator38.f();
33166
+ _iterator39.f();
32942
33167
  }
32943
33168
  for (var key in this.article.partlistArticles) {
32944
33169
  var _pla$partlistGroupPre;
@@ -32954,9 +33179,9 @@ var DivaArticle = /*#__PURE__*/function () {
32954
33179
  var opv;
32955
33180
  var opt;
32956
33181
  if (ops.val) {
32957
- var _ops$option$ocd, _ops$option$ocd2, _ops$val$ocd3, _ops$val$properties;
32958
- opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd = ops.option.ocd) !== null && _ops$option$ocd !== void 0 ? _ops$option$ocd : ops.optionCodex);
32959
- 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);
33182
+ var _ops$option$ocd2, _ops$option$ocd3, _ops$val$ocd4, _ops$val$properties2;
33183
+ opt = (this.CatalogData.isIDMFormat ? 'OPT' : '') + ((_ops$option$ocd2 = ops.option.ocd) !== null && _ops$option$ocd2 !== void 0 ? _ops$option$ocd2 : ops.optionCodex);
33184
+ 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);
32960
33185
  if (this.CatalogData.isIDM3DCat && ops.val.vCodex) opv = 'OPV' + ops.idmVariantenArt + '_' + ops.val.vCodex;
32961
33186
  if (alternateRenderInfo != undefined && alternateRenderInfo.hideOptionsIn3DImage.includes(opt)) return;
32962
33187
  ret.CFG.push({
@@ -32970,7 +33195,7 @@ var DivaArticle = /*#__PURE__*/function () {
32970
33195
  OPV: ops.freeText
32971
33196
  });
32972
33197
  }
32973
- var divaDataEngineMat = (_ops$val$properties = ops.val.properties) === null || _ops$val$properties === void 0 ? void 0 : _ops$val$properties.find(function (prop) {
33198
+ var divaDataEngineMat = (_ops$val$properties2 = ops.val.properties) === null || _ops$val$properties2 === void 0 ? void 0 : _ops$val$properties2.find(function (prop) {
32974
33199
  return prop.Codex == 'TEXTURENAME';
32975
33200
  });
32976
33201
  if (!ret.MAT) {
@@ -33000,11 +33225,11 @@ var DivaArticle = /*#__PURE__*/function () {
33000
33225
  key: "getAccessoireMATData",
33001
33226
  value: function getAccessoireMATData(onString) {
33002
33227
  var MAT = [];
33003
- var _iterator39 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33004
- _step39;
33228
+ var _iterator40 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33229
+ _step40;
33005
33230
  try {
33006
- for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) {
33007
- var ops = _step39.value;
33231
+ for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
33232
+ var ops = _step40.value;
33008
33233
  var opt = void 0;
33009
33234
  if (!ops.val) continue;
33010
33235
  opt = ops.optionCodex;
@@ -33017,9 +33242,9 @@ var DivaArticle = /*#__PURE__*/function () {
33017
33242
  });
33018
33243
  }
33019
33244
  } catch (err) {
33020
- _iterator39.e(err);
33245
+ _iterator40.e(err);
33021
33246
  } finally {
33022
- _iterator39.f();
33247
+ _iterator40.f();
33023
33248
  }
33024
33249
  return MAT;
33025
33250
  }
@@ -33063,11 +33288,11 @@ var DivaArticle = /*#__PURE__*/function () {
33063
33288
  value: function getVariantBasketData() {
33064
33289
  var variantBasketData = [];
33065
33290
  var articleOptions = this.getArticleOptionStatesWithOptionsForPrint();
33066
- var _iterator40 = _createForOfIteratorHelper$e(articleOptions.values()),
33067
- _step40;
33291
+ var _iterator41 = _createForOfIteratorHelper$e(articleOptions.values()),
33292
+ _step41;
33068
33293
  try {
33069
- for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) {
33070
- var ops = _step40.value;
33294
+ for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
33295
+ var ops = _step41.value;
33071
33296
  var OP = ops.optionCodex;
33072
33297
  if (ops) {
33073
33298
  var _ops$idmVariantenArt2;
@@ -33135,9 +33360,9 @@ var DivaArticle = /*#__PURE__*/function () {
33135
33360
  }
33136
33361
  }
33137
33362
  } catch (err) {
33138
- _iterator40.e(err);
33363
+ _iterator41.e(err);
33139
33364
  } finally {
33140
- _iterator40.f();
33365
+ _iterator41.f();
33141
33366
  }
33142
33367
  return variantBasketData;
33143
33368
  }
@@ -33170,11 +33395,11 @@ var DivaArticle = /*#__PURE__*/function () {
33170
33395
  if (checkPrice.IsPercentage) {
33171
33396
  //Check if variantBasketdata is set as addPercentage
33172
33397
  //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.
33173
- for (var _i4 = 0; _i4 < VariantBasketDatas.length; _i4++) {
33398
+ for (var _i5 = 0; _i5 < VariantBasketDatas.length; _i5++) {
33174
33399
  var priceOPT = checkPrice.OPT.startsWith('OPT') ? checkPrice.OPT.substring(3) : checkPrice;
33175
- if (VariantBasketDatas[_i4].OPT == priceOPT) {
33400
+ if (VariantBasketDatas[_i5].OPT == priceOPT) {
33176
33401
  if (!isNaN(checkPrice.Price)) {
33177
- VariantBasketDatas[_i4].AddPercentage = checkPrice.Price * 100;
33402
+ VariantBasketDatas[_i5].AddPercentage = checkPrice.Price * 100;
33178
33403
  }
33179
33404
  }
33180
33405
  }
@@ -33191,18 +33416,18 @@ var DivaArticle = /*#__PURE__*/function () {
33191
33416
  var maxPrice = 0,
33192
33417
  maxPriceOPT = '';
33193
33418
  if (!myPriceData.BasePrice && !this.CatalogData.ignoreMaxPriceAsBP) {
33194
- for (var _i5 = 0; _i5 < VariantBasketDatas.length; _i5++) {
33195
- var variant = VariantBasketDatas[_i5];
33419
+ for (var _i6 = 0; _i6 < VariantBasketDatas.length; _i6++) {
33420
+ var variant = VariantBasketDatas[_i6];
33196
33421
  if (variant.AddPrice && (!variant.AddPrice || variant.AddPrice > maxPrice)) {
33197
33422
  maxPrice = variant.AddPrice;
33198
33423
  maxPriceOPT = variant.OPT;
33199
33424
  }
33200
33425
  }
33201
33426
  }
33202
- for (var _i6 = 0; _i6 < VariantBasketDatas.length; _i6++) {
33427
+ for (var _i7 = 0; _i7 < VariantBasketDatas.length; _i7++) {
33203
33428
  //WCTODO Prio 2 bei Maßauswahl
33204
33429
  var CalcPrice = void 0,
33205
- _variant = VariantBasketDatas[_i6],
33430
+ _variant = VariantBasketDatas[_i7],
33206
33431
  isPercentage = false;
33207
33432
  if (_variant.AddPercentage) {
33208
33433
  isPercentage = true;
@@ -33439,18 +33664,18 @@ var DivaArticle = /*#__PURE__*/function () {
33439
33664
  value: function cloneArticle(set) {
33440
33665
  var clonedArticle = new DivaArticle(set, this.basketId, _objectSpread$j({}, this.article), this.article.catalogArticle, set.CatalogData);
33441
33666
  clonedArticle.articleOptionStatesData = new Map();
33442
- var _iterator41 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33443
- _step41;
33667
+ var _iterator42 = _createForOfIteratorHelper$e(this.articleOptionStates.values()),
33668
+ _step42;
33444
33669
  try {
33445
- for (_iterator41.s(); !(_step41 = _iterator41.n()).done;) {
33446
- var ops = _step41.value;
33670
+ for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) {
33671
+ var ops = _step42.value;
33447
33672
  var clonedOps = ops.cloneOptionState(clonedArticle.getIsConfigSingle);
33448
33673
  clonedArticle.articleOptionStatesData.set(ops.optionCodex, clonedOps);
33449
33674
  }
33450
33675
  } catch (err) {
33451
- _iterator41.e(err);
33676
+ _iterator42.e(err);
33452
33677
  } finally {
33453
- _iterator41.f();
33678
+ _iterator42.f();
33454
33679
  }
33455
33680
  clonedArticle.initEngine();
33456
33681
  clonedArticle.hasDecisionsInitialized = true;
@@ -33778,7 +34003,7 @@ var DivaArticleHandler = /*#__PURE__*/function () {
33778
34003
  return _context6.abrupt("continue", 39);
33779
34004
  case 14:
33780
34005
  if (targetArticlesWithNewValues.includes(targetArticlesToUpdate[i])) {
33781
- valuesArray[i] = actArticle.getValidValues(_objectSpread$i({}, myValues), actArticle.CatalogData.mergeOptionsToSameOption);
34006
+ valuesArray[i] = actArticle.getValidValues(_objectSpread$i({}, myValues), actArticle.CatalogData.mergeOptionsToSameOption, undefined, from === 'calcVariant');
33782
34007
  // 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.
33783
34008
  // Only the keys the VIEW supplied — getValidValues also adds merge-group and setConfig values, and those are derived, not chosen.
33784
34009
  if (from === 'FromViewClick') {
@@ -41327,7 +41552,7 @@ var DivaSet = /*#__PURE__*/function () {
41327
41552
  break;
41328
41553
  }
41329
41554
  _context5.next = 3;
41330
- return import('./DoorPlanner-fb5b9eb2.js');
41555
+ return import('./DoorPlanner-cc097ffd.js');
41331
41556
  case 3:
41332
41557
  _yield$import = _context5.sent;
41333
41558
  DoorPlanner = _yield$import["default"];
@@ -49281,7 +49506,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49281
49506
  break;
49282
49507
  case 3:
49283
49508
  _context12.next = 5;
49284
- return import('./PfisterWWSHandler-e7d55634.js');
49509
+ return import('./PfisterWWSHandler-156c7d93.js');
49285
49510
  case 5:
49286
49511
  _yield$import = _context12.sent;
49287
49512
  PfisterWWSHandler = _yield$import["default"];
@@ -49289,7 +49514,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49289
49514
  return _context12.abrupt("break", 27);
49290
49515
  case 9:
49291
49516
  _context12.next = 11;
49292
- return import('./LiviqueWWSHandler-2a135ba1.js');
49517
+ return import('./LiviqueWWSHandler-4d18f0f8.js');
49293
49518
  case 11:
49294
49519
  _yield$import2 = _context12.sent;
49295
49520
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49297,7 +49522,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49297
49522
  return _context12.abrupt("break", 27);
49298
49523
  case 15:
49299
49524
  _context12.next = 17;
49300
- return import('./SeriousBasketHandler-60cbf854.js');
49525
+ return import('./SeriousBasketHandler-1652bb9b.js');
49301
49526
  case 17:
49302
49527
  _yield$import3 = _context12.sent;
49303
49528
  SeriousWWSHandler = _yield$import3["default"];
@@ -49305,7 +49530,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49305
49530
  return _context12.abrupt("break", 27);
49306
49531
  case 21:
49307
49532
  _context12.next = 23;
49308
- return import('./StandardWWSHandler-eb1ba4cf.js');
49533
+ return import('./StandardWWSHandler-649e12c5.js');
49309
49534
  case 23:
49310
49535
  _yield$import4 = _context12.sent;
49311
49536
  StandardWWSHandler = _yield$import4["default"];
@@ -50684,7 +50909,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50684
50909
  key: "initializeConnection",
50685
50910
  value: function () {
50686
50911
  var _initializeConnection = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
50687
- var _this$connectionHandl2;
50912
+ var _this$connectionHandl2, _this$connectionHandl3;
50688
50913
  var _yield$import, Host3DSignalR;
50689
50914
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
50690
50915
  while (1) switch (_context3.prev = _context3.next) {
@@ -50692,16 +50917,18 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50692
50917
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50693
50918
  bootMark('signalr: chunk import start');
50694
50919
  _context3.next = 3;
50695
- return import('./Host3DSignalR-d316eb88.js');
50920
+ return import('./Host3DSignalR-72ecec93.js');
50696
50921
  case 3:
50697
50922
  _yield$import = _context3.sent;
50698
50923
  Host3DSignalR = _yield$import["default"];
50699
50924
  bootMark('signalr: chunk imported');
50925
+ // A replaced connection left open stays logged in on the 3D host and keeps reporting to this handler.
50926
+ (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 || _this$connectionHandl2.closeConnection();
50700
50927
  this.connectionHandler = new Host3DSignalR(this.renderSettings, this);
50701
50928
  LOG$4.debug('initializeConnection to Host3DSignalR');
50702
- _context3.next = 10;
50703
- return (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 ? void 0 : _this$connectionHandl2.initializeConnection();
50704
- case 10:
50929
+ _context3.next = 11;
50930
+ return (_this$connectionHandl3 = this.connectionHandler) === null || _this$connectionHandl3 === void 0 ? void 0 : _this$connectionHandl3.initializeConnection();
50931
+ case 11:
50705
50932
  case "end":
50706
50933
  return _context3.stop();
50707
50934
  }
@@ -50716,12 +50943,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50716
50943
  key: "joinDivaNr",
50717
50944
  value: function () {
50718
50945
  var _joinDivaNr = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(divaNr) {
50719
- var _this$connectionHandl3;
50946
+ var _this$connectionHandl4;
50720
50947
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
50721
50948
  while (1) switch (_context4.prev = _context4.next) {
50722
50949
  case 0:
50723
50950
  this.divaNr = divaNr;
50724
- if (!((_this$connectionHandl3 = this.connectionHandler) !== null && _this$connectionHandl3 !== void 0 && _this$connectionHandl3.getConnectionReady())) {
50951
+ if (!((_this$connectionHandl4 = this.connectionHandler) !== null && _this$connectionHandl4 !== void 0 && _this$connectionHandl4.getConnectionReady())) {
50725
50952
  _context4.next = 4;
50726
50953
  break;
50727
50954
  }
@@ -50743,12 +50970,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50743
50970
  key: "onConnectionInitialized",
50744
50971
  value: function () {
50745
50972
  var _onConnectionInitialized = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(params) {
50746
- var _this$connectionHandl4;
50747
- var i;
50973
+ var _this$connectionHandl5;
50974
+ var queuedRoomLists, _iterator, _step, roomList;
50748
50975
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
50749
50976
  while (1) switch (_context5.prev = _context5.next) {
50750
50977
  case 0:
50751
- (_this$connectionHandl4 = this.connectionHandler) === null || _this$connectionHandl4 === void 0 || _this$connectionHandl4.joinDivaNr(this.divaNr);
50978
+ (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 || _this$connectionHandl5.joinDivaNr(this.divaNr);
50752
50979
  if (!(params.status != 'SUCCESSFULL')) {
50753
50980
  _context5.next = 3;
50754
50981
  break;
@@ -50757,10 +50984,21 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50757
50984
  case 3:
50758
50985
  //Login
50759
50986
  if (this.todoAfterLogin.loadRoomlist.length > 0) {
50760
- for (i = 0; i < this.todoAfterLogin.loadRoomlist.length; i++) {
50761
- this.initializeStaticRoomList(this.todoAfterLogin.loadRoomlist[i].list, this.todoAfterLogin.loadRoomlist[i].mainCategory);
50762
- }
50987
+ // Take the queue before replaying it: a replay while the connection is not ready parks the list again,
50988
+ // and appending to the list being iterated never ends the loop.
50989
+ queuedRoomLists = this.todoAfterLogin.loadRoomlist;
50763
50990
  this.todoAfterLogin.loadRoomlist = [];
50991
+ _iterator = _createForOfIteratorHelper$3(queuedRoomLists);
50992
+ try {
50993
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50994
+ roomList = _step.value;
50995
+ this.initializeStaticRoomList(roomList.list, roomList.mainCategory);
50996
+ }
50997
+ } catch (err) {
50998
+ _iterator.e(err);
50999
+ } finally {
51000
+ _iterator.f();
51001
+ }
50764
51002
  }
50765
51003
  if (this.todoAfterLogin.initViewPoint.doUpdate) {
50766
51004
  this.initializeViewPoint(this.todoAfterLogin.initViewPoint.stdWhiteRoom);
@@ -50815,22 +51053,22 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50815
51053
  hqRenderScript.HqRenderScript = hqRenderScriptString;
50816
51054
  this.hqRenderScriptCache.set(planningHash, hqRenderScript);
50817
51055
  this.waitForHQRenderScript["delete"](planningHash);
50818
- var _iterator = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50819
- _step;
51056
+ var _iterator2 = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
51057
+ _step2;
50820
51058
  try {
50821
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
50822
- var _step$value = _slicedToArray(_step.value, 2),
50823
- key = _step$value[0],
50824
- _hqr = _step$value[1];
51059
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
51060
+ var _step2$value = _slicedToArray(_step2.value, 2),
51061
+ key = _step2$value[0],
51062
+ _hqr = _step2$value[1];
50825
51063
  if (!(_hqr !== null && _hqr !== void 0 && _hqr.CreationTime)) continue;
50826
51064
  if (_hqr.CreationTime < hqRenderScript.CreationTime) this.waitForHQRenderScript["delete"](key);
50827
51065
  }
50828
51066
 
50829
51067
  // The AR live viewer is fed from this path too — it is the only source of render scripts.
50830
51068
  } catch (err) {
50831
- _iterator.e(err);
51069
+ _iterator2.e(err);
50832
51070
  } finally {
50833
- _iterator.f();
51071
+ _iterator2.f();
50834
51072
  }
50835
51073
  this.sendARRenderScript(hqRenderScript, planningHash);
50836
51074
  this.updatePlannerHqRenderScriptInView(hqRenderScript);
@@ -51202,7 +51440,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51202
51440
  value: (function () {
51203
51441
  var _request3D = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(params) {
51204
51442
  var _params$renderRequest, _params$renderRequest2, _params$renderRequest3, _params$renderRequest4, _params$renderRequest5, _params$renderRequest6, _this$viewPointHandle, _this$viewPointHandle2;
51205
- var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl5, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51443
+ var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl6, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51206
51444
  return _regeneratorRuntime.wrap(function _callee8$(_context8) {
51207
51445
  while (1) switch (_context8.prev = _context8.next) {
51208
51446
  case 0:
@@ -51325,7 +51563,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51325
51563
  }
51326
51564
  if (params.catalogData.lang) params.planningData.SCE.Lang = params.catalogData.lang;
51327
51565
  bootMark('3d: request3D sent to host');
51328
- returnRequest = (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 ? void 0 : _this$connectionHandl5.request3D({
51566
+ returnRequest = (_this$connectionHandl6 = this.connectionHandler) === null || _this$connectionHandl6 === void 0 ? void 0 : _this$connectionHandl6.request3D({
51329
51567
  doRequestRendering: params.doRequestRendering,
51330
51568
  doRequestHqRenderScript: params.doRequestHqRenderScript,
51331
51569
  planningHash: planningHash,
@@ -52424,7 +52662,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52424
52662
  break;
52425
52663
  case 8:
52426
52664
  _context5.next = 10;
52427
- return import('./DivaStandardPlanner-f5f47d3b.js');
52665
+ return import('./DivaStandardPlanner-7331d5ae.js');
52428
52666
  case 10:
52429
52667
  _yield$import = _context5.sent;
52430
52668
  DivaStandardPlanner = _yield$import["default"];
@@ -52435,7 +52673,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52435
52673
  return _context5.abrupt("break", 21);
52436
52674
  case 15:
52437
52675
  _context5.next = 17;
52438
- return import('./DivaBoxPlanner-87010599.js');
52676
+ return import('./DivaBoxPlanner-9145f178.js');
52439
52677
  case 17:
52440
52678
  _yield$import2 = _context5.sent;
52441
52679
  DivaBoxPlanner = _yield$import2["default"];
@@ -54344,11 +54582,13 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54344
54582
  * @param myValues a dictionary with the key of the OptionCodex and the value of the OptionValueCodex
54345
54583
  * @param targetArticles array if BasketIds
54346
54584
  * @param freeText freeText is null when specificly set to null. When nopt set at all its undefined
54585
+ * @param isUserAction true only when the user changed the option in the UI. Host, URL parameter, headless and agent
54586
+ * calls leave it unset, so analytics can tell a user's change from a programmatic one.
54347
54587
  *
54348
54588
  */
54349
54589
  //onConfigItemClick ist ein Click auf das Item der ConfigPalette um die OPV zu ändern
54350
54590
  _defineProperty(this, "doConfigure", /*#__PURE__*/function () {
54351
- var _ref15 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15(myValues, targetArticles, dontUpdatePlannerView, dontCallEvents, eventKey) {
54591
+ var _ref15 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee15(myValues, targetArticles, dontUpdatePlannerView, dontCallEvents, eventKey, isUserAction) {
54352
54592
  var _this$actions13, _this$actions13$toggl;
54353
54593
  var set, returnValues, _this$actions14, _this$actions14$toggl, structure, _this$view42, _returnValues$element, _this$view45, _this$view43, _this$view44;
54354
54594
  return _regeneratorRuntime.wrap(function _callee15$(_context15) {
@@ -54393,14 +54633,14 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54393
54633
  _context15.next = 24;
54394
54634
  return _this.fillBaksetforOnWebPlanerConfigChange(myValues, undefined, eventKey);
54395
54635
  case 24:
54396
- _this.configuratorChangeLog('onConfigurationChange', myValues);
54636
+ _this.configuratorChangeLog('onConfigurationChange', myValues, false, !!isUserAction);
54397
54637
  case 25:
54398
54638
  case "end":
54399
54639
  return _context15.stop();
54400
54640
  }
54401
54641
  }, _callee15, null, [[2,, 6, 9]]);
54402
54642
  }));
54403
- return function (_x49, _x50, _x51, _x52, _x53) {
54643
+ return function (_x49, _x50, _x51, _x52, _x53, _x54) {
54404
54644
  return _ref15.apply(this, arguments);
54405
54645
  };
54406
54646
  }());
@@ -54456,7 +54696,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54456
54696
  }
54457
54697
  }, _callee16);
54458
54698
  }));
54459
- return function (_x54, _x55, _x56) {
54699
+ return function (_x55, _x56, _x57) {
54460
54700
  return _ref16.apply(this, arguments);
54461
54701
  };
54462
54702
  }());
@@ -54607,7 +54847,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54607
54847
  }
54608
54848
  }, _callee17, this, [[19, 28]]);
54609
54849
  }));
54610
- function initialize(_x57) {
54850
+ function initialize(_x58) {
54611
54851
  return _initialize.apply(this, arguments);
54612
54852
  }
54613
54853
  return initialize;
@@ -54780,7 +55020,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
54780
55020
  }
54781
55021
  }, _callee18, this);
54782
55022
  }));
54783
- function initializeSets(_x58, _x59) {
55023
+ function initializeSets(_x59, _x60) {
54784
55024
  return _initializeSets.apply(this, arguments);
54785
55025
  }
54786
55026
  return initializeSets;
@@ -55127,7 +55367,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55127
55367
  }
55128
55368
  }, _callee21, this);
55129
55369
  }));
55130
- function runInitMode(_x60) {
55370
+ function runInitMode(_x61) {
55131
55371
  return _runInitMode.apply(this, arguments);
55132
55372
  }
55133
55373
  return runInitMode;
@@ -55191,7 +55431,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55191
55431
  }
55192
55432
  }, _callee22, this);
55193
55433
  }));
55194
- function addSetToActPlanningByDivaNr(_x61) {
55434
+ function addSetToActPlanningByDivaNr(_x62) {
55195
55435
  return _addSetToActPlanningByDivaNr.apply(this, arguments);
55196
55436
  }
55197
55437
  return addSetToActPlanningByDivaNr;
@@ -55245,7 +55485,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55245
55485
  }
55246
55486
  }, _callee23, this);
55247
55487
  }));
55248
- function setActSetCurConfigStepKey(_x62) {
55488
+ function setActSetCurConfigStepKey(_x63) {
55249
55489
  return _setActSetCurConfigStepKey.apply(this, arguments);
55250
55490
  }
55251
55491
  return setActSetCurConfigStepKey;
@@ -55473,7 +55713,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55473
55713
  }
55474
55714
  }, _callee24, this);
55475
55715
  }));
55476
- function deletePlannerElement(_x63, _x64, _x65) {
55716
+ function deletePlannerElement(_x64, _x65, _x66) {
55477
55717
  return _deletePlannerElement.apply(this, arguments);
55478
55718
  }
55479
55719
  return deletePlannerElement;
@@ -55507,7 +55747,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55507
55747
  }
55508
55748
  }, _callee25, this);
55509
55749
  }));
55510
- function movePlannerElement(_x66, _x67, _x68, _x69) {
55750
+ function movePlannerElement(_x67, _x68, _x69, _x70) {
55511
55751
  return _movePlannerElement.apply(this, arguments);
55512
55752
  }
55513
55753
  return movePlannerElement;
@@ -55559,7 +55799,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55559
55799
  }
55560
55800
  }, _callee26, this);
55561
55801
  }));
55562
- function copyPlannerElement(_x70, _x71, _x72, _x73) {
55802
+ function copyPlannerElement(_x71, _x72, _x73, _x74) {
55563
55803
  return _copyPlannerElement.apply(this, arguments);
55564
55804
  }
55565
55805
  return copyPlannerElement;
@@ -55643,7 +55883,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55643
55883
  }
55644
55884
  }, _callee27, this);
55645
55885
  }));
55646
- function getFreePlacesOnGrids(_x74, _x75) {
55886
+ function getFreePlacesOnGrids(_x75, _x76) {
55647
55887
  return _getFreePlacesOnGrids.apply(this, arguments);
55648
55888
  }
55649
55889
  return getFreePlacesOnGrids;
@@ -55696,7 +55936,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55696
55936
  }
55697
55937
  }, _callee28, this);
55698
55938
  }));
55699
- function moveShelfItemToGrid(_x76, _x77, _x78, _x79, _x80) {
55939
+ function moveShelfItemToGrid(_x77, _x78, _x79, _x80, _x81) {
55700
55940
  return _moveShelfItemToGrid.apply(this, arguments);
55701
55941
  }
55702
55942
  return moveShelfItemToGrid;
@@ -55738,7 +55978,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55738
55978
  }
55739
55979
  }, _callee29, this);
55740
55980
  }));
55741
- function resetArticle(_x81) {
55981
+ function resetArticle(_x82) {
55742
55982
  return _resetArticle.apply(this, arguments);
55743
55983
  }
55744
55984
  return resetArticle;
@@ -55798,7 +56038,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55798
56038
  }
55799
56039
  }, _callee30, this);
55800
56040
  }));
55801
- function checkMatchingProducts(_x82) {
56041
+ function checkMatchingProducts(_x83) {
55802
56042
  return _checkMatchingProducts.apply(this, arguments);
55803
56043
  }
55804
56044
  return checkMatchingProducts;
@@ -55951,7 +56191,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
55951
56191
  }
55952
56192
  }, _callee31, this);
55953
56193
  }));
55954
- function saveToBasketWrapper(_x83, _x84, _x85, _x86) {
56194
+ function saveToBasketWrapper(_x84, _x85, _x86, _x87) {
55955
56195
  return _saveToBasketWrapper.apply(this, arguments);
55956
56196
  }
55957
56197
  return saveToBasketWrapper;
@@ -56095,7 +56335,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56095
56335
  }
56096
56336
  }, _callee32, this);
56097
56337
  }));
56098
- function saveToBasket(_x87, _x88, _x89) {
56338
+ function saveToBasket(_x88, _x89, _x90) {
56099
56339
  return _saveToBasket.apply(this, arguments);
56100
56340
  }
56101
56341
  return saveToBasket;
@@ -56129,7 +56369,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56129
56369
  }
56130
56370
  }, _callee33, this);
56131
56371
  }));
56132
- function generateAiImageWithReferenceImages(_x90, _x91) {
56372
+ function generateAiImageWithReferenceImages(_x91, _x92) {
56133
56373
  return _generateAiImageWithReferenceImages.apply(this, arguments);
56134
56374
  }
56135
56375
  return generateAiImageWithReferenceImages;
@@ -56224,7 +56464,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56224
56464
  }
56225
56465
  }, _callee36, this);
56226
56466
  }));
56227
- function createLeadKey(_x92) {
56467
+ function createLeadKey(_x93) {
56228
56468
  return _createLeadKey.apply(this, arguments);
56229
56469
  }
56230
56470
  return createLeadKey;
@@ -56697,7 +56937,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56697
56937
  }
56698
56938
  }, _callee38, this);
56699
56939
  }));
56700
- function addToBasket(_x93) {
56940
+ function addToBasket(_x94) {
56701
56941
  return _addToBasket.apply(this, arguments);
56702
56942
  }
56703
56943
  return addToBasket;
@@ -56773,7 +57013,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56773
57013
  }
56774
57014
  }, _callee39, this);
56775
57015
  }));
56776
- function getCurrentBasket(_x94, _x95, _x96, _x97, _x98) {
57016
+ function getCurrentBasket(_x95, _x96, _x97, _x98, _x99) {
56777
57017
  return _getCurrentBasket.apply(this, arguments);
56778
57018
  }
56779
57019
  return getCurrentBasket;
@@ -56883,7 +57123,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56883
57123
  }
56884
57124
  }, _callee40, this);
56885
57125
  }));
56886
- function initApiForLogicOnly(_x99, _x100, _x101, _x102, _x103, _x104, _x105) {
57126
+ function initApiForLogicOnly(_x100, _x101, _x102, _x103, _x104, _x105, _x106) {
56887
57127
  return _initApiForLogicOnly.apply(this, arguments);
56888
57128
  }
56889
57129
  return initApiForLogicOnly;
@@ -56954,7 +57194,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56954
57194
  }
56955
57195
  }, _callee42, this);
56956
57196
  }));
56957
- function initBasket(_x106, _x107) {
57197
+ function initBasket(_x107, _x108) {
56958
57198
  return _initBasket.apply(this, arguments);
56959
57199
  }
56960
57200
  return initBasket;
@@ -57054,7 +57294,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57054
57294
  }
57055
57295
  }, _callee44, this);
57056
57296
  }));
57057
- function handleFavorites(_x108) {
57297
+ function handleFavorites(_x109) {
57058
57298
  return _handleFavorites.apply(this, arguments);
57059
57299
  }
57060
57300
  return handleFavorites;
@@ -57108,7 +57348,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57108
57348
  }
57109
57349
  }, _callee45, this);
57110
57350
  }));
57111
- function initSapOrderLinesFromBasket(_x109, _x110, _x111) {
57351
+ function initSapOrderLinesFromBasket(_x110, _x111, _x112) {
57112
57352
  return _initSapOrderLinesFromBasket.apply(this, arguments);
57113
57353
  }
57114
57354
  return initSapOrderLinesFromBasket;
@@ -57230,6 +57470,7 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57230
57470
  key: "configuratorChangeLog",
57231
57471
  value: function configuratorChangeLog(action, myValues) {
57232
57472
  var isInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
57473
+ var isUserAction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
57233
57474
  var set = this.actSet();
57234
57475
  var actualBasketvalue = 0;
57235
57476
  //handle Price
@@ -57287,7 +57528,8 @@ var DivaWebPlanner = /*#__PURE__*/function () {
57287
57528
  }
57288
57529
  LOG$2.businessEvent(action, 'Planner', 'Konfigurator wurde verändert', {
57289
57530
  explicitlySetConfiguration: explicitlySetConfiguration,
57290
- wholeConfiguration: finalConfiguration
57531
+ wholeConfiguration: finalConfiguration,
57532
+ isUserAction: isUserAction
57291
57533
  });
57292
57534
  LOG$2.businessEvent('onActualBasketValue', 'Planner', 'Aktueller Basket Value: ' + actualBasketvalue, {
57293
57535
  basketValue: actualBasketvalue,
@@ -59204,7 +59446,7 @@ var PlannerElementData = /*#__PURE__*/function () {
59204
59446
 
59205
59447
  /** The encoding per property codex, for one entity. */
59206
59448
 
59207
- /** 95 properties parsed on the catalog entity. */
59449
+ /** 96 properties parsed on the catalog entity. */
59208
59450
  var CATALOG_PROPERTIES = {
59209
59451
  '3D_COMPATIBLE_WITH_IMAGE_CACHE': 'boolean:1',
59210
59452
  ACCESSOIRE_STEP_AS_PLANNER: 'boolean:1',
@@ -59259,6 +59501,7 @@ var CATALOG_PROPERTIES = {
59259
59501
  HIDE_SUBPOS_ARTICLECODEX_EKTEXT: 'boolean:1',
59260
59502
  IDM3D_CAT_CODEX: 'string',
59261
59503
  IDM3D_ENVIRONMENT: 'string',
59504
+ IDM3D_TRANSLATION: 'json',
59262
59505
  IGNOREDOCKINGNUMBER: 'boolean:1',
59263
59506
  IGNORELAYERAVC: 'boolean:1',
59264
59507
  IGNORELAYERAVNAVS: 'boolean:1',
@@ -59303,7 +59546,7 @@ var CATALOG_PROPERTIES = {
59303
59546
  WARNINGS: 'json'
59304
59547
  };
59305
59548
 
59306
- /** 30 properties parsed on the article entity. */
59549
+ /** 31 properties parsed on the article entity. */
59307
59550
  var ARTICLE_PROPERTIES = {
59308
59551
  '3DMODELNAME': 'string',
59309
59552
  ACCESSOIRE_POS_PRIO: 'number',
@@ -59320,6 +59563,7 @@ var ARTICLE_PROPERTIES = {
59320
59563
  HEIGHTGRIDUSED: 'number',
59321
59564
  HEIGHT_HAS_PRICE: 'boolean:on',
59322
59565
  HIDE_IN_PLANNERSTEP: 'boolean:on',
59566
+ IDM3D_SKIP: 'boolean:1|true',
59323
59567
  INVALID_ACCESSORIES: 'list:,',
59324
59568
  MAX_PLANNING_COUNT: 'number',
59325
59569
  ON_CONFIG_OPTION: 'string',
@@ -59337,7 +59581,7 @@ var ARTICLE_PROPERTIES = {
59337
59581
  ZUBEHOER_FAMILIE: 'string'
59338
59582
  };
59339
59583
 
59340
- /** 40 properties parsed on the option entity. */
59584
+ /** 41 properties parsed on the option entity. */
59341
59585
  var OPTION_PROPERTIES = {
59342
59586
  ADDITIONAL_GROUP_FILTER: 'json',
59343
59587
  ADD_OPT_TO_TABGROUP_IN_PL_SUM: 'string',
@@ -59356,6 +59600,7 @@ var OPTION_PROPERTIES = {
59356
59600
  FREETEXT_DEFAULT_VALUE: 'string',
59357
59601
  GROUP_OPTIONS_LEFT_AND_RIGHT: 'list:;',
59358
59602
  HIDE_OPTION_IN_CONFIGURATOR: 'boolean:on',
59603
+ IDM3D_TARGET: 'list:,',
59359
59604
  IGNORE_GROUPS: 'boolean:1',
59360
59605
  IGNORE_PGR_GROUP_POSITION: 'boolean:1',
59361
59606
  INFO_PDF: 'string',
@@ -59381,7 +59626,7 @@ var OPTION_PROPERTIES = {
59381
59626
  SUGGESTED_OPTION: 'boolean:on'
59382
59627
  };
59383
59628
 
59384
- /** 30 properties parsed on the optionValue entity. */
59629
+ /** 31 properties parsed on the optionValue entity. */
59385
59630
  var OPTIONVALUE_PROPERTIES = {
59386
59631
  ADD_TO_MEASURE: 'list:;',
59387
59632
  CONTENT_ITEM: 'string',
@@ -59390,6 +59635,7 @@ var OPTIONVALUE_PROPERTIES = {
59390
59635
  EshopCategoryMapping: 'ignored',
59391
59636
  GROUP_CONTENT_ITEM: 'string',
59392
59637
  HIDE_IN_SUMMARY: 'boolean:on',
59638
+ IDM3D_VALUE: 'string',
59393
59639
  INFO_PDF: 'string',
59394
59640
  INFO_URL: 'string',
59395
59641
  ION_COMMENT_TEXT: 'ignored',