@kosdev-code/kos-ui-sdk 0.1.0-dev.5840 → 0.1.0-dev.5865

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.
package/index.cjs CHANGED
@@ -5469,10 +5469,19 @@ class KosFSMManager {
5469
5469
  });
5470
5470
  }
5471
5471
  /**
5472
- * Checks if a given target maps to status or activeStatus
5472
+ * Checks if a given target maps to status, activeStatus, or onlineStatus.
5473
+ * Online/offline transitions are tracked on model.onlineStatus because the
5474
+ * main FSM keeps status at READY when GO_ONLINE / GO_OFFLINE fire; reading
5475
+ * model.status for those targets would hang the transition forever.
5473
5476
  */
5474
5477
  getTransitionStatusFor(target) {
5475
- return [KosModelState.ACTIVE, KosModelState.INACTIVE].includes(target) ? this.model.activeStatus : this.model.status;
5478
+ if ([KosModelState.ACTIVE, KosModelState.INACTIVE].includes(target)) {
5479
+ return this.model.activeStatus;
5480
+ }
5481
+ if ([KosModelState.ONLINE, KosModelState.OFFLINE].includes(target)) {
5482
+ return this.model.onlineStatus;
5483
+ }
5484
+ return this.model.status;
5476
5485
  }
5477
5486
  }
5478
5487
  const BROWSER_ROUTER_MODEL_TYPE = "browser-router-model";
@@ -5835,6 +5844,7 @@ class KosOnlineLifecycleManager {
5835
5844
  this.log = log3;
5836
5845
  }
5837
5846
  register() {
5847
+ this.dispose();
5838
5848
  const modelId = this.model.modelId;
5839
5849
  const onlineUnsub = subscribe("/kosCore/online", async () => {
5840
5850
  this.log.debug(
@@ -7683,7 +7693,7 @@ alias:${this.alias}
7683
7693
  shouldAttemptReconnection(code) {
7684
7694
  switch (code) {
7685
7695
  case 1e3:
7686
- return false;
7696
+ return true;
7687
7697
  case 1001:
7688
7698
  return true;
7689
7699
  case 1002:
@@ -10136,13 +10146,35 @@ class KosCore {
10136
10146
  this.transport.token = data.body;
10137
10147
  }
10138
10148
  });
10149
+ subscribe(WebSocketEvents.DISCONNECTED, async () => {
10150
+ await Promise.allSettled(
10151
+ this.modelManager.models.map(async (model) => {
10152
+ var _a2, _b2;
10153
+ try {
10154
+ await ((_a2 = model.offline) == null ? void 0 : _a2.call(model));
10155
+ } catch (e) {
10156
+ log$v.error(`model ${model.modelId} offline() threw:`, e);
10157
+ }
10158
+ (_b2 = model.onlineLifecycleManager) == null ? void 0 : _b2.dispose();
10159
+ })
10160
+ );
10161
+ this.fsmService.service.send(KosCoreEvents.GO_OFFLINE);
10162
+ });
10139
10163
  subscribe(WebSocketEvents.CONNECTED, async () => {
10140
10164
  await this.whenReady();
10165
+ await Promise.allSettled(
10166
+ this.modelManager.models.map(async (model) => {
10167
+ var _a2, _b2;
10168
+ (_a2 = model.onlineLifecycleManager) == null ? void 0 : _a2.register();
10169
+ try {
10170
+ await ((_b2 = model.online) == null ? void 0 : _b2.call(model));
10171
+ } catch (e) {
10172
+ log$v.error(`model ${model.modelId} online() threw:`, e);
10173
+ }
10174
+ })
10175
+ );
10141
10176
  this.fsmService.service.send(KosCoreEvents.GO_ONLINE);
10142
10177
  });
10143
- subscribe(WebSocketEvents.DISCONNECTED, async () => {
10144
- this.fsmService.service.send(KosCoreEvents.GO_OFFLINE);
10145
- });
10146
10178
  subscribe("/studioServer/auth/LOGGED_IN", () => {
10147
10179
  this.authState = "logged_in";
10148
10180
  this.transport.authorized = true;
@@ -12512,7 +12544,7 @@ const buildConfigBeanModel = (factory) => (modelId) => (configBeanOptions) => {
12512
12544
  const configBeanModel = factory.build(modelId, configBeanOptions);
12513
12545
  return configBeanModel;
12514
12546
  };
12515
- var __defProp$u = Object.defineProperty;
12547
+ var __defProp$v = Object.defineProperty;
12516
12548
  var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
12517
12549
  var __decorateClass$A = (decorators, target, key, kind) => {
12518
12550
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
@@ -12520,7 +12552,7 @@ var __decorateClass$A = (decorators, target, key, kind) => {
12520
12552
  if (decorator = decorators[i])
12521
12553
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12522
12554
  if (kind && result)
12523
- __defProp$u(target, key, result);
12555
+ __defProp$v(target, key, result);
12524
12556
  return result;
12525
12557
  };
12526
12558
  function matchValue(patterns, value) {
@@ -12882,7 +12914,7 @@ function defaultMeasureMapReducer(systemAcc, unitSystem) {
12882
12914
  });
12883
12915
  return systemAcc;
12884
12916
  }
12885
- var __defProp$t = Object.defineProperty;
12917
+ var __defProp$u = Object.defineProperty;
12886
12918
  var __getOwnPropDesc$z = Object.getOwnPropertyDescriptor;
12887
12919
  var __decorateClass$z = (decorators, target, key, kind) => {
12888
12920
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$z(target, key) : target;
@@ -12890,7 +12922,7 @@ var __decorateClass$z = (decorators, target, key, kind) => {
12890
12922
  if (decorator = decorators[i])
12891
12923
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12892
12924
  if (kind && result)
12893
- __defProp$t(target, key, result);
12925
+ __defProp$u(target, key, result);
12894
12926
  return result;
12895
12927
  };
12896
12928
  const MODEL_TYPE$w = "region-info-model";
@@ -13497,7 +13529,7 @@ const displayOptionsFactory = (schema, unitSystem) => {
13497
13529
  }
13498
13530
  return schema.options;
13499
13531
  };
13500
- var __defProp$s = Object.defineProperty;
13532
+ var __defProp$t = Object.defineProperty;
13501
13533
  var __getOwnPropDesc$y = Object.getOwnPropertyDescriptor;
13502
13534
  var __decorateClass$y = (decorators, target, key, kind) => {
13503
13535
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$y(target, key) : target;
@@ -13505,7 +13537,7 @@ var __decorateClass$y = (decorators, target, key, kind) => {
13505
13537
  if (decorator = decorators[i])
13506
13538
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13507
13539
  if (kind && result)
13508
- __defProp$s(target, key, result);
13540
+ __defProp$t(target, key, result);
13509
13541
  return result;
13510
13542
  };
13511
13543
  function isEnum(schema) {
@@ -14349,7 +14381,7 @@ const index$e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
14349
14381
  __proto__: null,
14350
14382
  getStateBeanData
14351
14383
  }, Symbol.toStringTag, { value: "Module" }));
14352
- var __defProp$r = Object.defineProperty;
14384
+ var __defProp$s = Object.defineProperty;
14353
14385
  var __getOwnPropDesc$x = Object.getOwnPropertyDescriptor;
14354
14386
  var __decorateClass$x = (decorators, target, key, kind) => {
14355
14387
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$x(target, key) : target;
@@ -14357,7 +14389,7 @@ var __decorateClass$x = (decorators, target, key, kind) => {
14357
14389
  if (decorator = decorators[i])
14358
14390
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14359
14391
  if (kind && result)
14360
- __defProp$r(target, key, result);
14392
+ __defProp$s(target, key, result);
14361
14393
  return result;
14362
14394
  };
14363
14395
  const MODEL_TYPE$u = "state-bean-model";
@@ -14455,7 +14487,7 @@ const kosStateBean = ({ path }) => (target, name) => {
14455
14487
  lifecycle: DependencyLifecycle.INIT
14456
14488
  };
14457
14489
  };
14458
- var __defProp$q = Object.defineProperty;
14490
+ var __defProp$r = Object.defineProperty;
14459
14491
  var __getOwnPropDesc$w = Object.getOwnPropertyDescriptor;
14460
14492
  var __decorateClass$w = (decorators, target, key, kind) => {
14461
14493
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$w(target, key) : target;
@@ -14463,7 +14495,7 @@ var __decorateClass$w = (decorators, target, key, kind) => {
14463
14495
  if (decorator = decorators[i])
14464
14496
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14465
14497
  if (kind && result)
14466
- __defProp$q(target, key, result);
14498
+ __defProp$r(target, key, result);
14467
14499
  return result;
14468
14500
  };
14469
14501
  const MODEL_TYPE$t = "state-prop-model";
@@ -14563,7 +14595,7 @@ function kosStateProp(params2) {
14563
14595
  };
14564
14596
  };
14565
14597
  }
14566
- var __defProp$p = Object.defineProperty;
14598
+ var __defProp$q = Object.defineProperty;
14567
14599
  var __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;
14568
14600
  var __decorateClass$v = (decorators, target, key, kind) => {
14569
14601
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$v(target, key) : target;
@@ -14571,7 +14603,7 @@ var __decorateClass$v = (decorators, target, key, kind) => {
14571
14603
  if (decorator = decorators[i])
14572
14604
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14573
14605
  if (kind && result)
14574
- __defProp$p(target, key, result);
14606
+ __defProp$q(target, key, result);
14575
14607
  return result;
14576
14608
  };
14577
14609
  const MODEL_TYPE$s = "browser-router-model";
@@ -14691,7 +14723,7 @@ const BrowserRouter = new SingletonKosModelRegistrationFactory({
14691
14723
  class: BrowserRouterModelImpl,
14692
14724
  type: MODEL_TYPE$s
14693
14725
  });
14694
- var __defProp$o = Object.defineProperty;
14726
+ var __defProp$p = Object.defineProperty;
14695
14727
  var __getOwnPropDesc$u = Object.getOwnPropertyDescriptor;
14696
14728
  var __decorateClass$u = (decorators, target, key, kind) => {
14697
14729
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$u(target, key) : target;
@@ -14699,7 +14731,7 @@ var __decorateClass$u = (decorators, target, key, kind) => {
14699
14731
  if (decorator = decorators[i])
14700
14732
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14701
14733
  if (kind && result)
14702
- __defProp$o(target, key, result);
14734
+ __defProp$p(target, key, result);
14703
14735
  return result;
14704
14736
  };
14705
14737
  const log$i = KosLog.getLogger(FutureFactory.type);
@@ -14838,7 +14870,7 @@ FutureModel = __decorateClass$u([
14838
14870
  kosModel(FutureFactory.type)
14839
14871
  ], FutureModel);
14840
14872
  const FutureModel$1 = FutureModel;
14841
- var __defProp$n = Object.defineProperty;
14873
+ var __defProp$o = Object.defineProperty;
14842
14874
  var __getOwnPropDesc$t = Object.getOwnPropertyDescriptor;
14843
14875
  var __decorateClass$t = (decorators, target, key, kind) => {
14844
14876
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$t(target, key) : target;
@@ -14846,7 +14878,7 @@ var __decorateClass$t = (decorators, target, key, kind) => {
14846
14878
  if (decorator = decorators[i])
14847
14879
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14848
14880
  if (kind && result)
14849
- __defProp$n(target, key, result);
14881
+ __defProp$o(target, key, result);
14850
14882
  return result;
14851
14883
  };
14852
14884
  const log$h = KosLog.getLogger(FutureContainerFactory.type);
@@ -15071,7 +15103,7 @@ const index$c = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
15071
15103
  getKeyValue,
15072
15104
  updateKeyValue
15073
15105
  }, Symbol.toStringTag, { value: "Module" }));
15074
- var __defProp$m = Object.defineProperty;
15106
+ var __defProp$n = Object.defineProperty;
15075
15107
  var __getOwnPropDesc$s = Object.getOwnPropertyDescriptor;
15076
15108
  var __decorateClass$s = (decorators, target, key, kind) => {
15077
15109
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$s(target, key) : target;
@@ -15079,7 +15111,7 @@ var __decorateClass$s = (decorators, target, key, kind) => {
15079
15111
  if (decorator = decorators[i])
15080
15112
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
15081
15113
  if (kind && result)
15082
- __defProp$m(target, key, result);
15114
+ __defProp$n(target, key, result);
15083
15115
  return result;
15084
15116
  };
15085
15117
  const MODEL_TYPE$r = "key-value-model";
@@ -16776,9 +16808,9 @@ Parser.prototype.isOperatorEnabled = function(op) {
16776
16808
  var operators = this.options.operators || {};
16777
16809
  return !(optionName in operators) || !!operators[optionName];
16778
16810
  };
16779
- var __defProp$l = Object.defineProperty;
16811
+ var __defProp$m = Object.defineProperty;
16780
16812
  var __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;
16781
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16813
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16782
16814
  var __decorateClass$r = (decorators, target, key, kind) => {
16783
16815
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target;
16784
16816
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -17141,7 +17173,7 @@ const index$b = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
17141
17173
  __proto__: null,
17142
17174
  getLogOverrides
17143
17175
  }, Symbol.toStringTag, { value: "Module" }));
17144
- var __defProp$k = Object.defineProperty;
17176
+ var __defProp$l = Object.defineProperty;
17145
17177
  var __getOwnPropDesc$q = Object.getOwnPropertyDescriptor;
17146
17178
  var __decorateClass$q = (decorators, target, key, kind) => {
17147
17179
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$q(target, key) : target;
@@ -17149,7 +17181,7 @@ var __decorateClass$q = (decorators, target, key, kind) => {
17149
17181
  if (decorator = decorators[i])
17150
17182
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17151
17183
  if (kind && result)
17152
- __defProp$k(target, key, result);
17184
+ __defProp$l(target, key, result);
17153
17185
  return result;
17154
17186
  };
17155
17187
  const MODEL_TYPE$p = "kos-log-manager-model";
@@ -17400,7 +17432,7 @@ const index$a = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
17400
17432
  setTime,
17401
17433
  setTimezone
17402
17434
  }, Symbol.toStringTag, { value: "Module" }));
17403
- var __defProp$j = Object.defineProperty;
17435
+ var __defProp$k = Object.defineProperty;
17404
17436
  var __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;
17405
17437
  var __decorateClass$p = (decorators, target, key, kind) => {
17406
17438
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$p(target, key) : target;
@@ -17408,7 +17440,7 @@ var __decorateClass$p = (decorators, target, key, kind) => {
17408
17440
  if (decorator = decorators[i])
17409
17441
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17410
17442
  if (kind && result)
17411
- __defProp$j(target, key, result);
17443
+ __defProp$k(target, key, result);
17412
17444
  return result;
17413
17445
  };
17414
17446
  const MODEL_TYPE$o = "kos-time-model";
@@ -17502,7 +17534,7 @@ const KosTime = {
17502
17534
  predicate: isKosModel(MODEL_TYPE$o),
17503
17535
  factory: Kos.Singleton.create(MODEL_TYPE$o)
17504
17536
  };
17505
- var __defProp$i = Object.defineProperty;
17537
+ var __defProp$j = Object.defineProperty;
17506
17538
  var __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;
17507
17539
  var __decorateClass$o = (decorators, target, key, kind) => {
17508
17540
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$o(target, key) : target;
@@ -17510,7 +17542,7 @@ var __decorateClass$o = (decorators, target, key, kind) => {
17510
17542
  if (decorator = decorators[i])
17511
17543
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17512
17544
  if (kind && result)
17513
- __defProp$i(target, key, result);
17545
+ __defProp$j(target, key, result);
17514
17546
  return result;
17515
17547
  };
17516
17548
  const MODEL_TYPE$n = "log-block-container-model";
@@ -17745,7 +17777,7 @@ const LogBlockContainer = new KosModelRegistrationFactory({
17745
17777
  type: MODEL_TYPE$n
17746
17778
  });
17747
17779
  LogBlockContainer.addRelatedModel(LogBlock);
17748
- var __defProp$h = Object.defineProperty;
17780
+ var __defProp$i = Object.defineProperty;
17749
17781
  var __getOwnPropDesc$m = Object.getOwnPropertyDescriptor;
17750
17782
  var __decorateClass$m = (decorators, target, key, kind) => {
17751
17783
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target;
@@ -17753,7 +17785,7 @@ var __decorateClass$m = (decorators, target, key, kind) => {
17753
17785
  if (decorator = decorators[i])
17754
17786
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17755
17787
  if (kind && result)
17756
- __defProp$h(target, key, result);
17788
+ __defProp$i(target, key, result);
17757
17789
  return result;
17758
17790
  };
17759
17791
  const MODEL_TYPE$l = "log-stream-model";
@@ -17977,7 +18009,7 @@ const LogStream = new KosModelRegistrationFactory({
17977
18009
  class: LogStreamModelImpl,
17978
18010
  type: MODEL_TYPE$l
17979
18011
  });
17980
- var __defProp$g = Object.defineProperty;
18012
+ var __defProp$h = Object.defineProperty;
17981
18013
  var __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;
17982
18014
  var __decorateClass$l = (decorators, target, key, kind) => {
17983
18015
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target;
@@ -17985,7 +18017,7 @@ var __decorateClass$l = (decorators, target, key, kind) => {
17985
18017
  if (decorator = decorators[i])
17986
18018
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
17987
18019
  if (kind && result)
17988
- __defProp$g(target, key, result);
18020
+ __defProp$h(target, key, result);
17989
18021
  return result;
17990
18022
  };
17991
18023
  const MODEL_TYPE$k = "log-stream-container-model";
@@ -18388,7 +18420,7 @@ class TroubleHandlerFactory {
18388
18420
  }
18389
18421
  }
18390
18422
  }
18391
- var __defProp$f = Object.defineProperty;
18423
+ var __defProp$g = Object.defineProperty;
18392
18424
  var __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;
18393
18425
  var __decorateClass$k = (decorators, target, key, kind) => {
18394
18426
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;
@@ -18396,7 +18428,7 @@ var __decorateClass$k = (decorators, target, key, kind) => {
18396
18428
  if (decorator = decorators[i])
18397
18429
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
18398
18430
  if (kind && result)
18399
- __defProp$f(target, key, result);
18431
+ __defProp$g(target, key, result);
18400
18432
  return result;
18401
18433
  };
18402
18434
  const MODEL_TYPE$j = "trouble-model";
@@ -18558,22 +18590,33 @@ const Trouble = {
18558
18590
  predicate: isKosModel(MODEL_TYPE$j),
18559
18591
  factory: Kos.Factory.create(MODEL_TYPE$j)
18560
18592
  };
18561
- var __defProp$e = Object.defineProperty;
18593
+ var __defProp$f = Object.defineProperty;
18562
18594
  var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
18563
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
18595
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
18564
18596
  var __decorateClass$j = (decorators, target, key, kind) => {
18565
18597
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;
18566
18598
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
18567
18599
  if (decorator = decorators[i])
18568
18600
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
18569
18601
  if (kind && result)
18570
- __defProp$e(target, key, result);
18602
+ __defProp$f(target, key, result);
18571
18603
  return result;
18572
18604
  };
18573
18605
  var __publicField$4 = (obj, key, value) => {
18574
18606
  __defNormalProp$4(obj, key + "", value);
18575
18607
  return value;
18576
18608
  };
18609
+ const addTrouble = (trouble) => {
18610
+ const options = {
18611
+ ...trouble,
18612
+ rank: troubleRankMapper(trouble),
18613
+ color: troubleColorMapper(trouble),
18614
+ role: troubleRoleMapper(trouble),
18615
+ id: String(trouble.id)
18616
+ };
18617
+ const newTrouble = Trouble.factory(`trouble-${trouble.id}`)(options);
18618
+ return newTrouble;
18619
+ };
18577
18620
  function troubleRankMapper(trouble) {
18578
18621
  const _rank = ExtensionManager.propertyMapper.hasMapper(
18579
18622
  KosCoreModelPropertyMapper.TroubleRank
@@ -18618,6 +18661,16 @@ let TroubleContainerModelImpl = class {
18618
18661
  this.servicePath = options.servicePath ?? this.servicePath;
18619
18662
  }
18620
18663
  // -------------------LIFECYCLE----------------------------
18664
+ async reload() {
18665
+ this.logger.info("reloading trouble container");
18666
+ const _troubles = await getTroubles(this.servicePath);
18667
+ const incoming = (_troubles == null ? void 0 : _troubles.data) ?? [];
18668
+ const incomingKeys = new Set(incoming.map((t) => `trouble-${t.id}`));
18669
+ const toRemove = this.troubles.data.map((m) => m.id).filter((id) => !incomingKeys.has(id));
18670
+ const toAdd = incoming.filter((t) => !this.troubles.getModel(`trouble-${t.id}`)).map(addTrouble);
18671
+ this.troubles.removeAll(toRemove);
18672
+ this.troubles.addAll(toAdd);
18673
+ }
18621
18674
  async load() {
18622
18675
  this.logger.debug("loading trouble container");
18623
18676
  try {
@@ -18717,7 +18770,7 @@ const getArtifacts = async () => {
18717
18770
  log$c.debug("getArtifacts - response:", response);
18718
18771
  return response == null ? void 0 : response.data;
18719
18772
  };
18720
- var __defProp$d = Object.defineProperty;
18773
+ var __defProp$e = Object.defineProperty;
18721
18774
  var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
18722
18775
  var __decorateClass$i = (decorators, target, key, kind) => {
18723
18776
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
@@ -18725,7 +18778,7 @@ var __decorateClass$i = (decorators, target, key, kind) => {
18725
18778
  if (decorator = decorators[i])
18726
18779
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
18727
18780
  if (kind && result)
18728
- __defProp$d(target, key, result);
18781
+ __defProp$e(target, key, result);
18729
18782
  return result;
18730
18783
  };
18731
18784
  const MODEL_TYPE$h = "ota-model";
@@ -18932,7 +18985,7 @@ function encodeFrame(rgba, format, stripAlpha) {
18932
18985
  return btoa(String.fromCharCode(...rgb));
18933
18986
  }
18934
18987
  }
18935
- var __defProp$c = Object.defineProperty;
18988
+ var __defProp$d = Object.defineProperty;
18936
18989
  var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
18937
18990
  var __decorateClass$h = (decorators, target, key, kind) => {
18938
18991
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;
@@ -18940,7 +18993,7 @@ var __decorateClass$h = (decorators, target, key, kind) => {
18940
18993
  if (decorator = decorators[i])
18941
18994
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
18942
18995
  if (kind && result)
18943
- __defProp$c(target, key, result);
18996
+ __defProp$d(target, key, result);
18944
18997
  return result;
18945
18998
  };
18946
18999
  const MODEL_TYPE$g = "canvas-renderer-model";
@@ -21029,7 +21082,7 @@ const getRenderer = ({
21029
21082
  }
21030
21083
  throw new Error(`Unknown mode: ${mode}`);
21031
21084
  };
21032
- var __defProp$b = Object.defineProperty;
21085
+ var __defProp$c = Object.defineProperty;
21033
21086
  var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
21034
21087
  var __decorateClass$g = (decorators, target, key, kind) => {
21035
21088
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
@@ -21037,7 +21090,7 @@ var __decorateClass$g = (decorators, target, key, kind) => {
21037
21090
  if (decorator = decorators[i])
21038
21091
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21039
21092
  if (kind && result)
21040
- __defProp$b(target, key, result);
21093
+ __defProp$c(target, key, result);
21041
21094
  return result;
21042
21095
  };
21043
21096
  const MODEL_TYPE$f = "canvas-dispatcher-model";
@@ -21256,7 +21309,7 @@ const index$6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
21256
21309
  getDeviceDetails,
21257
21310
  getSerialNumber
21258
21311
  }, Symbol.toStringTag, { value: "Module" }));
21259
- var __defProp$a = Object.defineProperty;
21312
+ var __defProp$b = Object.defineProperty;
21260
21313
  var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
21261
21314
  var __decorateClass$f = (decorators, target, key, kind) => {
21262
21315
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
@@ -21264,7 +21317,7 @@ var __decorateClass$f = (decorators, target, key, kind) => {
21264
21317
  if (decorator = decorators[i])
21265
21318
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21266
21319
  if (kind && result)
21267
- __defProp$a(target, key, result);
21320
+ __defProp$b(target, key, result);
21268
21321
  return result;
21269
21322
  };
21270
21323
  const MODEL_TYPE$e = "device-model";
@@ -21605,7 +21658,7 @@ const index$5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
21605
21658
  __proto__: null,
21606
21659
  getNetworkInterfaces
21607
21660
  }, Symbol.toStringTag, { value: "Module" }));
21608
- var __defProp$9 = Object.defineProperty;
21661
+ var __defProp$a = Object.defineProperty;
21609
21662
  var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
21610
21663
  var __decorateClass$d = (decorators, target, key, kind) => {
21611
21664
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
@@ -21613,7 +21666,7 @@ var __decorateClass$d = (decorators, target, key, kind) => {
21613
21666
  if (decorator = decorators[i])
21614
21667
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21615
21668
  if (kind && result)
21616
- __defProp$9(target, key, result);
21669
+ __defProp$a(target, key, result);
21617
21670
  return result;
21618
21671
  };
21619
21672
  const MODEL_TYPE$c = "network-interface-container-model";
@@ -21797,7 +21850,7 @@ const StorageDevice = new KosModelRegistrationFactory({
21797
21850
  class: StorageDeviceModelImpl,
21798
21851
  type: MODEL_TYPE$b
21799
21852
  });
21800
- var __defProp$8 = Object.defineProperty;
21853
+ var __defProp$9 = Object.defineProperty;
21801
21854
  var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
21802
21855
  var __decorateClass$b = (decorators, target, key, kind) => {
21803
21856
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
@@ -21805,7 +21858,7 @@ var __decorateClass$b = (decorators, target, key, kind) => {
21805
21858
  if (decorator = decorators[i])
21806
21859
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21807
21860
  if (kind && result)
21808
- __defProp$8(target, key, result);
21861
+ __defProp$9(target, key, result);
21809
21862
  return result;
21810
21863
  };
21811
21864
  const MODEL_TYPE$a = "storage-device-container-model";
@@ -21943,7 +21996,7 @@ const index$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
21943
21996
  getAvailableUpdates,
21944
21997
  installUpdate
21945
21998
  }, Symbol.toStringTag, { value: "Module" }));
21946
- var __defProp$7 = Object.defineProperty;
21999
+ var __defProp$8 = Object.defineProperty;
21947
22000
  var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
21948
22001
  var __decorateClass$a = (decorators, target, key, kind) => {
21949
22002
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
@@ -21951,7 +22004,7 @@ var __decorateClass$a = (decorators, target, key, kind) => {
21951
22004
  if (decorator = decorators[i])
21952
22005
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
21953
22006
  if (kind && result)
21954
- __defProp$7(target, key, result);
22007
+ __defProp$8(target, key, result);
21955
22008
  return result;
21956
22009
  };
21957
22010
  const MODEL_TYPE$9 = "usb-update-model";
@@ -22017,7 +22070,7 @@ const UsbUpdate = new KosModelRegistrationFactory({
22017
22070
  class: UsbUpdateModelImpl,
22018
22071
  type: MODEL_TYPE$9
22019
22072
  });
22020
- var __defProp$6 = Object.defineProperty;
22073
+ var __defProp$7 = Object.defineProperty;
22021
22074
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
22022
22075
  var __decorateClass$9 = (decorators, target, key, kind) => {
22023
22076
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
@@ -22025,7 +22078,7 @@ var __decorateClass$9 = (decorators, target, key, kind) => {
22025
22078
  if (decorator = decorators[i])
22026
22079
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
22027
22080
  if (kind && result)
22028
- __defProp$6(target, key, result);
22081
+ __defProp$7(target, key, result);
22029
22082
  return result;
22030
22083
  };
22031
22084
  const MODEL_TYPE$8 = "usb-update-container-model";
@@ -22193,12 +22246,15 @@ const getKosLocalizationDescriptor = (context) => async () => {
22193
22246
  return response.data[context];
22194
22247
  };
22195
22248
  const CONTEXT_LANG_RESOLVER = "langResolver";
22249
+ var __defProp$6 = Object.defineProperty;
22196
22250
  var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
22197
22251
  var __decorateClass$8 = (decorators, target, key, kind) => {
22198
22252
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
22199
22253
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
22200
22254
  if (decorator = decorators[i])
22201
- result = decorator(result) || result;
22255
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
22256
+ if (kind && result)
22257
+ __defProp$6(target, key, result);
22202
22258
  return result;
22203
22259
  };
22204
22260
  const MODEL_TYPE$7 = "translation-model";
@@ -22465,17 +22521,16 @@ let TranslationModelImpl = class {
22465
22521
  */
22466
22522
  async ready() {
22467
22523
  this.logger.debug(`ready translation ${this.id}`);
22468
- this.disposer = mobx.reaction(
22469
- () => this.currentLocale,
22470
- (value, previous) => {
22471
- this.logger.info(
22472
- `translation langs for namespace ${this.id} changed from ${previous} to ${value}`
22473
- );
22474
- this.loadTranslations();
22475
- }
22476
- );
22524
+ }
22525
+ async handleCurrentLocaleChange() {
22526
+ await this.loadTranslations();
22477
22527
  }
22478
22528
  };
22529
+ __decorateClass$8([
22530
+ kosModelEffect({
22531
+ dependencies: (model) => [model.currentLocale]
22532
+ })
22533
+ ], TranslationModelImpl.prototype, "handleCurrentLocaleChange", 1);
22479
22534
  TranslationModelImpl = __decorateClass$8([
22480
22535
  kosParentAware(),
22481
22536
  kosModel(MODEL_TYPE$7)
@@ -24329,7 +24384,11 @@ const initKosProvider = (registration = { models: {}, preloadModels: [] }, alias
24329
24384
  disposer();
24330
24385
  };
24331
24386
  }, [kosCore]);
24332
- return /* @__PURE__ */ jsxRuntime.jsx(KosContext.Provider, { value: { kosCore, online }, children });
24387
+ const value = React.useMemo(
24388
+ () => ({ kosCore, online }),
24389
+ [kosCore, online]
24390
+ );
24391
+ return /* @__PURE__ */ jsxRuntime.jsx(KosContext.Provider, { value, children });
24333
24392
  };
24334
24393
  return { KosCoreContextProvider: mobxReactLite.observer(KosCoreContextProvider) };
24335
24394
  };
@@ -24578,11 +24637,13 @@ const KosTranslationProvider = ({
24578
24637
  locale = "en",
24579
24638
  resolver,
24580
24639
  rootUrl,
24581
- descriptorResolver
24640
+ descriptorResolver,
24641
+ excludeNamespaces = []
24582
24642
  }) => {
24583
24643
  const [ready, setReady] = React.useState(false);
24584
24644
  const [localization, setLocalization] = React.useState();
24585
24645
  const [translations, setTranslations] = React.useState();
24646
+ const [allLocales, setAllLocales] = React.useState([]);
24586
24647
  const resolvedRootUrl = rootUrl || getDefaultHost();
24587
24648
  const _appContext = React.useMemo(() => appContext ?? "app/system", [appContext]);
24588
24649
  React.useEffect(() => {
@@ -24612,6 +24673,24 @@ const KosTranslationProvider = ({
24612
24673
  };
24613
24674
  }, {});
24614
24675
  setLocalization(localizationDescriptor);
24676
+ const _allLocales = descriptors.reduce((acc, curr) => {
24677
+ Object.keys(curr.namespaces).filter((ns) => !excludeNamespaces.includes(ns)).forEach((namespaceKey) => {
24678
+ const namespace = curr.namespaces[namespaceKey];
24679
+ Object.keys(namespace.locales).forEach((localeKey) => {
24680
+ acc.add(localeKey);
24681
+ });
24682
+ });
24683
+ return acc;
24684
+ }, /* @__PURE__ */ new Set());
24685
+ const localeList = Array.from(_allLocales).map((locale2) => {
24686
+ return {
24687
+ locale: locale2,
24688
+ label: new Intl.DisplayNames([locale2], { type: "language" }).of(
24689
+ locale2
24690
+ )
24691
+ };
24692
+ });
24693
+ setAllLocales(localeList);
24615
24694
  }
24616
24695
  initTools();
24617
24696
  }, [_appContext, descriptorResolver]);
@@ -24639,13 +24718,15 @@ const KosTranslationProvider = ({
24639
24718
  if (translations) {
24640
24719
  translations.currentLocale = locale2;
24641
24720
  }
24642
- }
24721
+ },
24722
+ allLocales
24643
24723
  };
24644
24724
  }
24645
24725
  return {
24646
24726
  setLocale: () => {
24647
24727
  throw new Error("Translations not ready");
24648
- }
24728
+ },
24729
+ allLocales: []
24649
24730
  };
24650
24731
  }, [ready, translations]);
24651
24732
  const content = ready ? children : null;