@crystaldesign/web-planner-logic 26.11.0-beta.34 → 26.11.0-beta.36

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 (30) hide show
  1. package/build/cjs/{DivaBoxPlanner-b821219e.js → DivaBoxPlanner-e83ca1b8.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-9d89dadf.js → DivaStandardPlanner-9aa04af9.js} +2 -2
  3. package/build/cjs/{DoorPlanner-41e604f3.js → DoorPlanner-cadab131.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-b69a79da.js → Host3DSignalR-476793aa.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-f29a0f50.js → LiviqueWWSHandler-a01b1809.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-117a552b.js → PfisterWWSHandler-a8836568.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-fc7967b8.js → PlannerHandler2D-f7b62e0e.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-0e7c4f05.js → SeriousBasketHandler-eff5b7db.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-50802345.js → ShelfPlanner-39fd0100.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-578b4c5d.js → StandardWWSHandler-3d724cc9.js} +1 -1
  11. package/build/cjs/{index-60503cb1.js → index-29010e0f.js} +423 -222
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-e102540f.js → DivaBoxPlanner-ba0e5a3a.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-4cded05c.js → DivaStandardPlanner-5d2daf11.js} +2 -2
  15. package/build/esm/{DoorPlanner-01a03d37.js → DoorPlanner-13081dc8.js} +1 -1
  16. package/build/esm/{Host3DSignalR-e5a7e441.js → Host3DSignalR-198473ab.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-8cdf7254.js → LiviqueWWSHandler-44571b89.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-d6308bcc.js → PfisterWWSHandler-28be88d6.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-d2fd6892.js → PlannerHandler2D-d7d29a5d.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-2d6c25e0.js → SeriousBasketHandler-6830ed97.js} +1 -1
  21. package/build/esm/{ShelfPlanner-35db876e.js → ShelfPlanner-42271f58.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-f2a9e274.js → StandardWWSHandler-c2c0d0d0.js} +1 -1
  23. package/build/esm/{index-1f403b6c.js → index-da9d06a8.js} +423 -222
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  26. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +1 -0
  27. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  28. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +20 -7
  29. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  30. package/package.json +3 -3
@@ -17176,9 +17176,9 @@ var setOptionValueProperties = function setOptionValueProperties(catalogData, op
17176
17176
  return metaDatas;
17177
17177
  };
17178
17178
 
17179
- 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; } } }; }
17180
- 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; } }
17181
- 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; }
17179
+ 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; } } }; }
17180
+ 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; } }
17181
+ 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; }
17182
17182
  //kaufmännischer Artikel
17183
17183
  var CatalogArticleData = /*#__PURE__*/function () {
17184
17184
  function CatalogArticleData(catalogArticle, catalogData) {
@@ -17953,7 +17953,7 @@ var CatalogArticleData = /*#__PURE__*/function () {
17953
17953
  value: function getOptionValueFromOption(opt, opv) {
17954
17954
  if (this._catalogArticle.articleOptions[opt] && this._catalogArticle.articleOptions[opt].hasOPG) {
17955
17955
  var myOPGs = this._catalogArticle.articleOptions[opt].articleOptionValues;
17956
- var _iterator = _createForOfIteratorHelper$k(myOPGs),
17956
+ var _iterator = _createForOfIteratorHelper$l(myOPGs),
17957
17957
  _step;
17958
17958
  try {
17959
17959
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19095,9 +19095,9 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
19095
19095
  }]);
19096
19096
  }();
19097
19097
 
19098
- 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; } } }; }
19099
- 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; } }
19100
- 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; }
19098
+ 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; } } }; }
19099
+ 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; } }
19100
+ 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; }
19101
19101
  var ArticleOptionData = /*#__PURE__*/function () {
19102
19102
  function ArticleOptionData(opt, catalogData) {
19103
19103
  var _this$opt$property;
@@ -19185,7 +19185,7 @@ var ArticleOptionData = /*#__PURE__*/function () {
19185
19185
  }, {
19186
19186
  key: "getOpvByOcd",
19187
19187
  value: function getOpvByOcd(codex) {
19188
- var _iterator = _createForOfIteratorHelper$j(this.opt.articleOptionValues),
19188
+ var _iterator = _createForOfIteratorHelper$k(this.opt.articleOptionValues),
19189
19189
  _step;
19190
19190
  try {
19191
19191
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20005,13 +20005,15 @@ function getArticleOptionValueType(set, codex, jsonOPV, catalogOPV, myArticle, i
20005
20005
 
20006
20006
  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; }
20007
20007
  function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20008
- 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; } } }; }
20009
- 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; } }
20010
- 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; }
20008
+ 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; } } }; }
20009
+ 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; } }
20010
+ 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; }
20011
20011
  var LOG$l = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
20012
20012
 
20013
20013
  //a decision enabled by an action may itself enable further ones; the cap keeps a cyclic catalog from looping
20014
20014
  var MAX_DECISION_REFERENCE_ROUNDS = 5;
20015
+
20016
+ /** Loads the IDM data these articles need; missing price feature groups, features and decisions are reported, never fatal. */
20015
20017
  function loadMoreFromIDMArticles(_x, _x2) {
20016
20018
  return _loadMoreFromIDMArticles.apply(this, arguments);
20017
20019
  }
@@ -20019,16 +20021,16 @@ function loadMoreFromIDMArticles(_x, _x2) {
20019
20021
  /** One additional-item reference of an item - the mandatory and optional sides of the same accessory merged. */
20020
20022
  function _loadMoreFromIDMArticles() {
20021
20023
  _loadMoreFromIDMArticles = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(catalogArticleDatas, set) {
20022
- var items, _loop3, i, toLoadDecisionIds, toLoadPFGroups, toLoadFeatureClassRefNo, promises, _yield$Promise$all, _yield$Promise$all2, featureClasses, priceFeatureGroups, decisions, _i4, _decisions$map, loadedIds, missingIds, _i5, _i6, _catalogArticleData$d2, catalogArticleData, toLoadFeatures, features, _loop4, _i7, _loop6, _i8;
20023
- return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context6) {
20024
- while (1) switch (_context6.prev = _context6.next) {
20024
+ var items, _loop3, i, toLoadDecisionIds, toLoadPFGroups, toLoadFeatureClassRefNo, promises, _yield$Promise$all, _yield$Promise$all2, featureClasses, priceFeatureGroups, decisions, _i4, _decisions$map, loadedIds, missingIds, _i5, _iterator6, _step6, _loop7, _i6, _catalogArticleData$d2, catalogArticleData, toLoadFeatures, features, _loop4, _i7, _iterator7, _step7, _loop8, _loop6, _i8;
20025
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context8) {
20026
+ while (1) switch (_context8.prev = _context8.next) {
20025
20027
  case 0:
20026
- _context6.next = 2;
20028
+ _context8.next = 2;
20027
20029
  return set.api.getDataCache(set.api.getIDMItems(set.CatalogData.accountGuid, set.CatalogData.serieId, set.CatalogData.catalogCodex, catalogArticleDatas.map(function (a) {
20028
20030
  return a.articleCodex;
20029
20031
  })), undefined, undefined, 'enricher');
20030
20032
  case 2:
20031
- items = _context6.sent;
20033
+ items = _context8.sent;
20032
20034
  _loop3 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop3() {
20033
20035
  var catalogArticleData, item;
20034
20036
  return _regeneratorRuntime__default["default"].wrap(function _loop3$(_context4) {
@@ -20057,13 +20059,13 @@ function _loadMoreFromIDMArticles() {
20057
20059
  i = 0;
20058
20060
  case 5:
20059
20061
  if (!(i < catalogArticleDatas.length)) {
20060
- _context6.next = 10;
20062
+ _context8.next = 10;
20061
20063
  break;
20062
20064
  }
20063
- return _context6.delegateYield(_loop3(), "t0", 7);
20065
+ return _context8.delegateYield(_loop3(), "t0", 7);
20064
20066
  case 7:
20065
20067
  i++;
20066
- _context6.next = 5;
20068
+ _context8.next = 5;
20067
20069
  break;
20068
20070
  case 10:
20069
20071
  toLoadDecisionIds = getToLoadDecisionIds(catalogArticleDatas, set);
@@ -20074,10 +20076,10 @@ function _loadMoreFromIDMArticles() {
20074
20076
  return a.featureClassRefNo;
20075
20077
  })));
20076
20078
  promises = [set.api.getDataCache(set.api.getIDMFeatureClass(set.CatalogData.accountGuid, toLoadFeatureClassRefNo), undefined, undefined, 'enricher'), toLoadPFGroups.length ? set.api.getDataCache(set.api.getIDMPriceFeatureGroups(set.CatalogData.accountGuid, toLoadPFGroups), undefined, undefined, 'enricher') : undefined, toLoadDecisionIds.length ? fetchDecisions(set, toLoadDecisionIds) : undefined];
20077
- _context6.next = 16;
20079
+ _context8.next = 16;
20078
20080
  return Promise.all(promises);
20079
20081
  case 16:
20080
- _yield$Promise$all = _context6.sent;
20082
+ _yield$Promise$all = _context8.sent;
20081
20083
  _yield$Promise$all2 = _slicedToArray__default["default"](_yield$Promise$all, 3);
20082
20084
  featureClasses = _yield$Promise$all2[0];
20083
20085
  priceFeatureGroups = _yield$Promise$all2[1];
@@ -20088,7 +20090,7 @@ function _loadMoreFromIDMArticles() {
20088
20090
  }
20089
20091
  }
20090
20092
  if (!(toLoadDecisionIds.length !== 0 && toLoadDecisionIds.length != (decisions === null || decisions === void 0 ? void 0 : decisions.length))) {
20091
- _context6.next = 26;
20093
+ _context8.next = 26;
20092
20094
  break;
20093
20095
  }
20094
20096
  loadedIds = new Set((_decisions$map = decisions === null || decisions === void 0 ? void 0 : decisions.map(function (d) {
@@ -20099,7 +20101,7 @@ function _loadMoreFromIDMArticles() {
20099
20101
  });
20100
20102
  throw new Error("loading decisions failed \u2013 missing: [".concat(missingIds.join(', '), "]"));
20101
20103
  case 26:
20102
- _context6.next = 28;
20104
+ _context8.next = 28;
20103
20105
  return loadDecisionsReferencedByActions(set);
20104
20106
  case 28:
20105
20107
  if (priceFeatureGroups) {
@@ -20107,6 +20109,63 @@ function _loadMoreFromIDMArticles() {
20107
20109
  set.CatalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i5], set.CatalogData.idmOptionGroups));
20108
20110
  }
20109
20111
  }
20112
+ _iterator6 = _createForOfIteratorHelper$j(toLoadPFGroups);
20113
+ _context8.prev = 30;
20114
+ _loop7 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop7() {
20115
+ var prfgNo, askedBy;
20116
+ return _regeneratorRuntime__default["default"].wrap(function _loop7$(_context5) {
20117
+ while (1) switch (_context5.prev = _context5.next) {
20118
+ case 0:
20119
+ prfgNo = _step6.value;
20120
+ if (!set.CatalogData.getPricefeaturegroup(prfgNo)) {
20121
+ _context5.next = 3;
20122
+ break;
20123
+ }
20124
+ return _context5.abrupt("return", 1);
20125
+ case 3:
20126
+ askedBy = catalogArticleDatas.filter(function (a) {
20127
+ var _a$priceFeatureGroupN;
20128
+ return (_a$priceFeatureGroupN = a.priceFeatureGroupNos) === null || _a$priceFeatureGroupN === void 0 ? void 0 : _a$priceFeatureGroupN.includes(prfgNo);
20129
+ }).map(function (a) {
20130
+ return a.articleCodex;
20131
+ });
20132
+ set.CatalogData.reportMissingPricefeaturegroup(prfgNo, {
20133
+ articleCodices: askedBy
20134
+ });
20135
+ case 5:
20136
+ case "end":
20137
+ return _context5.stop();
20138
+ }
20139
+ }, _loop7);
20140
+ });
20141
+ _iterator6.s();
20142
+ case 33:
20143
+ if ((_step6 = _iterator6.n()).done) {
20144
+ _context8.next = 39;
20145
+ break;
20146
+ }
20147
+ return _context8.delegateYield(_loop7(), "t1", 35);
20148
+ case 35:
20149
+ if (!_context8.t1) {
20150
+ _context8.next = 37;
20151
+ break;
20152
+ }
20153
+ return _context8.abrupt("continue", 37);
20154
+ case 37:
20155
+ _context8.next = 33;
20156
+ break;
20157
+ case 39:
20158
+ _context8.next = 44;
20159
+ break;
20160
+ case 41:
20161
+ _context8.prev = 41;
20162
+ _context8.t2 = _context8["catch"](30);
20163
+ _iterator6.e(_context8.t2);
20164
+ case 44:
20165
+ _context8.prev = 44;
20166
+ _iterator6.f();
20167
+ return _context8.finish(44);
20168
+ case 47:
20110
20169
  for (_i6 = 0; _i6 < catalogArticleDatas.length; _i6++) {
20111
20170
  catalogArticleData = catalogArticleDatas[_i6];
20112
20171
  catalogArticleData.articleIDMDecisions = sortDecisions(set.CatalogData.getDecisionsByNo(_toConsumableArray__default["default"](new Set([].concat(_toConsumableArray__default["default"](set.CatalogData.globalDecisions.map(function (g) {
@@ -20118,13 +20177,13 @@ function _loadMoreFromIDMArticles() {
20118
20177
  });
20119
20178
  toLoadFeatures = getFeatures(set, featureClasses);
20120
20179
  if (!toLoadFeatures.length) {
20121
- _context6.next = 43;
20180
+ _context8.next = 61;
20122
20181
  break;
20123
20182
  }
20124
- _context6.next = 35;
20183
+ _context8.next = 53;
20125
20184
  return set.api.getDataCache(set.api.getIDMFeatures(set.CatalogData.accountGuid, toLoadFeatures), undefined, undefined, 'enricher');
20126
- case 35:
20127
- features = _context6.sent;
20185
+ case 53:
20186
+ features = _context8.sent;
20128
20187
  _loop4 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop4() {
20129
20188
  var feature, insertIndex, k, _loop5, j;
20130
20189
  return _regeneratorRuntime__default["default"].wrap(function _loop4$(_context3) {
@@ -20205,28 +20264,86 @@ function _loadMoreFromIDMArticles() {
20205
20264
  }, _loop4);
20206
20265
  });
20207
20266
  _i7 = 0;
20208
- case 38:
20267
+ case 56:
20209
20268
  if (!(_i7 < features.length)) {
20210
- _context6.next = 43;
20269
+ _context8.next = 61;
20211
20270
  break;
20212
20271
  }
20213
- return _context6.delegateYield(_loop4(), "t1", 40);
20214
- case 40:
20272
+ return _context8.delegateYield(_loop4(), "t3", 58);
20273
+ case 58:
20215
20274
  _i7++;
20216
- _context6.next = 38;
20275
+ _context8.next = 56;
20217
20276
  break;
20218
- case 43:
20277
+ case 61:
20278
+ _iterator7 = _createForOfIteratorHelper$j(toLoadFeatures);
20279
+ _context8.prev = 62;
20280
+ _loop8 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop8() {
20281
+ var featureNo, askedBy;
20282
+ return _regeneratorRuntime__default["default"].wrap(function _loop8$(_context6) {
20283
+ while (1) switch (_context6.prev = _context6.next) {
20284
+ case 0:
20285
+ featureNo = _step7.value;
20286
+ if (!set.CatalogData.loadedFeatures.some(function (f) {
20287
+ return f.featureNo == featureNo;
20288
+ })) {
20289
+ _context6.next = 3;
20290
+ break;
20291
+ }
20292
+ return _context6.abrupt("return", 1);
20293
+ case 3:
20294
+ askedBy = featureClasses.filter(function (fc) {
20295
+ return getFeaturesByFeatureClass(fc).includes(featureNo);
20296
+ }).map(function (fc) {
20297
+ return fc.featureClassNo;
20298
+ });
20299
+ set.CatalogData.reportMissingFeature(Number(featureNo), {
20300
+ featureClassNos: askedBy
20301
+ });
20302
+ case 5:
20303
+ case "end":
20304
+ return _context6.stop();
20305
+ }
20306
+ }, _loop8);
20307
+ });
20308
+ _iterator7.s();
20309
+ case 65:
20310
+ if ((_step7 = _iterator7.n()).done) {
20311
+ _context8.next = 71;
20312
+ break;
20313
+ }
20314
+ return _context8.delegateYield(_loop8(), "t4", 67);
20315
+ case 67:
20316
+ if (!_context8.t4) {
20317
+ _context8.next = 69;
20318
+ break;
20319
+ }
20320
+ return _context8.abrupt("continue", 69);
20321
+ case 69:
20322
+ _context8.next = 65;
20323
+ break;
20324
+ case 71:
20325
+ _context8.next = 76;
20326
+ break;
20327
+ case 73:
20328
+ _context8.prev = 73;
20329
+ _context8.t5 = _context8["catch"](62);
20330
+ _iterator7.e(_context8.t5);
20331
+ case 76:
20332
+ _context8.prev = 76;
20333
+ _iterator7.f();
20334
+ return _context8.finish(76);
20335
+ case 79:
20219
20336
  _loop6 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop6() {
20220
20337
  var catalogArticleData, featureClass, features, j;
20221
- return _regeneratorRuntime__default["default"].wrap(function _loop6$(_context5) {
20222
- while (1) switch (_context5.prev = _context5.next) {
20338
+ return _regeneratorRuntime__default["default"].wrap(function _loop6$(_context7) {
20339
+ while (1) switch (_context7.prev = _context7.next) {
20223
20340
  case 0:
20224
20341
  catalogArticleData = catalogArticleDatas[_i8];
20225
20342
  featureClass = featureClasses.find(function (fc) {
20226
20343
  return fc.featureClassNo == catalogArticleData.featureClassRefNo;
20227
20344
  });
20228
20345
  if (featureClass) {
20229
- _context5.next = 4;
20346
+ _context7.next = 4;
20230
20347
  break;
20231
20348
  }
20232
20349
  throw new Error('featureClassRefNo ' + catalogArticleData.featureClassRefNo + ' not found');
@@ -20237,30 +20354,30 @@ function _loadMoreFromIDMArticles() {
20237
20354
  }
20238
20355
  case 6:
20239
20356
  case "end":
20240
- return _context5.stop();
20357
+ return _context7.stop();
20241
20358
  }
20242
20359
  }, _loop6);
20243
20360
  });
20244
20361
  _i8 = 0;
20245
- case 45:
20362
+ case 81:
20246
20363
  if (!(_i8 < catalogArticleDatas.length)) {
20247
- _context6.next = 50;
20364
+ _context8.next = 86;
20248
20365
  break;
20249
20366
  }
20250
- return _context6.delegateYield(_loop6(), "t2", 47);
20251
- case 47:
20367
+ return _context8.delegateYield(_loop6(), "t6", 83);
20368
+ case 83:
20252
20369
  _i8++;
20253
- _context6.next = 45;
20370
+ _context8.next = 81;
20254
20371
  break;
20255
- case 50:
20372
+ case 86:
20256
20373
  catalogArticleDatas.map(function (c) {
20257
20374
  return c.areOptionsLoaded = true;
20258
20375
  });
20259
- case 51:
20376
+ case 87:
20260
20377
  case "end":
20261
- return _context6.stop();
20378
+ return _context8.stop();
20262
20379
  }
20263
- }, _callee2);
20380
+ }, _callee2, null, [[30, 41, 44, 47], [62, 73, 76, 79]]);
20264
20381
  }));
20265
20382
  return _loadMoreFromIDMArticles.apply(this, arguments);
20266
20383
  }
@@ -20275,13 +20392,13 @@ function readAdditionalItemRefs(item) {
20275
20392
  var _item$mandatoryAdditi, _item$mandatoryAdditi2, _item$optionalAdditio, _item$optionalAdditio2;
20276
20393
  var merged = new Map();
20277
20394
  var add = function add(groups, quantity) {
20278
- var _iterator = _createForOfIteratorHelper$i(groups),
20395
+ var _iterator = _createForOfIteratorHelper$j(groups),
20279
20396
  _step;
20280
20397
  try {
20281
20398
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
20282
20399
  var _group$itemRef;
20283
20400
  var group = _step.value;
20284
- var _iterator2 = _createForOfIteratorHelper$i((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
20401
+ var _iterator2 = _createForOfIteratorHelper$j((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
20285
20402
  _step2;
20286
20403
  try {
20287
20404
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -20398,16 +20515,16 @@ var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
20398
20515
  break;
20399
20516
  }
20400
20517
  toLoad = new Set();
20401
- _iterator3 = _createForOfIteratorHelper$i(set.CatalogData.loadedDecisions);
20518
+ _iterator3 = _createForOfIteratorHelper$j(set.CatalogData.loadedDecisions);
20402
20519
  try {
20403
20520
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
20404
20521
  decision = _step3.value;
20405
- _iterator4 = _createForOfIteratorHelper$i((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
20522
+ _iterator4 = _createForOfIteratorHelper$j((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
20406
20523
  try {
20407
20524
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
20408
20525
  combination = _step4.value;
20409
20526
  refs = [].concat(_toConsumableArray__default["default"]((_combination$projectA = (_combination$projectA2 = combination.projectActions) === null || _combination$projectA2 === void 0 ? void 0 : _combination$projectA2.disableDecision) !== null && _combination$projectA !== void 0 ? _combination$projectA : []), _toConsumableArray__default["default"]((_combination$projectA3 = (_combination$projectA4 = combination.projectActions) === null || _combination$projectA4 === void 0 ? void 0 : _combination$projectA4.enableDecision) !== null && _combination$projectA3 !== void 0 ? _combination$projectA3 : []));
20410
- _iterator5 = _createForOfIteratorHelper$i(refs);
20527
+ _iterator5 = _createForOfIteratorHelper$j(refs);
20411
20528
  try {
20412
20529
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
20413
20530
  ref = _step5.value;
@@ -20820,9 +20937,9 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
20820
20937
  return opv;
20821
20938
  }
20822
20939
 
20823
- 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; } } }; }
20824
- 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; } }
20825
- 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; }
20940
+ 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; } } }; }
20941
+ 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; } }
20942
+ 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; }
20826
20943
  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; }
20827
20944
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20828
20945
  var LOG$k = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
@@ -21042,7 +21159,7 @@ function getAdditionalItemTypeNos(jsonItems, catalogData) {
21042
21159
  var typeNos = new Set();
21043
21160
  if (catalogData.ignoreArticleRelations) return typeNos;
21044
21161
  for (var i = 0; i < jsonItems.length; i++) {
21045
- var _iterator = _createForOfIteratorHelper$h(readAdditionalItemRefs(jsonItems[i])),
21162
+ var _iterator = _createForOfIteratorHelper$i(readAdditionalItemRefs(jsonItems[i])),
21046
21163
  _step;
21047
21164
  try {
21048
21165
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21161,6 +21278,9 @@ function initCatalogPlannerArticleView(catalogData, catPlanArticle, catalogProps
21161
21278
 
21162
21279
  function ownKeys$n(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; }
21163
21280
  function _objectSpread$n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$n(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21281
+ 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; } } }; }
21282
+ 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; } }
21283
+ 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; }
21164
21284
 
21165
21285
  /*
21166
21286
  Diese KLasse enthält Inforamtion zu einem Catalog (C)
@@ -21180,6 +21300,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
21180
21300
  _defineProperty__default["default"](this, "catalogData", void 0);
21181
21301
  _defineProperty__default["default"](this, "additionalModelInfos", void 0);
21182
21302
  _defineProperty__default["default"](this, "origProperties", []);
21303
+ _defineProperty__default["default"](this, "reportedMissingPricefeaturegroups", new Set());
21304
+ _defineProperty__default["default"](this, "reportedMissingDecisions", new Set());
21305
+ _defineProperty__default["default"](this, "reportedMissingFeatures", new Set());
21183
21306
  _defineProperty__default["default"](this, "plannerPaletteViewInfo", void 0);
21184
21307
  _defineProperty__default["default"](this, "_api", void 0);
21185
21308
  _defineProperty__default["default"](this, "variantsPriceHashObj", {});
@@ -21524,16 +21647,42 @@ var DivaCatalogData = /*#__PURE__*/function () {
21524
21647
  get: function get() {
21525
21648
  return this.catalogData.description;
21526
21649
  }
21650
+ /** The loaded decisions for these numbers; a number the catalog does not hold is omitted and reported once. */
21527
21651
  }, {
21528
21652
  key: "getDecisionsByNo",
21529
21653
  value: function getDecisionsByNo() {
21530
- var _this = this;
21531
21654
  var decisionNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
21532
- return decisionNos.map(function (decisionNo) {
21533
- var d = _this.getDecisionByNo(decisionNo);
21534
- if (!d) throw new Error('decisionNo: ' + decisionNo + ' not found!');
21535
- return d;
21536
- });
21655
+ var decisions = [];
21656
+ var _iterator = _createForOfIteratorHelper$h(decisionNos),
21657
+ _step;
21658
+ try {
21659
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
21660
+ var decisionNo = _step.value;
21661
+ var decision = this.getDecisionByNo(decisionNo);
21662
+ if (decision) decisions.push(decision);else this.reportMissingDecision(decisionNo);
21663
+ }
21664
+ } catch (err) {
21665
+ _iterator.e(err);
21666
+ } finally {
21667
+ _iterator.f();
21668
+ }
21669
+ return decisions;
21670
+ }
21671
+
21672
+ /** Reports a decision the catalog does not hold - once per number, whichever caller notices it first. */
21673
+ }, {
21674
+ key: "reportMissingDecision",
21675
+ value: function reportMissingDecision(decisionNo) {
21676
+ var custom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21677
+ if (this.reportedMissingDecisions.has(decisionNo)) return;
21678
+ this.reportedMissingDecisions.add(decisionNo);
21679
+ LOG$j.error(new DivaUtils.DivaError('decisionNo: ' + decisionNo + ' not found - evaluated without it', {
21680
+ code: 'WC_0019',
21681
+ custom: _objectSpread$n({
21682
+ decisionNo: decisionNo,
21683
+ catalogCodex: this.catalogCodex
21684
+ }, custom)
21685
+ }));
21537
21686
  }
21538
21687
  }, {
21539
21688
  key: "getDecisionByNo",
@@ -21542,16 +21691,58 @@ var DivaCatalogData = /*#__PURE__*/function () {
21542
21691
  return d.decisionNo == decisionNo;
21543
21692
  });
21544
21693
  }
21694
+ /** The loaded price feature groups for these numbers; a group the catalog does not hold is omitted and reported once. */
21545
21695
  }, {
21546
21696
  key: "getPricefeaturegroups",
21547
21697
  value: function getPricefeaturegroups() {
21548
- var _this2 = this;
21549
21698
  var prfgNos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
21550
- return prfgNos.map(function (prfgNo) {
21551
- var d = _this2.getPricefeaturegroup(prfgNo);
21552
- if (!d) throw new Error('PriceFeaturegroup: ' + prfgNo + ' not found!');
21553
- return d;
21554
- });
21699
+ var groups = [];
21700
+ var _iterator2 = _createForOfIteratorHelper$h(prfgNos),
21701
+ _step2;
21702
+ try {
21703
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
21704
+ var prfgNo = _step2.value;
21705
+ var group = this.getPricefeaturegroup(prfgNo);
21706
+ if (group) groups.push(group);else this.reportMissingPricefeaturegroup(prfgNo);
21707
+ }
21708
+ } catch (err) {
21709
+ _iterator2.e(err);
21710
+ } finally {
21711
+ _iterator2.f();
21712
+ }
21713
+ return groups;
21714
+ }
21715
+
21716
+ /** Reports a price feature group the catalog does not hold - once per group, whichever caller notices it first. */
21717
+ }, {
21718
+ key: "reportMissingPricefeaturegroup",
21719
+ value: function reportMissingPricefeaturegroup(prfgNo) {
21720
+ var custom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21721
+ if (this.reportedMissingPricefeaturegroups.has(prfgNo)) return;
21722
+ this.reportedMissingPricefeaturegroups.add(prfgNo);
21723
+ LOG$j.error(new DivaUtils.DivaError('PriceFeaturegroup: ' + prfgNo + ' not found - article prices without it', {
21724
+ code: 'WC_0017',
21725
+ custom: _objectSpread$n({
21726
+ priceFeatureGroupNo: prfgNo,
21727
+ catalogCodex: this.catalogCodex
21728
+ }, custom)
21729
+ }));
21730
+ }
21731
+
21732
+ /** Reports a feature the catalog did not return - once per feature, whichever caller notices it first. */
21733
+ }, {
21734
+ key: "reportMissingFeature",
21735
+ value: function reportMissingFeature(featureNo) {
21736
+ var custom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21737
+ if (this.reportedMissingFeatures.has(featureNo)) return;
21738
+ this.reportedMissingFeatures.add(featureNo);
21739
+ LOG$j.error(new DivaUtils.DivaError('feature: ' + featureNo + ' not found - articles using it have no such config step', {
21740
+ code: 'WC_0018',
21741
+ custom: _objectSpread$n({
21742
+ featureNo: featureNo,
21743
+ catalogCodex: this.catalogCodex
21744
+ }, custom)
21745
+ }));
21555
21746
  }
21556
21747
  }, {
21557
21748
  key: "getPricefeaturegroup",
@@ -22283,11 +22474,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
22283
22474
  return undefined;
22284
22475
  },
22285
22476
  set: function set(newMask) {
22286
- var _this3 = this;
22477
+ var _this = this;
22287
22478
  if (!this.additionalModelInfos) throw new Error('additionalModelInfos dont exist for this catalog');
22288
22479
  this.updateMask(newMask).then(function (r) {
22289
- _this3.additionalModelInfos = r;
22290
- _this3.initMask(true);
22480
+ _this.additionalModelInfos = r;
22481
+ _this.initMask(true);
22291
22482
  });
22292
22483
  }
22293
22484
  }, {
@@ -22399,7 +22590,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22399
22590
  }, {
22400
22591
  key: "initProperties",
22401
22592
  value: function initProperties(catalogCodex, properties) {
22402
- var _this4 = this;
22593
+ var _this2 = this;
22403
22594
  var diva3DRenderingIsSet = false;
22404
22595
  properties.forEach(function (item, index) {
22405
22596
  var _item$Value;
@@ -22409,98 +22600,98 @@ var DivaCatalogData = /*#__PURE__*/function () {
22409
22600
  if (key.startsWith(catalogCodex + '__')) key = key.replace(catalogCodex + '__', '');
22410
22601
  switch (key) {
22411
22602
  case 'DIVA3D_ROOM':
22412
- _this4.catalogProps.diva3dRoom = item.Value;
22413
- if (_this4.catalogProps.diva3dRoom == 'raumatlantis') _this4.catalogProps.diva3dRoom = 'weissraumatlantis';
22603
+ _this2.catalogProps.diva3dRoom = item.Value;
22604
+ if (_this2.catalogProps.diva3dRoom == 'raumatlantis') _this2.catalogProps.diva3dRoom = 'weissraumatlantis';
22414
22605
  break;
22415
22606
  case 'DIVA3D_RENDERING':
22416
22607
  diva3DRenderingIsSet = item.Value == '1' || item.Value.toLowerCase() == 'true';
22417
- if (_this4.isIDMFormat) {
22418
- _this4.catalogProps.has3dModels = diva3DRenderingIsSet;
22608
+ if (_this2.isIDMFormat) {
22609
+ _this2.catalogProps.has3dModels = diva3DRenderingIsSet;
22419
22610
  }
22420
- if (_this4.catalogProps.diva3dShowRenderingByCatalogData) {
22421
- _this4.catalogProps.has3dModels = _this4.catalogProps.has3dModels && diva3DRenderingIsSet;
22611
+ if (_this2.catalogProps.diva3dShowRenderingByCatalogData) {
22612
+ _this2.catalogProps.has3dModels = _this2.catalogProps.has3dModels && diva3DRenderingIsSet;
22422
22613
  }
22423
22614
  break;
22424
22615
  case 'DIVA3D_AR_READY':
22425
- _this4.catalogProps.divaArReady = item.Value == '1';
22616
+ _this2.catalogProps.divaArReady = item.Value == '1';
22426
22617
  break;
22427
22618
  case 'DIVA3D_AR_FORCERTV':
22428
- _this4.catalogProps.divaForceRTV = item.Value == '1';
22619
+ _this2.catalogProps.divaForceRTV = item.Value == '1';
22429
22620
  break;
22430
22621
  case 'DIVA3D_USE_RTV_NEXT':
22431
- _this4.catalogProps.divaUseRtvNext = item.Value == '1';
22622
+ _this2.catalogProps.divaUseRtvNext = item.Value == '1';
22432
22623
  break;
22433
22624
  case 'HEADER_DIMENSION_IDS':
22434
- _this4.catalogProps.headerDimensionIds = item.Value.split(';');
22625
+ _this2.catalogProps.headerDimensionIds = item.Value.split(';');
22435
22626
  break;
22436
22627
  case 'DONTCALCBASEPRICE':
22437
- _this4.catalogProps.dontShowBasePrice = item.Value == '1';
22628
+ _this2.catalogProps.dontShowBasePrice = item.Value == '1';
22438
22629
  break;
22439
22630
  case 'DIVA3D_STATIC_BG_IMAGE_ROOMLIST':
22440
- _this4.catalogProps.roomList3DStaticBGImage.set('3D_STATBG_ROOMLIST', item.Value.split(';'));
22631
+ _this2.catalogProps.roomList3DStaticBGImage.set('3D_STATBG_ROOMLIST', item.Value.split(';'));
22441
22632
  break;
22442
22633
  case 'DIVA3D_DISABLE_3DEXPORT':
22443
- _this4.catalogProps.disable3DExport = item.Value == '1';
22634
+ _this2.catalogProps.disable3DExport = item.Value == '1';
22444
22635
  break;
22445
22636
  case '3D_COMPATIBLE_WITH_IMAGE_CACHE':
22446
- _this4.catalogProps.diva3dCompatibleWithImageCache = item.Value == '1';
22637
+ _this2.catalogProps.diva3dCompatibleWithImageCache = item.Value == '1';
22447
22638
  break;
22448
22639
  case 'ENABLE_DO_SHOW_3DDIMENSIONS':
22449
- _this4.catalogProps.doShow3DDimensionLines = item.Value == '1' || item.Value.toLowerCase() == 'true';
22640
+ _this2.catalogProps.doShow3DDimensionLines = item.Value == '1' || item.Value.toLowerCase() == 'true';
22450
22641
  break;
22451
22642
  case 'DO_SHOW_MAIN_DIMENSIONS':
22452
- _this4.catalogProps.doShowMainDimensions = item.Value == '1' || item.Value.toLowerCase() == 'true';
22643
+ _this2.catalogProps.doShowMainDimensions = item.Value == '1' || item.Value.toLowerCase() == 'true';
22453
22644
  break;
22454
22645
  case 'DEFAULT_DO_SHOW_3DDIMENSIONS':
22455
- _this4.catalogProps.defaultDimensionsActive = '1' == item.Value || 'true' == item.Value.toLowerCase();
22646
+ _this2.catalogProps.defaultDimensionsActive = '1' == item.Value || 'true' == item.Value.toLowerCase();
22456
22647
  break;
22457
22648
  case 'DIVA_KI_READY':
22458
- _this4.catalogProps.divaKiReady = item.Value == '1' || item.Value.toLowerCase() == 'true';
22649
+ _this2.catalogProps.divaKiReady = item.Value == '1' || item.Value.toLowerCase() == 'true';
22459
22650
  break;
22460
22651
  // Planner Topics
22461
22652
  case 'IS_IDM3D_CAT':
22462
- _this4.catalogProps.isIDM3DCat = item.Value == '1' || item.Value.toLowerCase() == 'true';
22653
+ _this2.catalogProps.isIDM3DCat = item.Value == '1' || item.Value.toLowerCase() == 'true';
22463
22654
  break;
22464
22655
  case 'IDM3D_ENVIRONMENT':
22465
- _this4.catalogProps.IDM3DEnvironment = (_item$Value = item.Value) !== null && _item$Value !== void 0 ? _item$Value : 'diva.ro';
22656
+ _this2.catalogProps.IDM3DEnvironment = (_item$Value = item.Value) !== null && _item$Value !== void 0 ? _item$Value : 'diva.ro';
22466
22657
  break;
22467
22658
  case 'IDM3D_CAT_CODEX':
22468
- _this4.catalogProps.IDM3DCatCodex = item.Value;
22659
+ _this2.catalogProps.IDM3DCatCodex = item.Value;
22469
22660
  break;
22470
22661
  case 'DIVA3D_PLANER_DIGITS':
22471
- _this4.catalogProps.divaPlanerDigits = Number(item.Value);
22662
+ _this2.catalogProps.divaPlanerDigits = Number(item.Value);
22472
22663
  break;
22473
22664
  case 'DIVA3D_PLANER_SHOW_ARTICLE_SVG':
22474
- _this4.catalogProps.diva3dPlanerShowArticleAsSvg = item.Value == '1';
22665
+ _this2.catalogProps.diva3dPlanerShowArticleAsSvg = item.Value == '1';
22475
22666
  break;
22476
22667
  case 'SHOWTYPENRINPLANNER':
22477
- _this4.catalogProps.showTypeNrInPlanner = item.Value == '1';
22668
+ _this2.catalogProps.showTypeNrInPlanner = item.Value == '1';
22478
22669
  break;
22479
22670
  case 'STARTFILTERPARAMS':
22480
- _this4.catalogProps.startFilterParams = String(item.Value);
22671
+ _this2.catalogProps.startFilterParams = String(item.Value);
22481
22672
  break;
22482
22673
  case 'STARTHIDEARTICLES':
22483
- _this4.catalogProps.startHideArticles = item.Value.split(';');
22674
+ _this2.catalogProps.startHideArticles = item.Value.split(';');
22484
22675
  break;
22485
22676
  case 'USEGLOBALSVGSCALE':
22486
- _this4.catalogProps.useGlobalSVGScale = item.Value == '1';
22677
+ _this2.catalogProps.useGlobalSVGScale = item.Value == '1';
22487
22678
  break;
22488
22679
  case 'USEBOXPLANNER':
22489
- _this4.catalogProps.useBoxPlanner = item.Value == '1' ? true : item.Value.split(';');
22680
+ _this2.catalogProps.useBoxPlanner = item.Value == '1' ? true : item.Value.split(';');
22490
22681
  break;
22491
22682
  case 'ELEMENT_COPY_AVLR':
22492
- _this4.catalogProps.elementCopyAVLR = item.Value == '1' ? true : item.Value.split(';').map(function (o) {
22493
- return (!_this4.isIDMFormat ? 'OPT' : '') + o;
22683
+ _this2.catalogProps.elementCopyAVLR = item.Value == '1' ? true : item.Value.split(';').map(function (o) {
22684
+ return (!_this2.isIDMFormat ? 'OPT' : '') + o;
22494
22685
  });
22495
22686
  break;
22496
22687
  case 'PLAN_2D_FONT_URL':
22497
- _this4.catalogProps.plan2DFontUrl = item.Value || undefined;
22688
+ _this2.catalogProps.plan2DFontUrl = item.Value || undefined;
22498
22689
  break;
22499
22690
  case 'DIMENSION_CONFIG':
22500
22691
  // One catalog-level dictionary keyed by articleCodex; entries carry the 2D planner
22501
22692
  // dimension/annotation config (consumed structurally by the RTV-next bridge).
22502
22693
  try {
22503
- _this4.catalogProps.dimensionConfig2D = JSON.parse(item.Value);
22694
+ _this2.catalogProps.dimensionConfig2D = JSON.parse(item.Value);
22504
22695
  } catch (e) {
22505
22696
  LOG$j.warn('Invalid DIMENSION_CONFIG meta tag - expected a JSON dictionary keyed by articleCodex', e);
22506
22697
  }
@@ -22509,232 +22700,232 @@ var DivaCatalogData = /*#__PURE__*/function () {
22509
22700
  // RTV-next environment preset bundle (profileMode/profiles/camera); overrides the
22510
22701
  // host's default preset (white-room). Later fed from a DB instead of the catalog.
22511
22702
  try {
22512
- _this4.catalogProps.rtvPreset = JSON.parse(item.Value);
22703
+ _this2.catalogProps.rtvPreset = JSON.parse(item.Value);
22513
22704
  } catch (e) {
22514
22705
  LOG$j.warn('Invalid RTV_PRESET meta tag - expected a JSON preset bundle (profileMode/profiles/camera)', e);
22515
22706
  }
22516
22707
  break;
22517
22708
  case 'PLANNERTYPE':
22518
- _this4.catalogProps.plannerType = item.Value;
22709
+ _this2.catalogProps.plannerType = item.Value;
22519
22710
  break;
22520
22711
  case 'START_PLANNER_ARTICLE':
22521
- _this4.catalogProps.startPlannerArticle = item.Value;
22712
+ _this2.catalogProps.startPlannerArticle = item.Value;
22522
22713
  break;
22523
22714
  case 'HIDE_2D_PLANNER':
22524
- _this4.catalogProps.hide2DPlanner = item.Value == '1';
22715
+ _this2.catalogProps.hide2DPlanner = item.Value == '1';
22525
22716
  break;
22526
22717
  case 'ACCESSOIRE_STEP_AS_PLANNER':
22527
- _this4.catalogProps.accessorieStepAsPlanner = item.Value == '1';
22718
+ _this2.catalogProps.accessorieStepAsPlanner = item.Value == '1';
22528
22719
  break;
22529
22720
  case 'PLANNER_2DOT0':
22530
- _this4.catalogProps.planner2Dot0 = item.Value == '1';
22721
+ _this2.catalogProps.planner2Dot0 = item.Value == '1';
22531
22722
  break;
22532
22723
  case 'DONT_SAVE_ALTERNATIVERENDERINGS':
22533
- _this4.catalogProps.dontSaveAlternativeRenderings = item.Value == '1';
22724
+ _this2.catalogProps.dontSaveAlternativeRenderings = item.Value == '1';
22534
22725
  break;
22535
22726
  case 'SHOW_ALL_ITEMS_IN_PLANNER':
22536
- _this4.catalogProps.showAllItemsInPlanner = item.Value == '1';
22727
+ _this2.catalogProps.showAllItemsInPlanner = item.Value == '1';
22537
22728
  break;
22538
22729
  case 'HIDE_AV_BUTTONS':
22539
- _this4.catalogProps.hideAVButtons = item.Value;
22730
+ _this2.catalogProps.hideAVButtons = item.Value;
22540
22731
  break;
22541
22732
  case 'PLANNER_REPLACE_MODE':
22542
- _this4.catalogProps.replaceModeActive = item.Value == '1';
22733
+ _this2.catalogProps.replaceModeActive = item.Value == '1';
22543
22734
  break;
22544
22735
  case 'HIDE_PLANNER_UI_ICONS':
22545
- _this4.catalogProps.hidePlannerUiIcons = item.Value == '1';
22736
+ _this2.catalogProps.hidePlannerUiIcons = item.Value == '1';
22546
22737
  break;
22547
22738
  case 'DONT_SET_POSNR_FROM_PLANNER':
22548
- _this4.catalogProps.dontSetPosNrFromPlanner = item.Value == '1';
22739
+ _this2.catalogProps.dontSetPosNrFromPlanner = item.Value == '1';
22549
22740
  break;
22550
22741
  case 'SHOW_AI_ROOM_RENDERING_SUMMARY':
22551
- _this4.catalogProps.showAiRoomRenderingInSummary = item.Value == '1';
22742
+ _this2.catalogProps.showAiRoomRenderingInSummary = item.Value == '1';
22552
22743
  break;
22553
22744
  case 'ARTICLE_NR':
22554
- _this4.catalogProps.retailArticleNr = item.Value;
22745
+ _this2.catalogProps.retailArticleNr = item.Value;
22555
22746
  break;
22556
22747
  case 'PROGRAM_NR':
22557
- _this4.catalogProps.retailCatalogNr = item.Value;
22748
+ _this2.catalogProps.retailCatalogNr = item.Value;
22558
22749
  break;
22559
22750
  // Warnings
22560
22751
  case 'HIDECONSTRUCTIONWARNING':
22561
- _this4.catalogProps.doCheckConstructionWarnings = item.Value == '0';
22752
+ _this2.catalogProps.doCheckConstructionWarnings = item.Value == '0';
22562
22753
  break;
22563
22754
  case 'FORCECONSTRUCTIONWARNINGARTICLES':
22564
- _this4.catalogProps.forceConstructionWarningForArticles = item.Value.split(';');
22755
+ _this2.catalogProps.forceConstructionWarningForArticles = item.Value.split(';');
22565
22756
  break;
22566
22757
  case 'HIDECOMPLETENESSWARNING':
22567
- _this4.catalogProps.hideCompletenessWarning = item.Value == '1';
22758
+ _this2.catalogProps.hideCompletenessWarning = item.Value == '1';
22568
22759
  break;
22569
22760
  // DP Logic
22570
22761
  case 'IGNORELAYERAVC':
22571
- _this4.catalogProps.ignoreLayerAVC = item.Value == '1';
22762
+ _this2.catalogProps.ignoreLayerAVC = item.Value == '1';
22572
22763
  break;
22573
22764
  case 'IGNORELAYERAVOAVU':
22574
- _this4.catalogProps.ignoreLayerAVOAVU = item.Value == '1';
22765
+ _this2.catalogProps.ignoreLayerAVOAVU = item.Value == '1';
22575
22766
  break;
22576
22767
  case 'IGNORELAYERAVNAVS':
22577
- _this4.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
22768
+ _this2.catalogProps.ignoreLayerAVNAVS = item.Value == '1';
22578
22769
  break;
22579
22770
  case 'IGNOREDOCKINGNUMBER':
22580
- _this4.catalogProps.ignoreDockingNumber = item.Value == '1';
22771
+ _this2.catalogProps.ignoreDockingNumber = item.Value == '1';
22581
22772
  break;
22582
22773
  case 'CHECK_COLLISION_DIFFERENT_LAYERS':
22583
- _this4.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
22774
+ _this2.catalogProps.checkCollisionForDifferentLayers = item.Value.split(';').map(function (t) {
22584
22775
  return parseInt(t);
22585
22776
  });
22586
22777
  break;
22587
22778
  case 'DOCKACCONAVOONLY':
22588
- _this4.catalogProps.dockAccOnAvoOnly = item.Value == '1';
22779
+ _this2.catalogProps.dockAccOnAvoOnly = item.Value == '1';
22589
22780
  break;
22590
22781
  case 'SHOWACCONDPONLY':
22591
- _this4.catalogProps.showAccOnDpOnly = item.Value == '1';
22782
+ _this2.catalogProps.showAccOnDpOnly = item.Value == '1';
22592
22783
  break;
22593
22784
  case 'RECONFIG_AFTER_ARTICLE_DOCKED':
22594
- _this4.catalogProps.reconfigAfterArticleDocked = item.Value == '1';
22785
+ _this2.catalogProps.reconfigAfterArticleDocked = item.Value == '1';
22595
22786
  break;
22596
22787
  // Configuration
22597
22788
 
22598
22789
  case 'USE_SHORT_NAME_AS_NAME':
22599
- _this4.catalogProps.useShortNameAsName = item.Value == '1';
22790
+ _this2.catalogProps.useShortNameAsName = item.Value == '1';
22600
22791
  break;
22601
22792
  case 'USE_DIOMEX_CONFIG_LOGIC':
22602
- _this4.catalogProps.useDiomexConfigLogic = item.Value == '1';
22793
+ _this2.catalogProps.useDiomexConfigLogic = item.Value == '1';
22603
22794
  break;
22604
22795
  case 'USEPRGASOPVARTICLENR':
22605
- _this4.catalogProps.UsePrgAsOpvArticleNr = item.Value == '1';
22796
+ _this2.catalogProps.UsePrgAsOpvArticleNr = item.Value == '1';
22606
22797
  break;
22607
22798
  case 'ARTICLECONFIGSINGLE':
22608
- _this4.catalogProps.articleConfigSingle = item.Value == '1';
22799
+ _this2.catalogProps.articleConfigSingle = item.Value == '1';
22609
22800
  break;
22610
22801
  case 'DEFAULT_GROUPS_CLOSED':
22611
22802
  if (item.Value != '1' && item.Value != '0') {
22612
- _this4.catalogProps.defaultGroupsClosed = item.Value.split(';');
22803
+ _this2.catalogProps.defaultGroupsClosed = item.Value.split(';');
22613
22804
  } else {
22614
- _this4.catalogProps.defaultGroupsClosed = item.Value == '1';
22805
+ _this2.catalogProps.defaultGroupsClosed = item.Value == '1';
22615
22806
  }
22616
22807
  break;
22617
22808
  case 'ARTICLECONFIGALL':
22618
- _this4.catalogProps.articleConfigAll = item.Value == '1';
22809
+ _this2.catalogProps.articleConfigAll = item.Value == '1';
22619
22810
  break;
22620
22811
  case 'AUTO_OPEN_CONTENTITEM':
22621
- _this4.catalogProps.autoOpenContentItem = item.Value == '1' ? true : item.Value.split(';').map(function (o) {
22622
- return (!_this4.isIDMFormat ? 'OPT' : '') + o;
22812
+ _this2.catalogProps.autoOpenContentItem = item.Value == '1' ? true : item.Value.split(';').map(function (o) {
22813
+ return (!_this2.isIDMFormat ? 'OPT' : '') + o;
22623
22814
  });
22624
22815
  break;
22625
22816
  case 'HIDE_PRICE_GROUPS_OF_OPGS':
22626
- _this4.catalogProps.hidePriceGroupsOfOPGs = item.Value == '1';
22817
+ _this2.catalogProps.hidePriceGroupsOfOPGs = item.Value == '1';
22627
22818
  break;
22628
22819
  case 'DONTHIDEOPTION':
22629
- _this4.catalogProps.dontHideOption = String(item.Value).split(',');
22820
+ _this2.catalogProps.dontHideOption = String(item.Value).split(',');
22630
22821
  break;
22631
22822
  case 'SHOW_AI_ROOM_RENDERING_IN_SUMMARY':
22632
- _this4.catalogProps.showAiRoomRenderingInSummary = item.Value == '1';
22823
+ _this2.catalogProps.showAiRoomRenderingInSummary = item.Value == '1';
22633
22824
  break;
22634
22825
  case 'SHOWACCESSOIREONLASTTAB':
22635
- _this4.catalogProps.showAccessioreOnLastTab = item.Value == '1';
22826
+ _this2.catalogProps.showAccessioreOnLastTab = item.Value == '1';
22636
22827
  break;
22637
22828
  case 'FORCE_CONFIG_ALL_ACCESSOIRES':
22638
- _this4.catalogProps.forceConfigAllAccessoires = item.Value == '1';
22829
+ _this2.catalogProps.forceConfigAllAccessoires = item.Value == '1';
22639
22830
  break;
22640
22831
  case 'CONFIG_ACCESSOIRES':
22641
- _this4.catalogProps.configAccessoires = item.Value == '1';
22832
+ _this2.catalogProps.configAccessoires = item.Value == '1';
22642
22833
  break;
22643
22834
  case 'CONFIG_ONLY_ACCESSOIRES':
22644
- _this4.catalogProps.configOnlyAccessoires = item.Value == '1';
22835
+ _this2.catalogProps.configOnlyAccessoires = item.Value == '1';
22645
22836
  break;
22646
22837
  case 'IGNORE_ARTICLERELATIONS':
22647
- _this4.catalogProps.ignoreArticleRelations = item.Value == '1';
22838
+ _this2.catalogProps.ignoreArticleRelations = item.Value == '1';
22648
22839
  break;
22649
22840
  case 'REPAIR_VARIANT_VALUES':
22650
22841
  var enties = item.Value.split(';;');
22651
- _this4.catalogProps.repairVariantValues = {};
22842
+ _this2.catalogProps.repairVariantValues = {};
22652
22843
  for (var k = 0; k < enties.length; k++) {
22653
22844
  var vals = enties[k].split(';');
22654
- _this4.catalogProps.repairVariantValues['OPT' + vals[0].replace(':', ':OPV')] = 'OPT' + vals[1].replace(':', ':OPV');
22845
+ _this2.catalogProps.repairVariantValues['OPT' + vals[0].replace(':', ':OPV')] = 'OPT' + vals[1].replace(':', ':OPV');
22655
22846
  }
22656
22847
  break;
22657
22848
  case 'FILTER_FOR_CHECKOUT_BUTTONS':
22658
- _this4.catalogProps.filterForCheckoutButtons = item.Value.split(';').map(function (t) {
22849
+ _this2.catalogProps.filterForCheckoutButtons = item.Value.split(';').map(function (t) {
22659
22850
  return t;
22660
22851
  });
22661
22852
  break;
22662
22853
  case 'DO_USE_RULEDESC_FOR_PARTLIST':
22663
- _this4.catalogProps.doUseRuleDescForPartListArticles = '1' == item.Value;
22854
+ _this2.catalogProps.doUseRuleDescForPartListArticles = '1' == item.Value;
22664
22855
  break;
22665
22856
  case 'USEPOSCOUNTVALUE':
22666
- _this4.catalogProps.usePosCountValue = '1' == item.Value;
22857
+ _this2.catalogProps.usePosCountValue = '1' == item.Value;
22667
22858
  break;
22668
22859
  case 'USE_DECISION_POS_COUNT_VALUE':
22669
- _this4.catalogProps.useDecisionPosCountValue = '1' == item.Value;
22860
+ _this2.catalogProps.useDecisionPosCountValue = '1' == item.Value;
22670
22861
  break;
22671
22862
  case 'USE_SHELFPLANNER_RTV':
22672
- _this4.catalogProps.useShelfPlannerRTV = '1' == item.Value;
22863
+ _this2.catalogProps.useShelfPlannerRTV = '1' == item.Value;
22673
22864
  break;
22674
22865
  case 'DONT_SHOW_ACC_STEP':
22675
- _this4.catalogProps.dontShowAccStep = '1' == item.Value;
22866
+ _this2.catalogProps.dontShowAccStep = '1' == item.Value;
22676
22867
  break;
22677
22868
  case 'MERGE_OPTIONS_TO_SAME_OPTION':
22678
- _this4.catalogProps.mergeOptionsToSameOption = [];
22679
- for (var V = item.Value.split(';'), T = 0; T < V.length; T++) _this4.catalogProps.mergeOptionsToSameOption.push(V[T].split(','));
22869
+ _this2.catalogProps.mergeOptionsToSameOption = [];
22870
+ for (var V = item.Value.split(';'), T = 0; T < V.length; T++) _this2.catalogProps.mergeOptionsToSameOption.push(V[T].split(','));
22680
22871
  break;
22681
22872
  case 'FORCE_CONFIG_SINGLE':
22682
- _this4.catalogProps.forceConfigSingle = '1' == item.Value;
22873
+ _this2.catalogProps.forceConfigSingle = '1' == item.Value;
22683
22874
  break;
22684
22875
  case 'SHOW_PRICEPREVIEW_ON_OPTIONS':
22685
- _this4.catalogProps.showPricePreviewOnlyOnOptions = item.Value.split(';').map(function (t) {
22876
+ _this2.catalogProps.showPricePreviewOnlyOnOptions = item.Value.split(';').map(function (t) {
22686
22877
  return t;
22687
22878
  });
22688
22879
  break;
22689
22880
  case 'HIDE_PRICEPREVIEW_ON_OPTIONS':
22690
- _this4.catalogProps.hidePricePreviewOnlyOnOptions = item.Value.split(';').map(function (t) {
22881
+ _this2.catalogProps.hidePricePreviewOnlyOnOptions = item.Value.split(';').map(function (t) {
22691
22882
  return t;
22692
22883
  });
22693
22884
  break;
22694
22885
  case 'INIT_OPTIONTREE_TWICE':
22695
- _this4.catalogProps.initOptionTreeTwice = '1' == item.Value;
22886
+ _this2.catalogProps.initOptionTreeTwice = '1' == item.Value;
22696
22887
  break;
22697
22888
  case 'USE_TYPENR_AS_ARTICLENR_EKTEXT':
22698
- _this4.catalogProps.useTypeNrAsArticleNrEKText = '1' == item.Value;
22889
+ _this2.catalogProps.useTypeNrAsArticleNrEKText = '1' == item.Value;
22699
22890
  break;
22700
22891
  case 'HIDE_SUBPOS_ARTICLECODEX_EKTEXT':
22701
- _this4.catalogProps.hideSubPosArticleCodexEKText = '1' == item.Value;
22892
+ _this2.catalogProps.hideSubPosArticleCodexEKText = '1' == item.Value;
22702
22893
  break;
22703
22894
  case 'ADD_POS_INVISIBILITY_TO_OL':
22704
- _this4.catalogProps.addPosInvisibilityToOL = '1' == item.Value;
22895
+ _this2.catalogProps.addPosInvisibilityToOL = '1' == item.Value;
22705
22896
  break;
22706
22897
  case 'ADD_NEW_LINE_BEFOR_RULEDESC':
22707
- _this4.catalogProps.addNewLineBeforRuleDesc = '1' == item.Value;
22898
+ _this2.catalogProps.addNewLineBeforRuleDesc = '1' == item.Value;
22708
22899
  break;
22709
22900
  case 'ONCONFIG_SINGLE_DONT_GENERALIZE':
22710
- _this4.catalogProps.onConfigSingleDontGeneralize = '1' == item.Value;
22901
+ _this2.catalogProps.onConfigSingleDontGeneralize = '1' == item.Value;
22711
22902
  break;
22712
22903
  case 'SUMMARY_TABGROUP_POSITION':
22713
- _this4.catalogProps.summaryTabGroupPosition = item.Value.split(';');
22904
+ _this2.catalogProps.summaryTabGroupPosition = item.Value.split(';');
22714
22905
  break;
22715
22906
  case 'BUNDLE_RULES':
22716
- _this4.catalogProps.bundleRules = JSON.parse(item.Value);
22907
+ _this2.catalogProps.bundleRules = JSON.parse(item.Value);
22717
22908
  break;
22718
22909
  case 'NOTIFICATIONS':
22719
- _this4.catalogProps.notificationsRules = JSON.parse(item.Value);
22910
+ _this2.catalogProps.notificationsRules = JSON.parse(item.Value);
22720
22911
  break;
22721
22912
  case 'WARNINGS':
22722
- _this4.catalogProps.warningRules = JSON.parse(item.Value);
22913
+ _this2.catalogProps.warningRules = JSON.parse(item.Value);
22723
22914
  break;
22724
22915
  case 'BANNER':
22725
- _this4.catalogProps.bannerRules = JSON.parse(item.Value);
22916
+ _this2.catalogProps.bannerRules = JSON.parse(item.Value);
22726
22917
  break;
22727
22918
  case 'IGNORE_MAX_PRICE_AS_BASEPRICE':
22728
- _this4.catalogProps.ignoreMaxPriceAsBP = '1' == item.Value;
22919
+ _this2.catalogProps.ignoreMaxPriceAsBP = '1' == item.Value;
22729
22920
  break;
22730
22921
  case 'DONT_USE_VCODEX_FOR_BASKET':
22731
- _this4.catalogProps.dontUseVCodexInBasket = '1' == item.Value;
22922
+ _this2.catalogProps.dontUseVCodexInBasket = '1' == item.Value;
22732
22923
  break;
22733
22924
  case 'IGNORE_ISDEFINED_CHECK':
22734
- _this4.catalogProps.ignoreIsDefinedCheck = '1' == item.Value;
22925
+ _this2.catalogProps.ignoreIsDefinedCheck = '1' == item.Value;
22735
22926
  break;
22736
22927
  case 'PARTLIST_POSTFIX':
22737
- _this4.catalogProps.partlistPostFix = item.Value.split(';').map(function (i) {
22928
+ _this2.catalogProps.partlistPostFix = item.Value.split(';').map(function (i) {
22738
22929
  return {
22739
22930
  rule: i.split(':')[0],
22740
22931
  postFix: i.split(':')[1]
@@ -22742,7 +22933,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22742
22933
  });
22743
22934
  break;
22744
22935
  case 'ADD_PA_ON_EDO':
22745
- _this4.handleEdoArticles(properties, item);
22936
+ _this2.handleEdoArticles(properties, item);
22746
22937
  break;
22747
22938
  }
22748
22939
  });
@@ -22755,7 +22946,7 @@ var DivaCatalogData = /*#__PURE__*/function () {
22755
22946
  }, {
22756
22947
  key: "initPropertiesAfterOptionsInit",
22757
22948
  value: function initPropertiesAfterOptionsInit(catalogCodex, properties) {
22758
- var _this5 = this;
22949
+ var _this3 = this;
22759
22950
  properties.forEach(function (item, index) {
22760
22951
  //3D Allgemein
22761
22952
  var key = item.Codex;
@@ -22763,11 +22954,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
22763
22954
  if (key.startsWith('3D_STATBG_ROOMLIST')) {
22764
22955
  // item.Value =
22765
22956
  // "weissraum_LUECK;backgroundimgroom_lueck_modern;backgroundimgroom_lueck_romantic;backgroundimgroom_lueck_loft;backgroundimgroom_lueck_night";
22766
- _this5.catalogProps.roomList3DStaticBGImage.set(item.Codex, item.Value.split(';'));
22957
+ _this3.catalogProps.roomList3DStaticBGImage.set(item.Codex, item.Value.split(';'));
22767
22958
  } else if (key.startsWith('3D_STANDARD_WHITEROOM')) {
22768
- _this5.catalogProps.diva3dStandardWhiteroom = item.Value;
22959
+ _this3.catalogProps.diva3dStandardWhiteroom = item.Value;
22769
22960
  } else if (key.startsWith('DIVA3D_IMAGE')) {
22770
- _this5.handleDIVA3DMetaTag(item);
22961
+ _this3.handleDIVA3DMetaTag(item);
22771
22962
  }
22772
22963
  });
22773
22964
  }
@@ -27327,6 +27518,18 @@ var IDMEngine = /*#__PURE__*/function () {
27327
27518
  continue;
27328
27519
  }
27329
27520
  var decisions = this.article.CatalogData.getDecisionsByNo([].concat(_toConsumableArray__default["default"]((_myPartListPos$decisi = myPartListPos.decisions) !== null && _myPartListPos$decisi !== void 0 ? _myPartListPos$decisi : []), _toConsumableArray__default["default"](myPartListPos.decisionPosCount ? [myPartListPos.decisionPosCount] : [])));
27521
+ // A count decision the catalog does not hold gates nothing - the position stays out rather than loading via the posCountValue fallback.
27522
+ if (myPartListPos.decisionPosCount && !decisions.some(function (decision) {
27523
+ return decision.decisionNo === myPartListPos.decisionPosCount;
27524
+ })) {
27525
+ this.pushPartlistDebugEntry(posBase, {
27526
+ loaded: false,
27527
+ reason: 'Count decision not loaded',
27528
+ decisionNo: myPartListPos.decisionPosCount,
27529
+ decisionPositive: false
27530
+ });
27531
+ continue;
27532
+ }
27330
27533
  var partlistAdded = false;
27331
27534
  var lastTriedDecisionNo = void 0;
27332
27535
  for (var c = 0; c < decisions.length; c++) {
@@ -27382,9 +27585,7 @@ var IDMEngine = /*#__PURE__*/function () {
27382
27585
  var _combination$projectA9;
27383
27586
  // get SetPosCountValue from decsion action if defined and else use myPartListPos.PosCountValue;
27384
27587
  var decision = this.article.CatalogData.getDecisionsByNo([myPartListPos.decisionPosCount])[0];
27385
- var _ref7 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
27386
- _ref8 = _slicedToArray__default["default"](_ref7, 1),
27387
- combination = _ref8[0];
27588
+ var combination = decision ? this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo)[0] : undefined;
27388
27589
 
27389
27590
  // SET_POS_COUNT_VALUE=0 (hide the position) is a valid action value; without a matching row or action the position keeps its own count.
27390
27591
  var posCountValueAction = combination === null || combination === void 0 || (_combination$projectA9 = combination.projectActions) === null || _combination$projectA9 === void 0 ? void 0 : _combination$projectA9.setPosCountValue;
@@ -27431,7 +27632,7 @@ var IDMEngine = /*#__PURE__*/function () {
27431
27632
  _loop8(i);
27432
27633
  }
27433
27634
  if (quanitity >= 1) {
27434
- var _catalogCodex$toStrin, _ref9;
27635
+ var _catalogCodex$toStrin, _ref7;
27435
27636
  partlistArticlesToLoad.push({
27436
27637
  CatalogCodex: (_catalogCodex$toStrin = catalogCodex.toString()) !== null && _catalogCodex$toStrin !== void 0 ? _catalogCodex$toStrin : this.article.catalogCodex,
27437
27638
  BasketID: previousPartlistArticle === null || previousPartlistArticle === void 0 ? void 0 : previousPartlistArticle.basketId,
@@ -27449,7 +27650,7 @@ var IDMEngine = /*#__PURE__*/function () {
27449
27650
  VariantItemData: previousPartlistArticle === null || previousPartlistArticle === void 0 ? void 0 : previousPartlistArticle.VariantItemData,
27450
27651
  optionsForPrint: featuresForPrint,
27451
27652
  RetailArticleNr: myPartListPos.retailArticleNr && myPartListPos.retailArticleNr !== '' ? myPartListPos.retailArticleNr : undefined,
27452
- RetailPrefix: (_ref9 = myPartListPos.retailPrefix) !== null && _ref9 !== void 0 ? _ref9 : undefined
27653
+ RetailPrefix: (_ref7 = myPartListPos.retailPrefix) !== null && _ref7 !== void 0 ? _ref7 : undefined
27453
27654
  //SupplierOrderCodex: // TODO WWS IDM ,myPartListPos.SupplierOrderCodex,
27454
27655
 
27455
27656
  //optionImgForPrint,
@@ -27462,9 +27663,9 @@ var IDMEngine = /*#__PURE__*/function () {
27462
27663
  key: "getMatchingOptionCombination",
27463
27664
  value: function getMatchingOptionCombination(combinations, decisionNo) {
27464
27665
  for (var i = 0; i < combinations.length; i++) {
27465
- var _ref10, _ref11, _projectOptionsSetRef;
27666
+ var _ref8, _ref9, _projectOptionsSetRef;
27466
27667
  var combination = combinations[i];
27467
- var optionSetRefs = (_ref10 = (_ref11 = (_projectOptionsSetRef = combination.projectOptionsSetRefs) !== null && _projectOptionsSetRef !== void 0 ? _projectOptionsSetRef : combination.optionsSetRef) !== null && _ref11 !== void 0 ? _ref11 : combination.optionsSetRef) !== null && _ref10 !== void 0 ? _ref10 : [];
27668
+ var optionSetRefs = (_ref8 = (_ref9 = (_projectOptionsSetRef = combination.projectOptionsSetRefs) !== null && _projectOptionsSetRef !== void 0 ? _projectOptionsSetRef : combination.optionsSetRef) !== null && _ref9 !== void 0 ? _ref9 : combination.optionsSetRef) !== null && _ref8 !== void 0 ? _ref8 : [];
27468
27669
  if (optionSetRefs.length === 0) {
27469
27670
  if (decisionNo !== undefined) {
27470
27671
  this.article.pushDataCreationError({
@@ -27525,9 +27726,9 @@ var IDMEngine = /*#__PURE__*/function () {
27525
27726
  //DecisionOptionCombination
27526
27727
  //Gibt es innerhalb einer Decision eine eine gültige DOC, die OPVs der in ValidOptionValues vorkommenden Optionen zunächst alle disabeln, werden dann über eine gültige Formel wieder enabled
27527
27728
 
27528
- var _ref12 = this.getMatchingOptionCombination(myDecision.optionCombinations, decisionNo),
27529
- _ref13 = _slicedToArray__default["default"](_ref12, 1),
27530
- combination = _ref13[0];
27729
+ var _ref10 = this.getMatchingOptionCombination(myDecision.optionCombinations, decisionNo),
27730
+ _ref11 = _slicedToArray__default["default"](_ref10, 1),
27731
+ combination = _ref11[0];
27531
27732
  if (combination) {
27532
27733
  isValidDOC = true;
27533
27734
  }
@@ -27605,9 +27806,9 @@ var IDMEngine = /*#__PURE__*/function () {
27605
27806
  for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
27606
27807
  var _combination$projectA12;
27607
27808
  var decision = _step18.value;
27608
- var _ref14 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
27609
- _ref15 = _slicedToArray__default["default"](_ref14, 1),
27610
- combination = _ref15[0];
27809
+ var _ref12 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
27810
+ _ref13 = _slicedToArray__default["default"](_ref12, 1),
27811
+ combination = _ref13[0];
27611
27812
  var key = combination === null || combination === void 0 || (_combination$projectA12 = combination.projectActions) === null || _combination$projectA12 === void 0 || (_combination$projectA12 = _combination$projectA12.setFeatureDefault) === null || _combination$projectA12 === void 0 || (_combination$projectA12 = _combination$projectA12.find(function (a) {
27612
27813
  var _a$featureNo;
27613
27814
  return ((_a$featureNo = a.featureNo) === null || _a$featureNo === void 0 ? void 0 : _a$featureNo.toString()) === featureNo;
@@ -27626,13 +27827,13 @@ var IDMEngine = /*#__PURE__*/function () {
27626
27827
  }, {
27627
27828
  key: "preferredDefaultOpv",
27628
27829
  value: function preferredDefaultOpv(featureNo, visible, ops) {
27629
- var _ref16;
27830
+ var _ref14;
27630
27831
  // A rule may hide the chosen value for a while (metal foot hides the woods); when it frees it again the customer's pick must come back.
27631
27832
  // getVisibleOptionValue resolves THROUGH option groups; a plain map lookup misses a grouped choice.
27632
27833
  var chosen = ops !== null && ops !== void 0 && ops.userChosenOPV ? ops.getVisibleOptionValue(ops.userChosenOPV) : undefined;
27633
27834
  if (chosen) return chosen;
27634
27835
  var key = this.setFeatureDefaultKey(featureNo);
27635
- return (_ref16 = key ? visible.get(key) : undefined) !== null && _ref16 !== void 0 ? _ref16 : this.article.getDefaultOpv(visible);
27836
+ return (_ref14 = key ? visible.get(key) : undefined) !== null && _ref14 !== void 0 ? _ref14 : this.article.getDefaultOpv(visible);
27636
27837
  }
27637
27838
  }, {
27638
27839
  key: "updateIDMSpecificFeatures",
@@ -27688,8 +27889,8 @@ var IDMEngine = /*#__PURE__*/function () {
27688
27889
  }
27689
27890
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
27690
27891
  try {
27691
- var _ref17, _ref18, _myArtOPS$measureValu;
27692
- var newHeight = this.resolvePlannerDimension(Number((_ref17 = (_ref18 = (_myArtOPS$measureValu = myArtOPS.measureValue) !== null && _myArtOPS$measureValu !== void 0 ? _myArtOPS$measureValu : this.freeTextMeasureCm(myArtOPS)) !== null && _ref18 !== void 0 ? _ref18 : myArtOPS.value) !== null && _ref17 !== void 0 ? _ref17 : myArtOPS.valueFromName), this.article.catalogArticle.height);
27892
+ var _ref15, _ref16, _myArtOPS$measureValu;
27893
+ var newHeight = this.resolvePlannerDimension(Number((_ref15 = (_ref16 = (_myArtOPS$measureValu = myArtOPS.measureValue) !== null && _myArtOPS$measureValu !== void 0 ? _myArtOPS$measureValu : this.freeTextMeasureCm(myArtOPS)) !== null && _ref16 !== void 0 ? _ref16 : myArtOPS.value) !== null && _ref15 !== void 0 ? _ref15 : myArtOPS.valueFromName), this.article.catalogArticle.height);
27693
27894
  if (newHeight != null) {
27694
27895
  this.article.doUpdatePlannerSize = true;
27695
27896
  this.article.calcHeight = newHeight;
@@ -27700,8 +27901,8 @@ var IDMEngine = /*#__PURE__*/function () {
27700
27901
  }
27701
27902
  if ([96, 1096].includes((_myArtOPS$option$idmV4 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV4 !== void 0 ? _myArtOPS$option$idmV4 : 0) || myArtOPS.option.diameter) {
27702
27903
  try {
27703
- var _ref19, _ref20, _myArtOPS$measureValu2;
27704
- var newDepth = this.resolvePlannerDimension(Number((_ref19 = (_ref20 = (_myArtOPS$measureValu2 = myArtOPS.measureValue) !== null && _myArtOPS$measureValu2 !== void 0 ? _myArtOPS$measureValu2 : this.freeTextMeasureCm(myArtOPS)) !== null && _ref20 !== void 0 ? _ref20 : myArtOPS.value) !== null && _ref19 !== void 0 ? _ref19 : myArtOPS.valueFromName), this.article.catalogArticle.depth);
27904
+ var _ref17, _ref18, _myArtOPS$measureValu2;
27905
+ var newDepth = this.resolvePlannerDimension(Number((_ref17 = (_ref18 = (_myArtOPS$measureValu2 = myArtOPS.measureValue) !== null && _myArtOPS$measureValu2 !== void 0 ? _myArtOPS$measureValu2 : this.freeTextMeasureCm(myArtOPS)) !== null && _ref18 !== void 0 ? _ref18 : myArtOPS.value) !== null && _ref17 !== void 0 ? _ref17 : myArtOPS.valueFromName), this.article.catalogArticle.depth);
27705
27906
  if (newDepth != null) {
27706
27907
  this.article.doUpdatePlannerSize = true;
27707
27908
  this.article.calcDepth = newDepth;
@@ -27712,8 +27913,8 @@ var IDMEngine = /*#__PURE__*/function () {
27712
27913
  }
27713
27914
  if ([95, 1095].includes((_myArtOPS$option$idmV5 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV5 !== void 0 ? _myArtOPS$option$idmV5 : 0) || myArtOPS.option.diameter) {
27714
27915
  try {
27715
- var _ref21, _ref22, _myArtOPS$measureValu3;
27716
- var newWidth = this.resolvePlannerDimension(Number((_ref21 = (_ref22 = (_myArtOPS$measureValu3 = myArtOPS.measureValue) !== null && _myArtOPS$measureValu3 !== void 0 ? _myArtOPS$measureValu3 : this.freeTextMeasureCm(myArtOPS)) !== null && _ref22 !== void 0 ? _ref22 : myArtOPS.value) !== null && _ref21 !== void 0 ? _ref21 : myArtOPS.valueFromName), this.article.catalogArticle.width);
27916
+ var _ref19, _ref20, _myArtOPS$measureValu3;
27917
+ var newWidth = this.resolvePlannerDimension(Number((_ref19 = (_ref20 = (_myArtOPS$measureValu3 = myArtOPS.measureValue) !== null && _myArtOPS$measureValu3 !== void 0 ? _myArtOPS$measureValu3 : this.freeTextMeasureCm(myArtOPS)) !== null && _ref20 !== void 0 ? _ref20 : myArtOPS.value) !== null && _ref19 !== void 0 ? _ref19 : myArtOPS.valueFromName), this.article.catalogArticle.width);
27717
27918
  if (newWidth != null) {
27718
27919
  this.article.doUpdatePlannerSize = true;
27719
27920
  this.article.calcWidth = newWidth;
@@ -27953,9 +28154,9 @@ var IDMEngine = /*#__PURE__*/function () {
27953
28154
  for (var j = 0; !doUse && j < image.decisionNos.length; j++) {
27954
28155
  var decision = catalogData.getDecisionByNo(image.decisionNos[j]);
27955
28156
  if (!decision) continue;
27956
- var _ref23 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
27957
- _ref24 = _slicedToArray__default["default"](_ref23, 1),
27958
- combination = _ref24[0];
28157
+ var _ref21 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
28158
+ _ref22 = _slicedToArray__default["default"](_ref21, 1),
28159
+ combination = _ref22[0];
27959
28160
  if (combination) {
27960
28161
  doUse = true;
27961
28162
  break;
@@ -27994,11 +28195,11 @@ var IDMEngine = /*#__PURE__*/function () {
27994
28195
  var _doUse = !((_image$decisionNos2 = _image.decisionNos) !== null && _image$decisionNos2 !== void 0 && _image$decisionNos2.length);
27995
28196
  if ((_image$decisionNos3 = _image.decisionNos) !== null && _image$decisionNos3 !== void 0 && _image$decisionNos3.length) {
27996
28197
  for (var _j2 = 0; _j2 < _image.decisionNos.length; _j2++) {
27997
- var _decision4 = catalogData.getDecisionByNo(_image.decisionNos[_j2]);
27998
- if (!_decision4) throw new Error('decision ' + _image.decisionNos[_j2] + ' not found');
27999
- var _ref27 = this.getMatchingOptionCombination(_decision4.optionCombinations, _decision4.decisionNo),
28000
- _ref28 = _slicedToArray__default["default"](_ref27, 1),
28001
- _combination2 = _ref28[0];
28198
+ var _decision4 = catalogData.getDecisionsByNo([_image.decisionNos[_j2]])[0];
28199
+ if (!_decision4) continue;
28200
+ var _ref25 = this.getMatchingOptionCombination(_decision4.optionCombinations, _decision4.decisionNo),
28201
+ _ref26 = _slicedToArray__default["default"](_ref25, 1),
28202
+ _combination2 = _ref26[0];
28002
28203
  if (_combination2) {
28003
28204
  _doUse = true;
28004
28205
  break;
@@ -28051,11 +28252,11 @@ var IDMEngine = /*#__PURE__*/function () {
28051
28252
  var svgValid = !((_svg$decisionNos = svg.decisionNos) !== null && _svg$decisionNos !== void 0 && _svg$decisionNos.length);
28052
28253
  if ((_svg$decisionNos2 = svg.decisionNos) !== null && _svg$decisionNos2 !== void 0 && _svg$decisionNos2.length) {
28053
28254
  for (var _j = 0; _j < svg.decisionNos.length; _j++) {
28054
- var _decision3 = catalogData.getDecisionByNo(svg.decisionNos[_j]);
28055
- if (!_decision3) throw new Error('decision ' + svg.decisionNos[_j] + ' not found');
28056
- var _ref25 = this.getMatchingOptionCombination(_decision3.optionCombinations, _decision3.decisionNo),
28057
- _ref26 = _slicedToArray__default["default"](_ref25, 1),
28058
- _combination = _ref26[0];
28255
+ var _decision3 = catalogData.getDecisionsByNo([svg.decisionNos[_j]])[0];
28256
+ if (!_decision3) continue;
28257
+ var _ref23 = this.getMatchingOptionCombination(_decision3.optionCombinations, _decision3.decisionNo),
28258
+ _ref24 = _slicedToArray__default["default"](_ref23, 1),
28259
+ _combination = _ref24[0];
28059
28260
  if (_combination) {
28060
28261
  svgValid = _decision3;
28061
28262
  break;
@@ -30926,7 +31127,7 @@ var DivaArticle = /*#__PURE__*/function () {
30926
31127
  break;
30927
31128
  }
30928
31129
  _context.next = 4;
30929
- return Promise.resolve().then(function () { return require('./ShelfPlanner-50802345.js'); });
31130
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-39fd0100.js'); });
30930
31131
  case 4:
30931
31132
  _yield$import = _context.sent;
30932
31133
  ShelfPlanner = _yield$import["default"];
@@ -39035,7 +39236,7 @@ var DivaSet = /*#__PURE__*/function () {
39035
39236
  break;
39036
39237
  }
39037
39238
  _context5.next = 3;
39038
- return Promise.resolve().then(function () { return require('./DoorPlanner-41e604f3.js'); });
39239
+ return Promise.resolve().then(function () { return require('./DoorPlanner-cadab131.js'); });
39039
39240
  case 3:
39040
39241
  _yield$import = _context5.sent;
39041
39242
  DoorPlanner = _yield$import["default"];
@@ -46650,7 +46851,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46650
46851
  break;
46651
46852
  case 3:
46652
46853
  _context12.next = 5;
46653
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-117a552b.js'); });
46854
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-a8836568.js'); });
46654
46855
  case 5:
46655
46856
  _yield$import = _context12.sent;
46656
46857
  PfisterWWSHandler = _yield$import["default"];
@@ -46658,7 +46859,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46658
46859
  return _context12.abrupt("break", 27);
46659
46860
  case 9:
46660
46861
  _context12.next = 11;
46661
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-f29a0f50.js'); });
46862
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-a01b1809.js'); });
46662
46863
  case 11:
46663
46864
  _yield$import2 = _context12.sent;
46664
46865
  LiviqueWWSHandler = _yield$import2["default"];
@@ -46666,7 +46867,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46666
46867
  return _context12.abrupt("break", 27);
46667
46868
  case 15:
46668
46869
  _context12.next = 17;
46669
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-0e7c4f05.js'); });
46870
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-eff5b7db.js'); });
46670
46871
  case 17:
46671
46872
  _yield$import3 = _context12.sent;
46672
46873
  SeriousWWSHandler = _yield$import3["default"];
@@ -46674,7 +46875,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46674
46875
  return _context12.abrupt("break", 27);
46675
46876
  case 21:
46676
46877
  _context12.next = 23;
46677
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-578b4c5d.js'); });
46878
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-3d724cc9.js'); });
46678
46879
  case 23:
46679
46880
  _yield$import4 = _context12.sent;
46680
46881
  StandardWWSHandler = _yield$import4["default"];
@@ -48061,7 +48262,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
48061
48262
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
48062
48263
  bootMark('signalr: chunk import start');
48063
48264
  _context3.next = 3;
48064
- return Promise.resolve().then(function () { return require('./Host3DSignalR-b69a79da.js'); });
48265
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-476793aa.js'); });
48065
48266
  case 3:
48066
48267
  _yield$import = _context3.sent;
48067
48268
  Host3DSignalR = _yield$import["default"];
@@ -49793,7 +49994,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
49793
49994
  break;
49794
49995
  case 8:
49795
49996
  _context5.next = 10;
49796
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-9d89dadf.js'); });
49997
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-9aa04af9.js'); });
49797
49998
  case 10:
49798
49999
  _yield$import = _context5.sent;
49799
50000
  DivaStandardPlanner = _yield$import["default"];
@@ -49804,7 +50005,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
49804
50005
  return _context5.abrupt("break", 21);
49805
50006
  case 15:
49806
50007
  _context5.next = 17;
49807
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-b821219e.js'); });
50008
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-e83ca1b8.js'); });
49808
50009
  case 17:
49809
50010
  _yield$import2 = _context5.sent;
49810
50011
  DivaBoxPlanner = _yield$import2["default"];