@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
@@ -4,13 +4,14 @@ 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 { G as Grid, a as articleHandlerInstance, b as setHandlerInstance } from './index-6c8de812.js';
7
+ import { G as Grid, a as articleHandlerInstance, b as setHandlerInstance } from './index-e11ba779.js';
8
8
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
11
11
  import 'axios';
12
12
  import '@crystaldesign/basket-model';
13
13
  import '@babel/runtime/helpers/typeof';
14
+ import 'fast-xml-parser';
14
15
  import '@babel/runtime/helpers/possibleConstructorReturn';
15
16
  import '@babel/runtime/helpers/getPrototypeOf';
16
17
  import '@babel/runtime/helpers/inherits';
@@ -19,6 +20,8 @@ import '@crystaldesign/basket-handler';
19
20
  import 'socket.io-client';
20
21
  import '@crystaldesign/planner-2d-core';
21
22
 
23
+ 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; }
24
+ 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(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; }
22
25
  var LOG = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
23
26
  var ShelfPlanner = /*#__PURE__*/function () {
24
27
  function ShelfPlanner(data, article) {
@@ -47,6 +50,15 @@ var ShelfPlanner = /*#__PURE__*/function () {
47
50
  //rule so the shelfplanner cells get disabled when the neighbour (AVL or AVR) is smaller. eg: Ben sulvag
48
51
  _defineProperty(this, "disableCellsByElement", void 0);
49
52
  _defineProperty(this, "montageOptions", []);
53
+ /**
54
+ * Debug trail of shelf-planner mutations (the shelf equivalent of the box
55
+ * planner's constructionDebugStack): one entry per visibility flip, grid
56
+ * disable/enable/recreate, accessory placement/deletion and cell-disabling
57
+ * run — so "why did my accessory disappear" is answerable from history.
58
+ * Append-only (capped), NOT reset per configure.
59
+ */
60
+ _defineProperty(this, "shelfDebugStack", []);
61
+ _defineProperty(this, "shelfDebugSeq", 0);
50
62
  //true until the shelfaccessoires saved in the basket were restored into the cells (see restoreShelfAccessoires in the DivaSetHandler).
51
63
  //until then no initAcc may be placed, they would occupy the cells of the saved accessoires
52
64
  _defineProperty(this, "restorePending", void 0);
@@ -79,6 +91,14 @@ var ShelfPlanner = /*#__PURE__*/function () {
79
91
  * init dictionary of all the accessoires that which can be free in theory
80
92
  */
81
93
  return _createClass(ShelfPlanner, [{
94
+ key: "logShelfDebug",
95
+ value: function logShelfDebug(entry) {
96
+ this.shelfDebugStack.push(_objectSpread({
97
+ seq: this.shelfDebugSeq++
98
+ }, entry));
99
+ if (this.shelfDebugStack.length > 500) this.shelfDebugStack.splice(0, this.shelfDebugStack.length - 500);
100
+ }
101
+ }, {
82
102
  key: "initFreeArticles",
83
103
  value: function initFreeArticles() {
84
104
  if (!this.data.ShelfPlanner) return;
@@ -120,32 +140,37 @@ var ShelfPlanner = /*#__PURE__*/function () {
120
140
  while (1) switch (_context.prev = _context.next) {
121
141
  case 0:
122
142
  if (!(this.isVisible != isVisible)) {
123
- _context.next = 12;
143
+ _context.next = 13;
124
144
  break;
125
145
  }
146
+ this.logShelfDebug({
147
+ phase: 'visibility',
148
+ action: isVisible ? 'plannerShown' : 'plannerHidden',
149
+ detail: isVisible ? undefined : 'showOnRule/visibility turned false — all placed accessories are deleted'
150
+ });
126
151
  if (!isVisible) {
127
- _context.next = 10;
152
+ _context.next = 11;
128
153
  break;
129
154
  }
130
155
  this.isVisible = isVisible;
131
156
  if (this.article.shelfPlanData) {
132
- _context.next = 8;
157
+ _context.next = 9;
133
158
  break;
134
159
  }
135
- _context.next = 6;
160
+ _context.next = 7;
136
161
  return this.onConfigChanged({});
137
- case 6:
138
- _context.next = 8;
162
+ case 7:
163
+ _context.next = 9;
139
164
  return this.initAccList();
140
- case 8:
141
- _context.next = 12;
165
+ case 9:
166
+ _context.next = 13;
142
167
  break;
143
- case 10:
144
- _context.next = 12;
168
+ case 11:
169
+ _context.next = 13;
145
170
  return this.deleteAllAcc();
146
- case 12:
147
- this.isVisible = isVisible;
148
171
  case 13:
172
+ this.isVisible = isVisible;
173
+ case 14:
149
174
  case "end":
150
175
  return _context.stop();
151
176
  }
@@ -164,7 +189,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
164
189
  key: "onConfigChanged",
165
190
  value: (function () {
166
191
  var _onConfigChanged = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(variantValues) {
167
- var newHeightSet, gridsTodos, i, _i, _i2, grid, grids, _i3, _grid$DisableCellsByM, _grid;
192
+ var newHeightSet, gridsTodos, i, _i, grid, _i2, _i3, _grid, grids, _i4, _grid2$DisableCellsBy, _grid2;
168
193
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
169
194
  while (1) switch (_context2.prev = _context2.next) {
170
195
  case 0:
@@ -173,7 +198,6 @@ var ShelfPlanner = /*#__PURE__*/function () {
173
198
  for (i = 0; i < this.grids.length; i++) {
174
199
  gridsTodos.push(this.grids[i].onConfigChanged());
175
200
  }
176
- //first delete all disables grids then init all the new ones
177
201
  _i = 0;
178
202
  case 4:
179
203
  if (!(_i < gridsTodos.length)) {
@@ -186,10 +210,19 @@ var ShelfPlanner = /*#__PURE__*/function () {
186
210
  }
187
211
  return _context2.abrupt("continue", 10);
188
212
  case 7:
189
- //remember the accessoires before they get deleted, so they can be placed again when the grid becomes active again
190
- this.stashAccessoiresOfGrid(_i);
191
- _context2.next = 10;
192
- return this.grids[_i].deleteAllAccOfGrid();
213
+ grid = this.grids[_i];
214
+ if (gridsTodos[_i].includes('disableGridRule')) this.logShelfDebug({
215
+ phase: 'configChanged',
216
+ action: grid.DisabledByRule ? 'gridDisabledByRule' : 'gridEnabledByRule',
217
+ gridIndex: grid.ShelfIndex,
218
+ detail: grid.ShowOnRule
219
+ });
220
+ if (gridsTodos[_i].includes('heightGridRule')) this.logShelfDebug({
221
+ phase: 'configChanged',
222
+ action: 'gridRecreated',
223
+ gridIndex: grid.ShelfIndex,
224
+ detail: 'HeightGridCellCountOnRule match changed — grid rebuilt (cell count / placeable accessories can change), its accessories are deleted'
225
+ });
193
226
  case 10:
194
227
  _i++;
195
228
  _context2.next = 4;
@@ -198,74 +231,95 @@ var ShelfPlanner = /*#__PURE__*/function () {
198
231
  _i2 = 0;
199
232
  case 14:
200
233
  if (!(_i2 < gridsTodos.length)) {
201
- _context2.next = 30;
234
+ _context2.next = 23;
202
235
  break;
203
236
  }
204
237
  if (gridsTodos[_i2].length) {
205
238
  _context2.next = 17;
206
239
  break;
207
240
  }
208
- return _context2.abrupt("continue", 27);
241
+ return _context2.abrupt("continue", 20);
209
242
  case 17:
210
- if (gridsTodos[_i2].includes('heightGridRule')) {
211
- this.creatNewGrid(_i2);
243
+ //remember the accessoires before they get deleted, so they can be placed again when the grid becomes active again
244
+ this.stashAccessoiresOfGrid(_i2);
245
+ _context2.next = 20;
246
+ return this.grids[_i2].deleteAllAccOfGrid();
247
+ case 20:
248
+ _i2++;
249
+ _context2.next = 14;
250
+ break;
251
+ case 23:
252
+ _i3 = 0;
253
+ case 24:
254
+ if (!(_i3 < gridsTodos.length)) {
255
+ _context2.next = 40;
256
+ break;
257
+ }
258
+ if (gridsTodos[_i3].length) {
259
+ _context2.next = 27;
260
+ break;
261
+ }
262
+ return _context2.abrupt("continue", 37);
263
+ case 27:
264
+ if (gridsTodos[_i3].includes('heightGridRule')) {
265
+ this.creatNewGrid(_i3);
212
266
  newHeightSet = true;
213
267
  }
214
268
  //read the grid after a possible recreate, the replaced one is not the grid that gets filled
215
- grid = this.grids[_i2];
216
- if (!((gridsTodos[_i2].includes('heightGridRule') || gridsTodos[_i2].includes('disableGridRule')) && !grid.DisabledByRule)) {
217
- _context2.next = 27;
269
+ _grid = this.grids[_i3];
270
+ if (!((gridsTodos[_i3].includes('heightGridRule') || gridsTodos[_i3].includes('disableGridRule')) && !_grid.DisabledByRule)) {
271
+ _context2.next = 37;
218
272
  break;
219
273
  }
220
274
  if (!this.restorePending) {
221
- _context2.next = 22;
275
+ _context2.next = 32;
222
276
  break;
223
277
  }
224
- return _context2.abrupt("continue", 27);
225
- case 22:
226
- _context2.next = 24;
227
- return this.placeStashedAccessoiresOfGrid(_i2);
228
- case 24:
278
+ return _context2.abrupt("continue", 37);
279
+ case 32:
280
+ _context2.next = 34;
281
+ return this.placeStashedAccessoiresOfGrid(_i3);
282
+ case 34:
229
283
  if (_context2.sent) {
230
- _context2.next = 27;
284
+ _context2.next = 37;
231
285
  break;
232
286
  }
233
- _context2.next = 27;
234
- return this.initAccList(_i2);
235
- case 27:
236
- _i2++;
237
- _context2.next = 14;
287
+ _context2.next = 37;
288
+ return this.initAccList(_i3);
289
+ case 37:
290
+ _i3++;
291
+ _context2.next = 24;
238
292
  break;
239
- case 30:
293
+ case 40:
240
294
  if (!(!newHeightSet && Object.keys(variantValues).length)) {
241
- _context2.next = 41;
295
+ _context2.next = 51;
242
296
  break;
243
297
  }
244
298
  grids = this.activeGrids;
245
- _i3 = 0;
246
- case 33:
247
- if (!(_i3 < grids.length)) {
248
- _context2.next = 41;
299
+ _i4 = 0;
300
+ case 43:
301
+ if (!(_i4 < grids.length)) {
302
+ _context2.next = 51;
249
303
  break;
250
304
  }
251
- _grid = grids[_i3];
252
- if (!((_grid$DisableCellsByM = _grid.DisableCellsByMeasures) !== null && _grid$DisableCellsByM !== void 0 && _grid$DisableCellsByM.options.find(function (o) {
305
+ _grid2 = grids[_i4];
306
+ if (!((_grid2$DisableCellsBy = _grid2.DisableCellsByMeasures) !== null && _grid2$DisableCellsBy !== void 0 && _grid2$DisableCellsBy.options.find(function (o) {
253
307
  return Object.keys(variantValues).includes('OPT' + o.opt);
254
- }) || !!_grid.disableCellsByRules)) {
255
- _context2.next = 38;
308
+ }) || !!_grid2.disableCellsByRules)) {
309
+ _context2.next = 48;
256
310
  break;
257
311
  }
258
312
  newHeightSet = true;
259
- return _context2.abrupt("break", 41);
260
- case 38:
261
- _i3++;
262
- _context2.next = 33;
313
+ return _context2.abrupt("break", 51);
314
+ case 48:
315
+ _i4++;
316
+ _context2.next = 43;
263
317
  break;
264
- case 41:
318
+ case 51:
265
319
  if (newHeightSet) {
266
320
  this.updateDisabledCells();
267
321
  }
268
- case 42:
322
+ case 52:
269
323
  case "end":
270
324
  return _context2.stop();
271
325
  }
@@ -512,7 +566,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
512
566
  i = 0;
513
567
  case 2:
514
568
  if (!(i < grids.length)) {
515
- _context6.next = 36;
569
+ _context6.next = 37;
516
570
  break;
517
571
  }
518
572
  grid = grids[i];
@@ -520,72 +574,80 @@ var ShelfPlanner = /*#__PURE__*/function () {
520
574
  _context6.next = 6;
521
575
  break;
522
576
  }
523
- return _context6.abrupt("continue", 33);
577
+ return _context6.abrupt("continue", 34);
524
578
  case 6:
525
579
  if (grid.InitAccArr) {
526
580
  _context6.next = 8;
527
581
  break;
528
582
  }
529
- return _context6.abrupt("continue", 33);
583
+ return _context6.abrupt("continue", 34);
530
584
  case 8:
531
585
  j = 0;
532
586
  case 9:
533
587
  if (!(j < grid.InitAccArr.length)) {
534
- _context6.next = 33;
588
+ _context6.next = 34;
535
589
  break;
536
590
  }
537
591
  initAcc = grid.InitAccArr[j];
538
592
  k = 0;
539
593
  case 12:
540
594
  if (!(k < initAcc.initRH.length)) {
541
- _context6.next = 30;
595
+ _context6.next = 31;
542
596
  break;
543
597
  }
544
598
  grid.ActAccessoire = initAcc.Codex;
545
- _context6.next = 16;
599
+ this.logShelfDebug({
600
+ phase: 'initAccessories',
601
+ action: 'initAccessoryRequested',
602
+ gridIndex: grid.ShelfIndex,
603
+ cellIndex: initAcc.initRH[k],
604
+ articleCodex: initAcc.Codex,
605
+ detail: 'from InitAccArr — a missing matching accessoryPlaced entry right after means the init placement failed'
606
+ });
607
+ _context6.next = 17;
546
608
  return setHandlerInstance.addAccessorieOnShelfPlanner(this.article.set, grid.ShelfIndex, initAcc.initRH[k], grid.basketId, {
547
609
  noMove: initAcc.noMove,
548
610
  noDelete: initAcc.noDelete,
549
611
  byInit: true
550
612
  });
551
- case 16:
613
+ case 17:
552
614
  if (!initAcc.replaceFromParent) {
553
- _context6.next = 26;
615
+ _context6.next = 27;
554
616
  break;
555
617
  }
556
618
  shelfId = this.getShelfParentShelfId();
557
619
  if (!(shelfId && (_this$article$accesso = this.article.accessoireParentArticle) !== null && _this$article$accesso !== void 0 && _this$article$accesso.shelfPlanner)) {
558
- _context6.next = 26;
620
+ _context6.next = 27;
559
621
  break;
560
622
  }
561
623
  accessoires = this.article.accessoireParentArticle.shelfPlanner.getAccessorireByCodex(shelfId, initAcc.Codex);
562
624
  if (!(accessoires && accessoires.length > 0)) {
563
- _context6.next = 26;
625
+ _context6.next = 27;
564
626
  break;
565
627
  }
566
628
  accessoireToDelete = accessoires[0];
567
629
  rh = (_accessoireToDelete$s = accessoireToDelete.shelfPlanner) === null || _accessoireToDelete$s === void 0 ? void 0 : _accessoireToDelete$s.getRHOnParentArticle();
568
630
  if (!(rh !== undefined && accessoireToDelete.relatedToShelfGrid !== undefined)) {
569
- _context6.next = 26;
631
+ _context6.next = 27;
570
632
  break;
571
633
  }
572
- _context6.next = 26;
634
+ _context6.next = 27;
573
635
  return setHandlerInstance.deleteAccessorieOnShelfPlanner(this.article.set, accessoireToDelete.relatedToShelfGrid, rh, this.article.accessoireParentArticle.basketId);
574
- case 26:
575
- grid.ActAccessoire = undefined;
576
636
  case 27:
637
+ grid.ActAccessoire = undefined;
638
+ case 28:
577
639
  k++;
578
640
  _context6.next = 12;
579
641
  break;
580
- case 30:
642
+ case 31:
581
643
  j++;
582
644
  _context6.next = 9;
583
645
  break;
584
- case 33:
646
+ case 34:
585
647
  i++;
586
648
  _context6.next = 2;
587
649
  break;
588
- case 36:
650
+ case 37:
589
651
  case "end":
590
652
  return _context6.stop();
591
653
  }
@@ -621,7 +683,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
621
683
  key: "triggerVisibility",
622
684
  value: function () {
623
685
  var _triggerVisibility = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(gridGroup) {
624
- var toCleanOptions, toUpdateOptions, i, grid, _i4, option, visitOptionState;
686
+ var toCleanOptions, toUpdateOptions, i, grid, _i5, option, visitOptionState;
625
687
  return _regeneratorRuntime.wrap(function _callee7$(_context7) {
626
688
  while (1) switch (_context7.prev = _context7.next) {
627
689
  case 0:
@@ -657,13 +719,13 @@ var ShelfPlanner = /*#__PURE__*/function () {
657
719
  _context7.next = 3;
658
720
  break;
659
721
  case 13:
660
- _i4 = 0;
722
+ _i5 = 0;
661
723
  case 14:
662
- if (!(_i4 < [].concat(toUpdateOptions, toCleanOptions).length)) {
724
+ if (!(_i5 < [].concat(toUpdateOptions, toCleanOptions).length)) {
663
725
  _context7.next = 23;
664
726
  break;
665
727
  }
666
- option = [].concat(toUpdateOptions, toCleanOptions)[_i4];
728
+ option = [].concat(toUpdateOptions, toCleanOptions)[_i5];
667
729
  visitOptionState = this.article.getArticleOptionState((!this.article.CatalogData.isIDMFormat ? 'OPT' : '') + option);
668
730
  if (!visitOptionState) {
669
731
  _context7.next = 20;
@@ -672,7 +734,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
672
734
  _context7.next = 20;
673
735
  return articleHandlerInstance.updateOption(this.article, visitOptionState.optionCodex, toUpdateOptions.includes(option) ? 'OPVMIT' : 'OPVOHNE');
674
736
  case 20:
675
- _i4++;
737
+ _i5++;
676
738
  _context7.next = 14;
677
739
  break;
678
740
  case 23:
@@ -817,7 +879,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
817
879
  key: "deleteAccessoireOfCellInGrid",
818
880
  value: (function () {
819
881
  var _deleteAccessoireOfCellInGrid = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(gridIndex, cellIndex) {
820
- var grid, inUse, deleteIndex, onBoardCell, accessoire;
882
+ var grid, inUse, deleteIndex, onBoardCell, accessoire, deleted;
821
883
  return _regeneratorRuntime.wrap(function _callee9$(_context9) {
822
884
  while (1) switch (_context9.prev = _context9.next) {
823
885
  case 0:
@@ -844,8 +906,17 @@ var ShelfPlanner = /*#__PURE__*/function () {
844
906
  _context9.next = 10;
845
907
  return grid.deleteAccessoireInCells(deleteIndex);
846
908
  case 10:
847
- return _context9.abrupt("return", _context9.sent);
848
- case 11:
909
+ deleted = _context9.sent;
910
+ if (deleted) this.logShelfDebug({
911
+ phase: 'placement',
912
+ action: 'accessoryDeleted',
913
+ gridIndex: gridIndex,
914
+ cellIndex: deleteIndex,
915
+ articleCodex: deleted.articleCodex,
916
+ articleName: deleted.name
917
+ });
918
+ return _context9.abrupt("return", deleted);
919
+ case 13:
849
920
  case "end":
850
921
  return _context9.stop();
851
922
  }
@@ -887,7 +958,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
887
958
  key: "handleDeleteTakePlaceOnOtherGrids",
888
959
  value: (function () {
889
960
  var _handleDeleteTakePlaceOnOtherGrids = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(gridIndex, cellIndex, accessoire) {
890
- var i, _cell$Article, cell, _i5, _cell$Article2, _cell, _i6;
961
+ var i, _cell$Article, cell, _i6, _cell$Article2, _cell, _i7;
891
962
  return _regeneratorRuntime.wrap(function _callee10$(_context10) {
892
963
  while (1) switch (_context10.prev = _context10.next) {
893
964
  case 0:
@@ -906,8 +977,8 @@ var ShelfPlanner = /*#__PURE__*/function () {
906
977
  }
907
978
  }
908
979
  if (accessoire.shelfHeightBelow) {
909
- for (_i5 = 0; _i5 < accessoire.shelfHeightBelow; _i5++) {
910
- _cell = this.grids[gridIndex].Cells[cellIndex - (_i5 + 1)];
980
+ for (_i6 = 0; _i6 < accessoire.shelfHeightBelow; _i6++) {
981
+ _cell = this.grids[gridIndex].Cells[cellIndex - (_i6 + 1)];
911
982
  if ((_cell === null || _cell === void 0 || (_cell$Article2 = _cell.Article) === null || _cell$Article2 === void 0 ? void 0 : _cell$Article2.basketId) === accessoire.basketId) {
912
983
  _cell.ClearInUse();
913
984
  }
@@ -917,22 +988,22 @@ var ShelfPlanner = /*#__PURE__*/function () {
917
988
  _context10.next = 14;
918
989
  break;
919
990
  }
920
- _i6 = 0;
991
+ _i7 = 0;
921
992
  case 6:
922
- if (!(_i6 < this.grids.length)) {
993
+ if (!(_i7 < this.grids.length)) {
923
994
  _context10.next = 14;
924
995
  break;
925
996
  }
926
- if (!(_i6 === gridIndex)) {
997
+ if (!(_i7 === gridIndex)) {
927
998
  _context10.next = 9;
928
999
  break;
929
1000
  }
930
1001
  return _context10.abrupt("continue", 11);
931
1002
  case 9:
932
1003
  _context10.next = 11;
933
- return this.grids[_i6].deleteAccessoireInCells(cellIndex);
1004
+ return this.grids[_i7].deleteAccessoireInCells(cellIndex);
934
1005
  case 11:
935
- _i6++;
1006
+ _i7++;
936
1007
  _context10.next = 6;
937
1008
  break;
938
1009
  case 14:
@@ -966,25 +1037,41 @@ var ShelfPlanner = /*#__PURE__*/function () {
966
1037
  i = 0;
967
1038
  case 2:
968
1039
  if (!(i < grids.length)) {
969
- _context11.next = 11;
1040
+ _context11.next = 13;
970
1041
  break;
971
1042
  }
972
1043
  grid = grids[i];
973
1044
  if (!grid.DisabledByRule) {
974
- _context11.next = 6;
1045
+ _context11.next = 7;
975
1046
  break;
976
1047
  }
977
- return _context11.abrupt("continue", 8);
978
- case 6:
979
- _context11.next = 8;
1048
+ this.logShelfDebug({
1049
+ phase: 'placement',
1050
+ action: 'placementSkippedGridDisabled',
1051
+ gridIndex: grid.ShelfIndex,
1052
+ cellIndex: cellIndex,
1053
+ articleCodex: accessoire.articleCodex
1054
+ });
1055
+ return _context11.abrupt("continue", 10);
1056
+ case 7:
1057
+ this.logShelfDebug({
1058
+ phase: 'placement',
1059
+ action: 'accessoryPlaced',
1060
+ gridIndex: grid.ShelfIndex,
1061
+ cellIndex: cellIndex,
1062
+ articleCodex: accessoire.articleCodex,
1063
+ articleName: accessoire.name,
1064
+ detail: type + (grid.ShelfIndex !== gridIndex ? ' (placeholder via TakePlaceOnOtherGrids)' : '')
1065
+ });
1066
+ _context11.next = 10;
980
1067
  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);
981
- case 8:
1068
+ case 10:
982
1069
  i++;
983
1070
  _context11.next = 2;
984
1071
  break;
985
- case 11:
1072
+ case 13:
986
1073
  this.checkForFreeAccessoire(accessoire);
987
- case 12:
1074
+ case 14:
988
1075
  case "end":
989
1076
  return _context11.stop();
990
1077
  }
@@ -1213,6 +1300,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
1213
1300
  depth: catalogArticle.depth,
1214
1301
  cellSize: catalogArticle.shelfHeight,
1215
1302
  metaData: catalogArticle.metaDataView,
1303
+ accessoireFamily: catalogArticle.accessoireFamily,
1216
1304
  contentItemId: catalogArticle.contentItemId,
1217
1305
  groupContentItemId: catalogArticle.groupContentItemId,
1218
1306
  partlistcodexes: catalogArticle.possiblePartlistCodexes
@@ -1297,68 +1385,93 @@ var ShelfPlanner = /*#__PURE__*/function () {
1297
1385
  key: "disableCellsByDockedShelfs",
1298
1386
  value: (function () {
1299
1387
  var _disableCellsByDockedShelfs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12(count) {
1300
- var grids, i, grid, gridCount, toDisableCells, useCount, j, _j, cell, _j2;
1301
- return _regeneratorRuntime.wrap(function _callee12$(_context12) {
1302
- while (1) switch (_context12.prev = _context12.next) {
1388
+ var _this2 = this;
1389
+ var grids, _loop2, i;
1390
+ return _regeneratorRuntime.wrap(function _callee12$(_context13) {
1391
+ while (1) switch (_context13.prev = _context13.next) {
1303
1392
  case 0:
1304
1393
  grids = this.activeGrids;
1394
+ _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
1395
+ var grid, gridCount, toDisableCells, useCount, j, newlyDisabled, newlyEnabled, _j, cell, _j2;
1396
+ return _regeneratorRuntime.wrap(function _loop2$(_context12) {
1397
+ while (1) switch (_context12.prev = _context12.next) {
1398
+ case 0:
1399
+ grid = grids[i];
1400
+ gridCount = grid.getCellCount();
1401
+ toDisableCells = grid.getDisabledCellsByRule();
1402
+ useCount = count == undefined || count > gridCount ? gridCount : count;
1403
+ for (j = useCount; j < grid.Cells.length; j++) {
1404
+ toDisableCells.push(j);
1405
+ }
1406
+ newlyDisabled = toDisableCells.filter(function (idx) {
1407
+ return grid.Cells[idx] && !grid.Cells[idx].IsDisabled;
1408
+ });
1409
+ newlyEnabled = grid.Cells.filter(function (cell, j) {
1410
+ return cell.IsDisabled && !toDisableCells.includes(j);
1411
+ }).length;
1412
+ if (newlyDisabled.length || newlyEnabled) _this2.logShelfDebug({
1413
+ phase: 'docking',
1414
+ action: 'disabledCellsUpdated',
1415
+ gridIndex: grid.ShelfIndex,
1416
+ 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'
1417
+ });
1418
+ _j = 0;
1419
+ case 9:
1420
+ if (!(_j < toDisableCells.length)) {
1421
+ _context12.next = 18;
1422
+ break;
1423
+ }
1424
+ cell = grid.Cells[toDisableCells[_j]];
1425
+ if (!(cell.InUse == toDisableCells[_j])) {
1426
+ _context12.next = 14;
1427
+ break;
1428
+ }
1429
+ _context12.next = 14;
1430
+ return setHandlerInstance.deleteAccessorieOnShelfPlanner(_this2.article.set, grid.ShelfIndex, cell.InUse, grid.basketId);
1431
+ case 14:
1432
+ cell.IsDisabled = true;
1433
+ case 15:
1434
+ _j++;
1435
+ _context12.next = 9;
1436
+ break;
1437
+ case 18:
1438
+ _j2 = 0;
1439
+ case 19:
1440
+ if (!(_j2 < grid.Cells.length)) {
1441
+ _context12.next = 26;
1442
+ break;
1443
+ }
1444
+ if (!toDisableCells.includes(_j2)) {
1445
+ _context12.next = 22;
1446
+ break;
1447
+ }
1448
+ return _context12.abrupt("continue", 23);
1449
+ case 22:
1450
+ grid.Cells[_j2].IsDisabled = false;
1451
+ case 23:
1452
+ _j2++;
1453
+ _context12.next = 19;
1454
+ break;
1455
+ case 26:
1456
+ case "end":
1457
+ return _context12.stop();
1458
+ }
1459
+ }, _loop2);
1460
+ });
1305
1461
  i = 0;
1306
- case 2:
1462
+ case 3:
1307
1463
  if (!(i < grids.length)) {
1308
- _context12.next = 29;
1309
- break;
1310
- }
1311
- grid = grids[i];
1312
- gridCount = grid.getCellCount();
1313
- toDisableCells = grid.getDisabledCellsByRule();
1314
- useCount = count == undefined || count > gridCount ? gridCount : count;
1315
- for (j = useCount; j < grid.Cells.length; j++) {
1316
- toDisableCells.push(j);
1317
- }
1318
- _j = 0;
1319
- case 9:
1320
- if (!(_j < toDisableCells.length)) {
1321
- _context12.next = 18;
1322
- break;
1323
- }
1324
- cell = grid.Cells[toDisableCells[_j]];
1325
- if (!(cell.InUse == toDisableCells[_j])) {
1326
- _context12.next = 14;
1327
- break;
1328
- }
1329
- _context12.next = 14;
1330
- return setHandlerInstance.deleteAccessorieOnShelfPlanner(this.article.set, grid.ShelfIndex, cell.InUse, grid.basketId);
1331
- case 14:
1332
- cell.IsDisabled = true;
1333
- case 15:
1334
- _j++;
1335
- _context12.next = 9;
1336
- break;
1337
- case 18:
1338
- _j2 = 0;
1339
- case 19:
1340
- if (!(_j2 < grid.Cells.length)) {
1341
- _context12.next = 26;
1464
+ _context13.next = 8;
1342
1465
  break;
1343
1466
  }
1344
- if (!toDisableCells.includes(_j2)) {
1345
- _context12.next = 22;
1346
- break;
1347
- }
1348
- return _context12.abrupt("continue", 23);
1349
- case 22:
1350
- grid.Cells[_j2].IsDisabled = false;
1351
- case 23:
1352
- _j2++;
1353
- _context12.next = 19;
1354
- break;
1355
- case 26:
1467
+ return _context13.delegateYield(_loop2(), "t0", 5);
1468
+ case 5:
1356
1469
  i++;
1357
- _context12.next = 2;
1470
+ _context13.next = 3;
1358
1471
  break;
1359
- case 29:
1472
+ case 8:
1360
1473
  case "end":
1361
- return _context12.stop();
1474
+ return _context13.stop();
1362
1475
  }
1363
1476
  }, _callee12, this);
1364
1477
  }));