@crystaldesign/web-planner-logic 26.14.0-beta.17 → 26.14.0-beta.18

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-8dd2c8eb.js → DivaBoxPlanner-a5f6ecf3.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-95874c20.js → DivaStandardPlanner-b84e8c77.js} +2 -2
  3. package/build/cjs/{DoorPlanner-12303753.js → DoorPlanner-00e36c65.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-4dc77fda.js → Host3DSignalR-dcb7c665.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-c089303d.js → LiviqueWWSHandler-c8fecd2e.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-ef6774e8.js → PfisterWWSHandler-efcfdb92.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-8932f092.js → PlannerHandler2D-cdf303bd.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-c755bc41.js → SeriousBasketHandler-a159f15c.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-b140a2ce.js → ShelfPlanner-5329a6dc.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-2e7b1d33.js → StandardWWSHandler-4143da24.js} +1 -1
  11. package/build/cjs/{index-71c86e17.js → index-df9d5ebc.js} +573 -180
  12. package/build/cjs/index.js +3 -1
  13. package/build/esm/{DivaBoxPlanner-a1f1fb74.js → DivaBoxPlanner-604aac25.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-b4196009.js → DivaStandardPlanner-7d0e4b79.js} +2 -2
  15. package/build/esm/{DoorPlanner-ef74a2bb.js → DoorPlanner-033934e5.js} +1 -1
  16. package/build/esm/{Host3DSignalR-62f12755.js → Host3DSignalR-90c03467.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-fb4ffee6.js → LiviqueWWSHandler-2d57af9a.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-711dde1e.js → PfisterWWSHandler-cb0741a1.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-c7c5c95f.js → PlannerHandler2D-d4285c6f.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-bc801bf6.js → SeriousBasketHandler-2982e2a2.js} +1 -1
  21. package/build/esm/{ShelfPlanner-75778164.js → ShelfPlanner-1f5d098e.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-b550b278.js → StandardWWSHandler-ac0ddcc9.js} +1 -1
  23. package/build/esm/{index-aa8248ad.js → index-f62e78c3.js} +572 -181
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +2 -0
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +3 -0
  28. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +8 -0
  30. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/Articles/PriceObject.d.ts +3 -0
  32. package/build/types/web-planner-logic/src/interface/Articles/PriceObject.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +2 -1
  34. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +10 -0
  36. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/interface/IDM/IDMCatalog.d.ts +22 -0
  38. package/build/types/web-planner-logic/src/interface/IDM/IDMCatalog.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +15 -0
  40. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/logic/Article/idmMeasurePrice.d.ts +61 -0
  42. package/build/types/web-planner-logic/src/logic/Article/idmMeasurePrice.d.ts.map +1 -0
  43. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +7 -0
  44. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  46. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
  47. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  48. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts +6 -0
  49. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  50. package/build/types/web-planner-logic/src/test/idmMeasurePrice.test.d.ts +2 -0
  51. package/build/types/web-planner-logic/src/test/idmMeasurePrice.test.d.ts.map +1 -0
  52. package/build/types/web-planner-logic/src/test/idmMeasurePriceEngine.test.d.ts +2 -0
  53. package/build/types/web-planner-logic/src/test/idmMeasurePriceEngine.test.d.ts.map +1 -0
  54. package/package.json +3 -3
@@ -2319,9 +2319,9 @@ function propertyEncodingOf(codex, entity) {
2319
2319
  return undefined;
2320
2320
  }
2321
2321
 
2322
- function _createForOfIteratorHelper$A(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$A(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; } } }; }
2323
- function _unsupportedIterableToArray$A(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$A(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$A(r, a) : void 0; } }
2324
- function _arrayLikeToArray$A(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; }
2322
+ function _createForOfIteratorHelper$B(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$B(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; } } }; }
2323
+ function _unsupportedIterableToArray$B(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$B(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$B(r, a) : void 0; } }
2324
+ function _arrayLikeToArray$B(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; }
2325
2325
  var LOG$s = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
2326
2326
 
2327
2327
  /** A JSON value: an object or an array. */
@@ -2418,7 +2418,7 @@ var SHAPE_TEXTS = {
2418
2418
  // 'feature:value;feature:value;;...' - an entry without a target repairs nothing
2419
2419
  REPAIR_VARIANT_VALUES: function REPAIR_VARIANT_VALUES(text) {
2420
2420
  var repairs = {};
2421
- var _iterator = _createForOfIteratorHelper$A(text.split(';;').map(function (entry) {
2421
+ var _iterator = _createForOfIteratorHelper$B(text.split(';;').map(function (entry) {
2422
2422
  return entry.split(';');
2423
2423
  })),
2424
2424
  _step;
@@ -2586,9 +2586,9 @@ function propertyTexts(value) {
2586
2586
  return [JSON.stringify(value)];
2587
2587
  }
2588
2588
 
2589
- function _createForOfIteratorHelper$z(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$z(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; } } }; }
2590
- function _unsupportedIterableToArray$z(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$z(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$z(r, a) : void 0; } }
2591
- function _arrayLikeToArray$z(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; }
2589
+ function _createForOfIteratorHelper$A(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$A(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; } } }; }
2590
+ function _unsupportedIterableToArray$A(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$A(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$A(r, a) : void 0; } }
2591
+ function _arrayLikeToArray$A(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; }
2592
2592
  var LIGHT_PRESETS = ['day', 'evening'];
2593
2593
  var FLOOR_FINISHES = ['matte', 'satin', 'gloss'];
2594
2594
  var OPENING_TYPES = ['door', 'window', 'passage'];
@@ -2683,7 +2683,7 @@ function mergeStraightCorners(footprint, wallOf) {
2683
2683
  bx = _footprint$corner[0],
2684
2684
  bz = _footprint$corner[1];
2685
2685
  var length = Math.hypot(bx - ax, bz - az);
2686
- var _iterator = _createForOfIteratorHelper$z(wallOf),
2686
+ var _iterator = _createForOfIteratorHelper$A(wallOf),
2687
2687
  _step;
2688
2688
  try {
2689
2689
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2699,7 +2699,7 @@ function mergeStraightCorners(footprint, wallOf) {
2699
2699
  _iterator.f();
2700
2700
  }
2701
2701
  footprint.splice(corner, 1);
2702
- var _iterator2 = _createForOfIteratorHelper$z(wallOf),
2702
+ var _iterator2 = _createForOfIteratorHelper$A(wallOf),
2703
2703
  _step2;
2704
2704
  try {
2705
2705
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2721,7 +2721,7 @@ function normalizeFootprint(value) {
2721
2721
  if (!Array.isArray(value) || !value.every(isPoint)) return undefined;
2722
2722
  var footprint = [];
2723
2723
  var keptIndex = [];
2724
- var _iterator3 = _createForOfIteratorHelper$z(value),
2724
+ var _iterator3 = _createForOfIteratorHelper$A(value),
2725
2725
  _step3;
2726
2726
  try {
2727
2727
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3050,9 +3050,9 @@ var DEFAULT_PLACEMENT_RULES = {
3050
3050
 
3051
3051
  function ownKeys$w(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; }
3052
3052
  function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3053
- function _createForOfIteratorHelper$y(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$y(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; } } }; }
3054
- function _unsupportedIterableToArray$y(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$y(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$y(r, a) : void 0; } }
3055
- function _arrayLikeToArray$y(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; }
3053
+ function _createForOfIteratorHelper$z(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$z(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; } } }; }
3054
+ function _unsupportedIterableToArray$z(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$z(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$z(r, a) : void 0; } }
3055
+ function _arrayLikeToArray$z(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; }
3056
3056
 
3057
3057
  /** Where a carrier takes another element: in front of it, beside it, at its foot end, around it or under it. */
3058
3058
 
@@ -3161,7 +3161,7 @@ function toSlot(spec) {
3161
3161
  });
3162
3162
  var accepts = {};
3163
3163
  if (Array.isArray(spec.accepts)) {
3164
- var _iterator = _createForOfIteratorHelper$y(normalizePlacementTypes(spec.accepts)),
3164
+ var _iterator = _createForOfIteratorHelper$z(normalizePlacementTypes(spec.accepts)),
3165
3165
  _step;
3166
3166
  try {
3167
3167
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -3239,7 +3239,7 @@ function mergeSpecs(defaults, value) {
3239
3239
  if (!_carrier || !isRecord(carrierValue)) continue;
3240
3240
  var _carrierRules = (_merged$_carrier = merged[_carrier]) !== null && _merged$_carrier !== void 0 ? _merged$_carrier : {};
3241
3241
  merged[_carrier] = _carrierRules;
3242
- var _iterator2 = _createForOfIteratorHelper$y(RELATIONS),
3242
+ var _iterator2 = _createForOfIteratorHelper$z(RELATIONS),
3243
3243
  _step2;
3244
3244
  try {
3245
3245
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -3290,7 +3290,7 @@ function resolvePlacementOptions(rtvPreset) {
3290
3290
  carrier = _Object$entries7$_i[0],
3291
3291
  carrierRules = _Object$entries7$_i[1];
3292
3292
  var slots = {};
3293
- var _iterator3 = _createForOfIteratorHelper$y(RELATIONS),
3293
+ var _iterator3 = _createForOfIteratorHelper$z(RELATIONS),
3294
3294
  _step3;
3295
3295
  try {
3296
3296
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3312,9 +3312,9 @@ function resolvePlacementOptions(rtvPreset) {
3312
3312
  };
3313
3313
  }
3314
3314
 
3315
- function _createForOfIteratorHelper$x(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$x(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; } } }; }
3316
- function _unsupportedIterableToArray$x(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$x(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$x(r, a) : void 0; } }
3317
- function _arrayLikeToArray$x(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; }
3315
+ function _createForOfIteratorHelper$y(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$y(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; } } }; }
3316
+ function _unsupportedIterableToArray$y(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$y(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$y(r, a) : void 0; } }
3317
+ function _arrayLikeToArray$y(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; }
3318
3318
 
3319
3319
  /** The article facts the placement-type chain reads. */
3320
3320
 
@@ -3325,7 +3325,7 @@ function _arrayLikeToArray$x(r, a) { (null == a || a > r.length) && (a = r.lengt
3325
3325
  function resolvePlacementType(input, paletteGroups) {
3326
3326
  var property = normalizePlacementTypes(input.placementType);
3327
3327
  if (property.length) return property;
3328
- var _iterator = _createForOfIteratorHelper$x(input.groupNames),
3328
+ var _iterator = _createForOfIteratorHelper$y(input.groupNames),
3329
3329
  _step;
3330
3330
  try {
3331
3331
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18694,9 +18694,9 @@ function parseCornerSide(value) {
18694
18694
  return isOnValue(value) ? 'any' : undefined;
18695
18695
  }
18696
18696
 
18697
- function _createForOfIteratorHelper$w(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$w(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; } } }; }
18698
- function _unsupportedIterableToArray$w(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$w(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$w(r, a) : void 0; } }
18699
- function _arrayLikeToArray$w(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; }
18697
+ function _createForOfIteratorHelper$x(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$x(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; } } }; }
18698
+ function _unsupportedIterableToArray$x(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$x(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$x(r, a) : void 0; } }
18699
+ function _arrayLikeToArray$x(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; }
18700
18700
 
18701
18701
  //kaufmännischer Artikel
18702
18702
  var CatalogArticleData = /*#__PURE__*/function () {
@@ -19142,6 +19142,19 @@ var CatalogArticleData = /*#__PURE__*/function () {
19142
19142
  set: function set(val) {
19143
19143
  this._catalogArticle.idmPrices = val;
19144
19144
  }
19145
+ }, {
19146
+ key: "priceTypeRef",
19147
+ get: function get() {
19148
+ return this._catalogArticle.priceTypeRef;
19149
+ },
19150
+ set: function set(val) {
19151
+ this._catalogArticle.priceTypeRef = val;
19152
+ }
19153
+ }, {
19154
+ key: "basicShapeMm",
19155
+ get: function get() {
19156
+ return this._catalogArticle.basicShapeMm;
19157
+ }
19145
19158
  }, {
19146
19159
  key: "priceFeatureGroupNos",
19147
19160
  get: function get() {
@@ -19526,7 +19539,7 @@ var CatalogArticleData = /*#__PURE__*/function () {
19526
19539
  value: function getOptionValueFromOption(opt, opv) {
19527
19540
  if (this._catalogArticle.articleOptions[opt] && this._catalogArticle.articleOptions[opt].hasOPG) {
19528
19541
  var myOPGs = this._catalogArticle.articleOptions[opt].articleOptionValues;
19529
- var _iterator = _createForOfIteratorHelper$w(myOPGs),
19542
+ var _iterator = _createForOfIteratorHelper$x(myOPGs),
19530
19543
  _step;
19531
19544
  try {
19532
19545
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20695,9 +20708,9 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
20695
20708
  }]);
20696
20709
  }();
20697
20710
 
20698
- function _createForOfIteratorHelper$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(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; } } }; }
20699
- function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
20700
- function _arrayLikeToArray$v(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; }
20711
+ function _createForOfIteratorHelper$w(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$w(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; } } }; }
20712
+ function _unsupportedIterableToArray$w(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$w(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$w(r, a) : void 0; } }
20713
+ function _arrayLikeToArray$w(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; }
20701
20714
  var LOG$o = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
20702
20715
 
20703
20716
  /** Catalog options already warned about a `VIEWER_TOGGLE` without `IS_STATE`: one warning per option, not per article. */
@@ -20818,7 +20831,7 @@ var ArticleOptionData = /*#__PURE__*/function () {
20818
20831
  }, {
20819
20832
  key: "getOpvByOcd",
20820
20833
  value: function getOpvByOcd(codex) {
20821
- var _iterator = _createForOfIteratorHelper$v(this.opt.articleOptionValues),
20834
+ var _iterator = _createForOfIteratorHelper$w(this.opt.articleOptionValues),
20822
20835
  _step;
20823
20836
  try {
20824
20837
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21177,9 +21190,9 @@ var ArticleOptionData = /*#__PURE__*/function () {
21177
21190
  }]);
21178
21191
  }();
21179
21192
 
21180
- function _createForOfIteratorHelper$u(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$u(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; } } }; }
21181
- function _unsupportedIterableToArray$u(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$u(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$u(r, a) : void 0; } }
21182
- function _arrayLikeToArray$u(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; }
21193
+ function _createForOfIteratorHelper$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(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; } } }; }
21194
+ function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
21195
+ function _arrayLikeToArray$v(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; }
21183
21196
  var LOG$n = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
21184
21197
  function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors, catalog, newOPT, rule) {
21185
21198
  var lang = catalog.api.getLanguage();
@@ -21556,7 +21569,7 @@ function getReferencedDecisions(decisions, decisionRefs) {
21556
21569
  });
21557
21570
  var enableTargets = getActionTargets(decisions, 'ENABLE_DECISION');
21558
21571
  for (var i = 0; i < evaluated.length; i++) {
21559
- var _iterator = _createForOfIteratorHelper$u(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
21572
+ var _iterator = _createForOfIteratorHelper$v(getActionTargets([evaluated[i]], 'DISABLE_DECISION')),
21560
21573
  _step;
21561
21574
  try {
21562
21575
  var _loop = function _loop() {
@@ -21583,19 +21596,19 @@ function getReferencedDecisions(decisions, decisionRefs) {
21583
21596
  /** Numbers of the decisions an action of the given type points at. */
21584
21597
  function getActionTargets(decisions, type) {
21585
21598
  var targets = new Set();
21586
- var _iterator2 = _createForOfIteratorHelper$u(decisions),
21599
+ var _iterator2 = _createForOfIteratorHelper$v(decisions),
21587
21600
  _step2;
21588
21601
  try {
21589
21602
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
21590
21603
  var _decision$DOC;
21591
21604
  var decision = _step2.value;
21592
- var _iterator3 = _createForOfIteratorHelper$u((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
21605
+ var _iterator3 = _createForOfIteratorHelper$v((_decision$DOC = decision.DOC) !== null && _decision$DOC !== void 0 ? _decision$DOC : []),
21593
21606
  _step3;
21594
21607
  try {
21595
21608
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
21596
21609
  var _combination$DA;
21597
21610
  var combination = _step3.value;
21598
- var _iterator4 = _createForOfIteratorHelper$u((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
21611
+ var _iterator4 = _createForOfIteratorHelper$v((_combination$DA = combination.DA) !== null && _combination$DA !== void 0 ? _combination$DA : []),
21599
21612
  _step4;
21600
21613
  try {
21601
21614
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -21749,9 +21762,9 @@ function getArticleOptionValueType(set, codex, jsonOPV, catalogOPV, myArticle, i
21749
21762
  return opv;
21750
21763
  }
21751
21764
 
21752
- function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(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; } } }; }
21753
- function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(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$t(r, a) : void 0; } }
21754
- function _arrayLikeToArray$t(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; }
21765
+ function _createForOfIteratorHelper$u(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$u(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; } } }; }
21766
+ function _unsupportedIterableToArray$u(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$u(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$u(r, a) : void 0; } }
21767
+ function _arrayLikeToArray$u(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; }
21755
21768
  var LOG$m = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
21756
21769
  var COUNT_KEY_BY_DOCKING_TYPE = {
21757
21770
  AVC: 'avc',
@@ -21846,7 +21859,7 @@ var SVGUtils = /*#__PURE__*/function () {
21846
21859
  avu: 0,
21847
21860
  avl: 0
21848
21861
  };
21849
- var _iterator = _createForOfIteratorHelper$t(this.getDPsInSVG(content)),
21862
+ var _iterator = _createForOfIteratorHelper$u(this.getDPsInSVG(content)),
21850
21863
  _step;
21851
21864
  try {
21852
21865
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22041,7 +22054,7 @@ var SVGUtils = /*#__PURE__*/function () {
22041
22054
  keepWidth: keep === null || keep === void 0 ? void 0 : keep.width,
22042
22055
  keepDepth: keep === null || keep === void 0 ? void 0 : keep.depth
22043
22056
  });
22044
- var _iterator2 = _createForOfIteratorHelper$t(result.warnings),
22057
+ var _iterator2 = _createForOfIteratorHelper$u(result.warnings),
22045
22058
  _step2;
22046
22059
  try {
22047
22060
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -22061,9 +22074,9 @@ var SVGUtils = /*#__PURE__*/function () {
22061
22074
 
22062
22075
  function ownKeys$u(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; }
22063
22076
  function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22064
- function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
22065
- function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
22066
- function _arrayLikeToArray$s(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; }
22077
+ function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(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; } } }; }
22078
+ function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(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$t(r, a) : void 0; } }
22079
+ function _arrayLikeToArray$t(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; }
22067
22080
  var LOG$l = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
22068
22081
 
22069
22082
  //a decision enabled by an action may itself enable further ones; the cap keeps a cyclic catalog from looping
@@ -22154,8 +22167,9 @@ function _loadMoreFromIDMArticles() {
22154
22167
  catalogArticleData.decisionsRefs = item.decisionRefs;
22155
22168
  catalogArticleData.idmPartlist = item.partlist;
22156
22169
  catalogArticleData.idmPrices = item.prices;
22170
+ if (item.priceTypeRef) catalogArticleData.priceTypeRef = item.priceTypeRef;
22157
22171
  initIDMArticleRelations(item, catalogArticleData, catalogData, serieCatalogs);
22158
- case 8:
22172
+ case 9:
22159
22173
  case "end":
22160
22174
  return _context4.stop();
22161
22175
  }
@@ -22216,7 +22230,7 @@ function _loadMoreFromIDMArticles() {
22216
22230
  catalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i7], catalogData.idmOptionGroups));
22217
22231
  }
22218
22232
  }
22219
- _iterator6 = _createForOfIteratorHelper$s(toLoadPFGroups);
22233
+ _iterator6 = _createForOfIteratorHelper$t(toLoadPFGroups);
22220
22234
  _context8.prev = 36;
22221
22235
  _loop7 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop7() {
22222
22236
  var prfgNo, askedBy;
@@ -22382,7 +22396,7 @@ function _loadMoreFromIDMArticles() {
22382
22396
  _context8.next = 62;
22383
22397
  break;
22384
22398
  case 67:
22385
- _iterator7 = _createForOfIteratorHelper$s(toLoadFeatures);
22399
+ _iterator7 = _createForOfIteratorHelper$t(toLoadFeatures);
22386
22400
  _context8.prev = 68;
22387
22401
  _loop8 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop8() {
22388
22402
  var featureNo, askedBy;
@@ -22511,13 +22525,13 @@ function readAdditionalItemRefs(item) {
22511
22525
  var _item$mandatoryAdditi, _item$mandatoryAdditi2, _item$optionalAdditio, _item$optionalAdditio2;
22512
22526
  var merged = new Map();
22513
22527
  var add = function add(groups, quantity) {
22514
- var _iterator = _createForOfIteratorHelper$s(groups),
22528
+ var _iterator = _createForOfIteratorHelper$t(groups),
22515
22529
  _step;
22516
22530
  try {
22517
22531
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
22518
22532
  var _group$itemRef;
22519
22533
  var group = _step.value;
22520
- var _iterator2 = _createForOfIteratorHelper$s((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
22534
+ var _iterator2 = _createForOfIteratorHelper$t((_group$itemRef = group.itemRef) !== null && _group$itemRef !== void 0 ? _group$itemRef : []),
22521
22535
  _step2;
22522
22536
  try {
22523
22537
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -22584,7 +22598,7 @@ function _loadReferencedSerieCatalogs() {
22584
22598
  });
22585
22599
  }));
22586
22600
  serieNos["delete"](String(catalogData.catalogCodex));
22587
- _iterator8 = _createForOfIteratorHelper$s(serieNos);
22601
+ _iterator8 = _createForOfIteratorHelper$t(serieNos);
22588
22602
  _context9.prev = 6;
22589
22603
  _iterator8.s();
22590
22604
  case 8:
@@ -22761,11 +22775,11 @@ function _fillMissingDockingPointCounts() {
22761
22775
  case 3:
22762
22776
  // the same accessories initIDMArticleRelations maps, each with the catalog it lives in
22763
22777
  accessories = new Map();
22764
- _iterator9 = _createForOfIteratorHelper$s(items);
22778
+ _iterator9 = _createForOfIteratorHelper$t(items);
22765
22779
  try {
22766
22780
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
22767
22781
  item = _step9.value;
22768
- _iterator10 = _createForOfIteratorHelper$s(readAdditionalItemRefs(item));
22782
+ _iterator10 = _createForOfIteratorHelper$t(readAdditionalItemRefs(item));
22769
22783
  try {
22770
22784
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
22771
22785
  ref = _step10.value;
@@ -22902,16 +22916,16 @@ var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
22902
22916
  break;
22903
22917
  }
22904
22918
  toLoad = new Set();
22905
- _iterator3 = _createForOfIteratorHelper$s(catalogData.loadedDecisions);
22919
+ _iterator3 = _createForOfIteratorHelper$t(catalogData.loadedDecisions);
22906
22920
  try {
22907
22921
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
22908
22922
  decision = _step3.value;
22909
- _iterator4 = _createForOfIteratorHelper$s((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
22923
+ _iterator4 = _createForOfIteratorHelper$t((_decision$optionCombi = decision.optionCombinations) !== null && _decision$optionCombi !== void 0 ? _decision$optionCombi : []);
22910
22924
  try {
22911
22925
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
22912
22926
  combination = _step4.value;
22913
22927
  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 : []));
22914
- _iterator5 = _createForOfIteratorHelper$s(refs);
22928
+ _iterator5 = _createForOfIteratorHelper$t(refs);
22915
22929
  try {
22916
22930
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
22917
22931
  ref = _step5.value;
@@ -23335,6 +23349,233 @@ function getArticleOption(set, option, catalogOption, feature, catalogArticleDat
23335
23349
  return opv;
23336
23350
  }
23337
23351
 
23352
+ function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
23353
+ function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
23354
+ function _arrayLikeToArray$s(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; }
23355
+
23356
+ /** The dimensions of an article in mm. */
23357
+
23358
+ /** How a measure-dependent catalog price became the price of the configured article. */
23359
+
23360
+ var DIMENSION_OF = {
23361
+ b: 'width',
23362
+ w: 'width',
23363
+ t: 'depth',
23364
+ d: 'depth',
23365
+ h: 'height'
23366
+ };
23367
+
23368
+ /** A price type that prices by width, depth or height; a piece price type has no basic unit. */
23369
+ function isMeasureDependent(priceType) {
23370
+ var _priceType$basicUnit;
23371
+ return !!priceType && ((_priceType$basicUnit = priceType.basicUnit) !== null && _priceType$basicUnit !== void 0 ? _priceType$basicUnit : 0) > 0 && !!(priceType.widthX || priceType.depthY || priceType.heightZ);
23372
+ }
23373
+
23374
+ /**
23375
+ * The length, area or volume a price type prices, in mm, mm² or mm³: its formula if it has one, otherwise the
23376
+ * product of the flagged dimensions. Undefined when a dimension it needs is missing or the formula cannot be read.
23377
+ */
23378
+ function priceTypeMeasure(priceType, measures) {
23379
+ var _priceType$priceTypeF;
23380
+ if ((_priceType$priceTypeF = priceType.priceTypeFormula) !== null && _priceType$priceTypeF !== void 0 && _priceType$priceTypeF.trim()) return evaluatePriceTypeFormula(priceType.priceTypeFormula, measures);
23381
+ var used = [];
23382
+ if (priceType.widthX) used.push(measures.width);
23383
+ if (priceType.depthY) used.push(measures.depth);
23384
+ if (priceType.heightZ) used.push(measures.height);
23385
+ if (!used.length || used.some(function (m) {
23386
+ return typeof m !== 'number' || !Number.isFinite(m);
23387
+ })) return undefined;
23388
+ return used.reduce(function (product, m) {
23389
+ return product * m;
23390
+ }, 1);
23391
+ }
23392
+
23393
+ /** Rounds a measure to a multiple of the rounding unit: 1 up, 2 down, 3 commercially. */
23394
+ function roundMeasure(measure, roundingUnit, roundingType) {
23395
+ if (!roundingUnit || roundingUnit <= 0) return measure;
23396
+ // Float noise is cut first: 2350 / 10 has to stay 235 steps and must not be rounded up to 236.
23397
+ var steps = Math.round(measure / roundingUnit * 1e9) / 1e9;
23398
+ switch (roundingType) {
23399
+ case 2:
23400
+ return Math.floor(steps) * roundingUnit;
23401
+ case 3:
23402
+ return Math.round(steps) * roundingUnit;
23403
+ default:
23404
+ return Math.ceil(steps) * roundingUnit;
23405
+ }
23406
+ }
23407
+
23408
+ /**
23409
+ * The price of a measure-dependent catalog price for the given dimensions. A basic price dependent type charges the
23410
+ * base price for the basic price unit and the unit price for the rest of the measure (never below zero); any other
23411
+ * type charges the unit price for the whole measure and the base price as its minimum. Undefined for a piece price
23412
+ * type, when a dimension the type needs is missing or when a formula comes out negative.
23413
+ */
23414
+ function calcMeasurePrice(unitPrice, priceType, measures, basic) {
23415
+ if (!isMeasureDependent(priceType)) return undefined;
23416
+ var raw = priceTypeMeasure(priceType, measures);
23417
+ if (raw === undefined || raw < 0) return undefined;
23418
+ var measure = roundMeasure(raw, priceType.roundingUnit, priceType.roundingType);
23419
+ var basicUnit = priceType.basicUnit;
23420
+ var basicPrice = (basic === null || basic === void 0 ? void 0 : basic.price) || undefined;
23421
+ var price;
23422
+ var minimumApplied = false;
23423
+ if (priceType.basicPriceDependent) {
23424
+ var _basic$unit;
23425
+ price = (basicPrice !== null && basicPrice !== void 0 ? basicPrice : 0) + unitPrice * Math.max(0, measure - ((_basic$unit = basic === null || basic === void 0 ? void 0 : basic.unit) !== null && _basic$unit !== void 0 ? _basic$unit : 0)) / basicUnit;
23426
+ } else {
23427
+ price = unitPrice * measure / basicUnit;
23428
+ if (basicPrice !== undefined && basicPrice > price) {
23429
+ price = basicPrice;
23430
+ minimumApplied = true;
23431
+ }
23432
+ }
23433
+ return {
23434
+ priceTypeNo: priceType.priceTypeNo,
23435
+ unitPrice: unitPrice,
23436
+ measure: measure,
23437
+ basicUnit: basicUnit,
23438
+ unit: priceUnitLabel(priceType),
23439
+ basicPrice: basicPrice,
23440
+ basicPriceDependent: priceType.basicPriceDependent || undefined,
23441
+ basicPriceUnit: priceType.basicPriceDependent ? basic === null || basic === void 0 ? void 0 : basic.unit : undefined,
23442
+ minimumApplied: minimumApplied || undefined,
23443
+ price: Math.round((price + Number.EPSILON) * 100) / 100
23444
+ };
23445
+ }
23446
+
23447
+ /**
23448
+ * The unit a price type prices per: 'm', 'cm²', 'm³', ... or the basic unit in mm when it is no such power. A formula
23449
+ * does not say how many dimensions its result has, so its unit is read from the basic unit alone.
23450
+ */
23451
+ function priceUnitLabel(priceType) {
23452
+ var _priceType$basicUnit2, _priceType$priceTypeF2;
23453
+ var basicUnit = (_priceType$basicUnit2 = priceType.basicUnit) !== null && _priceType$basicUnit2 !== void 0 ? _priceType$basicUnit2 : 0;
23454
+ var flagged = [priceType.widthX, priceType.depthY, priceType.heightZ].filter(Boolean).length;
23455
+ var dimensionCounts = (_priceType$priceTypeF2 = priceType.priceTypeFormula) !== null && _priceType$priceTypeF2 !== void 0 && _priceType$priceTypeF2.trim() ? [1, 2, 3] : [flagged];
23456
+ var _iterator = _createForOfIteratorHelper$s([['m', 1000], ['cm', 10], ['mm', 1]]),
23457
+ _step;
23458
+ try {
23459
+ var _loop = function _loop() {
23460
+ var _step$value = _slicedToArray__default["default"](_step.value, 2),
23461
+ unit = _step$value[0],
23462
+ side = _step$value[1];
23463
+ var dimensions = dimensionCounts.find(function (count) {
23464
+ return count > 0 && basicUnit === Math.pow(side, count);
23465
+ });
23466
+ if (dimensions) return {
23467
+ v: unit + EXPONENT[dimensions]
23468
+ };
23469
+ },
23470
+ _ret;
23471
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
23472
+ _ret = _loop();
23473
+ if (_ret) return _ret.v;
23474
+ }
23475
+ } catch (err) {
23476
+ _iterator.e(err);
23477
+ } finally {
23478
+ _iterator.f();
23479
+ }
23480
+ return basicUnit + ' mm' + EXPONENT[flagged];
23481
+ }
23482
+ var EXPONENT = {
23483
+ 0: '',
23484
+ 1: '',
23485
+ 2: '²',
23486
+ 3: '³'
23487
+ };
23488
+
23489
+ /** The rounded measure of a price with its unit: mm, mm² or mm³ by the dimensions of the unit the price is per. */
23490
+ function measureWithUnit(_ref) {
23491
+ var _exec$, _exec;
23492
+ var measure = _ref.measure,
23493
+ unit = _ref.unit;
23494
+ return "".concat(measure, " mm").concat((_exec$ = (_exec = /[²³]$/.exec(unit)) === null || _exec === void 0 ? void 0 : _exec[0]) !== null && _exec$ !== void 0 ? _exec$ : '');
23495
+ }
23496
+
23497
+ /** The calculation in one line, e.g. '45 per m × 2.35 m = 105.75' or '100 base for 1.5 m + 40 per m × 0.85 m = 134'. */
23498
+ function describeMeasurePrice(_ref2) {
23499
+ var unitPrice = _ref2.unitPrice,
23500
+ measure = _ref2.measure,
23501
+ basicUnit = _ref2.basicUnit,
23502
+ unit = _ref2.unit,
23503
+ basicPrice = _ref2.basicPrice,
23504
+ basicPriceUnit = _ref2.basicPriceUnit,
23505
+ basicPriceDependent = _ref2.basicPriceDependent,
23506
+ minimumApplied = _ref2.minimumApplied,
23507
+ price = _ref2.price;
23508
+ // a basic unit that is no metric power is named in mm, so the measure is too
23509
+ var amount = function amount(mm) {
23510
+ return /\d/.test(unit) ? measureWithUnit({
23511
+ measure: mm,
23512
+ unit: unit
23513
+ }) : "".concat(Math.round(mm / basicUnit * 10000) / 10000, " ").concat(unit);
23514
+ };
23515
+ if (basicPriceDependent) return "".concat(basicPrice !== null && basicPrice !== void 0 ? basicPrice : 0, " base for ").concat(amount(basicPriceUnit !== null && basicPriceUnit !== void 0 ? basicPriceUnit : 0), " + ").concat(unitPrice, " per ").concat(unit, " \xD7 ").concat(amount(Math.max(0, measure - (basicPriceUnit !== null && basicPriceUnit !== void 0 ? basicPriceUnit : 0))), " = ").concat(price);
23516
+ var calculation = "".concat(unitPrice, " per ").concat(unit, " \xD7 ").concat(amount(measure));
23517
+ return minimumApplied ? "".concat(calculation, " is below the minimum: ").concat(price) : "".concat(calculation, " = ").concat(price);
23518
+ }
23519
+
23520
+ /**
23521
+ * Evaluates a PRICE_TYPE_FORMULA over the dimensions in mm: b or w is the width, t or d the depth, h the height,
23522
+ * combined with + - * / and brackets. Undefined when it uses a missing dimension or cannot be read.
23523
+ */
23524
+ function evaluatePriceTypeFormula(formula, measures) {
23525
+ var source = formula.replace(/\s+/g, '').toLowerCase();
23526
+ var pos = 0;
23527
+ var invalid = function invalid() {
23528
+ throw new Error('invalid price type formula');
23529
+ };
23530
+ var _factor = function factor() {
23531
+ var _char = source[pos];
23532
+ if (_char === '(') {
23533
+ pos++;
23534
+ var value = sum();
23535
+ if (source[pos++] !== ')') invalid();
23536
+ return value;
23537
+ }
23538
+ if (_char === '-' || _char === '+') {
23539
+ pos++;
23540
+ return _char === '-' ? -_factor() : _factor();
23541
+ }
23542
+ var dimension = DIMENSION_OF[_char];
23543
+ if (dimension) {
23544
+ pos++;
23545
+ var _value = measures[dimension];
23546
+ return typeof _value === 'number' && Number.isFinite(_value) ? _value : invalid();
23547
+ }
23548
+ var number = /^\d+(\.\d+)?/.exec(source.slice(pos));
23549
+ if (!number) return invalid();
23550
+ pos += number[0].length;
23551
+ return Number(number[0]);
23552
+ };
23553
+ var product = function product() {
23554
+ var value = _factor();
23555
+ while (source[pos] === '*' || source[pos] === '/') {
23556
+ var operator = source[pos++];
23557
+ var right = _factor();
23558
+ value = operator === '*' ? value * right : value / right;
23559
+ }
23560
+ return value;
23561
+ };
23562
+ var sum = function sum() {
23563
+ var value = product();
23564
+ while (source[pos] === '+' || source[pos] === '-') {
23565
+ var operator = source[pos++];
23566
+ var right = product();
23567
+ value = operator === '+' ? value + right : value - right;
23568
+ }
23569
+ return value;
23570
+ };
23571
+ try {
23572
+ var value = sum();
23573
+ return pos === source.length && Number.isFinite(value) ? value : undefined;
23574
+ } catch (_unused) {
23575
+ return undefined;
23576
+ }
23577
+ }
23578
+
23338
23579
  function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
23339
23580
  function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(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$r(r, a) : void 0; } }
23340
23581
  function _arrayLikeToArray$r(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; }
@@ -23344,7 +23585,7 @@ var LOG$k = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC'
23344
23585
  function initIDMCatalogData(serie, orderSet, api) {
23345
23586
  var _serie$decisions, _serie$decisions2, _serie$decisionRefs;
23346
23587
  var catalog = serie.catalogData;
23347
- var catalogData = {
23588
+ var catalogData = _objectSpread$t(_objectSpread$t({
23348
23589
  accountGuid: orderSet.AccountGUID,
23349
23590
  serieId: serie._id,
23350
23591
  accountName: '',
@@ -23376,15 +23617,55 @@ function initIDMCatalogData(serie, orderSet, api) {
23376
23617
  //digits: json.Digits,
23377
23618
  supplierILN: catalog.glnNo,
23378
23619
  // SupplierILN des Herstellers des Katalogs
23379
- supplierName: catalog.manufacturerName1,
23380
- rounding: catalog.roundingType,
23620
+ supplierName: catalog.manufacturerName1
23621
+ }, readPriceDefinition(catalog)), {}, {
23381
23622
  optionGroups: catalog.optionGroups,
23382
23623
  formulas: catalog.formulas,
23383
23624
  tabGroups: catalog.tabGroups,
23384
23625
  loadedPricefeaturegroups: []
23385
- };
23626
+ });
23386
23627
  return catalogData;
23387
23628
  }
23629
+ var PRICE_ROUNDINGS = [0, 1, 2, 3];
23630
+
23631
+ /**
23632
+ * The catalog's price types and how its prices are rounded. A price type's rounding rounds its measure: a catalog that
23633
+ * prices by measure shows its prices to the cent, any other catalog keeps the rounding it always had.
23634
+ */
23635
+ function readPriceDefinition(catalog) {
23636
+ var idmPriceTypes = readPriceTypes(catalog);
23637
+ if (idmPriceTypes.some(isMeasureDependent)) return {
23638
+ idmPriceTypes: idmPriceTypes,
23639
+ rounding: 1,
23640
+ digits: 2
23641
+ };
23642
+ return {
23643
+ idmPriceTypes: idmPriceTypes,
23644
+ rounding: PRICE_ROUNDINGS.find(function (rounding) {
23645
+ return rounding === catalog.roundingType;
23646
+ })
23647
+ };
23648
+ }
23649
+
23650
+ /** The price types of an IDM 4 catalog; read without the list it still names its first one in the flat fields. IDM 3 has no measure prices. */
23651
+ function readPriceTypes(catalog) {
23652
+ var _catalog$priceTypes, _catalog$priceTypeNo;
23653
+ if (catalog.major !== 4) return [];
23654
+ if ((_catalog$priceTypes = catalog.priceTypes) !== null && _catalog$priceTypes !== void 0 && _catalog$priceTypes.length) return catalog.priceTypes;
23655
+ if (catalog.basicUnit === undefined && catalog.widthX === undefined) return [];
23656
+ return [{
23657
+ priceTypeNo: (_catalog$priceTypeNo = catalog.priceTypeNo) !== null && _catalog$priceTypeNo !== void 0 ? _catalog$priceTypeNo : 1,
23658
+ widthX: catalog.widthX,
23659
+ depthY: catalog.depthY,
23660
+ heightZ: catalog.heightZ,
23661
+ basicUnit: catalog.basicUnit,
23662
+ roundingUnit: catalog.roundingUnit,
23663
+ roundingType: catalog.roundingType,
23664
+ basicPriceDependent: catalog.basicPriceDependent,
23665
+ priceTypeFormula: catalog.priceTypeFormula,
23666
+ priceTypeName: catalog.priceTypeName
23667
+ }];
23668
+ }
23388
23669
  function initIDMArticles(jsonItems, catalogData) {
23389
23670
  if (jsonItems !== null && jsonItems !== void 0 && jsonItems.length) {
23390
23671
  for (var i = 0; i < jsonItems.length; i++) {
@@ -23415,7 +23696,7 @@ function initIDMArticles(jsonItems, catalogData) {
23415
23696
  }
23416
23697
  }
23417
23698
  function getCatalogArticle(article, catalogData) {
23418
- var _catalogData$catalogM, _article$typeKey, _article$salesNumber, _articleMask$name, _article$flatPrice, _article$depthBasicSh, _article$depthBasicSh2, _article$depthBasicSh3, _article$widthBasicSh, _article$widthBasicSh2, _article$widthBasicSh3, _article$heightBasicS, _article$heightBasicS2, _article$heightBasicS3, _article$weightNetto, _article$detailInfos, _article$detailInfos2, _article$detailInfos3, _ref, _ref2, _articleMask$groupnam, _article$typeKey2;
23699
+ var _catalogData$catalogM, _catalogData$idmPrice, _article$typeKey, _article$salesNumber, _articleMask$name, _article$flatPrice, _article$depthBasicSh, _article$depthBasicSh2, _article$depthBasicSh3, _article$widthBasicSh, _article$widthBasicSh2, _article$widthBasicSh3, _article$heightBasicS, _article$heightBasicS2, _article$heightBasicS3, _article$weightNetto, _article$detailInfos, _article$detailInfos2, _article$detailInfos3, _ref, _ref2, _articleMask$groupnam, _article$typeKey2;
23419
23700
  var articleMask = (_catalogData$catalogM = catalogData.catalogMask) === null || _catalogData$catalogM === void 0 || (_catalogData$catalogM = _catalogData$catalogM.articles) === null || _catalogData$catalogM === void 0 ? void 0 : _catalogData$catalogM[article.typeNo];
23420
23701
  var lang = catalogData.api.getLanguageLowercase();
23421
23702
  // empty locale objects ({} or only empty strings) are truthy, so ?? alone doesn't fall back
@@ -23423,6 +23704,10 @@ function getCatalogArticle(article, catalogData) {
23423
23704
  var shortText = hasLocaleText(article.shortText) ? article.shortText : article.fullText;
23424
23705
  var featureProperties = convertProperties(article.properties, lang, 'option', 'featureNos');
23425
23706
  var optionProperties = convertProperties(article.properties, lang, 'optionValue', 'optionKeys');
23707
+ var measurePriced = isMeasureDependent((_catalogData$idmPrice = catalogData.idmPriceTypes) === null || _catalogData$idmPrice === void 0 ? void 0 : _catalogData$idmPrice.find(function (type) {
23708
+ var _article$priceTypeRef;
23709
+ return type.priceTypeNo == ((_article$priceTypeRef = article.priceTypeRef) !== null && _article$priceTypeRef !== void 0 ? _article$priceTypeRef : 1);
23710
+ }));
23426
23711
  return {
23427
23712
  areOptionsLoaded: false,
23428
23713
  arePricesLoaded: false,
@@ -23455,9 +23740,10 @@ function getCatalogArticle(article, catalogData) {
23455
23740
  properties: [].concat(_toConsumableArray__default["default"](convertProperties(article.properties, lang, 'article')), _toConsumableArray__default["default"](readProperties('article', articleMask === null || articleMask === void 0 ? void 0 : articleMask.properties, lang))),
23456
23741
  optionProperties: optionProperties,
23457
23742
  featureProperties: featureProperties,
23458
- // the service decides what is complete from the list - a missing feature class alone still leaves prices to load
23459
- articleType: article.flat ? 'FLAT' : 'OPTIONTREE',
23460
- price: article.flat ? (_article$flatPrice = article.flatPrice) !== null && _article$flatPrice !== void 0 ? _article$flatPrice : 0 : 0,
23743
+ // the service decides what is complete from the list - a missing feature class alone still leaves prices to load;
23744
+ // a measure price is the price per unit, the engine still has to apply the dimensions
23745
+ articleType: article.flat && !measurePriced ? 'FLAT' : 'OPTIONTREE',
23746
+ price: article.flat && !measurePriced ? (_article$flatPrice = article.flatPrice) !== null && _article$flatPrice !== void 0 ? _article$flatPrice : 0 : 0,
23461
23747
  featureClassRefNo: article.featureClassRefNo,
23462
23748
  useEkPrices: catalogData.api.useEkPrices,
23463
23749
  depth: article.depthBasicShapeNominalValue !== undefined ? Math.floor(((_article$depthBasicSh = article.depthBasicShapeNominalValue) !== null && _article$depthBasicSh !== void 0 ? _article$depthBasicSh : 0) / 10) : undefined,
@@ -23487,6 +23773,12 @@ function getCatalogArticle(article, catalogData) {
23487
23773
  };
23488
23774
  }),
23489
23775
  idmPrices: article.prices,
23776
+ priceTypeRef: article.priceTypeRef,
23777
+ basicShapeMm: {
23778
+ width: article.widthBasicShapeNominalValue,
23779
+ depth: article.depthBasicShapeNominalValue,
23780
+ height: article.heightBasicShapeNominalValue
23781
+ },
23490
23782
  idmPartlist: article.partlist,
23491
23783
  itemIdentification: article.itemIdentification,
23492
23784
  articleRelations: [],
@@ -24969,6 +25261,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
24969
25261
  get: function get() {
24970
25262
  return this.catalogData.formulas;
24971
25263
  }
25264
+ }, {
25265
+ key: "idmPriceTypes",
25266
+ get: function get() {
25267
+ var _this$catalogData$idm;
25268
+ return (_this$catalogData$idm = this.catalogData.idmPriceTypes) !== null && _this$catalogData$idm !== void 0 ? _this$catalogData$idm : [];
25269
+ }
24972
25270
  }, {
24973
25271
  key: "tabGroups",
24974
25272
  get: function get() {
@@ -30126,7 +30424,7 @@ var IDMEngine = /*#__PURE__*/function () {
30126
30424
  var index = _this$getMatchingOpti2[1];
30127
30425
  this.logPrice(priceFeatureGroup, index);
30128
30426
  if (index !== undefined) {
30129
- var _this$article$catalog, _this$article$catalog4, _priceFeatureGroup$fe, _priceFeatureGroup$fe2;
30427
+ var _this$article$catalog, _this$article$catalog4, _priceFeatureGroup$fe, _priceFeatureGroup$fe2, _measurePrice$price;
30130
30428
  var matichingFinish = projectFinishes[index];
30131
30429
  var priceKey = this.getFinishPriceKey(priceFeatureGroup, matichingFinish);
30132
30430
  if (((_this$article$catalog = this.article.catalogArticle.idmPrices) === null || _this$article$catalog === void 0 ? void 0 : _this$article$catalog.prices[priceKey]) === undefined) {
@@ -30135,13 +30433,16 @@ var IDMEngine = /*#__PURE__*/function () {
30135
30433
  continue;
30136
30434
  }
30137
30435
  var price = (_this$article$catalog4 = this.article.catalogArticle.idmPrices) === null || _this$article$catalog4 === void 0 ? void 0 : _this$article$catalog4.prices[priceKey];
30436
+ var measurePrice = this.getMeasurePrice(priceFeatureGroup, priceKey, price);
30437
+ if (measurePrice && this.article.set.logDecisions && this.priceDebugStack[i]) this.priceDebugStack[i].measurePrice = measurePrice;
30138
30438
  this.article.priceRefs.push({
30139
30439
  ID: matichingFinish._id,
30140
30440
  ISABP: !priceFeatureGroup.additionalPrice,
30141
30441
  IsPercentage: priceFeatureGroup.isPercentage,
30142
30442
  OPT: (_priceFeatureGroup$fe = (_priceFeatureGroup$fe2 = priceFeatureGroup.featureNos) === null || _priceFeatureGroup$fe2 === void 0 ? void 0 : _priceFeatureGroup$fe2[0]) !== null && _priceFeatureGroup$fe !== void 0 ? _priceFeatureGroup$fe : 'BASE',
30143
30443
  PPG: priceKey,
30144
- Price: price,
30444
+ Price: (_measurePrice$price = measurePrice === null || measurePrice === void 0 ? void 0 : measurePrice.price) !== null && _measurePrice$price !== void 0 ? _measurePrice$price : price,
30445
+ MeasurePrice: measurePrice,
30145
30446
  RuleDesc: DivaUtils__default["default"].getLocals(priceFeatureGroup.priceFeatureGroupText, this.article.set.api.getLanguage()),
30146
30447
  RuleDesc_locales: priceFeatureGroup.priceFeatureGroupText,
30147
30448
  PriceFeatureGroupNo: priceFeatureGroup.priceFeatureGroupNo
@@ -30289,6 +30590,91 @@ var IDMEngine = /*#__PURE__*/function () {
30289
30590
  });
30290
30591
  }
30291
30592
 
30593
+ /**
30594
+ * The price of a finish whose price feature group the item prices per length, area or volume (its PRICE_TYPE_REF),
30595
+ * for the article's current dimensions; undefined for a piece price. Only the base group carries a base or minimum
30596
+ * price; a surcharge group of a basic price dependent type charges the rest beyond the item's basic price unit.
30597
+ */
30598
+ }, {
30599
+ key: "getMeasurePrice",
30600
+ value: function getMeasurePrice(priceFeatureGroup, priceKey, unitPrice) {
30601
+ var _ref7, _prices$priceTypeRefs, _prices$priceTypeRefs2, _prices$basicPrices$p, _prices$basicPrices;
30602
+ var catalogArticle = this.article.catalogArticle;
30603
+ var prices = catalogArticle.idmPrices;
30604
+ var isBase = !priceFeatureGroup.additionalPrice;
30605
+ // without a stored reference a group prices like the editor writes it: the base group by the item's type, a surcharge by type 1
30606
+ var priceTypeNo = (_ref7 = (_prices$priceTypeRefs = prices === null || prices === void 0 || (_prices$priceTypeRefs2 = prices.priceTypeRefs) === null || _prices$priceTypeRefs2 === void 0 ? void 0 : _prices$priceTypeRefs2['PRFG' + priceFeatureGroup.priceFeatureGroupNo]) !== null && _prices$priceTypeRefs !== void 0 ? _prices$priceTypeRefs : isBase ? catalogArticle.priceTypeRef : undefined) !== null && _ref7 !== void 0 ? _ref7 : 1;
30607
+ var priceType = this.article.CatalogData.idmPriceTypes.find(function (type) {
30608
+ return type.priceTypeNo == priceTypeNo;
30609
+ });
30610
+ if (!isMeasureDependent(priceType)) return undefined;
30611
+ var measurePrice = calcMeasurePrice(unitPrice, priceType, this.getMeasuresMm(), isBase ? {
30612
+ price: (_prices$basicPrices$p = prices === null || prices === void 0 || (_prices$basicPrices = prices.basicPrices) === null || _prices$basicPrices === void 0 ? void 0 : _prices$basicPrices[priceKey]) !== null && _prices$basicPrices$p !== void 0 ? _prices$basicPrices$p : undefined,
30613
+ unit: prices === null || prices === void 0 ? void 0 : prices.basicPriceUnit
30614
+ } : {
30615
+ unit: prices === null || prices === void 0 ? void 0 : prices.basicPriceUnit
30616
+ });
30617
+ if (!measurePrice) LOG$g.warn("Price type ".concat(priceTypeNo, " of ").concat(this.article.articleCodex, " needs a dimension the article does not have or a formula that cannot be read: ").concat(priceKey, " stays a piece price"));
30618
+ return measurePrice;
30619
+ }
30620
+
30621
+ /** The article's dimensions in mm: the ones its sinks set, otherwise its planned size, otherwise the item's basic shape. */
30622
+ }, {
30623
+ key: "getMeasuresMm",
30624
+ value: function getMeasuresMm() {
30625
+ var _sinks$width, _sinks$depth, _sinks$height;
30626
+ var _this$article$catalog6 = this.article.catalogArticle,
30627
+ shape = _this$article$catalog6.basicShapeMm,
30628
+ width = _this$article$catalog6.width,
30629
+ depth = _this$article$catalog6.depth,
30630
+ height = _this$article$catalog6.height;
30631
+ var sinks = this.getSinkMeasuresMm();
30632
+ var toMm = function toMm(planned, shapeMm, catalogCm) {
30633
+ // The planner holds a basic shape in whole cm: while the article has that size the shape is the exact measure
30634
+ if (planned > 0 && !(shapeMm && Math.floor(shapeMm / 10) === planned)) return Math.round(planned * 10);
30635
+ return shapeMm || (catalogCm ? catalogCm * 10 : undefined);
30636
+ };
30637
+ return {
30638
+ width: (_sinks$width = sinks.width) !== null && _sinks$width !== void 0 ? _sinks$width : toMm(this.article.calcWidth, shape === null || shape === void 0 ? void 0 : shape.width, width),
30639
+ depth: (_sinks$depth = sinks.depth) !== null && _sinks$depth !== void 0 ? _sinks$depth : toMm(this.article.calcDepth, shape === null || shape === void 0 ? void 0 : shape.depth, depth),
30640
+ height: (_sinks$height = sinks.height) !== null && _sinks$height !== void 0 ? _sinks$height : toMm(this.article.calcHeight, shape === null || shape === void 0 ? void 0 : shape.height, height)
30641
+ };
30642
+ }
30643
+
30644
+ /**
30645
+ * The measures the article's own sinks hold, in mm. They are read here and not from the planner size, which cannot tell
30646
+ * a selected 2350 mm from a basic shape of 2355 mm and never gets the sink of a hidden partlist child.
30647
+ */
30648
+ }, {
30649
+ key: "getSinkMeasuresMm",
30650
+ value: function getSinkMeasuresMm() {
30651
+ var measures = {};
30652
+ var _iterator20 = _createForOfIteratorHelper$n(this.article.articleOptionStates.values()),
30653
+ _step20;
30654
+ try {
30655
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
30656
+ var _ops$option$idmVarian;
30657
+ var ops = _step20.value;
30658
+ if (!ops.val) continue;
30659
+ var art = (_ops$option$idmVarian = ops.option.idmVariantenArt) !== null && _ops$option$idmVarian !== void 0 ? _ops$option$idmVarian : 0;
30660
+ var setsWidth = [95, 1095].includes(art) || !!ops.option.diameter;
30661
+ var setsDepth = [96, 1096].includes(art) || !!ops.option.diameter;
30662
+ var setsHeight = [97, 1097].includes(art);
30663
+ if (!setsWidth && !setsDepth && !setsHeight) continue;
30664
+ var cm = this.sinkMeasureCm(ops);
30665
+ if (!(cm > 0)) continue;
30666
+ if (setsWidth) measures.width = Math.round(cm * 10);
30667
+ if (setsDepth) measures.depth = Math.round(cm * 10);
30668
+ if (setsHeight) measures.height = Math.round(cm * 10);
30669
+ }
30670
+ } catch (err) {
30671
+ _iterator20.e(err);
30672
+ } finally {
30673
+ _iterator20.f();
30674
+ }
30675
+ return measures;
30676
+ }
30677
+
30292
30678
  /** The idmPrices key of a finish. The real lookup, the zero check and the debug log must all use the same one. */
30293
30679
  }, {
30294
30680
  key: "getFinishPriceKey",
@@ -30380,9 +30766,9 @@ var IDMEngine = /*#__PURE__*/function () {
30380
30766
  }, {
30381
30767
  key: "evalPartlist",
30382
30768
  value: function evalPartlist(newConfigValues) {
30383
- var _this$article$catalog6;
30769
+ var _this$article$catalog7;
30384
30770
  var partlistArticlesToLoad = [];
30385
- var myPartlistArticles = (_this$article$catalog6 = this.article.catalogArticle.idmPartlist) === null || _this$article$catalog6 === void 0 ? void 0 : _this$article$catalog6.partlistPos;
30771
+ var myPartlistArticles = (_this$article$catalog7 = this.article.catalogArticle.idmPartlist) === null || _this$article$catalog7 === void 0 ? void 0 : _this$article$catalog7.partlistPos;
30386
30772
  if (!(myPartlistArticles !== null && myPartlistArticles !== void 0 && myPartlistArticles.length)) return [];
30387
30773
  if (this.article.set.logDecisions) this.article.partlistDebugEntries = [];
30388
30774
  var partlistGroup = [];
@@ -30524,7 +30910,7 @@ var IDMEngine = /*#__PURE__*/function () {
30524
30910
  _loop9(i);
30525
30911
  }
30526
30912
  if (quanitity >= 1) {
30527
- var _ref7;
30913
+ var _ref8;
30528
30914
  partlistArticlesToLoad.push({
30529
30915
  CatalogCodex: catalogCodex != null ? catalogCodex.toString() : this.article.catalogCodex,
30530
30916
  BasketID: previousPartlistArticle === null || previousPartlistArticle === void 0 ? void 0 : previousPartlistArticle.basketId,
@@ -30545,7 +30931,7 @@ var IDMEngine = /*#__PURE__*/function () {
30545
30931
  PreviousPartlistArticles: previousPartlistArticle !== null && previousPartlistArticle !== void 0 && previousPartlistArticle.partlistArticles && Object.keys(previousPartlistArticle.partlistArticles).length ? previousPartlistArticle.partlistArticles : undefined,
30546
30932
  optionsForPrint: featuresForPrint,
30547
30933
  RetailArticleNr: myPartListPos.retailArticleNr && myPartListPos.retailArticleNr !== '' ? myPartListPos.retailArticleNr : undefined,
30548
- RetailPrefix: (_ref7 = myPartListPos.retailPrefix) !== null && _ref7 !== void 0 ? _ref7 : undefined
30934
+ RetailPrefix: (_ref8 = myPartListPos.retailPrefix) !== null && _ref8 !== void 0 ? _ref8 : undefined
30549
30935
  //SupplierOrderCodex: // TODO WWS IDM ,myPartListPos.SupplierOrderCodex,
30550
30936
 
30551
30937
  //optionImgForPrint,
@@ -30564,9 +30950,9 @@ var IDMEngine = /*#__PURE__*/function () {
30564
30950
  key: "getMatchingOptionCombination",
30565
30951
  value: function getMatchingOptionCombination(combinations, decisionNo, ruleSet) {
30566
30952
  for (var i = 0; i < combinations.length; i++) {
30567
- var _ref8, _ref9, _projectOptionsSetRef;
30953
+ var _ref9, _ref10, _projectOptionsSetRef;
30568
30954
  var combination = combinations[i];
30569
- 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 : [];
30955
+ var optionSetRefs = (_ref9 = (_ref10 = (_projectOptionsSetRef = combination.projectOptionsSetRefs) !== null && _projectOptionsSetRef !== void 0 ? _projectOptionsSetRef : combination.optionsSetRef) !== null && _ref10 !== void 0 ? _ref10 : combination.optionsSetRef) !== null && _ref9 !== void 0 ? _ref9 : [];
30570
30956
  if (optionSetRefs.length === 0) {
30571
30957
  // A conditionless LAST row is the documented fallback; a conditionless row with rows AFTER it is the fault (first match wins).
30572
30958
  var shadowsLaterRows = i < combinations.length - 1;
@@ -30645,9 +31031,9 @@ var IDMEngine = /*#__PURE__*/function () {
30645
31031
  //DecisionOptionCombination
30646
31032
  //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
30647
31033
 
30648
- var _ref10 = this.getMatchingOptionCombination(myDecision.optionCombinations, decisionNo),
30649
- _ref11 = _slicedToArray__default["default"](_ref10, 1),
30650
- combination = _ref11[0];
31034
+ var _ref11 = this.getMatchingOptionCombination(myDecision.optionCombinations, decisionNo),
31035
+ _ref12 = _slicedToArray__default["default"](_ref11, 1),
31036
+ combination = _ref12[0];
30651
31037
  if (combination) {
30652
31038
  isValidDOC = true;
30653
31039
  }
@@ -30664,25 +31050,25 @@ var IDMEngine = /*#__PURE__*/function () {
30664
31050
  var cached = this.featureDefaultIndex;
30665
31051
  if (cached && cached.sources[0] === sources[0] && cached.sources[1] === sources[1]) return cached.byFeature;
30666
31052
  var byFeature = new Map();
30667
- var _iterator20 = _createForOfIteratorHelper$n(this.decisions),
30668
- _step20;
31053
+ var _iterator21 = _createForOfIteratorHelper$n(this.decisions),
31054
+ _step21;
30669
31055
  try {
30670
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
31056
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
30671
31057
  var _decision$optionCombi6;
30672
- var decision = _step20.value;
31058
+ var decision = _step21.value;
30673
31059
  if (decision.decisionType !== 2) continue;
30674
- var _iterator21 = _createForOfIteratorHelper$n((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
30675
- _step21;
31060
+ var _iterator22 = _createForOfIteratorHelper$n((_decision$optionCombi6 = decision.optionCombinations) !== null && _decision$optionCombi6 !== void 0 ? _decision$optionCombi6 : []),
31061
+ _step22;
30676
31062
  try {
30677
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
31063
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
30678
31064
  var _combination$projectA10, _combination$projectA11;
30679
- var combination = _step21.value;
30680
- var _iterator22 = _createForOfIteratorHelper$n((_combination$projectA10 = (_combination$projectA11 = combination.projectActions) === null || _combination$projectA11 === void 0 ? void 0 : _combination$projectA11.setFeatureDefault) !== null && _combination$projectA10 !== void 0 ? _combination$projectA10 : []),
30681
- _step22;
31065
+ var combination = _step22.value;
31066
+ var _iterator23 = _createForOfIteratorHelper$n((_combination$projectA10 = (_combination$projectA11 = combination.projectActions) === null || _combination$projectA11 === void 0 ? void 0 : _combination$projectA11.setFeatureDefault) !== null && _combination$projectA10 !== void 0 ? _combination$projectA10 : []),
31067
+ _step23;
30682
31068
  try {
30683
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
31069
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
30684
31070
  var _action$featureNo2, _byFeature$get;
30685
- var action = _step22.value;
31071
+ var action = _step23.value;
30686
31072
  var featureNo = (_action$featureNo2 = action.featureNo) === null || _action$featureNo2 === void 0 ? void 0 : _action$featureNo2.toString();
30687
31073
  if (!featureNo) continue;
30688
31074
  var list = (_byFeature$get = byFeature.get(featureNo)) !== null && _byFeature$get !== void 0 ? _byFeature$get : [];
@@ -30690,21 +31076,21 @@ var IDMEngine = /*#__PURE__*/function () {
30690
31076
  byFeature.set(featureNo, list);
30691
31077
  }
30692
31078
  } catch (err) {
30693
- _iterator22.e(err);
31079
+ _iterator23.e(err);
30694
31080
  } finally {
30695
- _iterator22.f();
31081
+ _iterator23.f();
30696
31082
  }
30697
31083
  }
30698
31084
  } catch (err) {
30699
- _iterator21.e(err);
31085
+ _iterator22.e(err);
30700
31086
  } finally {
30701
- _iterator21.f();
31087
+ _iterator22.f();
30702
31088
  }
30703
31089
  }
30704
31090
  } catch (err) {
30705
- _iterator20.e(err);
31091
+ _iterator21.e(err);
30706
31092
  } finally {
30707
- _iterator20.f();
31093
+ _iterator21.f();
30708
31094
  }
30709
31095
  this.featureDefaultIndex = {
30710
31096
  sources: sources,
@@ -30719,17 +31105,17 @@ var IDMEngine = /*#__PURE__*/function () {
30719
31105
  value: function setFeatureDefaultKey(featureNo) {
30720
31106
  var decisions = this.type2DefaultsByFeature().get(featureNo);
30721
31107
  if (!decisions) return undefined;
30722
- var _iterator23 = _createForOfIteratorHelper$n(decisions),
30723
- _step23;
31108
+ var _iterator24 = _createForOfIteratorHelper$n(decisions),
31109
+ _step24;
30724
31110
  try {
30725
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
31111
+ for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
30726
31112
  var _combination$projectA12;
30727
- var decision = _step23.value;
31113
+ var decision = _step24.value;
30728
31114
  // A decision evalType2Decision also visits would report WC_0012 twice per convergence pass — a DISABLED one it skips
30729
31115
  // entirely, so there the warning has to come from here.
30730
- var _ref12 = this.getMatchingOptionCombination(decision.optionCombinations, decision.enabled === false ? decision.decisionNo : undefined),
30731
- _ref13 = _slicedToArray__default["default"](_ref12, 1),
30732
- combination = _ref13[0];
31116
+ var _ref13 = this.getMatchingOptionCombination(decision.optionCombinations, decision.enabled === false ? decision.decisionNo : undefined),
31117
+ _ref14 = _slicedToArray__default["default"](_ref13, 1),
31118
+ combination = _ref14[0];
30733
31119
  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) {
30734
31120
  var _a$featureNo;
30735
31121
  return ((_a$featureNo = a.featureNo) === null || _a$featureNo === void 0 ? void 0 : _a$featureNo.toString()) === featureNo;
@@ -30737,9 +31123,9 @@ var IDMEngine = /*#__PURE__*/function () {
30737
31123
  if (key) return key;
30738
31124
  }
30739
31125
  } catch (err) {
30740
- _iterator23.e(err);
31126
+ _iterator24.e(err);
30741
31127
  } finally {
30742
- _iterator23.f();
31128
+ _iterator24.f();
30743
31129
  }
30744
31130
  return undefined;
30745
31131
  }
@@ -30748,13 +31134,13 @@ var IDMEngine = /*#__PURE__*/function () {
30748
31134
  }, {
30749
31135
  key: "preferredDefaultOpv",
30750
31136
  value: function preferredDefaultOpv(featureNo, visible, ops) {
30751
- var _ref14;
31137
+ var _ref15;
30752
31138
  // 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.
30753
31139
  // getVisibleOptionValue resolves THROUGH option groups; a plain map lookup misses a grouped choice.
30754
31140
  var chosen = ops !== null && ops !== void 0 && ops.userChosenOPV ? ops.getVisibleOptionValue(ops.userChosenOPV) : undefined;
30755
31141
  if (chosen) return chosen;
30756
31142
  var key = this.setFeatureDefaultKey(featureNo);
30757
- return (_ref14 = key ? visible.get(key) : undefined) !== null && _ref14 !== void 0 ? _ref14 : this.article.getDefaultOpv(visible);
31143
+ return (_ref15 = key ? visible.get(key) : undefined) !== null && _ref15 !== void 0 ? _ref15 : this.article.getDefaultOpv(visible);
30758
31144
  }
30759
31145
 
30760
31146
  /** Replaces a value a rule just hid. That is no decision of its own: only a lock from before the rule keeps the feature fixed. */
@@ -30769,11 +31155,11 @@ var IDMEngine = /*#__PURE__*/function () {
30769
31155
  key: "updateIDMSpecificFeatures",
30770
31156
  value: function updateIDMSpecificFeatures() {
30771
31157
  //updaten idm planner specific options
30772
- var _iterator24 = _createForOfIteratorHelper$n(this.article.articleOptionStates.values()),
30773
- _step24;
31158
+ var _iterator25 = _createForOfIteratorHelper$n(this.article.articleOptionStates.values()),
31159
+ _step25;
30774
31160
  try {
30775
- for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
30776
- var ops = _step24.value;
31161
+ for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
31162
+ var ops = _step25.value;
30777
31163
  // Picking a default or re-applying a planning size here must not lock the feature: updateArtOPV marks it
30778
31164
  // fixed, and a fixed feature shows only its selected option. A lock a decision set earlier in the pass stays.
30779
31165
  var wasFixed = ops.definedBySetFeatureFixed;
@@ -30800,9 +31186,9 @@ var IDMEngine = /*#__PURE__*/function () {
30800
31186
  ops.definedBySetFeatureFixed = wasFixed;
30801
31187
  }
30802
31188
  } catch (err) {
30803
- _iterator24.e(err);
31189
+ _iterator25.e(err);
30804
31190
  } finally {
30805
- _iterator24.f();
31191
+ _iterator25.f();
30806
31192
  }
30807
31193
  }
30808
31194
  }, {
@@ -30823,8 +31209,7 @@ var IDMEngine = /*#__PURE__*/function () {
30823
31209
  }
30824
31210
  if ([97, 1097].includes((_myArtOPS$option$idmV3 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV3 !== void 0 ? _myArtOPS$option$idmV3 : 0)) {
30825
31211
  try {
30826
- var _ref15, _ref16, _myArtOPS$measureValu;
30827
- 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);
31212
+ var newHeight = this.resolvePlannerDimension(this.sinkMeasureCm(myArtOPS), this.article.catalogArticle.height);
30828
31213
  if (newHeight != null) {
30829
31214
  this.article.doUpdatePlannerSize = true;
30830
31215
  this.article.calcHeight = newHeight;
@@ -30835,8 +31220,7 @@ var IDMEngine = /*#__PURE__*/function () {
30835
31220
  }
30836
31221
  if ([96, 1096].includes((_myArtOPS$option$idmV4 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV4 !== void 0 ? _myArtOPS$option$idmV4 : 0) || myArtOPS.option.diameter) {
30837
31222
  try {
30838
- var _ref17, _ref18, _myArtOPS$measureValu2;
30839
- 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);
31223
+ var newDepth = this.resolvePlannerDimension(this.sinkMeasureCm(myArtOPS), this.article.catalogArticle.depth);
30840
31224
  if (newDepth != null) {
30841
31225
  this.article.doUpdatePlannerSize = true;
30842
31226
  this.article.calcDepth = newDepth;
@@ -30847,8 +31231,7 @@ var IDMEngine = /*#__PURE__*/function () {
30847
31231
  }
30848
31232
  if ([95, 1095].includes((_myArtOPS$option$idmV5 = myArtOPS.option.idmVariantenArt) !== null && _myArtOPS$option$idmV5 !== void 0 ? _myArtOPS$option$idmV5 : 0) || myArtOPS.option.diameter) {
30849
31233
  try {
30850
- var _ref19, _ref20, _myArtOPS$measureValu3;
30851
- 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);
31234
+ var newWidth = this.resolvePlannerDimension(this.sinkMeasureCm(myArtOPS), this.article.catalogArticle.width);
30852
31235
  if (newWidth != null) {
30853
31236
  this.article.doUpdatePlannerSize = true;
30854
31237
  this.article.calcWidth = newWidth;
@@ -30889,11 +31272,11 @@ var IDMEngine = /*#__PURE__*/function () {
30889
31272
  key: "getConditionValuesOfCombination",
30890
31273
  value: function getConditionValuesOfCombination(combination, featureNo, optionKey) {
30891
31274
  var variantValues = {};
30892
- var _iterator25 = _createForOfIteratorHelper$n(combination.projectOptionsSetRefs),
30893
- _step25;
31275
+ var _iterator26 = _createForOfIteratorHelper$n(combination.projectOptionsSetRefs),
31276
+ _step26;
30894
31277
  try {
30895
- for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
30896
- var optionSetRef = _step25.value;
31278
+ for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
31279
+ var optionSetRef = _step26.value;
30897
31280
  var optionList = this.getOptionListOfRef(optionSetRef);
30898
31281
  if (optionSetRef.featureNo.toString() == featureNo) {
30899
31282
  return optionKey && !(optionList !== null && optionList !== void 0 && optionList.options.includes(optionKey)) ? undefined : variantValues;
@@ -30902,9 +31285,9 @@ var IDMEngine = /*#__PURE__*/function () {
30902
31285
  variantValues[optionSetRef.featureNo.toString()] = optionList.options[0];
30903
31286
  }
30904
31287
  } catch (err) {
30905
- _iterator25.e(err);
31288
+ _iterator26.e(err);
30906
31289
  } finally {
30907
- _iterator25.f();
31290
+ _iterator26.f();
30908
31291
  }
30909
31292
  return variantValues;
30910
31293
  }
@@ -30930,18 +31313,18 @@ var IDMEngine = /*#__PURE__*/function () {
30930
31313
  })) return false;
30931
31314
  return _this8.decisionRemovesOption(restriction, featureNo, optionKey);
30932
31315
  };
30933
- var _iterator26 = _createForOfIteratorHelper$n(articleDecisions),
30934
- _step26;
31316
+ var _iterator27 = _createForOfIteratorHelper$n(articleDecisions),
31317
+ _step27;
30935
31318
  try {
30936
- for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
30937
- var gate = _step26.value;
31319
+ for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
31320
+ var gate = _step27.value;
30938
31321
  if (gate.decisionType != 2) continue;
30939
- var _iterator27 = _createForOfIteratorHelper$n(gate.optionCombinations),
30940
- _step27;
31322
+ var _iterator28 = _createForOfIteratorHelper$n(gate.optionCombinations),
31323
+ _step28;
30941
31324
  try {
30942
- for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
31325
+ for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
30943
31326
  var _combination$projectA13, _combination$projectA14;
30944
- var combination = _step27.value;
31327
+ var combination = _step28.value;
30945
31328
  var enabled = (_combination$projectA13 = (_combination$projectA14 = combination.projectActions) === null || _combination$projectA14 === void 0 ? void 0 : _combination$projectA14.enableDecision) !== null && _combination$projectA13 !== void 0 ? _combination$projectA13 : [];
30946
31329
  if (!enabled.some(function (ref) {
30947
31330
  return isGatedRestriction(Number(ref.decisionNo));
@@ -30949,15 +31332,15 @@ var IDMEngine = /*#__PURE__*/function () {
30949
31332
  variantValuesArr.push.apply(variantValuesArr, _toConsumableArray__default["default"](this.getValuesNotMatchingCombination(combination)));
30950
31333
  }
30951
31334
  } catch (err) {
30952
- _iterator27.e(err);
31335
+ _iterator28.e(err);
30953
31336
  } finally {
30954
- _iterator27.f();
31337
+ _iterator28.f();
30955
31338
  }
30956
31339
  }
30957
31340
  } catch (err) {
30958
- _iterator26.e(err);
31341
+ _iterator27.e(err);
30959
31342
  } finally {
30960
- _iterator26.f();
31343
+ _iterator27.f();
30961
31344
  }
30962
31345
  return variantValuesArr;
30963
31346
  }
@@ -30982,34 +31365,34 @@ var IDMEngine = /*#__PURE__*/function () {
30982
31365
  key: "getValuesNotMatchingCombination",
30983
31366
  value: function getValuesNotMatchingCombination(combination) {
30984
31367
  var variantValuesArr = [];
30985
- var _iterator28 = _createForOfIteratorHelper$n(combination.projectOptionsSetRefs),
30986
- _step28;
31368
+ var _iterator29 = _createForOfIteratorHelper$n(combination.projectOptionsSetRefs),
31369
+ _step29;
30987
31370
  try {
30988
- for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) {
30989
- var optionSetRef = _step28.value;
31371
+ for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
31372
+ var optionSetRef = _step29.value;
30990
31373
  var optionList = this.getOptionListOfRef(optionSetRef);
30991
31374
  if (!(optionList !== null && optionList !== void 0 && optionList.options.length) || ![0, 1, 2, 3].includes(optionList.operator)) continue;
30992
31375
  var conditionFeatureNo = optionSetRef.featureNo.toString();
30993
31376
  var ops = this.article.getArticleOptionState(conditionFeatureNo);
30994
31377
  if (!ops) continue;
30995
- var _iterator29 = _createForOfIteratorHelper$n(ops.visibleOPVKeys),
30996
- _step29;
31378
+ var _iterator30 = _createForOfIteratorHelper$n(ops.visibleOPVKeys),
31379
+ _step30;
30997
31380
  try {
30998
- for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) {
30999
- var candidate = _step29.value;
31381
+ for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
31382
+ var candidate = _step30.value;
31000
31383
  if (this.evalValueWithOperator(optionList.operator, optionList.options, candidate)) continue;
31001
31384
  variantValuesArr.push(_defineProperty__default["default"]({}, conditionFeatureNo, candidate));
31002
31385
  }
31003
31386
  } catch (err) {
31004
- _iterator29.e(err);
31387
+ _iterator30.e(err);
31005
31388
  } finally {
31006
- _iterator29.f();
31389
+ _iterator30.f();
31007
31390
  }
31008
31391
  }
31009
31392
  } catch (err) {
31010
- _iterator28.e(err);
31393
+ _iterator29.e(err);
31011
31394
  } finally {
31012
- _iterator28.f();
31395
+ _iterator29.f();
31013
31396
  }
31014
31397
  return variantValuesArr;
31015
31398
  }
@@ -31024,6 +31407,14 @@ var IDMEngine = /*#__PURE__*/function () {
31024
31407
  return null;
31025
31408
  }
31026
31409
 
31410
+ /** The dimension in cm a sink's value sets; NaN when it names none. */
31411
+ }, {
31412
+ key: "sinkMeasureCm",
31413
+ value: function sinkMeasureCm(ops) {
31414
+ var _ref16, _ref17, _ops$measureValue;
31415
+ return Number((_ref16 = (_ref17 = (_ops$measureValue = ops.measureValue) !== null && _ops$measureValue !== void 0 ? _ops$measureValue : this.freeTextMeasureCm(ops)) !== null && _ref17 !== void 0 ? _ref17 : ops.value) !== null && _ref16 !== void 0 ? _ref16 : ops.valueFromName);
31416
+ }
31417
+
31027
31418
  /** The typed freetext is not unit-converted like `value`: "25600" MMT must become 2560 cm here. */
31028
31419
  }, {
31029
31420
  key: "freeTextMeasureCm",
@@ -31068,7 +31459,7 @@ var IDMEngine = /*#__PURE__*/function () {
31068
31459
  }, {
31069
31460
  key: "updateConfigDependentMedia",
31070
31461
  value: function updateConfigDependentMedia() {
31071
- var _this$article$catalog7;
31462
+ var _this$article$catalog8;
31072
31463
  var catalogData = this.article.CatalogData;
31073
31464
  //articlebild berechnung
31074
31465
 
@@ -31082,9 +31473,9 @@ var IDMEngine = /*#__PURE__*/function () {
31082
31473
  for (var j = 0; !doUse && j < image.decisionNos.length; j++) {
31083
31474
  var decision = catalogData.getDecisionByNo(image.decisionNos[j]);
31084
31475
  if (!decision) continue;
31085
- var _ref21 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
31086
- _ref22 = _slicedToArray__default["default"](_ref21, 1),
31087
- combination = _ref22[0];
31476
+ var _ref18 = this.getMatchingOptionCombination(decision.optionCombinations, decision.decisionNo),
31477
+ _ref19 = _slicedToArray__default["default"](_ref18, 1),
31478
+ combination = _ref19[0];
31088
31479
  if (combination) {
31089
31480
  doUse = true;
31090
31481
  break;
@@ -31103,18 +31494,18 @@ var IDMEngine = /*#__PURE__*/function () {
31103
31494
  }
31104
31495
 
31105
31496
  // this functions updates the images of OPVs that depend on rules
31106
- var _iterator30 = _createForOfIteratorHelper$n(this.article.articleOptionStates.values()),
31107
- _step30;
31497
+ var _iterator31 = _createForOfIteratorHelper$n(this.article.articleOptionStates.values()),
31498
+ _step31;
31108
31499
  try {
31109
- for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) {
31110
- var ops = _step30.value;
31111
- var _iterator31 = _createForOfIteratorHelper$n(ops.visibleOptionValues),
31112
- _step31;
31500
+ for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
31501
+ var ops = _step31.value;
31502
+ var _iterator32 = _createForOfIteratorHelper$n(ops.visibleOptionValues),
31503
+ _step32;
31113
31504
  try {
31114
- for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) {
31115
- var _step31$value = _slicedToArray__default["default"](_step31.value, 2),
31116
- jKey = _step31$value[0],
31117
- opv = _step31$value[1];
31505
+ for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) {
31506
+ var _step32$value = _slicedToArray__default["default"](_step32.value, 2),
31507
+ jKey = _step32$value[0],
31508
+ opv = _step32$value[1];
31118
31509
  if (opv.images) {
31119
31510
  var imageFound = false;
31120
31511
  for (var _i5 = 0; _i5 < opv.images.length; _i5++) {
@@ -31125,9 +31516,9 @@ var IDMEngine = /*#__PURE__*/function () {
31125
31516
  for (var _j2 = 0; _j2 < _image.decisionNos.length; _j2++) {
31126
31517
  var _decision5 = catalogData.getDecisionsByNo([_image.decisionNos[_j2]])[0];
31127
31518
  if (!_decision5) continue;
31128
- var _ref25 = this.getMatchingOptionCombination(_decision5.optionCombinations, _decision5.decisionNo),
31129
- _ref26 = _slicedToArray__default["default"](_ref25, 1),
31130
- _combination2 = _ref26[0];
31519
+ var _ref22 = this.getMatchingOptionCombination(_decision5.optionCombinations, _decision5.decisionNo),
31520
+ _ref23 = _slicedToArray__default["default"](_ref22, 1),
31521
+ _combination2 = _ref23[0];
31131
31522
  if (_combination2) {
31132
31523
  _doUse = true;
31133
31524
  break;
@@ -31144,25 +31535,25 @@ var IDMEngine = /*#__PURE__*/function () {
31144
31535
  }
31145
31536
  }
31146
31537
  } catch (err) {
31147
- _iterator31.e(err);
31538
+ _iterator32.e(err);
31148
31539
  } finally {
31149
- _iterator31.f();
31540
+ _iterator32.f();
31150
31541
  }
31151
31542
  }
31152
31543
 
31153
31544
  // this function calculates an Svg to the current configuration if neccessary (SVG Tausch)
31154
31545
  // if the Article has no SVG Tausch nothing is done
31155
31546
  } catch (err) {
31156
- _iterator30.e(err);
31547
+ _iterator31.e(err);
31157
31548
  } finally {
31158
- _iterator30.f();
31549
+ _iterator31.f();
31159
31550
  }
31160
31551
  var newSVGFile = null;
31161
31552
  var svgChangedViaSvgTausch = false;
31162
- if (!((_this$article$catalog7 = this.article.catalogArticle.svgs) !== null && _this$article$catalog7 !== void 0 && _this$article$catalog7.length)) {
31163
- var _this$article$catalog8;
31553
+ if (!((_this$article$catalog8 = this.article.catalogArticle.svgs) !== null && _this$article$catalog8 !== void 0 && _this$article$catalog8.length)) {
31554
+ var _this$article$catalog9;
31164
31555
  //falls der Arikel kein SVG hat könnte eines seiner ParlistArtikel eines haben
31165
- if (this.article.hasPartlistArticle && !((_this$article$catalog8 = this.article.catalogArticle.catalogPlannerArticle) !== null && _this$article$catalog8 !== void 0 && _this$article$catalog8.topSvg)) {
31556
+ if (this.article.hasPartlistArticle && !((_this$article$catalog9 = this.article.catalogArticle.catalogPlannerArticle) !== null && _this$article$catalog9 !== void 0 && _this$article$catalog9.topSvg)) {
31166
31557
  for (var key in this.article.partlistArticles) if (this.article.partlistArticles[key].actPlannerData) {
31167
31558
  this.article.plannerData = this.article.partlistArticles[key].actPlannerData;
31168
31559
  newSVGFile = true;
@@ -31185,9 +31576,9 @@ var IDMEngine = /*#__PURE__*/function () {
31185
31576
  for (var _j = 0; _j < svg.decisionNos.length; _j++) {
31186
31577
  var _decision4 = catalogData.getDecisionsByNo([svg.decisionNos[_j]])[0];
31187
31578
  if (!_decision4) continue;
31188
- var _ref23 = this.getMatchingOptionCombination(_decision4.optionCombinations, _decision4.decisionNo),
31189
- _ref24 = _slicedToArray__default["default"](_ref23, 1),
31190
- _combination = _ref24[0];
31579
+ var _ref20 = this.getMatchingOptionCombination(_decision4.optionCombinations, _decision4.decisionNo),
31580
+ _ref21 = _slicedToArray__default["default"](_ref20, 1),
31581
+ _combination = _ref21[0];
31191
31582
  if (_combination) {
31192
31583
  svgValid = _decision4;
31193
31584
  break;
@@ -34413,7 +34804,7 @@ var DivaArticle = /*#__PURE__*/function () {
34413
34804
  break;
34414
34805
  }
34415
34806
  _context.next = 4;
34416
- return Promise.resolve().then(function () { return require('./ShelfPlanner-b140a2ce.js'); });
34807
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-5329a6dc.js'); });
34417
34808
  case 4:
34418
34809
  _yield$import = _context.sent;
34419
34810
  ShelfPlanner = _yield$import["default"];
@@ -43265,7 +43656,7 @@ var DivaSet = /*#__PURE__*/function () {
43265
43656
  break;
43266
43657
  }
43267
43658
  _context5.next = 3;
43268
- return Promise.resolve().then(function () { return require('./DoorPlanner-12303753.js'); });
43659
+ return Promise.resolve().then(function () { return require('./DoorPlanner-00e36c65.js'); });
43269
43660
  case 3:
43270
43661
  _yield$import = _context5.sent;
43271
43662
  DoorPlanner = _yield$import["default"];
@@ -51588,7 +51979,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51588
51979
  break;
51589
51980
  case 3:
51590
51981
  _context13.next = 5;
51591
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-ef6774e8.js'); });
51982
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-efcfdb92.js'); });
51592
51983
  case 5:
51593
51984
  _yield$import = _context13.sent;
51594
51985
  PfisterWWSHandler = _yield$import["default"];
@@ -51596,7 +51987,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51596
51987
  return _context13.abrupt("break", 27);
51597
51988
  case 9:
51598
51989
  _context13.next = 11;
51599
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-c089303d.js'); });
51990
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-c8fecd2e.js'); });
51600
51991
  case 11:
51601
51992
  _yield$import2 = _context13.sent;
51602
51993
  LiviqueWWSHandler = _yield$import2["default"];
@@ -51604,7 +51995,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51604
51995
  return _context13.abrupt("break", 27);
51605
51996
  case 15:
51606
51997
  _context13.next = 17;
51607
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-c755bc41.js'); });
51998
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-a159f15c.js'); });
51608
51999
  case 17:
51609
52000
  _yield$import3 = _context13.sent;
51610
52001
  SeriousWWSHandler = _yield$import3["default"];
@@ -51612,7 +52003,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
51612
52003
  return _context13.abrupt("break", 27);
51613
52004
  case 21:
51614
52005
  _context13.next = 23;
51615
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-2e7b1d33.js'); });
52006
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-4143da24.js'); });
51616
52007
  case 23:
51617
52008
  _yield$import4 = _context13.sent;
51618
52009
  StandardWWSHandler = _yield$import4["default"];
@@ -53010,7 +53401,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
53010
53401
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
53011
53402
  bootMark('signalr: chunk import start');
53012
53403
  _context3.next = 3;
53013
- return Promise.resolve().then(function () { return require('./Host3DSignalR-4dc77fda.js'); });
53404
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-dcb7c665.js'); });
53014
53405
  case 3:
53015
53406
  _yield$import = _context3.sent;
53016
53407
  Host3DSignalR = _yield$import["default"];
@@ -57416,7 +57807,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
57416
57807
  break;
57417
57808
  case 9:
57418
57809
  _context5.next = 11;
57419
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-95874c20.js'); });
57810
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-b84e8c77.js'); });
57420
57811
  case 11:
57421
57812
  _yield$import = _context5.sent;
57422
57813
  DivaStandardPlanner = _yield$import["default"];
@@ -57431,7 +57822,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
57431
57822
  return _context5.abrupt("break", 22);
57432
57823
  case 16:
57433
57824
  _context5.next = 18;
57434
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-8dd2c8eb.js'); });
57825
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-a5f6ecf3.js'); });
57435
57826
  case 18:
57436
57827
  _yield$import2 = _context5.sent;
57437
57828
  DivaBoxPlanner = _yield$import2["default"];
@@ -82380,6 +82771,7 @@ exports.bootRequestName = bootRequestName;
82380
82771
  exports.canSwitchTo = canSwitchTo;
82381
82772
  exports.collectStructureStepKeys = collectStructureStepKeys;
82382
82773
  exports.creatRenderOrders = creatRenderOrders;
82774
+ exports.describeMeasurePrice = describeMeasurePrice;
82383
82775
  exports.dockingFiltersMatch = dockingFiltersMatch;
82384
82776
  exports.familyMembersOf = familyMembersOf;
82385
82777
  exports.fitsInsideRoom = fitsInsideRoom;
@@ -82402,6 +82794,7 @@ exports.isSavePlannerV2 = isSavePlannerV2;
82402
82794
  exports.keepInsideRoom = keepInsideRoom;
82403
82795
  exports.layersCollide = layersCollide;
82404
82796
  exports.loadAndRepairBasket = loadAndRepairBasket;
82797
+ exports.measureWithUnit = measureWithUnit;
82405
82798
  exports.moveGroupRigidly = moveGroupRigidly;
82406
82799
  exports.movePoints = movePoints;
82407
82800
  exports.moveShape = moveShape;