@crystaldesign/web-planner-logic 26.8.0-beta.1 → 26.8.0-beta.10

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 (33) hide show
  1. package/build/cjs/{DivaBoxPlanner-2e378a1a.js → DivaBoxPlanner-080f0940.js} +42 -29
  2. package/build/cjs/{DivaStandardPlanner-0a6e8f4a.js → DivaStandardPlanner-6105afc9.js} +2 -2
  3. package/build/cjs/{DoorPlanner-0ebcb060.js → DoorPlanner-516e06dc.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-653cebc1.js → Host3DSignalR-4f58a7d0.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-9259293e.js → LiviqueWWSHandler-27794786.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-26c807f9.js → PfisterWWSHandler-d031a3ac.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-1b28c82a.js → PlannerHandler2D-34f3037d.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-e3f8040a.js → SeriousBasketHandler-2dbfe0e5.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-58edfc01.js → ShelfPlanner-05d5a34a.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-6faba9e9.js → StandardWWSHandler-567590ad.js} +1 -1
  11. package/build/cjs/{index-c1566d30.js → index-3652bf78.js} +83 -33
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-e8f7c4cd.js → DivaBoxPlanner-af446f22.js} +42 -29
  14. package/build/esm/{DivaStandardPlanner-21c4c0ca.js → DivaStandardPlanner-0f4e1a5d.js} +2 -2
  15. package/build/esm/{DoorPlanner-a4e3a380.js → DoorPlanner-554f0237.js} +1 -1
  16. package/build/esm/{Host3DSignalR-ed1240f2.js → Host3DSignalR-9c5828a1.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-fc0597c3.js → LiviqueWWSHandler-0f083f3f.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-a92fb5ca.js → PfisterWWSHandler-2aac5062.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-c52912b0.js → PlannerHandler2D-d1d1c068.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-18db24f8.js → SeriousBasketHandler-0a84d8e1.js} +1 -1
  21. package/build/esm/{ShelfPlanner-354da88b.js → ShelfPlanner-99a74708.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-46f9434e.js → StandardWWSHandler-3d082304.js} +1 -1
  23. package/build/esm/{index-18f1d8c6.js → index-c0e842d7.js} +83 -33
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
  30. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +7 -0
  32. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  33. package/package.json +2 -2
@@ -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-c1566d30.js');
8
+ var index = require('./index-3652bf78.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-1b28c82a.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-34f3037d.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/basket-model');
@@ -4501,29 +4501,42 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4501
4501
  // Neighbor column left/right of the copy (where support width is checked). At the grid edge that column does not exist
4502
4502
  // (LEFT: startColIndex === 0 → index.x === -1; RIGHT: endColIndex === curGrid.length → past last column).
4503
4503
  // Then scan along an in-grid column of this element so we still collect the full vertical stack to copy.
4504
- var supportColX = index.x;
4504
+ var supportColX = dir === 'LEFT' ? curPos.startColIndex - 1 : curPos.endColIndex;
4505
+ var belowColX = dir === 'LEFT' ? curPos.startColIndex : curPos.endColIndex - 1;
4506
+
4507
+ // Copying into new grid space (e.g. LEFT from column 0) — no adjacent column exists to check
4508
+ // support width against, so include the entire vertical stack below unconditionally.
4505
4509
  if (!curGrid[supportColX]) {
4506
- supportColX = dir === 'LEFT' ? curPos.startColIndex : curPos.endColIndex - 1;
4510
+ for (var y = index.y - 1; y >= 0;) {
4511
+ var _curGrid$belowColX;
4512
+ var belowElement = (_curGrid$belowColX = curGrid[belowColX]) === null || _curGrid$belowColX === void 0 || (_curGrid$belowColX = _curGrid$belowColX[y]) === null || _curGrid$belowColX === void 0 ? void 0 : _curGrid$belowColX.plannedElement;
4513
+ if (!belowElement) break;
4514
+ plannerIdsToFill.push(belowElement.elementId);
4515
+ y = belowElement.area.fromY - 1;
4516
+ }
4517
+ return {
4518
+ elements: plannerIdsToFill.reverse(),
4519
+ backside: curPos.backside
4520
+ };
4507
4521
  }
4508
- var belowColX = dir === 'LEFT' ? curPos.startColIndex : curPos.endColIndex - 1;
4509
- var _loop = function _loop(_y3) {
4510
- var _curGrid$belowColX, _curGrid$supportColX$, _Width, _Width2, _Width3;
4522
+ var _loop = function _loop(_y4) {
4523
+ var _curGrid$belowColX2, _curGrid$supportColX$, _Width, _Width2, _Width3;
4511
4524
  if (!curGrid[supportColX]) {
4512
- y = _y3;
4525
+ _y3 = _y4;
4513
4526
  return 0;
4514
4527
  } // break
4515
4528
 
4516
4529
  // Always resolve the element in our own column — that is what we copy, not the neighbour.
4517
- var belowElement = (_curGrid$belowColX = curGrid[belowColX]) === null || _curGrid$belowColX === void 0 || (_curGrid$belowColX = _curGrid$belowColX[_y3]) === null || _curGrid$belowColX === void 0 ? void 0 : _curGrid$belowColX.plannedElement;
4530
+ var belowElement = (_curGrid$belowColX2 = curGrid[belowColX]) === null || _curGrid$belowColX2 === void 0 || (_curGrid$belowColX2 = _curGrid$belowColX2[_y4]) === null || _curGrid$belowColX2 === void 0 ? void 0 : _curGrid$belowColX2.plannedElement;
4518
4531
  if (!belowElement) {
4519
- y = _y3;
4532
+ _y3 = _y4;
4520
4533
  return 0;
4521
4534
  } // break
4522
- var supportElement = (_curGrid$supportColX$ = curGrid[supportColX][_y3]) === null || _curGrid$supportColX$ === void 0 ? void 0 : _curGrid$supportColX$.plannedElement;
4535
+ var supportElement = (_curGrid$supportColX$ = curGrid[supportColX][_y4]) === null || _curGrid$supportColX$ === void 0 ? void 0 : _curGrid$supportColX$.plannedElement;
4523
4536
  if (!supportElement) {
4524
4537
  plannerIdsToFill.push(belowElement.elementId);
4525
- _y3 = belowElement.area.fromY - 1;
4526
- y = _y3;
4538
+ _y4 = belowElement.area.fromY - 1;
4539
+ _y3 = _y4;
4527
4540
  return 1; // continue
4528
4541
  }
4529
4542
 
@@ -4543,7 +4556,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4543
4556
  freeSpace += n.Width;
4544
4557
  });
4545
4558
  if (freeSpace >= elementWidth) {
4546
- y = _y3;
4559
+ _y3 = _y4;
4547
4560
  return 0;
4548
4561
  } // break
4549
4562
  var belowWidth = (_Width3 = _this2.getElementById(belowElement.elementId).Width) !== null && _Width3 !== void 0 ? _Width3 : belowElement.size.width;
@@ -4552,12 +4565,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4552
4565
  plannerIdsToFill.push(belowElement.elementId);
4553
4566
  missingWidth = Math.round(missingWidth - belowWidth);
4554
4567
  }
4555
- _y3 = belowElement.area.fromY - 1;
4556
- y = _y3;
4568
+ _y4 = belowElement.area.fromY - 1;
4569
+ _y3 = _y4;
4557
4570
  },
4558
4571
  _ret;
4559
- for (var y = index.y - 1; y >= 0;) {
4560
- _ret = _loop(y);
4572
+ for (var _y3 = index.y - 1; _y3 >= 0;) {
4573
+ _ret = _loop(_y3);
4561
4574
  if (_ret === 0) break;
4562
4575
  if (_ret === 1) continue;
4563
4576
  }
@@ -4908,9 +4921,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4908
4921
  for (var _x5 = cell.plannedElement.area.fromX; _x5 < cell.plannedElement.area.toX; _x5++) {
4909
4922
  var row = grid[_x5];
4910
4923
  if (!row) continue;
4911
- for (var _y4 = origin.y; _y4 < row.length; _y4++) {
4912
- var _cell = row[_y4];
4913
- if (_cell.index.y != _y4 || _cell.plannedElement.elementId == cell.plannedElement.elementId) continue; //already corrected
4924
+ for (var _y5 = origin.y; _y5 < row.length; _y5++) {
4925
+ var _cell = row[_y5];
4926
+ if (_cell.index.y != _y5 || _cell.plannedElement.elementId == cell.plannedElement.elementId) continue; //already corrected
4914
4927
  _cell.index.y += diff.y;
4915
4928
  _cell.plannedElement.area.fromY += diff.y;
4916
4929
  _cell.plannedElement.area.toY += diff.y;
@@ -4919,8 +4932,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4919
4932
  } else if (diff.x != 0 && (diff.x > free || diff.x < 0)) {
4920
4933
  // if there is enough free space on the right no need to move
4921
4934
  for (var _x6 = cell.plannedElement.area.fromX; _x6 < grid.length; _x6++) {
4922
- for (var _y5 = cell.plannedElement.area.fromY; _y5 < cell.plannedElement.area.toY; _y5++) {
4923
- var _cell10 = grid[_x6][_y5];
4935
+ for (var _y6 = cell.plannedElement.area.fromY; _y6 < cell.plannedElement.area.toY; _y6++) {
4936
+ var _cell10 = grid[_x6][_y6];
4924
4937
  if (!_cell10 || _cell10.plannedElement.elementId == elementId) continue; //already corrected
4925
4938
  _cell10.index.x += diff.x;
4926
4939
  _cell10.plannedElement.area.fromX += diff.x;
@@ -4944,7 +4957,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4944
4957
  });
4945
4958
  })) return 0; // continue
4946
4959
  for (var _x7 = area.fromX; _x7 < area.toX; _x7++) {
4947
- for (var _y6 = area.fromY; _y6 < area.toY; _y6++) {
4960
+ for (var _y7 = area.fromY; _y7 < area.toY; _y7++) {
4948
4961
  if (!newGrid[_x7] && area.fromY == 0) newGrid[_x7] = [];
4949
4962
 
4950
4963
  // we have a so called overhanging element not so nice, let's correct:
@@ -4968,10 +4981,10 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
4968
4981
  // when the element above starts early and goes over multiple ones
4969
4982
 
4970
4983
  // regular case
4971
- newGrid[_x7][_y6] = _objectSpread(_objectSpread({}, cell), {}, {
4984
+ newGrid[_x7][_y7] = _objectSpread(_objectSpread({}, cell), {}, {
4972
4985
  index: {
4973
4986
  x: _x7,
4974
- y: _y6
4987
+ y: _y7
4975
4988
  },
4976
4989
  plannedElement: _objectSpread(_objectSpread({}, cell.plannedElement), {}, {
4977
4990
  area: {
@@ -5449,9 +5462,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
5449
5462
  var _targetColIndex = endColIndex;
5450
5463
  var _copyPossible2 = false;
5451
5464
  // Iterate through rows within the element's height
5452
- for (var _y7 = startRowIndex; _y7 <= endRowIndex; _y7++) {
5453
- if (isValidCell(_targetColIndex, _y7)) {
5454
- copyStartRowIndex = _y7;
5465
+ for (var _y8 = startRowIndex; _y8 <= endRowIndex; _y8++) {
5466
+ if (isValidCell(_targetColIndex, _y8)) {
5467
+ copyStartRowIndex = _y8;
5455
5468
  _copyPossible2 = true;
5456
5469
  break;
5457
5470
  }
@@ -5,9 +5,9 @@ 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-c1566d30.js');
8
+ var index = require('./index-3652bf78.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
- var PlannerHandler2D = require('./PlannerHandler2D-1b28c82a.js');
10
+ var PlannerHandler2D = require('./PlannerHandler2D-34f3037d.js');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
13
13
  require('@babel/runtime/helpers/toConsumableArray');
@@ -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-c1566d30.js');
6
+ require('./index-3652bf78.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-c1566d30.js');
8
+ var index = require('./index-3652bf78.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-c1566d30.js');
5
+ require('./index-3652bf78.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-c1566d30.js');
5
+ var index = require('./index-3652bf78.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-c1566d30.js');
8
+ var index = require('./index-3652bf78.js');
9
9
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var fabric = require('fabric');
@@ -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-c1566d30.js');
6
+ var index = require('./index-3652bf78.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-c1566d30.js');
9
+ var index = require('./index-3652bf78.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-c1566d30.js');
5
+ require('./index-3652bf78.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -1174,6 +1174,11 @@ var DivaApiHandler = /*#__PURE__*/function () {
1174
1174
  value: function getIDMDecisions(packageId, decisions) {
1175
1175
  return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions' + '?decisionNos=' + decisions.join(';') + (this.smSupplierNr ? '&supplierNo=' + this.smSupplierNr : '');
1176
1176
  }
1177
+ }, {
1178
+ key: "getIDMDecisionsQueryUrl",
1179
+ value: function getIDMDecisionsQueryUrl(packageId) {
1180
+ return this.idmPrefix + (this.isSeller ? '/packages/' : '/catalogs/') + packageId + '/decisions/query' + (this.smSupplierNr ? '?supplierNo=' + this.smSupplierNr : '');
1181
+ }
1177
1182
  }, {
1178
1183
  key: "getIDMDetailInfos",
1179
1184
  value: function getIDMDetailInfos(packageId, detailinfos) {
@@ -19714,7 +19719,15 @@ function _loadMoreFromIDMArticles() {
19714
19719
  }).map(function (a) {
19715
19720
  return a.featureClassRefNo;
19716
19721
  })));
19717
- promises = [set.api.getDataCache(set.api.getIDMFeatureClass(set.CatalogData.accountGuid, toLoadFeatureClassRefNo), undefined, undefined, 'enricher'), toLoadPFGroups.length ? set.api.getDataCache(set.api.getIDMPriceFeatureGroups(set.CatalogData.accountGuid, toLoadPFGroups), undefined, undefined, 'enricher') : undefined, toLoadDecisionIds.length ? set.api.getDataCache(set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds), undefined, undefined, 'enricher') : undefined];
19722
+ promises = [set.api.getDataCache(set.api.getIDMFeatureClass(set.CatalogData.accountGuid, toLoadFeatureClassRefNo), undefined, undefined, 'enricher'), toLoadPFGroups.length ? set.api.getDataCache(set.api.getIDMPriceFeatureGroups(set.CatalogData.accountGuid, toLoadPFGroups), undefined, undefined, 'enricher') : undefined, toLoadDecisionIds.length ? function () {
19723
+ var getUrl = set.api.getIDMDecisions(set.CatalogData.accountGuid, toLoadDecisionIds);
19724
+ if (getUrl.length > 2000) {
19725
+ return set.api.getDataCache(set.api.getIDMDecisionsQueryUrl(set.CatalogData.accountGuid), undefined, undefined, 'enricher', 'POST', {
19726
+ decisionNos: toLoadDecisionIds.join(';')
19727
+ });
19728
+ }
19729
+ return set.api.getDataCache(getUrl, undefined, undefined, 'enricher');
19730
+ }() : undefined];
19718
19731
  _context5.next = 16;
19719
19732
  return Promise.all(promises);
19720
19733
  case 16:
@@ -21220,6 +21233,24 @@ var DivaCatalogData = /*#__PURE__*/function () {
21220
21233
  return _ret;
21221
21234
  }
21222
21235
  }
21236
+
21237
+ /**
21238
+ * Default dock filter applied when nothing is selected (e.g. after a deselect or when adding a new element).
21239
+ * When completeness warnings are hidden, any element may start a planning, so every dock type the catalog
21240
+ * actually has is shown. Otherwise the catalog's configured start filter (startFilterParams / available
21241
+ * start types) is used.
21242
+ */
21243
+ }, {
21244
+ key: "defaultDockFilter",
21245
+ get: function get() {
21246
+ if (this.doHideCompletenessWarning) {
21247
+ var filterType = this.plannerPaletteViewInfo.filterType;
21248
+ return Object.keys(filterType).filter(function (key) {
21249
+ return filterType[key];
21250
+ });
21251
+ }
21252
+ return this.getStartFilter;
21253
+ }
21223
21254
  }, {
21224
21255
  key: "dontHideOption",
21225
21256
  get: function get() {
@@ -22324,11 +22355,12 @@ var DivaCatalogHandler = /*#__PURE__*/function () {
22324
22355
  key: "loadDivaCatalog",
22325
22356
  value: function () {
22326
22357
  var _loadDivaCatalog = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(state, catalogCodex, orderSet) {
22358
+ var _orderSet$OrderLines;
22327
22359
  var promises, _yield$Promise$all, _yield$Promise$all2, catalogApiData, catalogArticleListData, catalogArticlePlannerListData, additionalModelInfos, mask, _state$catalogMask, catalogData;
22328
22360
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
22329
22361
  while (1) switch (_context2.prev = _context2.next) {
22330
22362
  case 0:
22331
- promises = [state.api.getDataCache(state.api.getCatalogDataQS(catalogCodex), state.api.getCatalogDataCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonArticleListQS(catalogCodex), state.api.getJsonArticleListCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonPlannerElementsQS(catalogCodex), state.api.getJsonPlannerElementsCacheKey(catalogCodex), orderSet.AccountSessionGUID)].concat([this.loadAdditionalModelInfos(state, orderSet.AccountGUID, orderSet.CatalogGUID)], _toConsumableArray__default["default"](state.onlyRunLogic ? [] : _toConsumableArray__default["default"](new Map(orderSet.OrderLines.filter(function (ol) {
22363
+ promises = [state.api.getDataCache(state.api.getCatalogDataQS(catalogCodex), state.api.getCatalogDataCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonArticleListQS(catalogCodex), state.api.getJsonArticleListCacheKey(catalogCodex), orderSet.AccountSessionGUID), state.api.getDataCache(state.api.getJsonPlannerElementsQS(catalogCodex), state.api.getJsonPlannerElementsCacheKey(catalogCodex), orderSet.AccountSessionGUID)].concat([this.loadAdditionalModelInfos(state, orderSet.AccountGUID, orderSet.CatalogGUID)], _toConsumableArray__default["default"](state.onlyRunLogic ? [] : _toConsumableArray__default["default"](new Map(((_orderSet$OrderLines = orderSet.OrderLines) !== null && _orderSet$OrderLines !== void 0 ? _orderSet$OrderLines : []).filter(function (ol) {
22332
22364
  var _ol$VariantBasketData;
22333
22365
  return ((_ol$VariantBasketData = ol.VariantBasketDatas) === null || _ol$VariantBasketData === void 0 ? void 0 : _ol$VariantBasketData.length) && ol.ArticleType === 'OPTIONTREE';
22334
22366
  }).map(function (os) {
@@ -29555,7 +29587,7 @@ var DivaArticle = /*#__PURE__*/function () {
29555
29587
  break;
29556
29588
  }
29557
29589
  _context.next = 4;
29558
- return Promise.resolve().then(function () { return require('./ShelfPlanner-58edfc01.js'); });
29590
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-05d5a34a.js'); });
29559
29591
  case 4:
29560
29592
  _yield$import = _context.sent;
29561
29593
  ShelfPlanner = _yield$import["default"];
@@ -33289,7 +33321,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33289
33321
  }
33290
33322
  }, {
33291
33323
  key: "getSummaryItemsofArticle",
33292
- value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket) {
33324
+ value: function getSummaryItemsofArticle(article, set, summaryTabItems, baseArticlesCount, summaryForBasket, parentArticle) {
33293
33325
  var _iterator2 = _createForOfIteratorHelper$7(article.articleOptionStates.values()),
33294
33326
  _step2;
33295
33327
  try {
@@ -33297,6 +33329,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33297
33329
  var ops = _step2.value;
33298
33330
  if (ops.visibleInSummary(article, summaryForBasket)) {
33299
33331
  var _set$configTree$getCo, _set$hiddenConfigTree;
33332
+ //for accessoires only render an option if it differs from the parent article's selection
33333
+ if (parentArticle) {
33334
+ var _parentOps$val, _ops$val;
33335
+ var parentOps = parentArticle.getArticleOptionState(ops.optionCodex);
33336
+ if (parentOps && ((_parentOps$val = parentOps.val) === null || _parentOps$val === void 0 ? void 0 : _parentOps$val.codex) === ((_ops$val = ops.val) === null || _ops$val === void 0 ? void 0 : _ops$val.codex)) continue;
33337
+ }
33300
33338
  var tabGroupCodex = void 0;
33301
33339
  var tabGroupTitel = void 0;
33302
33340
  if (ops.optionTabGroup) {
@@ -33313,9 +33351,9 @@ var SummaryHandler = /*#__PURE__*/function () {
33313
33351
  var itemsInTabGroup = summaryTabItems[tabGroupCodex].summaryItems;
33314
33352
  var itemImage = ops.val.image ? set.CatalogData.getCatImageURL(ops.val.image, '') : undefined;
33315
33353
  if (configStep && itemsInTabGroup) {
33316
- var _ops$val, _this$getAdditionalPr;
33354
+ var _ops$val2, _this$getAdditionalPr;
33317
33355
  var sameOPVAndOPTDoAlreadyExist = false;
33318
- var configStepKeyToUse = configStep.key + ((_ops$val = ops.val) === null || _ops$val === void 0 ? void 0 : _ops$val.codex);
33356
+ var configStepKeyToUse = configStep.key + ((_ops$val2 = ops.val) === null || _ops$val2 === void 0 ? void 0 : _ops$val2.codex);
33319
33357
  var posNr = configStep === null || configStep === void 0 ? void 0 : configStep.posNr;
33320
33358
  if (configStep !== null && configStep !== void 0 && configStep.accessoireArticleCodex && article.relatedToBasketId) {
33321
33359
  var _set$configTree$getCo2, _set$configTree$getCo3, _set$hiddenConfigTree2;
@@ -33336,7 +33374,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33336
33374
  var rabatt = set.getCurrentDisountPercentage();
33337
33375
  var price = rabatt ? DivaUtils__default["default"].roundPrice(bruttoPrice * ((100 - rabatt) / 100), 1, 2) : bruttoPrice;
33338
33376
  if (!sameOPVAndOPTDoAlreadyExist) {
33339
- var _ops$val$contentItemI, _ops$val2, _ops$val3;
33377
+ var _ops$val$contentItemI, _ops$val3, _ops$val4;
33340
33378
  itemsInTabGroup[configStepKeyToUse] = {
33341
33379
  title: ops.optionName,
33342
33380
  title_locales: ops.optionName_locales,
@@ -33350,7 +33388,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33350
33388
  image: itemImage,
33351
33389
  isDefined: ops.isDefined,
33352
33390
  setId: set.getSetId(),
33353
- contentItemId: (_ops$val$contentItemI = (_ops$val2 = ops.val) === null || _ops$val2 === void 0 ? void 0 : _ops$val2.contentItemId) !== null && _ops$val$contentItemI !== void 0 ? _ops$val$contentItemI : (_ops$val3 = ops.val) === null || _ops$val3 === void 0 ? void 0 : _ops$val3.groupContentItemId,
33391
+ contentItemId: (_ops$val$contentItemI = (_ops$val3 = ops.val) === null || _ops$val3 === void 0 ? void 0 : _ops$val3.contentItemId) !== null && _ops$val$contentItemI !== void 0 ? _ops$val$contentItemI : (_ops$val4 = ops.val) === null || _ops$val4 === void 0 ? void 0 : _ops$val4.groupContentItemId,
33354
33392
  optionContentItemId: ops.option.contentItemId,
33355
33393
  includesAllPosNrs: baseArticlesCount <= 1
33356
33394
  };
@@ -33404,7 +33442,7 @@ var SummaryHandler = /*#__PURE__*/function () {
33404
33442
  } else {
33405
33443
  var _set$i18n$t2, _set$i18n2, _accessoire$catalogAr, _accessoire$catalogAr2, _accessoire$catalogAr3;
33406
33444
  var summaryItems = {};
33407
- this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket);
33445
+ this.getSummaryItemsofArticle(accessoire, set, summaryItems, 0, summaryForBasket, article);
33408
33446
  this.addAccessoires([accessoire], summaryItems, set, articlesPosNrs, baseArticlesCount, summaryForBasket);
33409
33447
  tabGroup.summaryItems[entryKey] = {
33410
33448
  title: accessoire.name,
@@ -33681,14 +33719,26 @@ var SummaryHandler = /*#__PURE__*/function () {
33681
33719
  counter++;
33682
33720
  SummaryInfo.push(new basketModel.GroupsData(GroupDataInitParams));
33683
33721
  for (var jKey in mySummaryObejct.summaryItems) {
33684
- var _mySummaryItem$title_, _mySummaryItem$descri, _mySummaryItem$target;
33685
- var mySummaryItem = mySummaryObejct.summaryItems[jKey];
33686
- SummaryInfo[SummaryInfo.length - 1].Group.addItem(mySummaryItem.title, (_mySummaryItem$title_ = mySummaryItem.title_locales) !== null && _mySummaryItem$title_ !== void 0 ? _mySummaryItem$title_ : {}, DivaUtils__default["default"].stripTags(mySummaryItem.description), DivaUtils__default["default"].stripTagsFromDict((_mySummaryItem$descri = mySummaryItem.description_locales) !== null && _mySummaryItem$descri !== void 0 ? _mySummaryItem$descri : {}), (_mySummaryItem$target = mySummaryItem.targetArticlePosNrs) !== null && _mySummaryItem$target !== void 0 ? _mySummaryItem$target : [], SummaryInfo[SummaryInfo.length - 1].Group.GroupID, mySummaryItem.image);
33722
+ this.addSummaryItemToGroup(SummaryInfo[SummaryInfo.length - 1].Group, mySummaryObejct.summaryItems[jKey]);
33687
33723
  }
33688
33724
  }
33689
33725
  }
33690
33726
  return SummaryInfo;
33691
33727
  }
33728
+ }, {
33729
+ key: "addSummaryItemToGroup",
33730
+ value: function addSummaryItemToGroup(group, summaryItem) {
33731
+ //tab-group shells only structure the nested config; skip them so they don't become empty property lines
33732
+ if (!summaryItem.isTabGroup) {
33733
+ var _summaryItem$title_lo, _summaryItem$descript, _summaryItem$targetAr4;
33734
+ group.addItem(summaryItem.title, (_summaryItem$title_lo = summaryItem.title_locales) !== null && _summaryItem$title_lo !== void 0 ? _summaryItem$title_lo : {}, DivaUtils__default["default"].stripTags(summaryItem.description), DivaUtils__default["default"].stripTagsFromDict((_summaryItem$descript = summaryItem.description_locales) !== null && _summaryItem$descript !== void 0 ? _summaryItem$descript : {}), (_summaryItem$targetAr4 = summaryItem.targetArticlePosNrs) !== null && _summaryItem$targetAr4 !== void 0 ? _summaryItem$targetAr4 : [], group.GroupID, summaryItem.image);
33735
+ }
33736
+
33737
+ //nested config (e.g. accessory option values like a custom color) is kept flat in the same group
33738
+ for (var _key7 in summaryItem.summaryItems) {
33739
+ this.addSummaryItemToGroup(group, summaryItem.summaryItems[_key7]);
33740
+ }
33741
+ }
33692
33742
  }, {
33693
33743
  key: "getSummaryType",
33694
33744
  value: function getSummaryType(set) {
@@ -33719,8 +33769,8 @@ var SummaryHandler = /*#__PURE__*/function () {
33719
33769
  }
33720
33770
  };
33721
33771
  }
33722
- for (var _key7 in elementGroups) {
33723
- var group = elementGroups[_key7];
33772
+ for (var _key8 in elementGroups) {
33773
+ var group = elementGroups[_key8];
33724
33774
  ret.push({
33725
33775
  items: this.buildSummaryItems(this.getArticlesPosNr(group.articles), set, summaryForBasket),
33726
33776
  price: this.getArticlesPrice(group.articles),
@@ -33737,10 +33787,10 @@ var SummaryHandler = /*#__PURE__*/function () {
33737
33787
  var groupedArticles = setHandlerInstance.getDockedGroupedArticles(set);
33738
33788
  var retGroups = {};
33739
33789
  var articlesCodexesOnIndex = {};
33740
- for (var _key8 in groupedArticles) {
33741
- var basketId = groupedArticles[_key8][Object.keys(groupedArticles[_key8])[0]].basketId;
33790
+ for (var _key9 in groupedArticles) {
33791
+ var basketId = groupedArticles[_key9][Object.keys(groupedArticles[_key9])[0]].basketId;
33742
33792
  retGroups[basketId] = {
33743
- articles: groupedArticles[_key8],
33793
+ articles: groupedArticles[_key9],
33744
33794
  quantity: 1
33745
33795
  };
33746
33796
  }
@@ -33755,12 +33805,12 @@ var SummaryHandler = /*#__PURE__*/function () {
33755
33805
  articlesCodexesOnIndex[articleCodex].push(i);
33756
33806
  }
33757
33807
  }
33758
- for (var _key9 in articlesCodexesOnIndex) {
33759
- if (articlesCodexesOnIndex[_key9].length > 1) {
33808
+ for (var _key10 in articlesCodexesOnIndex) {
33809
+ if (articlesCodexesOnIndex[_key10].length > 1) {
33760
33810
  //group the single groups by the aricleCodex
33761
33811
  var articles = [];
33762
- for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key9].length; _i4++) {
33763
- var _group = groupedArticles[articlesCodexesOnIndex[_key9][_i4]];
33812
+ for (var _i4 = 0; _i4 < articlesCodexesOnIndex[_key10].length; _i4++) {
33813
+ var _group = groupedArticles[articlesCodexesOnIndex[_key10][_i4]];
33764
33814
  articles.push({
33765
33815
  article: _group[Object.keys(_group)[0]]
33766
33816
  });
@@ -33805,11 +33855,11 @@ var SummaryHandler = /*#__PURE__*/function () {
33805
33855
  var isIDM = article.CatalogData.isIDMFormat;
33806
33856
  var tabGroups = [];
33807
33857
  for (var basketId in article.partlistArticles) {
33808
- var _ops$val4;
33858
+ var _ops$val5;
33809
33859
  var partlistArticle = article.partlistArticles[basketId];
33810
33860
  if (!partlistArticle.tabGroup) continue;
33811
33861
  var ops = article.getArticleOptionState((!isIDM ? 'OPT' : '') + partlistArticle.tabGroup);
33812
- if (ops && !ops.isInvisible && (ops.selectionmode != 0 || (ops.visibleCount > 1 || ops.isFreeText) && article.set.api.showSelectionModeZero()) && ops.isDoShow && !((_ops$val4 = ops.val) !== null && _ops$val4 !== void 0 && _ops$val4.isNotRelevant) && ops !== null && ops !== void 0 && ops.optionTabGroup) {
33862
+ if (ops && !ops.isInvisible && (ops.selectionmode != 0 || (ops.visibleCount > 1 || ops.isFreeText) && article.set.api.showSelectionModeZero()) && ops.isDoShow && !((_ops$val5 = ops.val) !== null && _ops$val5 !== void 0 && _ops$val5.isNotRelevant) && ops !== null && ops !== void 0 && ops.optionTabGroup) {
33813
33863
  tabGroups.push({
33814
33864
  optionCodex: ops.optionCodex,
33815
33865
  tabGroup: ops.optionTabGroup
@@ -34045,8 +34095,8 @@ var SummaryHandler = /*#__PURE__*/function () {
34045
34095
  key: "getArticlesPrice",
34046
34096
  value: function getArticlesPrice(articles) {
34047
34097
  var price = 0;
34048
- for (var _key10 in articles) {
34049
- price = price + articles[_key10].price * articles[_key10].quantity;
34098
+ for (var _key11 in articles) {
34099
+ price = price + articles[_key11].price * articles[_key11].quantity;
34050
34100
  }
34051
34101
  return price;
34052
34102
  }
@@ -37559,7 +37609,7 @@ var DivaSet = /*#__PURE__*/function () {
37559
37609
  break;
37560
37610
  }
37561
37611
  _context5.next = 3;
37562
- return Promise.resolve().then(function () { return require('./DoorPlanner-0ebcb060.js'); });
37612
+ return Promise.resolve().then(function () { return require('./DoorPlanner-516e06dc.js'); });
37563
37613
  case 3:
37564
37614
  _yield$import = _context5.sent;
37565
37615
  DoorPlanner = _yield$import["default"];
@@ -43033,7 +43083,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43033
43083
  break;
43034
43084
  case 3:
43035
43085
  _context12.next = 5;
43036
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-26c807f9.js'); });
43086
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-d031a3ac.js'); });
43037
43087
  case 5:
43038
43088
  _yield$import = _context12.sent;
43039
43089
  PfisterWWSHandler = _yield$import["default"];
@@ -43041,7 +43091,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43041
43091
  return _context12.abrupt("break", 27);
43042
43092
  case 9:
43043
43093
  _context12.next = 11;
43044
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-9259293e.js'); });
43094
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-27794786.js'); });
43045
43095
  case 11:
43046
43096
  _yield$import2 = _context12.sent;
43047
43097
  LiviqueWWSHandler = _yield$import2["default"];
@@ -43049,7 +43099,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43049
43099
  return _context12.abrupt("break", 27);
43050
43100
  case 15:
43051
43101
  _context12.next = 17;
43052
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-e3f8040a.js'); });
43102
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-2dbfe0e5.js'); });
43053
43103
  case 17:
43054
43104
  _yield$import3 = _context12.sent;
43055
43105
  SeriousWWSHandler = _yield$import3["default"];
@@ -43057,7 +43107,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
43057
43107
  return _context12.abrupt("break", 27);
43058
43108
  case 21:
43059
43109
  _context12.next = 23;
43060
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-6faba9e9.js'); });
43110
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-567590ad.js'); });
43061
43111
  case 23:
43062
43112
  _yield$import4 = _context12.sent;
43063
43113
  StandardWWSHandler = _yield$import4["default"];
@@ -44481,7 +44531,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
44481
44531
  while (1) switch (_context3.prev = _context3.next) {
44482
44532
  case 0:
44483
44533
  _context3.next = 2;
44484
- return Promise.resolve().then(function () { return require('./Host3DSignalR-653cebc1.js'); });
44534
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-4f58a7d0.js'); });
44485
44535
  case 2:
44486
44536
  _yield$import = _context3.sent;
44487
44537
  Host3DSignalR = _yield$import["default"];
@@ -46167,7 +46217,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46167
46217
  break;
46168
46218
  case 8:
46169
46219
  _context5.next = 10;
46170
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-0a6e8f4a.js'); });
46220
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-6105afc9.js'); });
46171
46221
  case 10:
46172
46222
  _yield$import = _context5.sent;
46173
46223
  DivaStandardPlanner = _yield$import["default"];
@@ -46178,7 +46228,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
46178
46228
  return _context5.abrupt("break", 21);
46179
46229
  case 15:
46180
46230
  _context5.next = 17;
46181
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-2e378a1a.js'); });
46231
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-080f0940.js'); });
46182
46232
  case 17:
46183
46233
  _yield$import2 = _context5.sent;
46184
46234
  DivaBoxPlanner = _yield$import2["default"];
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-c1566d30.js');
5
+ var index = require('./index-3652bf78.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/classCallCheck');