@crystaldesign/web-planner-logic 26.11.0-beta.9 → 26.12.0-beta.1

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 (110) hide show
  1. package/build/cjs/{DivaBoxPlanner-02a2dbbf.js → DivaBoxPlanner-104200d4.js} +132 -45
  2. package/build/cjs/{DivaStandardPlanner-150246c0.js → DivaStandardPlanner-afd61e89.js} +584 -310
  3. package/build/cjs/{DoorPlanner-ce630754.js → DoorPlanner-58218b20.js} +2 -1
  4. package/build/cjs/{Host3DSignalR-b0b1fb8d.js → Host3DSignalR-43cccc62.js} +40 -24
  5. package/build/cjs/{LiviqueWWSHandler-c11ea7d2.js → LiviqueWWSHandler-9ac1d546.js} +2 -1
  6. package/build/cjs/{PfisterWWSHandler-3c723ecc.js → PfisterWWSHandler-27d3c2f1.js} +2 -1
  7. package/build/cjs/{PlannerHandler2D-6c0324be.js → PlannerHandler2D-b9e0aa00.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-d1ae4006.js → SeriousBasketHandler-9225ef60.js} +2 -1
  9. package/build/cjs/{ShelfPlanner-04d98f4d.js → ShelfPlanner-89660e65.js} +261 -148
  10. package/build/cjs/{StandardWWSHandler-9b596caf.js → StandardWWSHandler-eaf1106a.js} +2 -1
  11. package/build/cjs/{index-633196ab.js → index-9279cd6b.js} +16313 -14314
  12. package/build/cjs/index.js +8 -1
  13. package/build/esm/{DivaBoxPlanner-fa9f6ec6.js → DivaBoxPlanner-49ca2254.js} +132 -45
  14. package/build/esm/{DivaStandardPlanner-6c001048.js → DivaStandardPlanner-5b1937df.js} +583 -310
  15. package/build/esm/{DoorPlanner-ef9165f9.js → DoorPlanner-e5d456e3.js} +2 -1
  16. package/build/esm/{Host3DSignalR-2dc8478a.js → Host3DSignalR-bf8a4afc.js} +40 -24
  17. package/build/esm/{LiviqueWWSHandler-b6e8bf5f.js → LiviqueWWSHandler-1e537c0a.js} +2 -1
  18. package/build/esm/{PfisterWWSHandler-54b3e0aa.js → PfisterWWSHandler-6218f972.js} +2 -1
  19. package/build/esm/{PlannerHandler2D-0e61311d.js → PlannerHandler2D-0e55412b.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-7b097870.js → SeriousBasketHandler-b534a712.js} +2 -1
  21. package/build/esm/{ShelfPlanner-f3e86534.js → ShelfPlanner-5062f0a3.js} +261 -148
  22. package/build/esm/{StandardWWSHandler-4b0caefd.js → StandardWWSHandler-6c628e60.js} +2 -1
  23. package/build/esm/{index-6c8de812.js → index-e11ba779.js} +16309 -14315
  24. package/build/esm/index.js +2 -1
  25. package/build/types/web-planner-logic/src/index.d.ts +8 -3
  26. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +13 -0
  30. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts +13 -0
  32. package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +4 -0
  34. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +6 -1
  36. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +19 -18
  38. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/interface/IDM/Decision.d.ts +1 -0
  40. package/build/types/web-planner-logic/src/interface/IDM/Decision.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts +37 -0
  42. package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts +5 -0
  44. package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +46 -2
  46. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +2 -0
  48. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +4 -0
  50. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  52. package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts +4 -0
  53. package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts.map +1 -1
  54. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts +2 -0
  55. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  56. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +39 -2
  57. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  58. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +20 -0
  59. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
  60. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +31 -1
  61. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
  62. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +25 -0
  63. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  64. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts +1 -0
  65. package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
  66. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +145 -95
  67. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  68. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +19 -0
  69. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
  70. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +15 -1
  71. package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
  72. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +11 -1
  73. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
  74. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +31 -1
  75. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  76. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  77. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +17 -1
  78. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  79. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +31 -3
  80. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  81. package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts +9 -0
  82. package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts.map +1 -0
  83. package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts +12 -0
  84. package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts.map +1 -0
  85. package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts +66 -0
  86. package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts.map +1 -0
  87. package/build/types/web-planner-logic/src/logic/bootMark.d.ts +71 -0
  88. package/build/types/web-planner-logic/src/logic/bootMark.d.ts.map +1 -0
  89. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +4 -0
  90. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  91. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +13 -0
  92. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  93. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +33 -7
  94. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  95. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  96. package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts +4 -0
  97. package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
  98. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +2 -0
  99. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
  100. package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +2 -0
  101. package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
  102. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +6 -1
  103. package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
  104. package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts +2 -0
  105. package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts.map +1 -0
  106. package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts +2 -0
  107. package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts.map +1 -0
  108. package/build/types/web-planner-logic/src/test/partlistPosCountDecision.test.d.ts +2 -0
  109. package/build/types/web-planner-logic/src/test/partlistPosCountDecision.test.d.ts.map +1 -0
  110. package/package.json +4 -3
@@ -6,13 +6,14 @@ 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-633196ab.js');
9
+ var index = require('./index-9279cd6b.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
13
13
  require('axios');
14
14
  require('@crystaldesign/basket-model');
15
15
  require('@babel/runtime/helpers/typeof');
16
+ require('fast-xml-parser');
16
17
  require('@babel/runtime/helpers/possibleConstructorReturn');
17
18
  require('@babel/runtime/helpers/getPrototypeOf');
18
19
  require('@babel/runtime/helpers/inherits');
@@ -31,6 +32,8 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
31
32
  var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
32
33
  var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
33
34
 
35
+ function ownKeys(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; }
36
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
37
  var LOG = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
35
38
  var ShelfPlanner = /*#__PURE__*/function () {
36
39
  function ShelfPlanner(data, article) {
@@ -59,6 +62,15 @@ var ShelfPlanner = /*#__PURE__*/function () {
59
62
  //rule so the shelfplanner cells get disabled when the neighbour (AVL or AVR) is smaller. eg: Ben sulvag
60
63
  _defineProperty__default["default"](this, "disableCellsByElement", void 0);
61
64
  _defineProperty__default["default"](this, "montageOptions", []);
65
+ /**
66
+ * Debug trail of shelf-planner mutations (the shelf equivalent of the box
67
+ * planner's constructionDebugStack): one entry per visibility flip, grid
68
+ * disable/enable/recreate, accessory placement/deletion and cell-disabling
69
+ * run — so "why did my accessory disappear" is answerable from history.
70
+ * Append-only (capped), NOT reset per configure.
71
+ */
72
+ _defineProperty__default["default"](this, "shelfDebugStack", []);
73
+ _defineProperty__default["default"](this, "shelfDebugSeq", 0);
62
74
  //true until the shelfaccessoires saved in the basket were restored into the cells (see restoreShelfAccessoires in the DivaSetHandler).
63
75
  //until then no initAcc may be placed, they would occupy the cells of the saved accessoires
64
76
  _defineProperty__default["default"](this, "restorePending", void 0);
@@ -91,6 +103,14 @@ var ShelfPlanner = /*#__PURE__*/function () {
91
103
  * init dictionary of all the accessoires that which can be free in theory
92
104
  */
93
105
  return _createClass__default["default"](ShelfPlanner, [{
106
+ key: "logShelfDebug",
107
+ value: function logShelfDebug(entry) {
108
+ this.shelfDebugStack.push(_objectSpread({
109
+ seq: this.shelfDebugSeq++
110
+ }, entry));
111
+ if (this.shelfDebugStack.length > 500) this.shelfDebugStack.splice(0, this.shelfDebugStack.length - 500);
112
+ }
113
+ }, {
94
114
  key: "initFreeArticles",
95
115
  value: function initFreeArticles() {
96
116
  if (!this.data.ShelfPlanner) return;
@@ -132,32 +152,37 @@ var ShelfPlanner = /*#__PURE__*/function () {
132
152
  while (1) switch (_context.prev = _context.next) {
133
153
  case 0:
134
154
  if (!(this.isVisible != isVisible)) {
135
- _context.next = 12;
155
+ _context.next = 13;
136
156
  break;
137
157
  }
158
+ this.logShelfDebug({
159
+ phase: 'visibility',
160
+ action: isVisible ? 'plannerShown' : 'plannerHidden',
161
+ detail: isVisible ? undefined : 'showOnRule/visibility turned false — all placed accessories are deleted'
162
+ });
138
163
  if (!isVisible) {
139
- _context.next = 10;
164
+ _context.next = 11;
140
165
  break;
141
166
  }
142
167
  this.isVisible = isVisible;
143
168
  if (this.article.shelfPlanData) {
144
- _context.next = 8;
169
+ _context.next = 9;
145
170
  break;
146
171
  }
147
- _context.next = 6;
172
+ _context.next = 7;
148
173
  return this.onConfigChanged({});
149
- case 6:
150
- _context.next = 8;
174
+ case 7:
175
+ _context.next = 9;
151
176
  return this.initAccList();
152
- case 8:
153
- _context.next = 12;
177
+ case 9:
178
+ _context.next = 13;
154
179
  break;
155
- case 10:
156
- _context.next = 12;
180
+ case 11:
181
+ _context.next = 13;
157
182
  return this.deleteAllAcc();
158
- case 12:
159
- this.isVisible = isVisible;
160
183
  case 13:
184
+ this.isVisible = isVisible;
185
+ case 14:
161
186
  case "end":
162
187
  return _context.stop();
163
188
  }
@@ -176,7 +201,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
176
201
  key: "onConfigChanged",
177
202
  value: (function () {
178
203
  var _onConfigChanged = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(variantValues) {
179
- var newHeightSet, gridsTodos, i, _i, _i2, grid, grids, _i3, _grid$DisableCellsByM, _grid;
204
+ var newHeightSet, gridsTodos, i, _i, grid, _i2, _i3, _grid, grids, _i4, _grid2$DisableCellsBy, _grid2;
180
205
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
181
206
  while (1) switch (_context2.prev = _context2.next) {
182
207
  case 0:
@@ -185,7 +210,6 @@ var ShelfPlanner = /*#__PURE__*/function () {
185
210
  for (i = 0; i < this.grids.length; i++) {
186
211
  gridsTodos.push(this.grids[i].onConfigChanged());
187
212
  }
188
- //first delete all disables grids then init all the new ones
189
213
  _i = 0;
190
214
  case 4:
191
215
  if (!(_i < gridsTodos.length)) {
@@ -198,10 +222,19 @@ var ShelfPlanner = /*#__PURE__*/function () {
198
222
  }
199
223
  return _context2.abrupt("continue", 10);
200
224
  case 7:
201
- //remember the accessoires before they get deleted, so they can be placed again when the grid becomes active again
202
- this.stashAccessoiresOfGrid(_i);
203
- _context2.next = 10;
204
- return this.grids[_i].deleteAllAccOfGrid();
225
+ grid = this.grids[_i];
226
+ if (gridsTodos[_i].includes('disableGridRule')) this.logShelfDebug({
227
+ phase: 'configChanged',
228
+ action: grid.DisabledByRule ? 'gridDisabledByRule' : 'gridEnabledByRule',
229
+ gridIndex: grid.ShelfIndex,
230
+ detail: grid.ShowOnRule
231
+ });
232
+ if (gridsTodos[_i].includes('heightGridRule')) this.logShelfDebug({
233
+ phase: 'configChanged',
234
+ action: 'gridRecreated',
235
+ gridIndex: grid.ShelfIndex,
236
+ detail: 'HeightGridCellCountOnRule match changed — grid rebuilt (cell count / placeable accessories can change), its accessories are deleted'
237
+ });
205
238
  case 10:
206
239
  _i++;
207
240
  _context2.next = 4;
@@ -210,74 +243,95 @@ var ShelfPlanner = /*#__PURE__*/function () {
210
243
  _i2 = 0;
211
244
  case 14:
212
245
  if (!(_i2 < gridsTodos.length)) {
213
- _context2.next = 30;
246
+ _context2.next = 23;
214
247
  break;
215
248
  }
216
249
  if (gridsTodos[_i2].length) {
217
250
  _context2.next = 17;
218
251
  break;
219
252
  }
220
- return _context2.abrupt("continue", 27);
253
+ return _context2.abrupt("continue", 20);
221
254
  case 17:
222
- if (gridsTodos[_i2].includes('heightGridRule')) {
223
- this.creatNewGrid(_i2);
255
+ //remember the accessoires before they get deleted, so they can be placed again when the grid becomes active again
256
+ this.stashAccessoiresOfGrid(_i2);
257
+ _context2.next = 20;
258
+ return this.grids[_i2].deleteAllAccOfGrid();
259
+ case 20:
260
+ _i2++;
261
+ _context2.next = 14;
262
+ break;
263
+ case 23:
264
+ _i3 = 0;
265
+ case 24:
266
+ if (!(_i3 < gridsTodos.length)) {
267
+ _context2.next = 40;
268
+ break;
269
+ }
270
+ if (gridsTodos[_i3].length) {
271
+ _context2.next = 27;
272
+ break;
273
+ }
274
+ return _context2.abrupt("continue", 37);
275
+ case 27:
276
+ if (gridsTodos[_i3].includes('heightGridRule')) {
277
+ this.creatNewGrid(_i3);
224
278
  newHeightSet = true;
225
279
  }
226
280
  //read the grid after a possible recreate, the replaced one is not the grid that gets filled
227
- grid = this.grids[_i2];
228
- if (!((gridsTodos[_i2].includes('heightGridRule') || gridsTodos[_i2].includes('disableGridRule')) && !grid.DisabledByRule)) {
229
- _context2.next = 27;
281
+ _grid = this.grids[_i3];
282
+ if (!((gridsTodos[_i3].includes('heightGridRule') || gridsTodos[_i3].includes('disableGridRule')) && !_grid.DisabledByRule)) {
283
+ _context2.next = 37;
230
284
  break;
231
285
  }
232
286
  if (!this.restorePending) {
233
- _context2.next = 22;
287
+ _context2.next = 32;
234
288
  break;
235
289
  }
236
- return _context2.abrupt("continue", 27);
237
- case 22:
238
- _context2.next = 24;
239
- return this.placeStashedAccessoiresOfGrid(_i2);
240
- case 24:
290
+ return _context2.abrupt("continue", 37);
291
+ case 32:
292
+ _context2.next = 34;
293
+ return this.placeStashedAccessoiresOfGrid(_i3);
294
+ case 34:
241
295
  if (_context2.sent) {
242
- _context2.next = 27;
296
+ _context2.next = 37;
243
297
  break;
244
298
  }
245
- _context2.next = 27;
246
- return this.initAccList(_i2);
247
- case 27:
248
- _i2++;
249
- _context2.next = 14;
299
+ _context2.next = 37;
300
+ return this.initAccList(_i3);
301
+ case 37:
302
+ _i3++;
303
+ _context2.next = 24;
250
304
  break;
251
- case 30:
305
+ case 40:
252
306
  if (!(!newHeightSet && Object.keys(variantValues).length)) {
253
- _context2.next = 41;
307
+ _context2.next = 51;
254
308
  break;
255
309
  }
256
310
  grids = this.activeGrids;
257
- _i3 = 0;
258
- case 33:
259
- if (!(_i3 < grids.length)) {
260
- _context2.next = 41;
311
+ _i4 = 0;
312
+ case 43:
313
+ if (!(_i4 < grids.length)) {
314
+ _context2.next = 51;
261
315
  break;
262
316
  }
263
- _grid = grids[_i3];
264
- if (!((_grid$DisableCellsByM = _grid.DisableCellsByMeasures) !== null && _grid$DisableCellsByM !== void 0 && _grid$DisableCellsByM.options.find(function (o) {
317
+ _grid2 = grids[_i4];
318
+ if (!((_grid2$DisableCellsBy = _grid2.DisableCellsByMeasures) !== null && _grid2$DisableCellsBy !== void 0 && _grid2$DisableCellsBy.options.find(function (o) {
265
319
  return Object.keys(variantValues).includes('OPT' + o.opt);
266
- }) || !!_grid.disableCellsByRules)) {
267
- _context2.next = 38;
320
+ }) || !!_grid2.disableCellsByRules)) {
321
+ _context2.next = 48;
268
322
  break;
269
323
  }
270
324
  newHeightSet = true;
271
- return _context2.abrupt("break", 41);
272
- case 38:
273
- _i3++;
274
- _context2.next = 33;
325
+ return _context2.abrupt("break", 51);
326
+ case 48:
327
+ _i4++;
328
+ _context2.next = 43;
275
329
  break;
276
- case 41:
330
+ case 51:
277
331
  if (newHeightSet) {
278
332
  this.updateDisabledCells();
279
333
  }
280
- case 42:
334
+ case 52:
281
335
  case "end":
282
336
  return _context2.stop();
283
337
  }
@@ -524,7 +578,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
524
578
  i = 0;
525
579
  case 2:
526
580
  if (!(i < grids.length)) {
527
- _context6.next = 36;
581
+ _context6.next = 37;
528
582
  break;
529
583
  }
530
584
  grid = grids[i];
@@ -532,72 +586,80 @@ var ShelfPlanner = /*#__PURE__*/function () {
532
586
  _context6.next = 6;
533
587
  break;
534
588
  }
535
- return _context6.abrupt("continue", 33);
589
+ return _context6.abrupt("continue", 34);
536
590
  case 6:
537
591
  if (grid.InitAccArr) {
538
592
  _context6.next = 8;
539
593
  break;
540
594
  }
541
- return _context6.abrupt("continue", 33);
595
+ return _context6.abrupt("continue", 34);
542
596
  case 8:
543
597
  j = 0;
544
598
  case 9:
545
599
  if (!(j < grid.InitAccArr.length)) {
546
- _context6.next = 33;
600
+ _context6.next = 34;
547
601
  break;
548
602
  }
549
603
  initAcc = grid.InitAccArr[j];
550
604
  k = 0;
551
605
  case 12:
552
606
  if (!(k < initAcc.initRH.length)) {
553
- _context6.next = 30;
607
+ _context6.next = 31;
554
608
  break;
555
609
  }
556
610
  grid.ActAccessoire = initAcc.Codex;
557
- _context6.next = 16;
611
+ this.logShelfDebug({
612
+ phase: 'initAccessories',
613
+ action: 'initAccessoryRequested',
614
+ gridIndex: grid.ShelfIndex,
615
+ cellIndex: initAcc.initRH[k],
616
+ articleCodex: initAcc.Codex,
617
+ detail: 'from InitAccArr — a missing matching accessoryPlaced entry right after means the init placement failed'
618
+ });
619
+ _context6.next = 17;
558
620
  return index.setHandlerInstance.addAccessorieOnShelfPlanner(this.article.set, grid.ShelfIndex, initAcc.initRH[k], grid.basketId, {
559
621
  noMove: initAcc.noMove,
560
622
  noDelete: initAcc.noDelete,
561
623
  byInit: true
562
624
  });
563
- case 16:
625
+ case 17:
564
626
  if (!initAcc.replaceFromParent) {
565
- _context6.next = 26;
627
+ _context6.next = 27;
566
628
  break;
567
629
  }
568
630
  shelfId = this.getShelfParentShelfId();
569
631
  if (!(shelfId && (_this$article$accesso = this.article.accessoireParentArticle) !== null && _this$article$accesso !== void 0 && _this$article$accesso.shelfPlanner)) {
570
- _context6.next = 26;
632
+ _context6.next = 27;
571
633
  break;
572
634
  }
573
635
  accessoires = this.article.accessoireParentArticle.shelfPlanner.getAccessorireByCodex(shelfId, initAcc.Codex);
574
636
  if (!(accessoires && accessoires.length > 0)) {
575
- _context6.next = 26;
637
+ _context6.next = 27;
576
638
  break;
577
639
  }
578
640
  accessoireToDelete = accessoires[0];
579
641
  rh = (_accessoireToDelete$s = accessoireToDelete.shelfPlanner) === null || _accessoireToDelete$s === void 0 ? void 0 : _accessoireToDelete$s.getRHOnParentArticle();
580
642
  if (!(rh !== undefined && accessoireToDelete.relatedToShelfGrid !== undefined)) {
581
- _context6.next = 26;
643
+ _context6.next = 27;
582
644
  break;
583
645
  }
584
- _context6.next = 26;
646
+ _context6.next = 27;
585
647
  return index.setHandlerInstance.deleteAccessorieOnShelfPlanner(this.article.set, accessoireToDelete.relatedToShelfGrid, rh, this.article.accessoireParentArticle.basketId);
586
- case 26:
587
- grid.ActAccessoire = undefined;
588
648
  case 27:
649
+ grid.ActAccessoire = undefined;
650
+ case 28:
589
651
  k++;
590
652
  _context6.next = 12;
591
653
  break;
592
- case 30:
654
+ case 31:
593
655
  j++;
594
656
  _context6.next = 9;
595
657
  break;
596
- case 33:
658
+ case 34:
597
659
  i++;
598
660
  _context6.next = 2;
599
661
  break;
600
- case 36:
662
+ case 37:
601
663
  case "end":
602
664
  return _context6.stop();
603
665
  }
@@ -633,7 +695,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
633
695
  key: "triggerVisibility",
634
696
  value: function () {
635
697
  var _triggerVisibility = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7(gridGroup) {
636
- var toCleanOptions, toUpdateOptions, i, grid, _i4, option, visitOptionState;
698
+ var toCleanOptions, toUpdateOptions, i, grid, _i5, option, visitOptionState;
637
699
  return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
638
700
  while (1) switch (_context7.prev = _context7.next) {
639
701
  case 0:
@@ -669,13 +731,13 @@ var ShelfPlanner = /*#__PURE__*/function () {
669
731
  _context7.next = 3;
670
732
  break;
671
733
  case 13:
672
- _i4 = 0;
734
+ _i5 = 0;
673
735
  case 14:
674
- if (!(_i4 < [].concat(toUpdateOptions, toCleanOptions).length)) {
736
+ if (!(_i5 < [].concat(toUpdateOptions, toCleanOptions).length)) {
675
737
  _context7.next = 23;
676
738
  break;
677
739
  }
678
- option = [].concat(toUpdateOptions, toCleanOptions)[_i4];
740
+ option = [].concat(toUpdateOptions, toCleanOptions)[_i5];
679
741
  visitOptionState = this.article.getArticleOptionState((!this.article.CatalogData.isIDMFormat ? 'OPT' : '') + option);
680
742
  if (!visitOptionState) {
681
743
  _context7.next = 20;
@@ -684,7 +746,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
684
746
  _context7.next = 20;
685
747
  return index.articleHandlerInstance.updateOption(this.article, visitOptionState.optionCodex, toUpdateOptions.includes(option) ? 'OPVMIT' : 'OPVOHNE');
686
748
  case 20:
687
- _i4++;
749
+ _i5++;
688
750
  _context7.next = 14;
689
751
  break;
690
752
  case 23:
@@ -829,7 +891,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
829
891
  key: "deleteAccessoireOfCellInGrid",
830
892
  value: (function () {
831
893
  var _deleteAccessoireOfCellInGrid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee9(gridIndex, cellIndex) {
832
- var grid, inUse, deleteIndex, onBoardCell, accessoire;
894
+ var grid, inUse, deleteIndex, onBoardCell, accessoire, deleted;
833
895
  return _regeneratorRuntime__default["default"].wrap(function _callee9$(_context9) {
834
896
  while (1) switch (_context9.prev = _context9.next) {
835
897
  case 0:
@@ -856,8 +918,17 @@ var ShelfPlanner = /*#__PURE__*/function () {
856
918
  _context9.next = 10;
857
919
  return grid.deleteAccessoireInCells(deleteIndex);
858
920
  case 10:
859
- return _context9.abrupt("return", _context9.sent);
860
- case 11:
921
+ deleted = _context9.sent;
922
+ if (deleted) this.logShelfDebug({
923
+ phase: 'placement',
924
+ action: 'accessoryDeleted',
925
+ gridIndex: gridIndex,
926
+ cellIndex: deleteIndex,
927
+ articleCodex: deleted.articleCodex,
928
+ articleName: deleted.name
929
+ });
930
+ return _context9.abrupt("return", deleted);
931
+ case 13:
861
932
  case "end":
862
933
  return _context9.stop();
863
934
  }
@@ -899,7 +970,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
899
970
  key: "handleDeleteTakePlaceOnOtherGrids",
900
971
  value: (function () {
901
972
  var _handleDeleteTakePlaceOnOtherGrids = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee10(gridIndex, cellIndex, accessoire) {
902
- var i, _cell$Article, cell, _i5, _cell$Article2, _cell, _i6;
973
+ var i, _cell$Article, cell, _i6, _cell$Article2, _cell, _i7;
903
974
  return _regeneratorRuntime__default["default"].wrap(function _callee10$(_context10) {
904
975
  while (1) switch (_context10.prev = _context10.next) {
905
976
  case 0:
@@ -918,8 +989,8 @@ var ShelfPlanner = /*#__PURE__*/function () {
918
989
  }
919
990
  }
920
991
  if (accessoire.shelfHeightBelow) {
921
- for (_i5 = 0; _i5 < accessoire.shelfHeightBelow; _i5++) {
922
- _cell = this.grids[gridIndex].Cells[cellIndex - (_i5 + 1)];
992
+ for (_i6 = 0; _i6 < accessoire.shelfHeightBelow; _i6++) {
993
+ _cell = this.grids[gridIndex].Cells[cellIndex - (_i6 + 1)];
923
994
  if ((_cell === null || _cell === void 0 || (_cell$Article2 = _cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId) === accessoire.basketId) {
924
995
  _cell.ClearInUse();
925
996
  }
@@ -929,22 +1000,22 @@ var ShelfPlanner = /*#__PURE__*/function () {
929
1000
  _context10.next = 14;
930
1001
  break;
931
1002
  }
932
- _i6 = 0;
1003
+ _i7 = 0;
933
1004
  case 6:
934
- if (!(_i6 < this.grids.length)) {
1005
+ if (!(_i7 < this.grids.length)) {
935
1006
  _context10.next = 14;
936
1007
  break;
937
1008
  }
938
- if (!(_i6 === gridIndex)) {
1009
+ if (!(_i7 === gridIndex)) {
939
1010
  _context10.next = 9;
940
1011
  break;
941
1012
  }
942
1013
  return _context10.abrupt("continue", 11);
943
1014
  case 9:
944
1015
  _context10.next = 11;
945
- return this.grids[_i6].deleteAccessoireInCells(cellIndex);
1016
+ return this.grids[_i7].deleteAccessoireInCells(cellIndex);
946
1017
  case 11:
947
- _i6++;
1018
+ _i7++;
948
1019
  _context10.next = 6;
949
1020
  break;
950
1021
  case 14:
@@ -978,25 +1049,41 @@ var ShelfPlanner = /*#__PURE__*/function () {
978
1049
  i = 0;
979
1050
  case 2:
980
1051
  if (!(i < grids.length)) {
981
- _context11.next = 11;
1052
+ _context11.next = 13;
982
1053
  break;
983
1054
  }
984
1055
  grid = grids[i];
985
1056
  if (!grid.DisabledByRule) {
986
- _context11.next = 6;
1057
+ _context11.next = 7;
987
1058
  break;
988
1059
  }
989
- return _context11.abrupt("continue", 8);
990
- case 6:
991
- _context11.next = 8;
1060
+ this.logShelfDebug({
1061
+ phase: 'placement',
1062
+ action: 'placementSkippedGridDisabled',
1063
+ gridIndex: grid.ShelfIndex,
1064
+ cellIndex: cellIndex,
1065
+ articleCodex: accessoire.articleCodex
1066
+ });
1067
+ return _context11.abrupt("continue", 10);
1068
+ case 7:
1069
+ this.logShelfDebug({
1070
+ phase: 'placement',
1071
+ action: 'accessoryPlaced',
1072
+ gridIndex: grid.ShelfIndex,
1073
+ cellIndex: cellIndex,
1074
+ articleCodex: accessoire.articleCodex,
1075
+ articleName: accessoire.name,
1076
+ detail: type + (grid.ShelfIndex !== gridIndex ? ' (placeholder via TakePlaceOnOtherGrids)' : '')
1077
+ });
1078
+ _context11.next = 10;
992
1079
  return grids[i].addAccessoireInCells(cellIndex, accessoire, type, grid.ShelfIndex !== gridIndex ? true : params === null || params === void 0 ? void 0 : params.noMove, grid.ShelfIndex !== gridIndex ? true : params === null || params === void 0 ? void 0 : params.noDelete, grid.ShelfIndex !== gridIndex ? true : undefined);
993
- case 8:
1080
+ case 10:
994
1081
  i++;
995
1082
  _context11.next = 2;
996
1083
  break;
997
- case 11:
1084
+ case 13:
998
1085
  this.checkForFreeAccessoire(accessoire);
999
- case 12:
1086
+ case 14:
1000
1087
  case "end":
1001
1088
  return _context11.stop();
1002
1089
  }
@@ -1225,6 +1312,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
1225
1312
  depth: catalogArticle.depth,
1226
1313
  cellSize: catalogArticle.shelfHeight,
1227
1314
  metaData: catalogArticle.metaDataView,
1315
+ accessoireFamily: catalogArticle.accessoireFamily,
1228
1316
  contentItemId: catalogArticle.contentItemId,
1229
1317
  groupContentItemId: catalogArticle.groupContentItemId,
1230
1318
  partlistcodexes: catalogArticle.possiblePartlistCodexes
@@ -1309,68 +1397,93 @@ var ShelfPlanner = /*#__PURE__*/function () {
1309
1397
  key: "disableCellsByDockedShelfs",
1310
1398
  value: (function () {
1311
1399
  var _disableCellsByDockedShelfs = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee12(count) {
1312
- var grids, i, grid, gridCount, toDisableCells, useCount, j, _j, cell, _j2;
1313
- return _regeneratorRuntime__default["default"].wrap(function _callee12$(_context12) {
1314
- while (1) switch (_context12.prev = _context12.next) {
1400
+ var _this2 = this;
1401
+ var grids, _loop2, i;
1402
+ return _regeneratorRuntime__default["default"].wrap(function _callee12$(_context13) {
1403
+ while (1) switch (_context13.prev = _context13.next) {
1315
1404
  case 0:
1316
1405
  grids = this.activeGrids;
1406
+ _loop2 = /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _loop2() {
1407
+ var grid, gridCount, toDisableCells, useCount, j, newlyDisabled, newlyEnabled, _j, cell, _j2;
1408
+ return _regeneratorRuntime__default["default"].wrap(function _loop2$(_context12) {
1409
+ while (1) switch (_context12.prev = _context12.next) {
1410
+ case 0:
1411
+ grid = grids[i];
1412
+ gridCount = grid.getCellCount();
1413
+ toDisableCells = grid.getDisabledCellsByRule();
1414
+ useCount = count == undefined || count > gridCount ? gridCount : count;
1415
+ for (j = useCount; j < grid.Cells.length; j++) {
1416
+ toDisableCells.push(j);
1417
+ }
1418
+ newlyDisabled = toDisableCells.filter(function (idx) {
1419
+ return grid.Cells[idx] && !grid.Cells[idx].IsDisabled;
1420
+ });
1421
+ newlyEnabled = grid.Cells.filter(function (cell, j) {
1422
+ return cell.IsDisabled && !toDisableCells.includes(j);
1423
+ }).length;
1424
+ if (newlyDisabled.length || newlyEnabled) _this2.logShelfDebug({
1425
+ phase: 'docking',
1426
+ action: 'disabledCellsUpdated',
1427
+ gridIndex: grid.ShelfIndex,
1428
+ detail: "newlyDisabled=[".concat(newlyDisabled.slice(0, 30).join(','), "] reEnabled=").concat(newlyEnabled, " ") + "(sources: DisableCellsByRules/measures=".concat(grid.getDisabledCellsByRule().length, ", beyond cellCount/docking cap=").concat(grid.Cells.length - useCount, "); ") + 'an occupied cell that gets disabled deletes its accessory'
1429
+ });
1430
+ _j = 0;
1431
+ case 9:
1432
+ if (!(_j < toDisableCells.length)) {
1433
+ _context12.next = 18;
1434
+ break;
1435
+ }
1436
+ cell = grid.Cells[toDisableCells[_j]];
1437
+ if (!(cell.InUse == toDisableCells[_j])) {
1438
+ _context12.next = 14;
1439
+ break;
1440
+ }
1441
+ _context12.next = 14;
1442
+ return index.setHandlerInstance.deleteAccessorieOnShelfPlanner(_this2.article.set, grid.ShelfIndex, cell.InUse, grid.basketId);
1443
+ case 14:
1444
+ cell.IsDisabled = true;
1445
+ case 15:
1446
+ _j++;
1447
+ _context12.next = 9;
1448
+ break;
1449
+ case 18:
1450
+ _j2 = 0;
1451
+ case 19:
1452
+ if (!(_j2 < grid.Cells.length)) {
1453
+ _context12.next = 26;
1454
+ break;
1455
+ }
1456
+ if (!toDisableCells.includes(_j2)) {
1457
+ _context12.next = 22;
1458
+ break;
1459
+ }
1460
+ return _context12.abrupt("continue", 23);
1461
+ case 22:
1462
+ grid.Cells[_j2].IsDisabled = false;
1463
+ case 23:
1464
+ _j2++;
1465
+ _context12.next = 19;
1466
+ break;
1467
+ case 26:
1468
+ case "end":
1469
+ return _context12.stop();
1470
+ }
1471
+ }, _loop2);
1472
+ });
1317
1473
  i = 0;
1318
- case 2:
1474
+ case 3:
1319
1475
  if (!(i < grids.length)) {
1320
- _context12.next = 29;
1321
- break;
1322
- }
1323
- grid = grids[i];
1324
- gridCount = grid.getCellCount();
1325
- toDisableCells = grid.getDisabledCellsByRule();
1326
- useCount = count == undefined || count > gridCount ? gridCount : count;
1327
- for (j = useCount; j < grid.Cells.length; j++) {
1328
- toDisableCells.push(j);
1329
- }
1330
- _j = 0;
1331
- case 9:
1332
- if (!(_j < toDisableCells.length)) {
1333
- _context12.next = 18;
1334
- break;
1335
- }
1336
- cell = grid.Cells[toDisableCells[_j]];
1337
- if (!(cell.InUse == toDisableCells[_j])) {
1338
- _context12.next = 14;
1339
- break;
1340
- }
1341
- _context12.next = 14;
1342
- return index.setHandlerInstance.deleteAccessorieOnShelfPlanner(this.article.set, grid.ShelfIndex, cell.InUse, grid.basketId);
1343
- case 14:
1344
- cell.IsDisabled = true;
1345
- case 15:
1346
- _j++;
1347
- _context12.next = 9;
1348
- break;
1349
- case 18:
1350
- _j2 = 0;
1351
- case 19:
1352
- if (!(_j2 < grid.Cells.length)) {
1353
- _context12.next = 26;
1476
+ _context13.next = 8;
1354
1477
  break;
1355
1478
  }
1356
- if (!toDisableCells.includes(_j2)) {
1357
- _context12.next = 22;
1358
- break;
1359
- }
1360
- return _context12.abrupt("continue", 23);
1361
- case 22:
1362
- grid.Cells[_j2].IsDisabled = false;
1363
- case 23:
1364
- _j2++;
1365
- _context12.next = 19;
1366
- break;
1367
- case 26:
1479
+ return _context13.delegateYield(_loop2(), "t0", 5);
1480
+ case 5:
1368
1481
  i++;
1369
- _context12.next = 2;
1482
+ _context13.next = 3;
1370
1483
  break;
1371
- case 29:
1484
+ case 8:
1372
1485
  case "end":
1373
- return _context12.stop();
1486
+ return _context13.stop();
1374
1487
  }
1375
1488
  }, _callee12, this);
1376
1489
  }));