@crystaldesign/web-planner-logic 26.12.0-rc.1 → 26.12.0-rc.3

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 (32) hide show
  1. package/build/cjs/{DivaBoxPlanner-5e930cef.js → DivaBoxPlanner-578a8a01.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-9b10f74c.js → DivaStandardPlanner-9d41a3eb.js} +2 -2
  3. package/build/cjs/{DoorPlanner-3c74f8e1.js → DoorPlanner-d90e3b56.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-2ba0c49a.js → Host3DSignalR-6588e14e.js} +61 -18
  5. package/build/cjs/{LiviqueWWSHandler-a4230440.js → LiviqueWWSHandler-ffa17884.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-2d41405a.js → PfisterWWSHandler-09f8a64d.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-97dff60d.js → PlannerHandler2D-9af1a969.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-a5c22844.js → SeriousBasketHandler-0db07597.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-b30f8c39.js → ShelfPlanner-fda78d3f.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-40c2a2e8.js → StandardWWSHandler-636cddfd.js} +1 -1
  11. package/build/cjs/{index-70f9ba19.js → index-bb1fbcee.js} +44 -31
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-87010599.js → DivaBoxPlanner-e8db9fb6.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-f5f47d3b.js → DivaStandardPlanner-b41fa89f.js} +2 -2
  15. package/build/esm/{DoorPlanner-fb5b9eb2.js → DoorPlanner-1f052a8f.js} +1 -1
  16. package/build/esm/{Host3DSignalR-d316eb88.js → Host3DSignalR-44809fa6.js} +61 -18
  17. package/build/esm/{LiviqueWWSHandler-2a135ba1.js → LiviqueWWSHandler-48e2e611.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-e7d55634.js → PfisterWWSHandler-8bbda831.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-288e724b.js → PlannerHandler2D-6910cc6c.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-60cbf854.js → SeriousBasketHandler-c73bcd0d.js} +1 -1
  21. package/build/esm/{ShelfPlanner-f3a02665.js → ShelfPlanner-61c8e04e.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-eb1ba4cf.js → StandardWWSHandler-08e609c5.js} +1 -1
  23. package/build/esm/{index-9eba9def.js → index-6b294994.js} +44 -31
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  28. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts +2 -0
  29. package/build/types/web-planner-logic/src/test/host3DSignalRReconnect.test.d.ts.map +1 -0
  30. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts +2 -0
  31. package/build/types/web-planner-logic/src/test/plannerHandler3DRoomListQueue.test.d.ts.map +1 -0
  32. 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-70f9ba19.js');
8
+ var index = require('./index-bb1fbcee.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-97dff60d.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-9af1a969.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/planner-2d-core');
@@ -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-70f9ba19.js');
9
+ var index = require('./index-bb1fbcee.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-97dff60d.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-9af1a969.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-70f9ba19.js');
6
+ require('./index-bb1fbcee.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-70f9ba19.js');
8
+ var index = require('./index-bb1fbcee.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var signalr = require('@microsoft/signalr');
11
11
  var io = require('socket.io-client');
@@ -47,6 +47,8 @@ var Host3DSignalR = /*#__PURE__*/function () {
47
47
  _defineProperty__default["default"](this, "connectionErrorCount", void 0);
48
48
  _defineProperty__default["default"](this, "doIgnoreOnClosed", void 0);
49
49
  //This boolean allows to ignore the onClose connection event of the signalR connection.
50
+ _defineProperty__default["default"](this, "isClosed", false);
51
+ //Set by closeConnection(): a closed instance must never connect again.
50
52
  _defineProperty__default["default"](this, "sessionID", void 0);
51
53
  //DivaMediaService
52
54
  _defineProperty__default["default"](this, "divaMediaServiceSocketIO", undefined);
@@ -160,7 +162,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
160
162
  value: (function () {
161
163
  var _initializeConnection = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(divaNr) {
162
164
  var _this2 = this;
163
- var that;
165
+ var that, connection;
164
166
  return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
165
167
  while (1) switch (_context2.prev = _context2.next) {
166
168
  case 0:
@@ -179,11 +181,22 @@ var Host3DSignalR = /*#__PURE__*/function () {
179
181
  _context2.next = 5;
180
182
  return this.delay(100);
181
183
  case 5:
184
+ if (!this.isClosed) {
185
+ _context2.next = 7;
186
+ break;
187
+ }
188
+ return _context2.abrupt("return");
189
+ case 7:
182
190
  LOG.debug('Create SignalR connection with host: ' + this.renderSettings.Diva3DServerURL + '; RenderGroup: ' + this.renderSettings.RenderGroup);
183
191
  that = this;
184
192
  if (this.signalRConnection) {
185
193
  this.doIgnoreOnClosed = true;
186
- this.signalRConnection._completeClose();
194
+ // The replaced connection's close event is ignored below, so reset its state here.
195
+ this.connectionStarted = false;
196
+ this.successfullyLoggedIn = false;
197
+ this.successfullyJoinedDivaNr = false;
198
+ // stop() also closes the transport and cancels pending invocations, unlike the private _completeClose().
199
+ this.signalRConnection.stop()["catch"](function () {});
187
200
  this.signalRConnection = null;
188
201
  }
189
202
  if ((typeof window === 'undefined' || window).DIVA_LOGGER == 0) {
@@ -191,11 +204,14 @@ var Host3DSignalR = /*#__PURE__*/function () {
191
204
  } else {
192
205
  this.signalRConnection = new signalr.HubConnectionBuilder().withUrl(this.renderSettings.Diva3DServerURL).withHubProtocol(new signalrProtocolMsgpack.MessagePackHubProtocol()).configureLogging(signalr.LogLevel.None).build();
193
206
  }
207
+ // Callbacks of a connection that was replaced meanwhile must not change the state of the current one.
208
+ connection = this.signalRConnection;
194
209
  this.signalRConnection.on('UnvalidSessionID', this.unvalidSessionID);
195
210
  this.signalRConnection.on('noRenderClientFound', this.noRenderClientFound);
196
211
  this.signalRConnection.on('newRendering', this.newRendering);
197
212
  this.signalRConnection.on('newHQRenderScript', this.newHQRenderScript);
198
213
  this.signalRConnection.start().then(function () {
214
+ if (connection !== that.signalRConnection) return;
199
215
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
200
216
  index.bootMark('signalr: connected');
201
217
  that.connectionStarted = true;
@@ -208,6 +224,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
208
224
  that.reconnectingErrorCount = 0;
209
225
  that.login(); //After connecting to signalR, the login should be performed
210
226
  })["catch"](function (err) {
227
+ if (connection !== that.signalRConnection) return;
211
228
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
212
229
  LOG.error(new DivaUtils.DivaError('Connection error. Message: ' + err.toString(), {
213
230
  code: 'WC_0014'
@@ -222,26 +239,32 @@ var Host3DSignalR = /*#__PURE__*/function () {
222
239
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
223
240
  while (1) switch (_context.prev = _context.next) {
224
241
  case 0:
242
+ if (!(connection !== _this2.signalRConnection)) {
243
+ _context.next = 2;
244
+ break;
245
+ }
246
+ return _context.abrupt("return");
247
+ case 2:
225
248
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D initSignalRConnection');
226
249
  LOG.warn('Connection with 3D Host gets lost. Try to reconnect.', 'WC_0014');
227
250
  that.connectionStarted = false;
228
251
  _this2.successfullyLoggedIn = false;
229
252
  _this2.successfullyJoinedDivaNr = false;
230
253
  if (!_this2.doIgnoreOnClosed) {
231
- _context.next = 7;
254
+ _context.next = 9;
232
255
  break;
233
256
  }
234
257
  return _context.abrupt("return");
235
- case 7:
258
+ case 9:
236
259
  _this2.reconnectAfterError = true;
237
260
  that.initializeConnection();
238
- case 9:
261
+ case 11:
239
262
  case "end":
240
263
  return _context.stop();
241
264
  }
242
265
  }, _callee);
243
266
  })));
244
- case 15:
267
+ case 18:
245
268
  case "end":
246
269
  return _context2.stop();
247
270
  }
@@ -442,11 +465,15 @@ var Host3DSignalR = /*#__PURE__*/function () {
442
465
  }, {
443
466
  key: "closeConnection",
444
467
  value: function closeConnection() {
468
+ this.isClosed = true;
445
469
  if (this.signalRConnection) {
446
470
  this.doIgnoreOnClosed = true;
447
471
  this.signalRConnection.invoke('LeaveWebClient')["catch"](function () {});
448
472
  LOG.debug('SignalRConnection: Close Connection and say byby to Diva3DHost.');
449
473
  this.signalRConnection.stop()["catch"](function () {});
474
+ // Drops the closed connection's callbacks: stopping it while it still starts rejects start(), which would
475
+ // otherwise reconnect and log in for a planner that is gone.
476
+ this.signalRConnection = null;
450
477
  }
451
478
 
452
479
  // Also close the socket connection to DivaMediaService
@@ -465,7 +492,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
465
492
  key: "login",
466
493
  value: (function () {
467
494
  var _login = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6() {
468
- var sessionId, that;
495
+ var connection, sessionId, that;
469
496
  return _regeneratorRuntime__default["default"].wrap(function _callee6$(_context6) {
470
497
  while (1) switch (_context6.prev = _context6.next) {
471
498
  case 0:
@@ -473,11 +500,21 @@ var Host3DSignalR = /*#__PURE__*/function () {
473
500
  //_this.ServerLog("Login","send Login - userID:" + _userID + ", deviceID:" + _deviceID + ", divaSessionID:" SaveProjectWi+ _divaSessionID + ", info:" + _Application);
474
501
  DivaUtils__default["default"].startSpanOfApm('PlannerHandler3D login');
475
502
  index.bootMark('signalr: LoginWebPlanner sent');
476
- _context6.prev = 3;
477
- _context6.next = 6;
478
- return this.signalRConnection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
479
- case 6:
503
+
504
+ // A login answered after its connection was replaced belongs to the old connection: reporting it would mark the
505
+ // client as logged in while the new connection is not started yet.
506
+ connection = this.signalRConnection;
507
+ _context6.prev = 4;
508
+ _context6.next = 7;
509
+ return connection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
510
+ case 7:
480
511
  sessionId = _context6.sent;
512
+ if (!(connection !== this.signalRConnection)) {
513
+ _context6.next = 10;
514
+ break;
515
+ }
516
+ return _context6.abrupt("return");
517
+ case 10:
481
518
  index.bootMark('signalr: LoginWebPlanner acked', {
482
519
  ok: sessionId != '' ? 1 : 0
483
520
  });
@@ -494,21 +531,27 @@ var Host3DSignalR = /*#__PURE__*/function () {
494
531
  status: 'ERROR'
495
532
  });
496
533
  }
497
- _context6.next = 17;
534
+ _context6.next = 22;
498
535
  break;
499
- case 12:
500
- _context6.prev = 12;
501
- _context6.t0 = _context6["catch"](3);
536
+ case 15:
537
+ _context6.prev = 15;
538
+ _context6.t0 = _context6["catch"](4);
539
+ if (!(connection !== this.signalRConnection)) {
540
+ _context6.next = 19;
541
+ break;
542
+ }
543
+ return _context6.abrupt("return");
544
+ case 19:
502
545
  DivaUtils__default["default"].endSpanOfApm('PlannerHandler3D login');
503
546
  that = this;
504
547
  this.handleConnectionError(_context6.t0, function () {
505
548
  that.login();
506
549
  });
507
- case 17:
550
+ case 22:
508
551
  case "end":
509
552
  return _context6.stop();
510
553
  }
511
- }, _callee6, this, [[3, 12]]);
554
+ }, _callee6, this, [[4, 15]]);
512
555
  }));
513
556
  function login() {
514
557
  return _login.apply(this, arguments);
@@ -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-70f9ba19.js');
5
+ require('./index-bb1fbcee.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-70f9ba19.js');
5
+ var index = require('./index-bb1fbcee.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-70f9ba19.js');
8
+ var index = require('./index-bb1fbcee.js');
9
9
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
10
10
  var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
11
11
  var _get = require('@babel/runtime/helpers/get');
@@ -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-70f9ba19.js');
6
+ var index = require('./index-bb1fbcee.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-70f9ba19.js');
9
+ var index = require('./index-bb1fbcee.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-70f9ba19.js');
5
+ require('./index-bb1fbcee.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -32702,7 +32702,7 @@ var DivaArticle = /*#__PURE__*/function () {
32702
32702
  break;
32703
32703
  }
32704
32704
  _context.next = 4;
32705
- return Promise.resolve().then(function () { return require('./ShelfPlanner-b30f8c39.js'); });
32705
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-fda78d3f.js'); });
32706
32706
  case 4:
32707
32707
  _yield$import = _context.sent;
32708
32708
  ShelfPlanner = _yield$import["default"];
@@ -41348,7 +41348,7 @@ var DivaSet = /*#__PURE__*/function () {
41348
41348
  break;
41349
41349
  }
41350
41350
  _context5.next = 3;
41351
- return Promise.resolve().then(function () { return require('./DoorPlanner-3c74f8e1.js'); });
41351
+ return Promise.resolve().then(function () { return require('./DoorPlanner-d90e3b56.js'); });
41352
41352
  case 3:
41353
41353
  _yield$import = _context5.sent;
41354
41354
  DoorPlanner = _yield$import["default"];
@@ -49302,7 +49302,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49302
49302
  break;
49303
49303
  case 3:
49304
49304
  _context12.next = 5;
49305
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-2d41405a.js'); });
49305
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-09f8a64d.js'); });
49306
49306
  case 5:
49307
49307
  _yield$import = _context12.sent;
49308
49308
  PfisterWWSHandler = _yield$import["default"];
@@ -49310,7 +49310,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49310
49310
  return _context12.abrupt("break", 27);
49311
49311
  case 9:
49312
49312
  _context12.next = 11;
49313
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-a4230440.js'); });
49313
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-ffa17884.js'); });
49314
49314
  case 11:
49315
49315
  _yield$import2 = _context12.sent;
49316
49316
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49318,7 +49318,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49318
49318
  return _context12.abrupt("break", 27);
49319
49319
  case 15:
49320
49320
  _context12.next = 17;
49321
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-a5c22844.js'); });
49321
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-0db07597.js'); });
49322
49322
  case 17:
49323
49323
  _yield$import3 = _context12.sent;
49324
49324
  SeriousWWSHandler = _yield$import3["default"];
@@ -49326,7 +49326,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49326
49326
  return _context12.abrupt("break", 27);
49327
49327
  case 21:
49328
49328
  _context12.next = 23;
49329
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-40c2a2e8.js'); });
49329
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-636cddfd.js'); });
49330
49330
  case 23:
49331
49331
  _yield$import4 = _context12.sent;
49332
49332
  StandardWWSHandler = _yield$import4["default"];
@@ -50705,7 +50705,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50705
50705
  key: "initializeConnection",
50706
50706
  value: function () {
50707
50707
  var _initializeConnection = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
50708
- var _this$connectionHandl2;
50708
+ var _this$connectionHandl2, _this$connectionHandl3;
50709
50709
  var _yield$import, Host3DSignalR;
50710
50710
  return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
50711
50711
  while (1) switch (_context3.prev = _context3.next) {
@@ -50713,16 +50713,18 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50713
50713
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50714
50714
  bootMark('signalr: chunk import start');
50715
50715
  _context3.next = 3;
50716
- return Promise.resolve().then(function () { return require('./Host3DSignalR-2ba0c49a.js'); });
50716
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-6588e14e.js'); });
50717
50717
  case 3:
50718
50718
  _yield$import = _context3.sent;
50719
50719
  Host3DSignalR = _yield$import["default"];
50720
50720
  bootMark('signalr: chunk imported');
50721
+ // A replaced connection left open stays logged in on the 3D host and keeps reporting to this handler.
50722
+ (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 || _this$connectionHandl2.closeConnection();
50721
50723
  this.connectionHandler = new Host3DSignalR(this.renderSettings, this);
50722
50724
  LOG$4.debug('initializeConnection to Host3DSignalR');
50723
- _context3.next = 10;
50724
- return (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 ? void 0 : _this$connectionHandl2.initializeConnection();
50725
- case 10:
50725
+ _context3.next = 11;
50726
+ return (_this$connectionHandl3 = this.connectionHandler) === null || _this$connectionHandl3 === void 0 ? void 0 : _this$connectionHandl3.initializeConnection();
50727
+ case 11:
50726
50728
  case "end":
50727
50729
  return _context3.stop();
50728
50730
  }
@@ -50737,12 +50739,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50737
50739
  key: "joinDivaNr",
50738
50740
  value: function () {
50739
50741
  var _joinDivaNr = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(divaNr) {
50740
- var _this$connectionHandl3;
50742
+ var _this$connectionHandl4;
50741
50743
  return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
50742
50744
  while (1) switch (_context4.prev = _context4.next) {
50743
50745
  case 0:
50744
50746
  this.divaNr = divaNr;
50745
- if (!((_this$connectionHandl3 = this.connectionHandler) !== null && _this$connectionHandl3 !== void 0 && _this$connectionHandl3.getConnectionReady())) {
50747
+ if (!((_this$connectionHandl4 = this.connectionHandler) !== null && _this$connectionHandl4 !== void 0 && _this$connectionHandl4.getConnectionReady())) {
50746
50748
  _context4.next = 4;
50747
50749
  break;
50748
50750
  }
@@ -50764,12 +50766,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50764
50766
  key: "onConnectionInitialized",
50765
50767
  value: function () {
50766
50768
  var _onConnectionInitialized = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(params) {
50767
- var _this$connectionHandl4;
50768
- var i;
50769
+ var _this$connectionHandl5;
50770
+ var queuedRoomLists, _iterator, _step, roomList;
50769
50771
  return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
50770
50772
  while (1) switch (_context5.prev = _context5.next) {
50771
50773
  case 0:
50772
- (_this$connectionHandl4 = this.connectionHandler) === null || _this$connectionHandl4 === void 0 || _this$connectionHandl4.joinDivaNr(this.divaNr);
50774
+ (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 || _this$connectionHandl5.joinDivaNr(this.divaNr);
50773
50775
  if (!(params.status != 'SUCCESSFULL')) {
50774
50776
  _context5.next = 3;
50775
50777
  break;
@@ -50778,10 +50780,21 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50778
50780
  case 3:
50779
50781
  //Login
50780
50782
  if (this.todoAfterLogin.loadRoomlist.length > 0) {
50781
- for (i = 0; i < this.todoAfterLogin.loadRoomlist.length; i++) {
50782
- this.initializeStaticRoomList(this.todoAfterLogin.loadRoomlist[i].list, this.todoAfterLogin.loadRoomlist[i].mainCategory);
50783
- }
50783
+ // Take the queue before replaying it: a replay while the connection is not ready parks the list again,
50784
+ // and appending to the list being iterated never ends the loop.
50785
+ queuedRoomLists = this.todoAfterLogin.loadRoomlist;
50784
50786
  this.todoAfterLogin.loadRoomlist = [];
50787
+ _iterator = _createForOfIteratorHelper$3(queuedRoomLists);
50788
+ try {
50789
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50790
+ roomList = _step.value;
50791
+ this.initializeStaticRoomList(roomList.list, roomList.mainCategory);
50792
+ }
50793
+ } catch (err) {
50794
+ _iterator.e(err);
50795
+ } finally {
50796
+ _iterator.f();
50797
+ }
50785
50798
  }
50786
50799
  if (this.todoAfterLogin.initViewPoint.doUpdate) {
50787
50800
  this.initializeViewPoint(this.todoAfterLogin.initViewPoint.stdWhiteRoom);
@@ -50836,22 +50849,22 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50836
50849
  hqRenderScript.HqRenderScript = hqRenderScriptString;
50837
50850
  this.hqRenderScriptCache.set(planningHash, hqRenderScript);
50838
50851
  this.waitForHQRenderScript["delete"](planningHash);
50839
- var _iterator = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50840
- _step;
50852
+ var _iterator2 = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50853
+ _step2;
50841
50854
  try {
50842
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
50843
- var _step$value = _slicedToArray__default["default"](_step.value, 2),
50844
- key = _step$value[0],
50845
- _hqr = _step$value[1];
50855
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
50856
+ var _step2$value = _slicedToArray__default["default"](_step2.value, 2),
50857
+ key = _step2$value[0],
50858
+ _hqr = _step2$value[1];
50846
50859
  if (!(_hqr !== null && _hqr !== void 0 && _hqr.CreationTime)) continue;
50847
50860
  if (_hqr.CreationTime < hqRenderScript.CreationTime) this.waitForHQRenderScript["delete"](key);
50848
50861
  }
50849
50862
 
50850
50863
  // The AR live viewer is fed from this path too — it is the only source of render scripts.
50851
50864
  } catch (err) {
50852
- _iterator.e(err);
50865
+ _iterator2.e(err);
50853
50866
  } finally {
50854
- _iterator.f();
50867
+ _iterator2.f();
50855
50868
  }
50856
50869
  this.sendARRenderScript(hqRenderScript, planningHash);
50857
50870
  this.updatePlannerHqRenderScriptInView(hqRenderScript);
@@ -51223,7 +51236,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51223
51236
  value: (function () {
51224
51237
  var _request3D = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee8(params) {
51225
51238
  var _params$renderRequest, _params$renderRequest2, _params$renderRequest3, _params$renderRequest4, _params$renderRequest5, _params$renderRequest6, _this$viewPointHandle, _this$viewPointHandle2;
51226
- var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl5, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51239
+ var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl6, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51227
51240
  return _regeneratorRuntime__default["default"].wrap(function _callee8$(_context8) {
51228
51241
  while (1) switch (_context8.prev = _context8.next) {
51229
51242
  case 0:
@@ -51346,7 +51359,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51346
51359
  }
51347
51360
  if (params.catalogData.lang) params.planningData.SCE.Lang = params.catalogData.lang;
51348
51361
  bootMark('3d: request3D sent to host');
51349
- returnRequest = (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 ? void 0 : _this$connectionHandl5.request3D({
51362
+ returnRequest = (_this$connectionHandl6 = this.connectionHandler) === null || _this$connectionHandl6 === void 0 ? void 0 : _this$connectionHandl6.request3D({
51350
51363
  doRequestRendering: params.doRequestRendering,
51351
51364
  doRequestHqRenderScript: params.doRequestHqRenderScript,
51352
51365
  planningHash: planningHash,
@@ -52445,7 +52458,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52445
52458
  break;
52446
52459
  case 8:
52447
52460
  _context5.next = 10;
52448
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-9b10f74c.js'); });
52461
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-9d41a3eb.js'); });
52449
52462
  case 10:
52450
52463
  _yield$import = _context5.sent;
52451
52464
  DivaStandardPlanner = _yield$import["default"];
@@ -52456,7 +52469,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52456
52469
  return _context5.abrupt("break", 21);
52457
52470
  case 15:
52458
52471
  _context5.next = 17;
52459
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-5e930cef.js'); });
52472
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-578a8a01.js'); });
52460
52473
  case 17:
52461
52474
  _yield$import2 = _context5.sent;
52462
52475
  DivaBoxPlanner = _yield$import2["default"];
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-70f9ba19.js');
5
+ var index = require('./index-bb1fbcee.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-9eba9def.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-6b294994.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-288e724b.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-6910cc6c.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@crystaldesign/planner-2d-core';
@@ -4,10 +4,10 @@ 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 { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-9eba9def.js';
7
+ import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-6b294994.js';
8
8
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
9
9
  import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-288e724b.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-6910cc6c.js';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import './index-9eba9def.js';
4
+ import './index-6b294994.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -3,7 +3,7 @@ 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 { d as bootMark, R as Rendering, H as HQRenderScript } from './index-9eba9def.js';
6
+ import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-6b294994.js';
7
7
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
8
8
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
9
9
  import io from 'socket.io-client';
@@ -35,6 +35,8 @@ var Host3DSignalR = /*#__PURE__*/function () {
35
35
  _defineProperty(this, "connectionErrorCount", void 0);
36
36
  _defineProperty(this, "doIgnoreOnClosed", void 0);
37
37
  //This boolean allows to ignore the onClose connection event of the signalR connection.
38
+ _defineProperty(this, "isClosed", false);
39
+ //Set by closeConnection(): a closed instance must never connect again.
38
40
  _defineProperty(this, "sessionID", void 0);
39
41
  //DivaMediaService
40
42
  _defineProperty(this, "divaMediaServiceSocketIO", undefined);
@@ -148,7 +150,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
148
150
  value: (function () {
149
151
  var _initializeConnection = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(divaNr) {
150
152
  var _this2 = this;
151
- var that;
153
+ var that, connection;
152
154
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
153
155
  while (1) switch (_context2.prev = _context2.next) {
154
156
  case 0:
@@ -167,11 +169,22 @@ var Host3DSignalR = /*#__PURE__*/function () {
167
169
  _context2.next = 5;
168
170
  return this.delay(100);
169
171
  case 5:
172
+ if (!this.isClosed) {
173
+ _context2.next = 7;
174
+ break;
175
+ }
176
+ return _context2.abrupt("return");
177
+ case 7:
170
178
  LOG.debug('Create SignalR connection with host: ' + this.renderSettings.Diva3DServerURL + '; RenderGroup: ' + this.renderSettings.RenderGroup);
171
179
  that = this;
172
180
  if (this.signalRConnection) {
173
181
  this.doIgnoreOnClosed = true;
174
- this.signalRConnection._completeClose();
182
+ // The replaced connection's close event is ignored below, so reset its state here.
183
+ this.connectionStarted = false;
184
+ this.successfullyLoggedIn = false;
185
+ this.successfullyJoinedDivaNr = false;
186
+ // stop() also closes the transport and cancels pending invocations, unlike the private _completeClose().
187
+ this.signalRConnection.stop()["catch"](function () {});
175
188
  this.signalRConnection = null;
176
189
  }
177
190
  if ((typeof window === 'undefined' || window).DIVA_LOGGER == 0) {
@@ -179,11 +192,14 @@ var Host3DSignalR = /*#__PURE__*/function () {
179
192
  } else {
180
193
  this.signalRConnection = new HubConnectionBuilder().withUrl(this.renderSettings.Diva3DServerURL).withHubProtocol(new MessagePackHubProtocol()).configureLogging(LogLevel.None).build();
181
194
  }
195
+ // Callbacks of a connection that was replaced meanwhile must not change the state of the current one.
196
+ connection = this.signalRConnection;
182
197
  this.signalRConnection.on('UnvalidSessionID', this.unvalidSessionID);
183
198
  this.signalRConnection.on('noRenderClientFound', this.noRenderClientFound);
184
199
  this.signalRConnection.on('newRendering', this.newRendering);
185
200
  this.signalRConnection.on('newHQRenderScript', this.newHQRenderScript);
186
201
  this.signalRConnection.start().then(function () {
202
+ if (connection !== that.signalRConnection) return;
187
203
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
188
204
  bootMark('signalr: connected');
189
205
  that.connectionStarted = true;
@@ -196,6 +212,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
196
212
  that.reconnectingErrorCount = 0;
197
213
  that.login(); //After connecting to signalR, the login should be performed
198
214
  })["catch"](function (err) {
215
+ if (connection !== that.signalRConnection) return;
199
216
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
200
217
  LOG.error(new DivaError('Connection error. Message: ' + err.toString(), {
201
218
  code: 'WC_0014'
@@ -210,26 +227,32 @@ var Host3DSignalR = /*#__PURE__*/function () {
210
227
  return _regeneratorRuntime.wrap(function _callee$(_context) {
211
228
  while (1) switch (_context.prev = _context.next) {
212
229
  case 0:
230
+ if (!(connection !== _this2.signalRConnection)) {
231
+ _context.next = 2;
232
+ break;
233
+ }
234
+ return _context.abrupt("return");
235
+ case 2:
213
236
  DivaUtils.endSpanOfApm('PlannerHandler3D initSignalRConnection');
214
237
  LOG.warn('Connection with 3D Host gets lost. Try to reconnect.', 'WC_0014');
215
238
  that.connectionStarted = false;
216
239
  _this2.successfullyLoggedIn = false;
217
240
  _this2.successfullyJoinedDivaNr = false;
218
241
  if (!_this2.doIgnoreOnClosed) {
219
- _context.next = 7;
242
+ _context.next = 9;
220
243
  break;
221
244
  }
222
245
  return _context.abrupt("return");
223
- case 7:
246
+ case 9:
224
247
  _this2.reconnectAfterError = true;
225
248
  that.initializeConnection();
226
- case 9:
249
+ case 11:
227
250
  case "end":
228
251
  return _context.stop();
229
252
  }
230
253
  }, _callee);
231
254
  })));
232
- case 15:
255
+ case 18:
233
256
  case "end":
234
257
  return _context2.stop();
235
258
  }
@@ -430,11 +453,15 @@ var Host3DSignalR = /*#__PURE__*/function () {
430
453
  }, {
431
454
  key: "closeConnection",
432
455
  value: function closeConnection() {
456
+ this.isClosed = true;
433
457
  if (this.signalRConnection) {
434
458
  this.doIgnoreOnClosed = true;
435
459
  this.signalRConnection.invoke('LeaveWebClient')["catch"](function () {});
436
460
  LOG.debug('SignalRConnection: Close Connection and say byby to Diva3DHost.');
437
461
  this.signalRConnection.stop()["catch"](function () {});
462
+ // Drops the closed connection's callbacks: stopping it while it still starts rejects start(), which would
463
+ // otherwise reconnect and log in for a planner that is gone.
464
+ this.signalRConnection = null;
438
465
  }
439
466
 
440
467
  // Also close the socket connection to DivaMediaService
@@ -453,7 +480,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
453
480
  key: "login",
454
481
  value: (function () {
455
482
  var _login = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
456
- var sessionId, that;
483
+ var connection, sessionId, that;
457
484
  return _regeneratorRuntime.wrap(function _callee6$(_context6) {
458
485
  while (1) switch (_context6.prev = _context6.next) {
459
486
  case 0:
@@ -461,11 +488,21 @@ var Host3DSignalR = /*#__PURE__*/function () {
461
488
  //_this.ServerLog("Login","send Login - userID:" + _userID + ", deviceID:" + _deviceID + ", divaSessionID:" SaveProjectWi+ _divaSessionID + ", info:" + _Application);
462
489
  DivaUtils.startSpanOfApm('PlannerHandler3D login');
463
490
  bootMark('signalr: LoginWebPlanner sent');
464
- _context6.prev = 3;
465
- _context6.next = 6;
466
- return this.signalRConnection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
467
- case 6:
491
+
492
+ // A login answered after its connection was replaced belongs to the old connection: reporting it would mark the
493
+ // client as logged in while the new connection is not started yet.
494
+ connection = this.signalRConnection;
495
+ _context6.prev = 4;
496
+ _context6.next = 7;
497
+ return connection.invoke('LoginWebPlanner', this.renderSettings.UserID, this.renderSettings.DeviceID, this.renderSettings.DivaSessionID, this.renderSettings.ApplicationName);
498
+ case 7:
468
499
  sessionId = _context6.sent;
500
+ if (!(connection !== this.signalRConnection)) {
501
+ _context6.next = 10;
502
+ break;
503
+ }
504
+ return _context6.abrupt("return");
505
+ case 10:
469
506
  bootMark('signalr: LoginWebPlanner acked', {
470
507
  ok: sessionId != '' ? 1 : 0
471
508
  });
@@ -482,21 +519,27 @@ var Host3DSignalR = /*#__PURE__*/function () {
482
519
  status: 'ERROR'
483
520
  });
484
521
  }
485
- _context6.next = 17;
522
+ _context6.next = 22;
486
523
  break;
487
- case 12:
488
- _context6.prev = 12;
489
- _context6.t0 = _context6["catch"](3);
524
+ case 15:
525
+ _context6.prev = 15;
526
+ _context6.t0 = _context6["catch"](4);
527
+ if (!(connection !== this.signalRConnection)) {
528
+ _context6.next = 19;
529
+ break;
530
+ }
531
+ return _context6.abrupt("return");
532
+ case 19:
490
533
  DivaUtils.endSpanOfApm('PlannerHandler3D login');
491
534
  that = this;
492
535
  this.handleConnectionError(_context6.t0, function () {
493
536
  that.login();
494
537
  });
495
- case 17:
538
+ case 22:
496
539
  case "end":
497
540
  return _context6.stop();
498
541
  }
499
- }, _callee6, this, [[3, 12]]);
542
+ }, _callee6, this, [[4, 15]]);
500
543
  }));
501
544
  function login() {
502
545
  return _login.apply(this, arguments);
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-9eba9def.js';
3
+ import './index-6b294994.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import { a as articleHandlerInstance } from './index-9eba9def.js';
3
+ import { a as articleHandlerInstance } from './index-6b294994.js';
4
4
  import { SAPOrderLineData } from '@crystaldesign/basket-model';
5
5
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
@@ -3,7 +3,7 @@ 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, S as SVGUtils } from './index-9eba9def.js';
6
+ import { c as Vector2, S as SVGUtils } from './index-6b294994.js';
7
7
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
8
8
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
9
9
  import _get from '@babel/runtime/helpers/get';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { s as summaryHandlerInstance } from './index-9eba9def.js';
4
+ import { s as summaryHandlerInstance } from './index-6b294994.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -4,7 +4,7 @@ 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-9eba9def.js';
7
+ import { G as Grid, a as articleHandlerInstance, b as setHandlerInstance } from './index-6b294994.js';
8
8
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-9eba9def.js';
3
+ import './index-6b294994.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -32681,7 +32681,7 @@ var DivaArticle = /*#__PURE__*/function () {
32681
32681
  break;
32682
32682
  }
32683
32683
  _context.next = 4;
32684
- return import('./ShelfPlanner-f3a02665.js');
32684
+ return import('./ShelfPlanner-61c8e04e.js');
32685
32685
  case 4:
32686
32686
  _yield$import = _context.sent;
32687
32687
  ShelfPlanner = _yield$import["default"];
@@ -41327,7 +41327,7 @@ var DivaSet = /*#__PURE__*/function () {
41327
41327
  break;
41328
41328
  }
41329
41329
  _context5.next = 3;
41330
- return import('./DoorPlanner-fb5b9eb2.js');
41330
+ return import('./DoorPlanner-1f052a8f.js');
41331
41331
  case 3:
41332
41332
  _yield$import = _context5.sent;
41333
41333
  DoorPlanner = _yield$import["default"];
@@ -49281,7 +49281,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49281
49281
  break;
49282
49282
  case 3:
49283
49283
  _context12.next = 5;
49284
- return import('./PfisterWWSHandler-e7d55634.js');
49284
+ return import('./PfisterWWSHandler-8bbda831.js');
49285
49285
  case 5:
49286
49286
  _yield$import = _context12.sent;
49287
49287
  PfisterWWSHandler = _yield$import["default"];
@@ -49289,7 +49289,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49289
49289
  return _context12.abrupt("break", 27);
49290
49290
  case 9:
49291
49291
  _context12.next = 11;
49292
- return import('./LiviqueWWSHandler-2a135ba1.js');
49292
+ return import('./LiviqueWWSHandler-48e2e611.js');
49293
49293
  case 11:
49294
49294
  _yield$import2 = _context12.sent;
49295
49295
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49297,7 +49297,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49297
49297
  return _context12.abrupt("break", 27);
49298
49298
  case 15:
49299
49299
  _context12.next = 17;
49300
- return import('./SeriousBasketHandler-60cbf854.js');
49300
+ return import('./SeriousBasketHandler-c73bcd0d.js');
49301
49301
  case 17:
49302
49302
  _yield$import3 = _context12.sent;
49303
49303
  SeriousWWSHandler = _yield$import3["default"];
@@ -49305,7 +49305,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49305
49305
  return _context12.abrupt("break", 27);
49306
49306
  case 21:
49307
49307
  _context12.next = 23;
49308
- return import('./StandardWWSHandler-eb1ba4cf.js');
49308
+ return import('./StandardWWSHandler-08e609c5.js');
49309
49309
  case 23:
49310
49310
  _yield$import4 = _context12.sent;
49311
49311
  StandardWWSHandler = _yield$import4["default"];
@@ -50684,7 +50684,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50684
50684
  key: "initializeConnection",
50685
50685
  value: function () {
50686
50686
  var _initializeConnection = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
50687
- var _this$connectionHandl2;
50687
+ var _this$connectionHandl2, _this$connectionHandl3;
50688
50688
  var _yield$import, Host3DSignalR;
50689
50689
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
50690
50690
  while (1) switch (_context3.prev = _context3.next) {
@@ -50692,16 +50692,18 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50692
50692
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50693
50693
  bootMark('signalr: chunk import start');
50694
50694
  _context3.next = 3;
50695
- return import('./Host3DSignalR-d316eb88.js');
50695
+ return import('./Host3DSignalR-44809fa6.js');
50696
50696
  case 3:
50697
50697
  _yield$import = _context3.sent;
50698
50698
  Host3DSignalR = _yield$import["default"];
50699
50699
  bootMark('signalr: chunk imported');
50700
+ // A replaced connection left open stays logged in on the 3D host and keeps reporting to this handler.
50701
+ (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 || _this$connectionHandl2.closeConnection();
50700
50702
  this.connectionHandler = new Host3DSignalR(this.renderSettings, this);
50701
50703
  LOG$4.debug('initializeConnection to Host3DSignalR');
50702
- _context3.next = 10;
50703
- return (_this$connectionHandl2 = this.connectionHandler) === null || _this$connectionHandl2 === void 0 ? void 0 : _this$connectionHandl2.initializeConnection();
50704
- case 10:
50704
+ _context3.next = 11;
50705
+ return (_this$connectionHandl3 = this.connectionHandler) === null || _this$connectionHandl3 === void 0 ? void 0 : _this$connectionHandl3.initializeConnection();
50706
+ case 11:
50705
50707
  case "end":
50706
50708
  return _context3.stop();
50707
50709
  }
@@ -50716,12 +50718,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50716
50718
  key: "joinDivaNr",
50717
50719
  value: function () {
50718
50720
  var _joinDivaNr = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(divaNr) {
50719
- var _this$connectionHandl3;
50721
+ var _this$connectionHandl4;
50720
50722
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
50721
50723
  while (1) switch (_context4.prev = _context4.next) {
50722
50724
  case 0:
50723
50725
  this.divaNr = divaNr;
50724
- if (!((_this$connectionHandl3 = this.connectionHandler) !== null && _this$connectionHandl3 !== void 0 && _this$connectionHandl3.getConnectionReady())) {
50726
+ if (!((_this$connectionHandl4 = this.connectionHandler) !== null && _this$connectionHandl4 !== void 0 && _this$connectionHandl4.getConnectionReady())) {
50725
50727
  _context4.next = 4;
50726
50728
  break;
50727
50729
  }
@@ -50743,12 +50745,12 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50743
50745
  key: "onConnectionInitialized",
50744
50746
  value: function () {
50745
50747
  var _onConnectionInitialized = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(params) {
50746
- var _this$connectionHandl4;
50747
- var i;
50748
+ var _this$connectionHandl5;
50749
+ var queuedRoomLists, _iterator, _step, roomList;
50748
50750
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
50749
50751
  while (1) switch (_context5.prev = _context5.next) {
50750
50752
  case 0:
50751
- (_this$connectionHandl4 = this.connectionHandler) === null || _this$connectionHandl4 === void 0 || _this$connectionHandl4.joinDivaNr(this.divaNr);
50753
+ (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 || _this$connectionHandl5.joinDivaNr(this.divaNr);
50752
50754
  if (!(params.status != 'SUCCESSFULL')) {
50753
50755
  _context5.next = 3;
50754
50756
  break;
@@ -50757,10 +50759,21 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50757
50759
  case 3:
50758
50760
  //Login
50759
50761
  if (this.todoAfterLogin.loadRoomlist.length > 0) {
50760
- for (i = 0; i < this.todoAfterLogin.loadRoomlist.length; i++) {
50761
- this.initializeStaticRoomList(this.todoAfterLogin.loadRoomlist[i].list, this.todoAfterLogin.loadRoomlist[i].mainCategory);
50762
- }
50762
+ // Take the queue before replaying it: a replay while the connection is not ready parks the list again,
50763
+ // and appending to the list being iterated never ends the loop.
50764
+ queuedRoomLists = this.todoAfterLogin.loadRoomlist;
50763
50765
  this.todoAfterLogin.loadRoomlist = [];
50766
+ _iterator = _createForOfIteratorHelper$3(queuedRoomLists);
50767
+ try {
50768
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50769
+ roomList = _step.value;
50770
+ this.initializeStaticRoomList(roomList.list, roomList.mainCategory);
50771
+ }
50772
+ } catch (err) {
50773
+ _iterator.e(err);
50774
+ } finally {
50775
+ _iterator.f();
50776
+ }
50764
50777
  }
50765
50778
  if (this.todoAfterLogin.initViewPoint.doUpdate) {
50766
50779
  this.initializeViewPoint(this.todoAfterLogin.initViewPoint.stdWhiteRoom);
@@ -50815,22 +50828,22 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50815
50828
  hqRenderScript.HqRenderScript = hqRenderScriptString;
50816
50829
  this.hqRenderScriptCache.set(planningHash, hqRenderScript);
50817
50830
  this.waitForHQRenderScript["delete"](planningHash);
50818
- var _iterator = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50819
- _step;
50831
+ var _iterator2 = _createForOfIteratorHelper$3(this.waitForHQRenderScript.entries()),
50832
+ _step2;
50820
50833
  try {
50821
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
50822
- var _step$value = _slicedToArray(_step.value, 2),
50823
- key = _step$value[0],
50824
- _hqr = _step$value[1];
50834
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
50835
+ var _step2$value = _slicedToArray(_step2.value, 2),
50836
+ key = _step2$value[0],
50837
+ _hqr = _step2$value[1];
50825
50838
  if (!(_hqr !== null && _hqr !== void 0 && _hqr.CreationTime)) continue;
50826
50839
  if (_hqr.CreationTime < hqRenderScript.CreationTime) this.waitForHQRenderScript["delete"](key);
50827
50840
  }
50828
50841
 
50829
50842
  // The AR live viewer is fed from this path too — it is the only source of render scripts.
50830
50843
  } catch (err) {
50831
- _iterator.e(err);
50844
+ _iterator2.e(err);
50832
50845
  } finally {
50833
- _iterator.f();
50846
+ _iterator2.f();
50834
50847
  }
50835
50848
  this.sendARRenderScript(hqRenderScript, planningHash);
50836
50849
  this.updatePlannerHqRenderScriptInView(hqRenderScript);
@@ -51202,7 +51215,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51202
51215
  value: (function () {
51203
51216
  var _request3D = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(params) {
51204
51217
  var _params$renderRequest, _params$renderRequest2, _params$renderRequest3, _params$renderRequest4, _params$renderRequest5, _params$renderRequest6, _this$viewPointHandle, _this$viewPointHandle2;
51205
- var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl5, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51218
+ var room, newRenderSize, doReloadWholePlanning, hybridInfo, planningHash, requestRenderingFrom3DHost, requestHqRenderScriptFrom3DHost, rendering, renderHash, viewPointName, functionType, _hybridInfo, sizeInfo, _rendering, fullscreenRendering, renderingInCacheFound, _this$connectionHandl6, _plannerMeasureDigits, _hybridInfo2, _hybridInfo3, returnRequest;
51206
51219
  return _regeneratorRuntime.wrap(function _callee8$(_context8) {
51207
51220
  while (1) switch (_context8.prev = _context8.next) {
51208
51221
  case 0:
@@ -51325,7 +51338,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
51325
51338
  }
51326
51339
  if (params.catalogData.lang) params.planningData.SCE.Lang = params.catalogData.lang;
51327
51340
  bootMark('3d: request3D sent to host');
51328
- returnRequest = (_this$connectionHandl5 = this.connectionHandler) === null || _this$connectionHandl5 === void 0 ? void 0 : _this$connectionHandl5.request3D({
51341
+ returnRequest = (_this$connectionHandl6 = this.connectionHandler) === null || _this$connectionHandl6 === void 0 ? void 0 : _this$connectionHandl6.request3D({
51329
51342
  doRequestRendering: params.doRequestRendering,
51330
51343
  doRequestHqRenderScript: params.doRequestHqRenderScript,
51331
51344
  planningHash: planningHash,
@@ -52424,7 +52437,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52424
52437
  break;
52425
52438
  case 8:
52426
52439
  _context5.next = 10;
52427
- return import('./DivaStandardPlanner-f5f47d3b.js');
52440
+ return import('./DivaStandardPlanner-b41fa89f.js');
52428
52441
  case 10:
52429
52442
  _yield$import = _context5.sent;
52430
52443
  DivaStandardPlanner = _yield$import["default"];
@@ -52435,7 +52448,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52435
52448
  return _context5.abrupt("break", 21);
52436
52449
  case 15:
52437
52450
  _context5.next = 17;
52438
- return import('./DivaBoxPlanner-87010599.js');
52451
+ return import('./DivaBoxPlanner-e8db9fb6.js');
52439
52452
  case 17:
52440
52453
  _yield$import2 = _context5.sent;
52441
52454
  DivaBoxPlanner = _yield$import2["default"];
@@ -1,4 +1,4 @@
1
- export { I as ArtifactGenerationError, h as CatalogPlannerArticleData, C as Cell, e as DivaArticle, a as DivaArticleHandler, g as DivaBasketHandler, f as DivaCatalogData, b as DivaSetHandler, G as Grid, J as JsonDataCache, O as OptionCatalogData, i as PROPERTY_SCHEMAS, P as PlannerElementData, R as Rendering, c as Vector2, V as Vector3, w as Vector4, d as bootMark, q as bootMarksEnabled, t as bootNetworkMark, u as bootNow, v as bootRequestName, A as collectStructureStepKeys, x as creatRenderOrders, j as decodePropertyValue, D as default, n as editorKindOf, k as encodePropertyValue, y as getOrigProductId, o as getSeriousSetNamePlaceholder, z as headlessSession, l as loadAndRepairBasket, p as propertyEncodingOf, m as propertyValueProblem, r as rawStringOf, E as runHeadlessArtifactPass, F as runHeadlessArtifactPassBatch } from './index-9eba9def.js';
1
+ export { I as ArtifactGenerationError, h as CatalogPlannerArticleData, C as Cell, e as DivaArticle, a as DivaArticleHandler, g as DivaBasketHandler, f as DivaCatalogData, b as DivaSetHandler, G as Grid, J as JsonDataCache, O as OptionCatalogData, i as PROPERTY_SCHEMAS, P as PlannerElementData, R as Rendering, c as Vector2, V as Vector3, w as Vector4, d as bootMark, q as bootMarksEnabled, t as bootNetworkMark, u as bootNow, v as bootRequestName, A as collectStructureStepKeys, x as creatRenderOrders, j as decodePropertyValue, D as default, n as editorKindOf, k as encodePropertyValue, y as getOrigProductId, o as getSeriousSetNamePlaceholder, z as headlessSession, l as loadAndRepairBasket, p as propertyEncodingOf, m as propertyValueProblem, r as rawStringOf, E as runHeadlessArtifactPass, F as runHeadlessArtifactPassBatch } from './index-6b294994.js';
2
2
  export { DockingPoint } from '@crystaldesign/planner-2d-core';
3
3
  import '@babel/runtime/helpers/slicedToArray';
4
4
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -8,6 +8,7 @@ export default class Host3DSignalR {
8
8
  private successfullyLoggedIn;
9
9
  private connectionErrorCount;
10
10
  private doIgnoreOnClosed;
11
+ private isClosed;
11
12
  private sessionID;
12
13
  private divaMediaServiceSocketIO;
13
14
  private lastJoinDivaNr;
@@ -1 +1 @@
1
- {"version":3,"file":"Host3DSignalR.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/Host3DSignalR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAK1E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAU;IAElC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,wBAAwB,CAAU;IAG1C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAc9E;;OAEG;IACU,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4EjE,OAAO,CAAC,KAAK;IAIA,UAAU,CAAC,MAAM,EAAE,MAAM;IAO/B,6BAA6B,IAAI,OAAO;IAIlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS/E,kBAAkB,IAAI,OAAO;IAIvB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAatE,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAgE1D,OAAO,CAAC,yBAAyB;IA8C1B,eAAe;IAgBtB;;;OAGG;YACW,KAAK;IA2CnB;;;;;OAKG;YACW,IAAI;IAsClB;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CA4C9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,mBAAmB,SAAU,MAAM,QAAQ,MAAM,UAAU,MAAM,UAK/D;IAEF,YAAY,QAAS,MAAM,UAAQ;IAEnC;;;;;OAKG;IACH,YAAY,WAAY,MAAM,QAAQ,MAAM,aAAa,MAAM,UAI7D;IACF;;;;;OAKG;IACH,iBAAiB,WAAY,MAAM,QAAQ,MAAM,kBAAkB,MAAM,UAIvE;IAEF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
1
+ {"version":3,"file":"Host3DSignalR.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/Host3DSignalR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAK1E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,wBAAwB,CAAU;IAG1C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAc9E;;OAEG;IACU,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwFjE,OAAO,CAAC,KAAK;IAIA,UAAU,CAAC,MAAM,EAAE,MAAM;IAO/B,6BAA6B,IAAI,OAAO;IAIlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS/E,kBAAkB,IAAI,OAAO;IAIvB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAatE,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAgE1D,OAAO,CAAC,yBAAyB;IA8C1B,eAAe;IAoBtB;;;OAGG;YACW,KAAK;IAgDnB;;;;;OAKG;YACW,IAAI;IAsClB;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CA4C9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,mBAAmB,SAAU,MAAM,QAAQ,MAAM,UAAU,MAAM,UAK/D;IAEF,YAAY,QAAS,MAAM,UAAQ;IAEnC;;;;;OAKG;IACH,YAAY,WAAY,MAAM,QAAQ,MAAM,aAAa,MAAM,UAI7D;IACF;;;;;OAKG;IACH,iBAAiB,WAAY,MAAM,QAAQ,MAAM,kBAAkB,MAAM,UAIvE;IAEF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlannerHandler3D.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/PlannerHandler3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlannerHandler3D.d.ts","sourceRoot":"","sources":["../../../../../../../src/logic/Planner/Rendering/PlannerHandler3D.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './logger';
2
+ //# sourceMappingURL=host3DSignalRReconnect.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host3DSignalRReconnect.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/host3DSignalRReconnect.test.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ import './logger';
2
+ //# sourceMappingURL=plannerHandler3DRoomListQueue.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plannerHandler3DRoomListQueue.test.d.ts","sourceRoot":"","sources":["../../../../../src/test/plannerHandler3DRoomListQueue.test.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/web-planner-logic",
3
- "version": "26.12.0-rc.1",
3
+ "version": "26.12.0-rc.3",
4
4
  "description": "Headless web planner: session, geometry, render orders and product structure logic.",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -14,7 +14,7 @@
14
14
  "jest-junit": "^16.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@crystaldesign/planner-2d-core": "26.12.0-rc.1",
17
+ "@crystaldesign/planner-2d-core": "26.12.0-rc.3",
18
18
  "@microsoft/signalr": "^8.0.7",
19
19
  "@microsoft/signalr-protocol-msgpack": "^8.0.7",
20
20
  "axios": "^1.7.7",
@@ -40,5 +40,5 @@
40
40
  "types": "./build/types/web-planner-logic/src/index.d.ts",
41
41
  "module": "build/esm/index.js",
42
42
  "main": "build/cjs/index.js",
43
- "gitHead": "c6beabf0e4dba1606402cb540d12e86a7424e59b"
43
+ "gitHead": "23d48a54b798c17f9c4b81b34863b3aea5db4e76"
44
44
  }