@crystaldesign/web-planner-logic 26.11.0-rc.0 → 26.11.0-rc.2

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-104200d4.js → DivaBoxPlanner-28df37dc.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-afd61e89.js → DivaStandardPlanner-a2aa5c1b.js} +2 -2
  3. package/build/cjs/{DoorPlanner-58218b20.js → DoorPlanner-75d541df.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-43cccc62.js → Host3DSignalR-bb5b7225.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-9ac1d546.js → LiviqueWWSHandler-c7a32173.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-27d3c2f1.js → PfisterWWSHandler-49d7c793.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-b9e0aa00.js → PlannerHandler2D-8f6ac3f0.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-9225ef60.js → SeriousBasketHandler-a4b843ca.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-89660e65.js → ShelfPlanner-28208970.js} +103 -75
  10. package/build/cjs/{StandardWWSHandler-eaf1106a.js → StandardWWSHandler-2f0f6e42.js} +1 -1
  11. package/build/cjs/{index-9279cd6b.js → index-12d7228d.js} +37 -18
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-49ca2254.js → DivaBoxPlanner-6cb2372e.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-5b1937df.js → DivaStandardPlanner-8ae6587b.js} +2 -2
  15. package/build/esm/{DoorPlanner-e5d456e3.js → DoorPlanner-3b1de12d.js} +1 -1
  16. package/build/esm/{Host3DSignalR-bf8a4afc.js → Host3DSignalR-812c760e.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-1e537c0a.js → LiviqueWWSHandler-89b9ebd5.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-6218f972.js → PfisterWWSHandler-1e29c8b1.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-0e55412b.js → PlannerHandler2D-29d15b63.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-b534a712.js → SeriousBasketHandler-16afc759.js} +1 -1
  21. package/build/esm/{ShelfPlanner-5062f0a3.js → ShelfPlanner-ea7ddc30.js} +103 -75
  22. package/build/esm/{StandardWWSHandler-6c628e60.js → StandardWWSHandler-0e752ca1.js} +1 -1
  23. package/build/esm/{index-e11ba779.js → index-92ca01e9.js} +37 -18
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +8 -2
  26. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +2 -2
  28. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +5 -2
  30. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
  31. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
  33. package/package.json +3 -3
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-9279cd6b.js');
8
+ var index = require('./index-12d7228d.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-b9e0aa00.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-8f6ac3f0.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/basket-model');
@@ -6,10 +6,10 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-9279cd6b.js');
9
+ var index = require('./index-12d7228d.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-b9e0aa00.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-8f6ac3f0.js');
13
13
  require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('axios');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('./index-9279cd6b.js');
6
+ require('./index-12d7228d.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-9279cd6b.js');
8
+ var index = require('./index-12d7228d.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-9279cd6b.js');
5
+ require('./index-12d7228d.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-9279cd6b.js');
5
+ var index = require('./index-12d7228d.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-9279cd6b.js');
8
+ var index = require('./index-12d7228d.js');
9
9
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var DivaUtils = require('@crystaldesign/diva-utils');
@@ -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-9279cd6b.js');
6
+ var index = require('./index-12d7228d.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-9279cd6b.js');
9
+ var index = require('./index-12d7228d.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -74,8 +74,9 @@ var ShelfPlanner = /*#__PURE__*/function () {
74
74
  //true until the shelfaccessoires saved in the basket were restored into the cells (see restoreShelfAccessoires in the DivaSetHandler).
75
75
  //until then no initAcc may be placed, they would occupy the cells of the saved accessoires
76
76
  _defineProperty__default["default"](this, "restorePending", void 0);
77
- //accessoires of grids that were switched off by a grid rule, per gridIndex. They get placed again when the grid
78
- //becomes active again - eg a shelf that is configured from 100cm to 50cm and back keeps its accessoires
77
+ //accessoires of grids that were cleared by a grid rule, per gridIndex and the HeightGridCellCountOnRule entry the grid
78
+ //ran as. They get placed again when the grid becomes active again under the same entry - eg a shelf that is configured
79
+ //from 100cm to 50cm and back keeps its accessoires. A grid that comes back under another entry starts with that entry's initAcc
79
80
  _defineProperty__default["default"](this, "stashedAccessoires", {});
80
81
  this.article = article;
81
82
  this.restorePending = !!article.shelfPlanData;
@@ -201,27 +202,30 @@ var ShelfPlanner = /*#__PURE__*/function () {
201
202
  key: "onConfigChanged",
202
203
  value: (function () {
203
204
  var _onConfigChanged = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(variantValues) {
204
- var newHeightSet, gridsTodos, i, _i, grid, _i2, _i3, _grid, grids, _i4, _grid2$DisableCellsBy, _grid2;
205
+ var newHeightSet, gridsTodos, ruleIndexesBefore, i, _i, grid, _i2, _i3, _grid, grids, _i4, _grid2$DisableCellsBy, _grid2;
205
206
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
206
207
  while (1) switch (_context2.prev = _context2.next) {
207
208
  case 0:
208
209
  newHeightSet = false;
209
- gridsTodos = [];
210
+ gridsTodos = []; //onConfigChanged moves a grid to its new rule entry, the stash needs the entry the accessoires were planned under
211
+ ruleIndexesBefore = this.grids.map(function (grid) {
212
+ return grid.CurrentLoadedRuleIndex;
213
+ });
210
214
  for (i = 0; i < this.grids.length; i++) {
211
215
  gridsTodos.push(this.grids[i].onConfigChanged());
212
216
  }
213
217
  _i = 0;
214
- case 4:
218
+ case 5:
215
219
  if (!(_i < gridsTodos.length)) {
216
- _context2.next = 13;
220
+ _context2.next = 14;
217
221
  break;
218
222
  }
219
223
  if (gridsTodos[_i].length) {
220
- _context2.next = 7;
224
+ _context2.next = 8;
221
225
  break;
222
226
  }
223
- return _context2.abrupt("continue", 10);
224
- case 7:
227
+ return _context2.abrupt("continue", 11);
228
+ case 8:
225
229
  grid = this.grids[_i];
226
230
  if (gridsTodos[_i].includes('disableGridRule')) this.logShelfDebug({
227
231
  phase: 'configChanged',
@@ -235,44 +239,44 @@ var ShelfPlanner = /*#__PURE__*/function () {
235
239
  gridIndex: grid.ShelfIndex,
236
240
  detail: 'HeightGridCellCountOnRule match changed — grid rebuilt (cell count / placeable accessories can change), its accessories are deleted'
237
241
  });
238
- case 10:
242
+ case 11:
239
243
  _i++;
240
- _context2.next = 4;
244
+ _context2.next = 5;
241
245
  break;
242
- case 13:
243
- _i2 = 0;
244
246
  case 14:
247
+ _i2 = 0;
248
+ case 15:
245
249
  if (!(_i2 < gridsTodos.length)) {
246
- _context2.next = 23;
250
+ _context2.next = 24;
247
251
  break;
248
252
  }
249
253
  if (gridsTodos[_i2].length) {
250
- _context2.next = 17;
254
+ _context2.next = 18;
251
255
  break;
252
256
  }
253
- return _context2.abrupt("continue", 20);
254
- case 17:
257
+ return _context2.abrupt("continue", 21);
258
+ case 18:
255
259
  //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;
260
+ this.stashAccessoiresOfGrid(_i2, ruleIndexesBefore[_i2]);
261
+ _context2.next = 21;
258
262
  return this.grids[_i2].deleteAllAccOfGrid();
259
- case 20:
263
+ case 21:
260
264
  _i2++;
261
- _context2.next = 14;
265
+ _context2.next = 15;
262
266
  break;
263
- case 23:
264
- _i3 = 0;
265
267
  case 24:
268
+ _i3 = 0;
269
+ case 25:
266
270
  if (!(_i3 < gridsTodos.length)) {
267
- _context2.next = 40;
271
+ _context2.next = 41;
268
272
  break;
269
273
  }
270
274
  if (gridsTodos[_i3].length) {
271
- _context2.next = 27;
275
+ _context2.next = 28;
272
276
  break;
273
277
  }
274
- return _context2.abrupt("continue", 37);
275
- case 27:
278
+ return _context2.abrupt("continue", 38);
279
+ case 28:
276
280
  if (gridsTodos[_i3].includes('heightGridRule')) {
277
281
  this.creatNewGrid(_i3);
278
282
  newHeightSet = true;
@@ -280,58 +284,58 @@ var ShelfPlanner = /*#__PURE__*/function () {
280
284
  //read the grid after a possible recreate, the replaced one is not the grid that gets filled
281
285
  _grid = this.grids[_i3];
282
286
  if (!((gridsTodos[_i3].includes('heightGridRule') || gridsTodos[_i3].includes('disableGridRule')) && !_grid.DisabledByRule)) {
283
- _context2.next = 37;
287
+ _context2.next = 38;
284
288
  break;
285
289
  }
286
290
  if (!this.restorePending) {
287
- _context2.next = 32;
291
+ _context2.next = 33;
288
292
  break;
289
293
  }
290
- return _context2.abrupt("continue", 37);
291
- case 32:
292
- _context2.next = 34;
294
+ return _context2.abrupt("continue", 38);
295
+ case 33:
296
+ _context2.next = 35;
293
297
  return this.placeStashedAccessoiresOfGrid(_i3);
294
- case 34:
298
+ case 35:
295
299
  if (_context2.sent) {
296
- _context2.next = 37;
300
+ _context2.next = 38;
297
301
  break;
298
302
  }
299
- _context2.next = 37;
303
+ _context2.next = 38;
300
304
  return this.initAccList(_i3);
301
- case 37:
305
+ case 38:
302
306
  _i3++;
303
- _context2.next = 24;
307
+ _context2.next = 25;
304
308
  break;
305
- case 40:
309
+ case 41:
306
310
  if (!(!newHeightSet && Object.keys(variantValues).length)) {
307
- _context2.next = 51;
311
+ _context2.next = 52;
308
312
  break;
309
313
  }
310
314
  grids = this.activeGrids;
311
315
  _i4 = 0;
312
- case 43:
316
+ case 44:
313
317
  if (!(_i4 < grids.length)) {
314
- _context2.next = 51;
318
+ _context2.next = 52;
315
319
  break;
316
320
  }
317
321
  _grid2 = grids[_i4];
318
322
  if (!((_grid2$DisableCellsBy = _grid2.DisableCellsByMeasures) !== null && _grid2$DisableCellsBy !== void 0 && _grid2$DisableCellsBy.options.find(function (o) {
319
323
  return Object.keys(variantValues).includes('OPT' + o.opt);
320
324
  }) || !!_grid2.disableCellsByRules)) {
321
- _context2.next = 48;
325
+ _context2.next = 49;
322
326
  break;
323
327
  }
324
328
  newHeightSet = true;
325
- return _context2.abrupt("break", 51);
326
- case 48:
329
+ return _context2.abrupt("break", 52);
330
+ case 49:
327
331
  _i4++;
328
- _context2.next = 43;
332
+ _context2.next = 44;
329
333
  break;
330
- case 51:
334
+ case 52:
331
335
  if (newHeightSet) {
332
336
  this.updateDisabledCells();
333
337
  }
334
- case 52:
338
+ case 53:
335
339
  case "end":
336
340
  return _context2.stop();
337
341
  }
@@ -350,16 +354,24 @@ var ShelfPlanner = /*#__PURE__*/function () {
350
354
  }
351
355
 
352
356
  /**
353
- * Remembers the accessoires of a grid that is about to be cleared because a grid rule switched it off.
357
+ * Remembers the accessoires of a grid that is about to be cleared because a grid rule switched it off or rebuilt it.
354
358
  * An empty grid never overwrites an existing memory, so the accessoires survive further configuration changes.
355
359
  * @param gridIndex grid that gets cleared
360
+ * @param ruleIndex HeightGridCellCountOnRule entry the grid ran as while the accessoires were planned
356
361
  */
357
362
  }, {
358
363
  key: "stashAccessoiresOfGrid",
359
- value: function stashAccessoiresOfGrid(gridIndex) {
364
+ value: function stashAccessoiresOfGrid(gridIndex, ruleIndex) {
360
365
  var stashedAccessoires = this.collectAccessoiresToStash(this.grids[gridIndex]);
361
366
  if (!stashedAccessoires.length) return;
362
- this.stashedAccessoires[gridIndex] = stashedAccessoires;
367
+ this.stashedAccessoires[this.stashKey(gridIndex, ruleIndex)] = stashedAccessoires;
368
+ }
369
+
370
+ /** The memory is per grid and per HeightGridCellCountOnRule entry, false when the grid runs without a matching entry. */
371
+ }, {
372
+ key: "stashKey",
373
+ value: function stashKey(gridIndex, ruleIndex) {
374
+ return gridIndex + '#' + ruleIndex;
363
375
  }
364
376
 
365
377
  /**
@@ -382,7 +394,12 @@ var ShelfPlanner = /*#__PURE__*/function () {
382
394
  var _accessoireShelfPlann;
383
395
  var accessoireGrid = accessoireShelfPlanner.grids[j];
384
396
  var accessoiresOfGrid = accessoireShelfPlanner.collectAccessoiresToStash(accessoireGrid);
385
- if (accessoiresOfGrid.length) accessoires[accessoireGrid.ShelfIndex] = accessoiresOfGrid;
397
+ if (accessoiresOfGrid.length) {
398
+ accessoires[accessoireGrid.ShelfIndex] = {
399
+ ruleIndex: accessoireGrid.CurrentLoadedRuleIndex,
400
+ accessoires: accessoiresOfGrid
401
+ };
402
+ }
386
403
  }
387
404
  stashedAccessoires.push({
388
405
  articleCodex: accessoire.articleCodex,
@@ -398,7 +415,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
398
415
  }
399
416
 
400
417
  /**
401
- * Places the remembered accessoires of a grid back into their cells.
418
+ * Places the accessoires remembered for the rule entry the grid runs now back into their cells.
402
419
  * @param gridIndex grid that became active again
403
420
  * @returns how many accessoires were placed - 0 means the grid is still empty and needs its initAcc
404
421
  */
@@ -406,24 +423,26 @@ var ShelfPlanner = /*#__PURE__*/function () {
406
423
  key: "placeStashedAccessoiresOfGrid",
407
424
  value: (function () {
408
425
  var _placeStashedAccessoiresOfGrid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3(gridIndex) {
409
- var stashedAccessoires;
426
+ var stashKey, stashedAccessoires;
410
427
  return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
411
428
  while (1) switch (_context3.prev = _context3.next) {
412
429
  case 0:
413
- stashedAccessoires = this.stashedAccessoires[gridIndex];
430
+ //a recreated grid already runs its new rule entry, only accessoires planned under that entry belong into it
431
+ stashKey = this.stashKey(gridIndex, this.grids[gridIndex].CurrentLoadedRuleIndex);
432
+ stashedAccessoires = this.stashedAccessoires[stashKey];
414
433
  if (stashedAccessoires !== null && stashedAccessoires !== void 0 && stashedAccessoires.length) {
415
- _context3.next = 3;
434
+ _context3.next = 4;
416
435
  break;
417
436
  }
418
437
  return _context3.abrupt("return", 0);
419
- case 3:
438
+ case 4:
420
439
  //remove it first, a reconfiguration triggered by placing them must not place them a second time
421
- delete this.stashedAccessoires[gridIndex];
422
- _context3.next = 6;
440
+ delete this.stashedAccessoires[stashKey];
441
+ _context3.next = 7;
423
442
  return this.placeStashedAccessoiresInGrid(gridIndex, stashedAccessoires);
424
- case 6:
425
- return _context3.abrupt("return", _context3.sent);
426
443
  case 7:
444
+ return _context3.abrupt("return", _context3.sent);
445
+ case 8:
427
446
  case "end":
428
447
  return _context3.stop();
429
448
  }
@@ -438,7 +457,7 @@ var ShelfPlanner = /*#__PURE__*/function () {
438
457
  key: "placeStashedAccessoiresByGrid",
439
458
  value: (function () {
440
459
  var _placeStashedAccessoiresByGrid = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(stashedAccessoires) {
441
- var gridIndexes, i, _this$getGridByIndex, gridIndex;
460
+ var gridIndexes, i, gridIndex, grid, stashed;
442
461
  return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
443
462
  while (1) switch (_context4.prev = _context4.next) {
444
463
  case 0:
@@ -446,27 +465,36 @@ var ShelfPlanner = /*#__PURE__*/function () {
446
465
  i = 0;
447
466
  case 2:
448
467
  if (!(i < gridIndexes.length)) {
449
- _context4.next = 14;
468
+ _context4.next = 18;
450
469
  break;
451
470
  }
452
- gridIndex = Number(gridIndexes[i]); //the accessoire was created new, so its initAcc are already placed in the cells the remembered accessoires need
453
- _context4.next = 6;
454
- return (_this$getGridByIndex = this.getGridByIndex(gridIndex)) === null || _this$getGridByIndex === void 0 ? void 0 : _this$getGridByIndex.deleteAllAccOfGrid();
455
- case 6:
456
- _context4.next = 8;
457
- return this.placeStashedAccessoiresInGrid(gridIndex, stashedAccessoires[gridIndex]);
471
+ gridIndex = Number(gridIndexes[i]);
472
+ grid = this.getGridByIndex(gridIndex);
473
+ stashed = stashedAccessoires[gridIndex]; //the accessoire was created new, its grids run their own rule entry with that entry's initAcc in place. A grid that
474
+ //runs another entry than the remembered accessoires were planned under keeps them
475
+ if (!(!grid || grid.CurrentLoadedRuleIndex !== stashed.ruleIndex)) {
476
+ _context4.next = 8;
477
+ break;
478
+ }
479
+ return _context4.abrupt("continue", 15);
458
480
  case 8:
481
+ _context4.next = 10;
482
+ return grid.deleteAllAccOfGrid();
483
+ case 10:
484
+ _context4.next = 12;
485
+ return this.placeStashedAccessoiresInGrid(gridIndex, stashed.accessoires);
486
+ case 12:
459
487
  if (_context4.sent) {
460
- _context4.next = 11;
488
+ _context4.next = 15;
461
489
  break;
462
490
  }
463
- _context4.next = 11;
491
+ _context4.next = 15;
464
492
  return this.initAccList(gridIndex);
465
- case 11:
493
+ case 15:
466
494
  i++;
467
495
  _context4.next = 2;
468
496
  break;
469
- case 14:
497
+ case 18:
470
498
  case "end":
471
499
  return _context4.stop();
472
500
  }
@@ -1528,8 +1556,8 @@ var ShelfPlanner = /*#__PURE__*/function () {
1528
1556
  }, {
1529
1557
  key: "getCellIndexOfBasketId",
1530
1558
  value: function getCellIndexOfBasketId(gridIndex, basketId) {
1531
- var _this$getGridByIndex2;
1532
- return (_this$getGridByIndex2 = this.getGridByIndex(gridIndex)) === null || _this$getGridByIndex2 === void 0 ? void 0 : _this$getGridByIndex2.getIndexOfBasketId(basketId);
1559
+ var _this$getGridByIndex;
1560
+ return (_this$getGridByIndex = this.getGridByIndex(gridIndex)) === null || _this$getGridByIndex === void 0 ? void 0 : _this$getGridByIndex.getIndexOfBasketId(basketId);
1533
1561
  }
1534
1562
  }, {
1535
1563
  key: "allGrids",
@@ -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-9279cd6b.js');
5
+ require('./index-12d7228d.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -19552,8 +19552,11 @@ var ArticleOptionData = /*#__PURE__*/function () {
19552
19552
 
19553
19553
  var LOG$m = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
19554
19554
  function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors, catalog, newOPT, rule) {
19555
+ var lang = catalog.api.getLanguage();
19556
+ // the palette group shows "<GroupName> (<OPG name>)", so both carry the same translated label
19557
+ var groupName = lang === 'FR' ? 'Couleurs fournisseurs' : lang === 'IT' ? 'Colori fornitori' : 'Lieferantenfarben';
19555
19558
  var catalogOPG = new OptionValueCatalogData(getCatalogOptionValueDataType('OPVSUPPLIER_COLORS', {
19556
- Name: 'Lieferantenfarben',
19559
+ Name: groupName,
19557
19560
  IsOPVG: '1'
19558
19561
  }, catalog), catalog);
19559
19562
  var articleOPG = new ArticleOptionValueData(getArticleOptionValueType(set, 'OPVSUPPLIER_COLORS', {
@@ -19563,11 +19566,18 @@ function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors
19563
19566
  var supplierColorsOpvs = new Map();
19564
19567
  for (var i = 0; i < supplierColors.length; i++) {
19565
19568
  var col = supplierColors[i];
19569
+ // shown in the catalog language; classification reads the Fr/It value names from name_locales (see DivaBasketHandler)
19570
+ var nameLocales = {
19571
+ DE: col.OptionValueName_DE,
19572
+ FR: col.OptionValueName_FR,
19573
+ IT: col.OptionValueName_IT
19574
+ };
19566
19575
  var colorCatalogOpv = new OptionValueCatalogData(getCatalogOptionValueDataType('OPV' + col.OptionValueCodex, {
19567
- Name: col.OptionValueName_DE,
19576
+ Name: nameLocales[lang] || col.OptionValueName_DE,
19577
+ Name_locales: nameLocales,
19568
19578
  IsCustomAttribute: true,
19569
19579
  HexColor: col.HexColor,
19570
- GroupName: 'Lieferantenfarben'
19580
+ GroupName: groupName
19571
19581
  }, catalog), catalog);
19572
19582
  supplierColorsOpvs.set('OPV' + col.OptionValueCodex, new ArticleOptionValueData(getArticleOptionValueType(set, 'OPV' + col.OptionValueCodex, {}, colorCatalogOpv, catalogArticleData, true, articleOPG, catalog.multiselectOptions), catalog));
19573
19583
  }
@@ -31157,7 +31167,7 @@ var DivaArticle = /*#__PURE__*/function () {
31157
31167
  break;
31158
31168
  }
31159
31169
  _context.next = 4;
31160
- return Promise.resolve().then(function () { return require('./ShelfPlanner-89660e65.js'); });
31170
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-28208970.js'); });
31161
31171
  case 4:
31162
31172
  _yield$import = _context.sent;
31163
31173
  ShelfPlanner = _yield$import["default"];
@@ -39266,7 +39276,7 @@ var DivaSet = /*#__PURE__*/function () {
39266
39276
  break;
39267
39277
  }
39268
39278
  _context5.next = 3;
39269
- return Promise.resolve().then(function () { return require('./DoorPlanner-58218b20.js'); });
39279
+ return Promise.resolve().then(function () { return require('./DoorPlanner-75d541df.js'); });
39270
39280
  case 3:
39271
39281
  _yield$import = _context5.sent;
39272
39282
  DoorPlanner = _yield$import["default"];
@@ -46737,9 +46747,11 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46737
46747
  }
46738
46748
  }, {
46739
46749
  key: "fillBaksetforOnWebPlanerConfigChange",
46740
- value: function fillBaksetforOnWebPlanerConfigChange(set, newBasket, options, isInit, eventKey) {
46750
+ value: function fillBaksetforOnWebPlanerConfigChange(set, newBasket, options, isInit, eventKey, lang) {
46741
46751
  var _this$plannerConfig$a6;
46742
46752
  this.setBasketData(this.actDivaNr, newBasket);
46753
+ // language the catalog was loaded in: `name` of options/values is in this language
46754
+ var loadedLang = lang !== null && lang !== void 0 ? lang : 'DE';
46743
46755
  var changedValues = {};
46744
46756
  var sendToSap = [];
46745
46757
  var article = set.getDivaArticles()[Object.keys(set.getDivaArticles())[0]];
@@ -46830,12 +46842,18 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46830
46842
  attributeValue = name;
46831
46843
  }
46832
46844
  }
46845
+ // `name` is only the loaded catalog language; the other languages come from name_locales
46846
+ // (API2 keys them lowercase, IDM masks uppercase). Free text keeps its per-language input instead.
46847
+ var valueName = function valueName(valueLang) {
46848
+ var _val$name_locales$val, _val$name_locales, _val$name_locales2;
46849
+ return valueLang === loadedLang ? name : (_val$name_locales$val = (_val$name_locales = val.name_locales) === null || _val$name_locales === void 0 ? void 0 : _val$name_locales[valueLang]) !== null && _val$name_locales$val !== void 0 ? _val$name_locales$val : (_val$name_locales2 = val.name_locales) === null || _val$name_locales2 === void 0 ? void 0 : _val$name_locales2[valueLang.toLowerCase()];
46850
+ };
46833
46851
  return {
46834
46852
  attributeValue: attributeValue,
46835
46853
  hexColor: val.hexColor,
46836
- attributeValueNameDe: name,
46837
- attributeValueNameFr: (_ops$freeTextLang3 = ops.freeTextLang) === null || _ops$freeTextLang3 === void 0 ? void 0 : _ops$freeTextLang3['FR'],
46838
- attributeValueNameIt: (_ops$freeTextLang4 = ops.freeTextLang) === null || _ops$freeTextLang4 === void 0 ? void 0 : _ops$freeTextLang4['IT'],
46854
+ attributeValueNameDe: ops.isFreeText ? name : valueName('DE'),
46855
+ attributeValueNameFr: ops.isFreeText ? (_ops$freeTextLang3 = ops.freeTextLang) === null || _ops$freeTextLang3 === void 0 ? void 0 : _ops$freeTextLang3['FR'] : valueName('FR'),
46856
+ attributeValueNameIt: ops.isFreeText ? (_ops$freeTextLang4 = ops.freeTextLang) === null || _ops$freeTextLang4 === void 0 ? void 0 : _ops$freeTextLang4['IT'] : valueName('IT'),
46839
46857
  attributeValueVCodex: (_val$vCodex = val === null || val === void 0 ? void 0 : val.vCodex) !== null && _val$vCodex !== void 0 ? _val$vCodex : undefined,
46840
46858
  position: opsKeys.indexOf(ops.option.codex),
46841
46859
  attributeName: ops.option.name,
@@ -46881,7 +46899,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46881
46899
  break;
46882
46900
  case 3:
46883
46901
  _context12.next = 5;
46884
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-27d3c2f1.js'); });
46902
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-49d7c793.js'); });
46885
46903
  case 5:
46886
46904
  _yield$import = _context12.sent;
46887
46905
  PfisterWWSHandler = _yield$import["default"];
@@ -46889,7 +46907,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46889
46907
  return _context12.abrupt("break", 27);
46890
46908
  case 9:
46891
46909
  _context12.next = 11;
46892
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-9ac1d546.js'); });
46910
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-c7a32173.js'); });
46893
46911
  case 11:
46894
46912
  _yield$import2 = _context12.sent;
46895
46913
  LiviqueWWSHandler = _yield$import2["default"];
@@ -46897,7 +46915,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46897
46915
  return _context12.abrupt("break", 27);
46898
46916
  case 15:
46899
46917
  _context12.next = 17;
46900
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-9225ef60.js'); });
46918
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-a4b843ca.js'); });
46901
46919
  case 17:
46902
46920
  _yield$import3 = _context12.sent;
46903
46921
  SeriousWWSHandler = _yield$import3["default"];
@@ -46905,7 +46923,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
46905
46923
  return _context12.abrupt("break", 27);
46906
46924
  case 21:
46907
46925
  _context12.next = 23;
46908
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-eaf1106a.js'); });
46926
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-2f0f6e42.js'); });
46909
46927
  case 23:
46910
46928
  _yield$import4 = _context12.sent;
46911
46929
  StandardWWSHandler = _yield$import4["default"];
@@ -48292,7 +48310,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
48292
48310
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
48293
48311
  bootMark('signalr: chunk import start');
48294
48312
  _context3.next = 3;
48295
- return Promise.resolve().then(function () { return require('./Host3DSignalR-43cccc62.js'); });
48313
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-bb5b7225.js'); });
48296
48314
  case 3:
48297
48315
  _yield$import = _context3.sent;
48298
48316
  Host3DSignalR = _yield$import["default"];
@@ -50024,7 +50042,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
50024
50042
  break;
50025
50043
  case 8:
50026
50044
  _context5.next = 10;
50027
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-afd61e89.js'); });
50045
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-a2aa5c1b.js'); });
50028
50046
  case 10:
50029
50047
  _yield$import = _context5.sent;
50030
50048
  DivaStandardPlanner = _yield$import["default"];
@@ -50035,7 +50053,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
50035
50053
  return _context5.abrupt("break", 21);
50036
50054
  case 15:
50037
50055
  _context5.next = 17;
50038
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-104200d4.js'); });
50056
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-28df37dc.js'); });
50039
50057
  case 17:
50040
50058
  _yield$import2 = _context5.sent;
50041
50059
  DivaBoxPlanner = _yield$import2["default"];
@@ -51956,8 +51974,9 @@ var DivaWebPlanner = /*#__PURE__*/function () {
51956
51974
  _context14.t3 = Object.keys((_myValues = myValues) !== null && _myValues !== void 0 ? _myValues : {});
51957
51975
  _context14.t4 = isInit;
51958
51976
  _context14.t5 = eventKey;
51959
- return _context14.abrupt("return", _context14.t0.fillBaksetforOnWebPlanerConfigChange.call(_context14.t0, _context14.t1, _context14.t2, _context14.t3, _context14.t4, _context14.t5));
51960
- case 20:
51977
+ _context14.t6 = _this.api.getLanguage();
51978
+ return _context14.abrupt("return", _context14.t0.fillBaksetforOnWebPlanerConfigChange.call(_context14.t0, _context14.t1, _context14.t2, _context14.t3, _context14.t4, _context14.t5, _context14.t6));
51979
+ case 21:
51961
51980
  case "end":
51962
51981
  return _context14.stop();
51963
51982
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-9279cd6b.js');
5
+ var index = require('./index-12d7228d.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -3,11 +3,11 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-e11ba779.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-92ca01e9.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-0e55412b.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-29d15b63.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@crystaldesign/basket-model';