@crystaldesign/web-planner-logic 26.13.0-beta.12 → 26.13.0-beta.14

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 (36) hide show
  1. package/build/cjs/{DivaBoxPlanner-5064ca34.js → DivaBoxPlanner-7186adda.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-6ef85473.js → DivaStandardPlanner-b5866893.js} +2 -2
  3. package/build/cjs/{DoorPlanner-6c243f25.js → DoorPlanner-3565518f.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-b67b054f.js → Host3DSignalR-a6892648.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-d1923d69.js → LiviqueWWSHandler-64500656.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-06401ac4.js → PfisterWWSHandler-c95f65aa.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-6fdc6c14.js → PlannerHandler2D-2f5f2baf.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-61cdfc93.js → SeriousBasketHandler-145fb212.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-0a786abd.js → ShelfPlanner-4549352b.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-0bc63ba7.js → StandardWWSHandler-7244ebea.js} +1 -1
  11. package/build/cjs/{index-7e845075.js → index-7fe2f1b8.js} +100 -68
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-ced0207c.js → DivaBoxPlanner-159511f0.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-00a9a468.js → DivaStandardPlanner-1d88448e.js} +2 -2
  15. package/build/esm/{DoorPlanner-eae7b3c6.js → DoorPlanner-4142cd08.js} +1 -1
  16. package/build/esm/{Host3DSignalR-4c979825.js → Host3DSignalR-2fa23eaf.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-24ce43fd.js → LiviqueWWSHandler-5caba3ba.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-3e7a9cac.js → PfisterWWSHandler-3b11e4e4.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-56b913f2.js → PlannerHandler2D-c87d20cf.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-ad860f62.js → SeriousBasketHandler-cf37d309.js} +1 -1
  21. package/build/esm/{ShelfPlanner-29a4116c.js → ShelfPlanner-a3b6568c.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-deb3d639.js → StandardWWSHandler-3d967bd0.js} +1 -1
  23. package/build/esm/{index-c1e29f6c.js → index-eb55f67b.js} +100 -68
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts +6 -2
  26. package/build/types/web-planner-logic/src/interface/Articles/AccessoireItemType.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -1
  28. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts +3 -1
  30. package/build/types/web-planner-logic/src/logic/Article/mandatoryAccessories.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +2 -0
  32. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +4 -0
  34. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  36. package/package.json +3 -3
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-7e845075.js');
8
+ var index = require('./index-7fe2f1b8.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
- var PlannerHandler2D = require('./PlannerHandler2D-6fdc6c14.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-2f5f2baf.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@babel/runtime/helpers/typeof');
@@ -6,10 +6,10 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-7e845075.js');
9
+ var index = require('./index-7fe2f1b8.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-6fdc6c14.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-2f5f2baf.js');
13
13
  require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('axios');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('./index-7e845075.js');
6
+ require('./index-7fe2f1b8.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-7e845075.js');
8
+ var index = require('./index-7fe2f1b8.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var signalr = require('@microsoft/signalr');
11
11
  var io = require('socket.io-client');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-7e845075.js');
5
+ require('./index-7fe2f1b8.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- var index = require('./index-7e845075.js');
5
+ var index = require('./index-7fe2f1b8.js');
6
6
  var basketModel = require('@crystaldesign/basket-model');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-7e845075.js');
8
+ var index = require('./index-7fe2f1b8.js');
9
9
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
10
10
  var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
11
11
  var _get = require('@babel/runtime/helpers/get');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var index = require('./index-7e845075.js');
6
+ var index = require('./index-7fe2f1b8.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-7e845075.js');
9
+ var index = require('./index-7fe2f1b8.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-7e845075.js');
5
+ require('./index-7fe2f1b8.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -20837,26 +20837,26 @@ function _loadMoreFromIDMArticles() {
20837
20837
  featureClasses,
20838
20838
  priceFeatureGroups,
20839
20839
  decisions,
20840
- _i5,
20840
+ _i6,
20841
20841
  _decisions$map,
20842
20842
  loadedIds,
20843
20843
  missingIds,
20844
- _i6,
20844
+ _i7,
20845
20845
  _iterator6,
20846
20846
  _step6,
20847
20847
  _loop7,
20848
- _i7,
20848
+ _i8,
20849
20849
  _catalogArticleData$d2,
20850
20850
  catalogArticleData,
20851
20851
  toLoadFeatures,
20852
20852
  features,
20853
20853
  _loop4,
20854
- _i8,
20854
+ _i9,
20855
20855
  _iterator7,
20856
20856
  _step7,
20857
20857
  _loop8,
20858
20858
  _loop6,
20859
- _i9,
20859
+ _i10,
20860
20860
  _args8 = arguments;
20861
20861
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context8) {
20862
20862
  while (1) switch (_context8.prev = _context8.next) {
@@ -20931,8 +20931,8 @@ function _loadMoreFromIDMArticles() {
20931
20931
  priceFeatureGroups = _yield$Promise$all2[1];
20932
20932
  decisions = _yield$Promise$all2[2];
20933
20933
  if (decisions) {
20934
- for (_i5 = 0; _i5 < decisions.length; _i5++) {
20935
- catalogData.loadedDecisions.push(initializeDecision(decisions[_i5], catalogData.idmOptionGroups));
20934
+ for (_i6 = 0; _i6 < decisions.length; _i6++) {
20935
+ catalogData.loadedDecisions.push(initializeDecision(decisions[_i6], catalogData.idmOptionGroups));
20936
20936
  }
20937
20937
  }
20938
20938
  if (!(toLoadDecisionIds.length !== 0 && toLoadDecisionIds.length != (decisions === null || decisions === void 0 ? void 0 : decisions.length))) {
@@ -20951,8 +20951,8 @@ function _loadMoreFromIDMArticles() {
20951
20951
  return loadDecisionsReferencedByActions(set, catalogData);
20952
20952
  case 34:
20953
20953
  if (priceFeatureGroups) {
20954
- for (_i6 = 0; _i6 < priceFeatureGroups.length; _i6++) {
20955
- catalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i6], catalogData.idmOptionGroups));
20954
+ for (_i7 = 0; _i7 < priceFeatureGroups.length; _i7++) {
20955
+ catalogData.loadedPriceFeaturegroups.push(initializePriceFeatureGroups(priceFeatureGroups[_i7], catalogData.idmOptionGroups));
20956
20956
  }
20957
20957
  }
20958
20958
  _iterator6 = _createForOfIteratorHelper$l(toLoadPFGroups);
@@ -21012,8 +21012,8 @@ function _loadMoreFromIDMArticles() {
21012
21012
  _iterator6.f();
21013
21013
  return _context8.finish(50);
21014
21014
  case 53:
21015
- for (_i7 = 0; _i7 < catalogArticleDatas.length; _i7++) {
21016
- catalogArticleData = catalogArticleDatas[_i7];
21015
+ for (_i8 = 0; _i8 < catalogArticleDatas.length; _i8++) {
21016
+ catalogArticleData = catalogArticleDatas[_i8];
21017
21017
  catalogArticleData.articleIDMDecisions = sortDecisions(catalogData.getDecisionsByNo(_toConsumableArray__default["default"](new Set([].concat(_toConsumableArray__default["default"](catalogData.globalDecisions.map(function (g) {
21018
21018
  return g.decisionNo;
21019
21019
  })), _toConsumableArray__default["default"](catalogData.serieDecisionRefs), _toConsumableArray__default["default"]((_catalogArticleData$d2 = catalogArticleData.decisionsRefs) !== null && _catalogArticleData$d2 !== void 0 ? _catalogArticleData$d2 : []))))));
@@ -21035,7 +21035,7 @@ function _loadMoreFromIDMArticles() {
21035
21035
  return _regeneratorRuntime__default["default"].wrap(function _loop4$(_context3) {
21036
21036
  while (1) switch (_context3.prev = _context3.next) {
21037
21037
  case 0:
21038
- feature = features[_i8];
21038
+ feature = features[_i9];
21039
21039
  insertIndex = catalogData.loadedFeatures.length;
21040
21040
  k = 0;
21041
21041
  case 3:
@@ -21109,15 +21109,15 @@ function _loadMoreFromIDMArticles() {
21109
21109
  }
21110
21110
  }, _loop4);
21111
21111
  });
21112
- _i8 = 0;
21112
+ _i9 = 0;
21113
21113
  case 62:
21114
- if (!(_i8 < features.length)) {
21114
+ if (!(_i9 < features.length)) {
21115
21115
  _context8.next = 67;
21116
21116
  break;
21117
21117
  }
21118
21118
  return _context8.delegateYield(_loop4(), "t3", 64);
21119
21119
  case 64:
21120
- _i8++;
21120
+ _i9++;
21121
21121
  _context8.next = 62;
21122
21122
  break;
21123
21123
  case 67:
@@ -21184,7 +21184,7 @@ function _loadMoreFromIDMArticles() {
21184
21184
  return _regeneratorRuntime__default["default"].wrap(function _loop6$(_context7) {
21185
21185
  while (1) switch (_context7.prev = _context7.next) {
21186
21186
  case 0:
21187
- catalogArticleData = catalogArticleDatas[_i9]; // an item without a feature class has no features of its own to initialize
21187
+ catalogArticleData = catalogArticleDatas[_i10]; // an item without a feature class has no features of its own to initialize
21188
21188
  if (!(catalogArticleData.featureClassRefNo === undefined)) {
21189
21189
  _context7.next = 3;
21190
21190
  break;
@@ -21210,9 +21210,9 @@ function _loadMoreFromIDMArticles() {
21210
21210
  }
21211
21211
  }, _loop6);
21212
21212
  });
21213
- _i9 = 0;
21213
+ _i10 = 0;
21214
21214
  case 87:
21215
- if (!(_i9 < catalogArticleDatas.length)) {
21215
+ if (!(_i10 < catalogArticleDatas.length)) {
21216
21216
  _context8.next = 94;
21217
21217
  break;
21218
21218
  }
@@ -21224,7 +21224,7 @@ function _loadMoreFromIDMArticles() {
21224
21224
  }
21225
21225
  return _context8.abrupt("continue", 91);
21226
21226
  case 91:
21227
- _i9++;
21227
+ _i10++;
21228
21228
  _context8.next = 87;
21229
21229
  break;
21230
21230
  case 94:
@@ -21394,27 +21394,35 @@ function initIDMArticleRelations(item, catalogArticleData, catalog) {
21394
21394
  var _a$accessory$sequence, _b$accessory$sequence;
21395
21395
  return ((_a$accessory$sequence = a.accessory.sequenceNo) !== null && _a$accessory$sequence !== void 0 ? _a$accessory$sequence : 0) - ((_b$accessory$sequence = b.accessory.sequenceNo) !== null && _b$accessory$sequence !== void 0 ? _b$accessory$sequence : 0);
21396
21396
  });
21397
+ // counted over the offered accessories only: a set whose alternatives are hidden or missing leaves its last one without a choice
21398
+ var mandatorySetSizes = new Map();
21397
21399
  for (var _i = 0, _accessories = accessories; _i < _accessories.length; _i++) {
21398
- var _ref2$mandatoryQuanti, _accessory$catalogPla, _accessory$catalogPla2, _accessory$catalogPla3, _accessory$catalogPla4, _accessory$catalogPla5, _accessory$catalogPla6, _accessory$catalogPla7, _accessory$catalogPla8, _accessory$catalogPla9, _accessory$catalogPla10, _accessory$catalogPla11;
21399
- var _accessories$_i = _accessories[_i],
21400
- _ref2 = _accessories$_i.ref,
21401
- _accessory = _accessories$_i.accessory,
21402
- _refCatalog = _accessories$_i.refCatalog;
21403
- // The ITEM_REF quantity is a suggestion; only a mandatory item's quantity binds the planning (IDM OPTIONAL_QUANTITY doc).
21404
- var bindingQuantity = _ref2.mandatorySetNo !== undefined ? Math.max(1, (_ref2$mandatoryQuanti = _ref2.mandatoryQuantity) !== null && _ref2$mandatoryQuanti !== void 0 ? _ref2$mandatoryQuanti : 1) : 0;
21400
+ var _mandatorySetSizes$ge;
21401
+ var _ref2 = _accessories[_i].ref;
21402
+ if (_ref2.mandatorySetNo !== undefined) mandatorySetSizes.set(_ref2.mandatorySetNo, ((_mandatorySetSizes$ge = mandatorySetSizes.get(_ref2.mandatorySetNo)) !== null && _mandatorySetSizes$ge !== void 0 ? _mandatorySetSizes$ge : 0) + 1);
21403
+ }
21404
+ for (var _i2 = 0, _accessories2 = accessories; _i2 < _accessories2.length; _i2++) {
21405
+ var _ref3$mandatoryQuanti, _accessory$catalogPla, _accessory$catalogPla2, _accessory$catalogPla3, _accessory$catalogPla4, _accessory$catalogPla5, _accessory$catalogPla6, _accessory$catalogPla7, _accessory$catalogPla8, _accessory$catalogPla9, _accessory$catalogPla10, _accessory$catalogPla11;
21406
+ var _accessories2$_i = _accessories2[_i2],
21407
+ _ref3 = _accessories2$_i.ref,
21408
+ _accessory = _accessories2$_i.accessory,
21409
+ _refCatalog = _accessories2$_i.refCatalog;
21410
+ // IDM knows no cap: a mandatory item's quantity binds as the minimum, the optional quantity only suggests (IDM OPTIONAL_QUANTITY doc).
21411
+ var bindingQuantity = _ref3.mandatorySetNo !== undefined ? Math.max(1, (_ref3$mandatoryQuanti = _ref3.mandatoryQuantity) !== null && _ref3$mandatoryQuanti !== void 0 ? _ref3$mandatoryQuanti : 1) : 0;
21405
21412
  catalogArticle.articleRelations.push({
21406
21413
  name: _accessory.name,
21407
21414
  actQuantity: 0,
21408
21415
  minQuantity: bindingQuantity,
21409
- // 0 = no cap, like a diva relation without a MaxQuantity
21410
- maxQuantity: bindingQuantity,
21411
- mandatorySetNo: _ref2.mandatorySetNo,
21412
- suggestedQuantity: _ref2.mandatorySetNo === undefined ? _ref2.optionalQuantity : undefined,
21416
+ maxQuantity: 0,
21417
+ isIDMRelation: true,
21418
+ mandatorySetNo: _ref3.mandatorySetNo,
21419
+ isSoleMandatory: _ref3.mandatorySetNo !== undefined && mandatorySetSizes.get(_ref3.mandatorySetNo) === 1,
21420
+ suggestedQuantity: _ref3.optionalQuantity,
21413
21421
  price: !catalog.dontShowBasePrice ? _accessory.articlePrice : 0,
21414
- articleCodex: _ref2.typeNo,
21415
- catalogCodex: _ref2.serieNo,
21422
+ articleCodex: _ref3.typeNo,
21423
+ catalogCodex: _ref3.serieNo,
21416
21424
  longDescription: _accessory.longDescription,
21417
- positionGroupNr: _ref2.setNo,
21425
+ positionGroupNr: _ref3.setNo,
21418
21426
  typeNr: _accessory.typeNr,
21419
21427
  image: _accessory.image ? _refCatalog.getCatImageURL(_accessory.image, '') : undefined,
21420
21428
  //accessoires are only PlannerElements if the have an SVG with dockingpossibilities (AVO/ AVU/ AVC)
@@ -21534,13 +21542,13 @@ function _fillMissingDockingPointCounts() {
21534
21542
  };
21535
21543
  _context11.next = 11;
21536
21544
  return Promise.all(_toConsumableArray__default["default"](accessories).map(/*#__PURE__*/function () {
21537
- var _ref5 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(_ref4) {
21545
+ var _ref6 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(_ref5) {
21538
21546
  var _accessory$svgs, _accessory$catalogPla12;
21539
- var _ref6, accessory, accessoryCatalog, svgs, uncounted, counts, topCounts, paletteView;
21547
+ var _ref7, accessory, accessoryCatalog, svgs, uncounted, counts, topCounts, paletteView;
21540
21548
  return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context10) {
21541
21549
  while (1) switch (_context10.prev = _context10.next) {
21542
21550
  case 0:
21543
- _ref6 = _slicedToArray__default["default"](_ref4, 2), accessory = _ref6[0], accessoryCatalog = _ref6[1];
21551
+ _ref7 = _slicedToArray__default["default"](_ref5, 2), accessory = _ref7[0], accessoryCatalog = _ref7[1];
21544
21552
  svgs = (_accessory$svgs = accessory.svgs) !== null && _accessory$svgs !== void 0 ? _accessory$svgs : [];
21545
21553
  uncounted = svgs.filter(lacksDockingPointCounts);
21546
21554
  if (uncounted.length) {
@@ -21590,7 +21598,7 @@ function _fillMissingDockingPointCounts() {
21590
21598
  }, _callee4);
21591
21599
  }));
21592
21600
  return function (_x11) {
21593
- return _ref5.apply(this, arguments);
21601
+ return _ref6.apply(this, arguments);
21594
21602
  };
21595
21603
  }()));
21596
21604
  case 11:
@@ -21619,7 +21627,7 @@ var fetchDecisions = function fetchDecisions(set, catalogData, decisionNos) {
21619
21627
  * apply while that action matches. References are followed transitively.
21620
21628
  */
21621
21629
  var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
21622
- var _ref3 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(set, catalogData) {
21630
+ var _ref4 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(set, catalogData) {
21623
21631
  var round, toLoad, _iterator3, _step3, _decision$optionCombi, decision, _iterator4, _step4, _combination$projectA, _combination$projectA2, _combination$projectA3, _combination$projectA4, combination, refs, _iterator5, _step5, ref, decisionNo, decisions, i, _decisions$length, stillMissing;
21624
21632
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
21625
21633
  while (1) switch (_context.prev = _context.next) {
@@ -21698,7 +21706,7 @@ var loadDecisionsReferencedByActions = /*#__PURE__*/function () {
21698
21706
  }, _callee);
21699
21707
  }));
21700
21708
  return function loadDecisionsReferencedByActions(_x9, _x10) {
21701
- return _ref3.apply(this, arguments);
21709
+ return _ref4.apply(this, arguments);
21702
21710
  };
21703
21711
  }();
21704
21712
 
@@ -21721,10 +21729,10 @@ var getToLoadDecisionIds = function getToLoadDecisionIds(catalogArticleDatas, ca
21721
21729
  return g.decisionNo;
21722
21730
  })), _toConsumableArray__default["default"](catalogData.serieDecisionRefs), _toConsumableArray__default["default"](allArticleDecisions))));
21723
21731
  var toLoadDecisionIds = [];
21724
- for (var _i2 = 0; _i2 < neededDecisionsIds.length; _i2++) {
21725
- var found = catalogData.getDecisionByNo(neededDecisionsIds[_i2]);
21732
+ for (var _i3 = 0; _i3 < neededDecisionsIds.length; _i3++) {
21733
+ var found = catalogData.getDecisionByNo(neededDecisionsIds[_i3]);
21726
21734
  if (found) ; else {
21727
- toLoadDecisionIds.push(neededDecisionsIds[_i2]);
21735
+ toLoadDecisionIds.push(neededDecisionsIds[_i3]);
21728
21736
  }
21729
21737
  }
21730
21738
  return toLoadDecisionIds;
@@ -21741,18 +21749,18 @@ var getFeatures = function getFeatures(catalogData, featureClasses) {
21741
21749
  var alreadyLoadedFeatures = catalogData.loadedFeatures;
21742
21750
  var toLoadFeatures = [];
21743
21751
  var loadedFeatures = [];
21744
- var _loop = function _loop(_i3) {
21752
+ var _loop = function _loop(_i4) {
21745
21753
  var found = alreadyLoadedFeatures.find(function (f) {
21746
- return f.featureNo == neededFeatures[_i3];
21754
+ return f.featureNo == neededFeatures[_i4];
21747
21755
  });
21748
21756
  if (found) {
21749
21757
  loadedFeatures.push(found);
21750
21758
  } else {
21751
- toLoadFeatures.push(neededFeatures[_i3]);
21759
+ toLoadFeatures.push(neededFeatures[_i4]);
21752
21760
  }
21753
21761
  };
21754
- for (var _i3 = 0; _i3 < neededFeatures.length; _i3++) {
21755
- _loop(_i3);
21762
+ for (var _i4 = 0; _i4 < neededFeatures.length; _i4++) {
21763
+ _loop(_i4);
21756
21764
  }
21757
21765
  LOG$l.debug('features already loaded dont get again from api: ' + loadedFeatures.length);
21758
21766
  return toLoadFeatures;
@@ -21776,10 +21784,10 @@ var getPriceFeatureGroups = function getPriceFeatureGroups(catalogArticleDatas,
21776
21784
  }
21777
21785
  var toLoadPriceFeatureGroups = [];
21778
21786
  neededPriceFeatureGroupNos = _toConsumableArray__default["default"](new Set(neededPriceFeatureGroupNos));
21779
- for (var _i4 = 0; _i4 < neededPriceFeatureGroupNos.length; _i4++) {
21780
- var found = catalogData.getPricefeaturegroup(neededPriceFeatureGroupNos[_i4]);
21787
+ for (var _i5 = 0; _i5 < neededPriceFeatureGroupNos.length; _i5++) {
21788
+ var found = catalogData.getPricefeaturegroup(neededPriceFeatureGroupNos[_i5]);
21781
21789
  if (found) ; else {
21782
- toLoadPriceFeatureGroups.push(neededPriceFeatureGroupNos[_i4]);
21790
+ toLoadPriceFeatureGroups.push(neededPriceFeatureGroupNos[_i5]);
21783
21791
  }
21784
21792
  }
21785
21793
  return toLoadPriceFeatureGroups;
@@ -32884,7 +32892,7 @@ var DivaArticle = /*#__PURE__*/function () {
32884
32892
  break;
32885
32893
  }
32886
32894
  _context.next = 4;
32887
- return Promise.resolve().then(function () { return require('./ShelfPlanner-0a786abd.js'); });
32895
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-4549352b.js'); });
32888
32896
  case 4:
32889
32897
  _yield$import = _context.sent;
32890
32898
  ShelfPlanner = _yield$import["default"];
@@ -41577,7 +41585,7 @@ var DivaSet = /*#__PURE__*/function () {
41577
41585
  break;
41578
41586
  }
41579
41587
  _context5.next = 3;
41580
- return Promise.resolve().then(function () { return require('./DoorPlanner-6c243f25.js'); });
41588
+ return Promise.resolve().then(function () { return require('./DoorPlanner-3565518f.js'); });
41581
41589
  case 3:
41582
41590
  _yield$import = _context5.sent;
41583
41591
  DoorPlanner = _yield$import["default"];
@@ -43900,8 +43908,15 @@ var ArtifactGenerationError = /*#__PURE__*/function (_Error) {
43900
43908
  function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(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; } } }; }
43901
43909
  function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(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$6(r, a) : void 0; } }
43902
43910
  function _arrayLikeToArray$6(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; }
43903
- /** Per IDM mandatory set with nothing planned yet: its only accessory (the spec selects it automatically) or the first of several. */
43911
+ /** The sole accessory of every IDM mandatory set that is not planned yet (the spec selects it automatically); a set of several waits for the customer's choice. */
43904
43912
  function mandatoryAccessoriesToPlan(relations, isPlanned) {
43913
+ return relations.filter(function (relation) {
43914
+ return relation.isSoleMandatory && !isPlanned(relation);
43915
+ });
43916
+ }
43917
+
43918
+ /** True when an IDM mandatory set has no planned accessory - at least one of each set has to be chosen. */
43919
+ function hasMandatorySetWithoutAccessory(relations, isPlanned) {
43905
43920
  var bySet = new Map();
43906
43921
  var _iterator = _createForOfIteratorHelper$6(relations),
43907
43922
  _step;
@@ -43917,10 +43932,8 @@ function mandatoryAccessoriesToPlan(relations, isPlanned) {
43917
43932
  } finally {
43918
43933
  _iterator.f();
43919
43934
  }
43920
- return _toConsumableArray__default["default"](bySet.values()).filter(function (members) {
43935
+ return _toConsumableArray__default["default"](bySet.values()).some(function (members) {
43921
43936
  return !members.some(isPlanned);
43922
- }).map(function (members) {
43923
- return members[0];
43924
43937
  });
43925
43938
  }
43926
43939
 
@@ -45118,7 +45131,19 @@ var DivaSetHandler = /*#__PURE__*/function () {
45118
45131
  return _planMandatoryAccessoires.apply(this, arguments);
45119
45132
  }
45120
45133
  return planMandatoryAccessoires;
45121
- }()
45134
+ }() /** IDM: true when a main article of the sets has a mandatory Zusatzartikel set without any planned accessory. */
45135
+ }, {
45136
+ key: "hasMissingMandatoryAccessories",
45137
+ value: function hasMissingMandatoryAccessories(sets) {
45138
+ return Object.values(sets).some(function (set) {
45139
+ return Object.values(set.getDivaArticles()).some(function (article) {
45140
+ var _article$catalogArtic2;
45141
+ return !article.relatedToBasketId && hasMandatorySetWithoutAccessory((_article$catalogArtic2 = article.catalogArticle.articleRelations) !== null && _article$catalogArtic2 !== void 0 ? _article$catalogArtic2 : [], function (r) {
45142
+ return article.curQunatityOfAccessoire(r.articleCodex, r.catalogCodex) > 0;
45143
+ });
45144
+ });
45145
+ });
45146
+ }
45122
45147
  }, {
45123
45148
  key: "updateAccessoireQuantity",
45124
45149
  value: function () {
@@ -46094,7 +46119,7 @@ var DivaSetHandler = /*#__PURE__*/function () {
46094
46119
  for (var key in divaArticles) {
46095
46120
  var article = divaArticles[key];
46096
46121
  if (article.plannerData) {
46097
- var _article$typeNr, _article$imageUrl, _article$catalogArtic2, _article$catalogArtic3, _article$catalogArtic4, _article$actPlannerDa, _article$actPlannerDa2, _article$posNr;
46122
+ var _article$typeNr, _article$imageUrl, _article$catalogArtic3, _article$catalogArtic4, _article$catalogArtic5, _article$actPlannerDa, _article$actPlannerDa2, _article$posNr;
46098
46123
  plannedElements.push({
46099
46124
  setId: set.getSetId(),
46100
46125
  basketId: article.basketId,
@@ -46106,13 +46131,13 @@ var DivaSetHandler = /*#__PURE__*/function () {
46106
46131
  typeNr: (_article$typeNr = article.typeNr) !== null && _article$typeNr !== void 0 ? _article$typeNr : '',
46107
46132
  image: (_article$imageUrl = article.imageUrl) !== null && _article$imageUrl !== void 0 ? _article$imageUrl : '',
46108
46133
  price: article.price,
46109
- contentItemId: (_article$catalogArtic2 = article.catalogArticle) === null || _article$catalogArtic2 === void 0 ? void 0 : _article$catalogArtic2.contentItemId,
46110
- groupContentItemId: (_article$catalogArtic3 = article.catalogArticle) === null || _article$catalogArtic3 === void 0 ? void 0 : _article$catalogArtic3.groupContentItemId,
46134
+ contentItemId: (_article$catalogArtic3 = article.catalogArticle) === null || _article$catalogArtic3 === void 0 ? void 0 : _article$catalogArtic3.contentItemId,
46135
+ groupContentItemId: (_article$catalogArtic4 = article.catalogArticle) === null || _article$catalogArtic4 === void 0 ? void 0 : _article$catalogArtic4.groupContentItemId,
46111
46136
  depth: article.depth,
46112
46137
  width: article.width,
46113
46138
  height: article.height,
46114
46139
  sizeInfo: DivaUtils__default["default"].sizeFormatter(article.catalogArticle, set.i18n, true, ':'),
46115
- longDescription: (_article$catalogArtic4 = article.catalogArticle) === null || _article$catalogArtic4 === void 0 ? void 0 : _article$catalogArtic4.longDescription,
46140
+ longDescription: (_article$catalogArtic5 = article.catalogArticle) === null || _article$catalogArtic5 === void 0 ? void 0 : _article$catalogArtic5.longDescription,
46116
46141
  incomplete: article.incomplete,
46117
46142
  isAccessoire: !!article.relatedToBasketId,
46118
46143
  avlFilter: (_article$actPlannerDa = article.actPlannerData) === null || _article$actPlannerDa === void 0 ? void 0 : _article$actPlannerDa.AVLFilter,
@@ -49531,7 +49556,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49531
49556
  break;
49532
49557
  case 3:
49533
49558
  _context12.next = 5;
49534
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-06401ac4.js'); });
49559
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-c95f65aa.js'); });
49535
49560
  case 5:
49536
49561
  _yield$import = _context12.sent;
49537
49562
  PfisterWWSHandler = _yield$import["default"];
@@ -49539,7 +49564,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49539
49564
  return _context12.abrupt("break", 27);
49540
49565
  case 9:
49541
49566
  _context12.next = 11;
49542
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-d1923d69.js'); });
49567
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-64500656.js'); });
49543
49568
  case 11:
49544
49569
  _yield$import2 = _context12.sent;
49545
49570
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49547,7 +49572,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49547
49572
  return _context12.abrupt("break", 27);
49548
49573
  case 15:
49549
49574
  _context12.next = 17;
49550
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-61cdfc93.js'); });
49575
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-145fb212.js'); });
49551
49576
  case 17:
49552
49577
  _yield$import3 = _context12.sent;
49553
49578
  SeriousWWSHandler = _yield$import3["default"];
@@ -49555,7 +49580,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49555
49580
  return _context12.abrupt("break", 27);
49556
49581
  case 21:
49557
49582
  _context12.next = 23;
49558
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-0bc63ba7.js'); });
49583
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-7244ebea.js'); });
49559
49584
  case 23:
49560
49585
  _yield$import4 = _context12.sent;
49561
49586
  StandardWWSHandler = _yield$import4["default"];
@@ -50942,7 +50967,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50942
50967
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50943
50968
  bootMark('signalr: chunk import start');
50944
50969
  _context3.next = 3;
50945
- return Promise.resolve().then(function () { return require('./Host3DSignalR-b67b054f.js'); });
50970
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-a6892648.js'); });
50946
50971
  case 3:
50947
50972
  _yield$import = _context3.sent;
50948
50973
  Host3DSignalR = _yield$import["default"];
@@ -52687,7 +52712,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52687
52712
  break;
52688
52713
  case 8:
52689
52714
  _context5.next = 10;
52690
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-6ef85473.js'); });
52715
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-b5866893.js'); });
52691
52716
  case 10:
52692
52717
  _yield$import = _context5.sent;
52693
52718
  DivaStandardPlanner = _yield$import["default"];
@@ -52698,7 +52723,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52698
52723
  return _context5.abrupt("break", 21);
52699
52724
  case 15:
52700
52725
  _context5.next = 17;
52701
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-5064ca34.js'); });
52726
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-7186adda.js'); });
52702
52727
  case 17:
52703
52728
  _yield$import2 = _context5.sent;
52704
52729
  DivaBoxPlanner = _yield$import2["default"];
@@ -56018,6 +56043,13 @@ var DivaWebPlanner = /*#__PURE__*/function () {
56018
56043
  value: function checkIfAllOptionsAreDefined() {
56019
56044
  return setHandlerInstance.checkIfAllOptionsAreDefined(this.sets);
56020
56045
  }
56046
+
56047
+ /** IDM: true when a planned main article has a mandatory Zusatzartikel set without any planned accessory. */
56048
+ }, {
56049
+ key: "hasMissingMandatoryAccessories",
56050
+ value: function hasMissingMandatoryAccessories() {
56051
+ return setHandlerInstance.hasMissingMandatoryAccessories(this.sets);
56052
+ }
56021
56053
  }, {
56022
56054
  key: "changeOnFavorites",
56023
56055
  value: function changeOnFavorites(opt, opvs, targetArticles, remove) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-7e845075.js');
5
+ var index = require('./index-7fe2f1b8.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -3,11 +3,11 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-c1e29f6c.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-eb55f67b.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-56b913f2.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-c87d20cf.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@babel/runtime/helpers/typeof';
@@ -4,10 +4,10 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-c1e29f6c.js';
7
+ import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-eb55f67b.js';
8
8
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
9
9
  import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-56b913f2.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-c87d20cf.js';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import './index-c1e29f6c.js';
4
+ import './index-eb55f67b.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-c1e29f6c.js';
6
+ import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-eb55f67b.js';
7
7
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
8
8
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
9
9
  import io from 'socket.io-client';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-c1e29f6c.js';
3
+ import './index-eb55f67b.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import { a as articleHandlerInstance } from './index-c1e29f6c.js';
3
+ import { a as articleHandlerInstance } from './index-eb55f67b.js';
4
4
  import { SAPOrderLineData } from '@crystaldesign/basket-model';
5
5
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';