@crystaldesign/web-planner-logic 26.12.0-beta.11 → 26.12.0-beta.13

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-1c01e711.js → DivaBoxPlanner-f6d00723.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-8186e18f.js → DivaStandardPlanner-83dd40b9.js} +2 -2
  3. package/build/cjs/{DoorPlanner-56c070ff.js → DoorPlanner-45d9a58b.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-76ed7e62.js → Host3DSignalR-4d5a723a.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-e8470fb7.js → LiviqueWWSHandler-406442aa.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-58d3fbc9.js → PfisterWWSHandler-b0f905a4.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-4744a5af.js → PlannerHandler2D-f584ba93.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-0cd54ef6.js → SeriousBasketHandler-9d489f71.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-e21f566f.js → ShelfPlanner-4535d476.js} +104 -76
  10. package/build/cjs/{StandardWWSHandler-81967097.js → StandardWWSHandler-7cc90edd.js} +1 -1
  11. package/build/cjs/{index-b092b563.js → index-ce1d1394.js} +37 -18
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-9a3d5bfa.js → DivaBoxPlanner-6b6e11c5.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-319631e3.js → DivaStandardPlanner-1fee34d7.js} +2 -2
  15. package/build/esm/{DoorPlanner-240561e1.js → DoorPlanner-a5396856.js} +1 -1
  16. package/build/esm/{Host3DSignalR-bfe160de.js → Host3DSignalR-76ec4fce.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-86dc5c10.js → LiviqueWWSHandler-dfb7c838.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-79f2209b.js → PfisterWWSHandler-1e9f7c66.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-58aa45d2.js → PlannerHandler2D-3fc04d8a.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-1f4342db.js → SeriousBasketHandler-c82b7e7c.js} +1 -1
  21. package/build/esm/{ShelfPlanner-3a609e86.js → ShelfPlanner-d937ab7a.js} +104 -76
  22. package/build/esm/{StandardWWSHandler-e388f4e3.js → StandardWWSHandler-45b62000.js} +1 -1
  23. package/build/esm/{index-9fae6c7a.js → index-bb2aeeee.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 +6 -3
  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-b092b563.js');
8
+ var index = require('./index-ce1d1394.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-4744a5af.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-f584ba93.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-b092b563.js');
9
+ var index = require('./index-ce1d1394.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-4744a5af.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-f584ba93.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-b092b563.js');
6
+ require('./index-ce1d1394.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-b092b563.js');
8
+ var index = require('./index-ce1d1394.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-b092b563.js');
5
+ require('./index-ce1d1394.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-b092b563.js');
5
+ var index = require('./index-ce1d1394.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-b092b563.js');
8
+ var index = require('./index-ce1d1394.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-b092b563.js');
6
+ var index = require('./index-ce1d1394.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-b092b563.js');
9
+ var index = require('./index-ce1d1394.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -65,9 +65,6 @@ var ShelfPlanner = /*#__PURE__*/function () {
65
65
  //true until the shelfaccessoires saved in the basket were restored into the cells (see restoreShelfAccessoires in the DivaSetHandler).
66
66
  //until then no initAcc may be placed, they would occupy the cells of the saved accessoires
67
67
  _defineProperty__default["default"](this, "restorePending", void 0);
68
- //accessoires of grids that were switched off by a grid rule, per gridIndex. They get placed again when the grid
69
- //becomes active again - eg a shelf that is configured from 100cm to 50cm and back keeps its accessoires
70
- _defineProperty__default["default"](this, "stashedAccessoires", {});
71
68
  /**
72
69
  * Debug trail of shelf-planner mutations (the shelf equivalent of the box
73
70
  * planner's constructionDebugStack): one entry per visibility flip, grid
@@ -77,6 +74,10 @@ var ShelfPlanner = /*#__PURE__*/function () {
77
74
  */
78
75
  _defineProperty__default["default"](this, "shelfDebugStack", []);
79
76
  _defineProperty__default["default"](this, "shelfDebugSeq", 0);
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
80
+ _defineProperty__default["default"](this, "stashedAccessoires", {});
80
81
  this.article = article;
81
82
  this.restorePending = !!article.shelfPlanData;
82
83
  this.disableCellsByElement = data.DisableCells;
@@ -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-b092b563.js');
5
+ require('./index-ce1d1394.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -19594,8 +19594,11 @@ var ArticleOptionData = /*#__PURE__*/function () {
19594
19594
 
19595
19595
  var LOG$m = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
19596
19596
  function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors, catalog, newOPT, rule) {
19597
+ var lang = catalog.api.getLanguage();
19598
+ // the palette group shows "<GroupName> (<OPG name>)", so both carry the same translated label
19599
+ var groupName = lang === 'FR' ? 'Couleurs fournisseurs' : lang === 'IT' ? 'Colori fornitori' : 'Lieferantenfarben';
19597
19600
  var catalogOPG = new OptionValueCatalogData(getCatalogOptionValueDataType('OPVSUPPLIER_COLORS', {
19598
- Name: 'Lieferantenfarben',
19601
+ Name: groupName,
19599
19602
  IsOPVG: '1'
19600
19603
  }, catalog), catalog);
19601
19604
  var articleOPG = new ArticleOptionValueData(getArticleOptionValueType(set, 'OPVSUPPLIER_COLORS', {
@@ -19605,11 +19608,18 @@ function addSupplierColors(set, catalogArticleData, allOPVsOfOPT, supplierColors
19605
19608
  var supplierColorsOpvs = new Map();
19606
19609
  for (var i = 0; i < supplierColors.length; i++) {
19607
19610
  var col = supplierColors[i];
19611
+ // shown in the catalog language; classification reads the Fr/It value names from name_locales (see DivaBasketHandler)
19612
+ var nameLocales = {
19613
+ DE: col.OptionValueName_DE,
19614
+ FR: col.OptionValueName_FR,
19615
+ IT: col.OptionValueName_IT
19616
+ };
19608
19617
  var colorCatalogOpv = new OptionValueCatalogData(getCatalogOptionValueDataType('OPV' + col.OptionValueCodex, {
19609
- Name: col.OptionValueName_DE,
19618
+ Name: nameLocales[lang] || col.OptionValueName_DE,
19619
+ Name_locales: nameLocales,
19610
19620
  IsCustomAttribute: true,
19611
19621
  HexColor: col.HexColor,
19612
- GroupName: 'Lieferantenfarben'
19622
+ GroupName: groupName
19613
19623
  }, catalog), catalog);
19614
19624
  supplierColorsOpvs.set('OPV' + col.OptionValueCodex, new ArticleOptionValueData(getArticleOptionValueType(set, 'OPV' + col.OptionValueCodex, {}, colorCatalogOpv, catalogArticleData, true, articleOPG, catalog.multiselectOptions), catalog));
19615
19625
  }
@@ -31706,7 +31716,7 @@ var DivaArticle = /*#__PURE__*/function () {
31706
31716
  break;
31707
31717
  }
31708
31718
  _context.next = 4;
31709
- return Promise.resolve().then(function () { return require('./ShelfPlanner-e21f566f.js'); });
31719
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-4535d476.js'); });
31710
31720
  case 4:
31711
31721
  _yield$import = _context.sent;
31712
31722
  ShelfPlanner = _yield$import["default"];
@@ -40240,7 +40250,7 @@ var DivaSet = /*#__PURE__*/function () {
40240
40250
  break;
40241
40251
  }
40242
40252
  _context5.next = 3;
40243
- return Promise.resolve().then(function () { return require('./DoorPlanner-56c070ff.js'); });
40253
+ return Promise.resolve().then(function () { return require('./DoorPlanner-45d9a58b.js'); });
40244
40254
  case 3:
40245
40255
  _yield$import = _context5.sent;
40246
40256
  DoorPlanner = _yield$import["default"];
@@ -47932,9 +47942,11 @@ var DivaBasketHandler = /*#__PURE__*/function () {
47932
47942
  }
47933
47943
  }, {
47934
47944
  key: "fillBaksetforOnWebPlanerConfigChange",
47935
- value: function fillBaksetforOnWebPlanerConfigChange(set, newBasket, options, isInit, eventKey) {
47945
+ value: function fillBaksetforOnWebPlanerConfigChange(set, newBasket, options, isInit, eventKey, lang) {
47936
47946
  var _this$plannerConfig$a6;
47937
47947
  this.setBasketData(this.actDivaNr, newBasket);
47948
+ // language the catalog was loaded in: `name` of options/values is in this language
47949
+ var loadedLang = lang !== null && lang !== void 0 ? lang : 'DE';
47938
47950
  var changedValues = {};
47939
47951
  var sendToSap = [];
47940
47952
  var article = set.getDivaArticles()[Object.keys(set.getDivaArticles())[0]];
@@ -48025,12 +48037,18 @@ var DivaBasketHandler = /*#__PURE__*/function () {
48025
48037
  attributeValue = name;
48026
48038
  }
48027
48039
  }
48040
+ // `name` is only the loaded catalog language; the other languages come from name_locales
48041
+ // (API2 keys them lowercase, IDM masks uppercase). Free text keeps its per-language input instead.
48042
+ var valueName = function valueName(valueLang) {
48043
+ var _val$name_locales$val, _val$name_locales, _val$name_locales2;
48044
+ 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()];
48045
+ };
48028
48046
  return {
48029
48047
  attributeValue: attributeValue,
48030
48048
  hexColor: val.hexColor,
48031
- attributeValueNameDe: name,
48032
- attributeValueNameFr: (_ops$freeTextLang3 = ops.freeTextLang) === null || _ops$freeTextLang3 === void 0 ? void 0 : _ops$freeTextLang3['FR'],
48033
- attributeValueNameIt: (_ops$freeTextLang4 = ops.freeTextLang) === null || _ops$freeTextLang4 === void 0 ? void 0 : _ops$freeTextLang4['IT'],
48049
+ attributeValueNameDe: ops.isFreeText ? name : valueName('DE'),
48050
+ attributeValueNameFr: ops.isFreeText ? (_ops$freeTextLang3 = ops.freeTextLang) === null || _ops$freeTextLang3 === void 0 ? void 0 : _ops$freeTextLang3['FR'] : valueName('FR'),
48051
+ attributeValueNameIt: ops.isFreeText ? (_ops$freeTextLang4 = ops.freeTextLang) === null || _ops$freeTextLang4 === void 0 ? void 0 : _ops$freeTextLang4['IT'] : valueName('IT'),
48034
48052
  attributeValueVCodex: (_val$vCodex = val === null || val === void 0 ? void 0 : val.vCodex) !== null && _val$vCodex !== void 0 ? _val$vCodex : undefined,
48035
48053
  position: opsKeys.indexOf(ops.option.codex),
48036
48054
  attributeName: ops.option.name,
@@ -48076,7 +48094,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
48076
48094
  break;
48077
48095
  case 3:
48078
48096
  _context12.next = 5;
48079
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-58d3fbc9.js'); });
48097
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-b0f905a4.js'); });
48080
48098
  case 5:
48081
48099
  _yield$import = _context12.sent;
48082
48100
  PfisterWWSHandler = _yield$import["default"];
@@ -48084,7 +48102,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
48084
48102
  return _context12.abrupt("break", 27);
48085
48103
  case 9:
48086
48104
  _context12.next = 11;
48087
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-e8470fb7.js'); });
48105
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-406442aa.js'); });
48088
48106
  case 11:
48089
48107
  _yield$import2 = _context12.sent;
48090
48108
  LiviqueWWSHandler = _yield$import2["default"];
@@ -48092,7 +48110,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
48092
48110
  return _context12.abrupt("break", 27);
48093
48111
  case 15:
48094
48112
  _context12.next = 17;
48095
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-0cd54ef6.js'); });
48113
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-9d489f71.js'); });
48096
48114
  case 17:
48097
48115
  _yield$import3 = _context12.sent;
48098
48116
  SeriousWWSHandler = _yield$import3["default"];
@@ -48100,7 +48118,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
48100
48118
  return _context12.abrupt("break", 27);
48101
48119
  case 21:
48102
48120
  _context12.next = 23;
48103
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-81967097.js'); });
48121
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-7cc90edd.js'); });
48104
48122
  case 23:
48105
48123
  _yield$import4 = _context12.sent;
48106
48124
  StandardWWSHandler = _yield$import4["default"];
@@ -49487,7 +49505,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
49487
49505
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
49488
49506
  bootMark('signalr: chunk import start');
49489
49507
  _context3.next = 3;
49490
- return Promise.resolve().then(function () { return require('./Host3DSignalR-76ed7e62.js'); });
49508
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-4d5a723a.js'); });
49491
49509
  case 3:
49492
49510
  _yield$import = _context3.sent;
49493
49511
  Host3DSignalR = _yield$import["default"];
@@ -51219,7 +51237,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
51219
51237
  break;
51220
51238
  case 8:
51221
51239
  _context5.next = 10;
51222
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-8186e18f.js'); });
51240
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-83dd40b9.js'); });
51223
51241
  case 10:
51224
51242
  _yield$import = _context5.sent;
51225
51243
  DivaStandardPlanner = _yield$import["default"];
@@ -51230,7 +51248,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
51230
51248
  return _context5.abrupt("break", 21);
51231
51249
  case 15:
51232
51250
  _context5.next = 17;
51233
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-1c01e711.js'); });
51251
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-f6d00723.js'); });
51234
51252
  case 17:
51235
51253
  _yield$import2 = _context5.sent;
51236
51254
  DivaBoxPlanner = _yield$import2["default"];
@@ -53243,8 +53261,9 @@ var DivaWebPlanner = /*#__PURE__*/function () {
53243
53261
  _context16.t3 = Object.keys((_myValues = myValues) !== null && _myValues !== void 0 ? _myValues : {});
53244
53262
  _context16.t4 = isInit;
53245
53263
  _context16.t5 = eventKey;
53246
- return _context16.abrupt("return", _context16.t0.fillBaksetforOnWebPlanerConfigChange.call(_context16.t0, _context16.t1, _context16.t2, _context16.t3, _context16.t4, _context16.t5));
53247
- case 20:
53264
+ _context16.t6 = _this.api.getLanguage();
53265
+ return _context16.abrupt("return", _context16.t0.fillBaksetforOnWebPlanerConfigChange.call(_context16.t0, _context16.t1, _context16.t2, _context16.t3, _context16.t4, _context16.t5, _context16.t6));
53266
+ case 21:
53248
53267
  case "end":
53249
53268
  return _context16.stop();
53250
53269
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-b092b563.js');
5
+ var index = require('./index-ce1d1394.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');