@coolon/angular-ui-powerups 16.1.0-aplpha.184 → 16.1.0-aplpha.186

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.
@@ -6,10 +6,10 @@ export class LoadableComponent extends DisposableComponent {
6
6
  #_loaded$ = new MutableValueModel();
7
7
  #asyncLoadables = [];
8
8
  #awaitedLoadables = [];
9
- #loadTracker;
9
+ loadTracker;
10
10
  constructor() {
11
11
  super();
12
- this.#loadTracker = inject(LoadingStateTracker, { optional: true })?.register(this);
12
+ this.loadTracker = inject(LoadingStateTracker, { optional: true })?.register(this);
13
13
  }
14
14
  get loaded$() {
15
15
  return this.#_loaded$.readonly$;
@@ -19,19 +19,25 @@ export class LoadableComponent extends DisposableComponent {
19
19
  this.loadDependencies();
20
20
  }
21
21
  loadDependencies() {
22
+ this.loadTracker?.triggered();
22
23
  if (this.#awaitedLoadables.length > 0) {
23
24
  Promise.all(this.#awaitedLoadables.map((it) => {
24
- this.#loadTracker?.dependencyTriggered(it);
25
+ this.loadTracker?.dependencyTriggered(it);
25
26
  return it
26
27
  .ensureLoaded()
27
- .then(() => this.#loadTracker?.dependencyFinished(it))
28
- .catch((e) => this.#loadTracker?.dependencyFailed(it, e));
28
+ .then(() => this.loadTracker?.dependencyFinished(it))
29
+ .catch((e) => this.loadTracker?.dependencyFailed(it, e));
29
30
  })).then(() => {
30
31
  this.#_loaded$.value = true;
32
+ this.loadTracker?.finished();
33
+ }).catch(e => {
34
+ this.loadTracker.failed(e);
35
+ throw e;
31
36
  });
32
37
  }
33
38
  else {
34
39
  this.#_loaded$.value = true;
40
+ this.loadTracker?.finished();
35
41
  }
36
42
  }
37
43
  injectLoadable(token, options) {
@@ -40,7 +46,7 @@ export class LoadableComponent extends DisposableComponent {
40
46
  registerLoadable(loadable, options) {
41
47
  const shouldWait = !options || options.wait === true;
42
48
  if (shouldWait)
43
- this.#loadTracker?.registerDependency(loadable);
49
+ this.loadTracker?.registerDependency(loadable);
44
50
  if (this.loaded$.value) {
45
51
  loadable.ensureLoaded();
46
52
  }
@@ -60,4 +66,4 @@ export class LoadableComponent extends DisposableComponent {
60
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
61
67
  type: Directive
62
68
  }], ctorParameters: function () { return []; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFbkMsWUFBWSxDQUEwQztJQUUvRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUMxQyxPQUFPLEVBQUU7cUJBQ04sWUFBWSxFQUFFO3FCQUNkLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUNyRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRVMsY0FBYyxDQUFxQixLQUF1QixFQUFFLE9BRXJFO1FBQ0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQXFCLFFBQVcsRUFBRSxPQUEyQjtRQUMzRSxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUNyRCxJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWhFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO3VHQTVEVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RPcHRpb25zLCBPbkluaXQsIFByb3ZpZGVyVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRhYmxlLCBMb2FkaW5nU3RhdGVUcmFja2VyLCBNdXRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTG9hZGFibGVDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gIHJlYWRvbmx5ICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG5cbiAgcmVhZG9ubHkgI2xvYWRUcmFja2VyOiBMb2FkaW5nU3RhdGVUcmFja2VyLlRyYWNrZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLiNsb2FkVHJhY2tlciA9IGluamVjdChMb2FkaW5nU3RhdGVUcmFja2VyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5yZWdpc3Rlcih0aGlzKTtcbiAgfVxuXG4gIGdldCBsb2FkZWQkKCkge1xuICAgIHJldHVybiB0aGlzLiNfbG9hZGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGVwZW5kZW5jaWVzKCkge1xuICAgIGlmICh0aGlzLiNhd2FpdGVkTG9hZGFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLm1hcCgoaXQpID0+IHtcbiAgICAgICAgICB0aGlzLiNsb2FkVHJhY2tlcj8uZGVwZW5kZW5jeVRyaWdnZXJlZChpdClcbiAgICAgICAgICByZXR1cm4gaXRcbiAgICAgICAgICAgIC5lbnN1cmVMb2FkZWQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy4jbG9hZFRyYWNrZXI/LmRlcGVuZGVuY3lGaW5pc2hlZChpdCkpXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHRoaXMuI2xvYWRUcmFja2VyPy5kZXBlbmRlbmN5RmFpbGVkKGl0LCBlKSk7XG4gICAgICAgIH0pXG4gICAgICApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbmplY3RMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+LCBvcHRpb25zPzogSW5qZWN0T3B0aW9ucyAmIHtcbiAgICB3YWl0OiBib29sZWFuXG4gIH0pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlckxvYWRhYmxlKGluamVjdCh0b2tlbiwgb3B0aW9ucyksIG9wdGlvbnMpO1xuICB9XG5cbiAgcmVnaXN0ZXJMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KGxvYWRhYmxlOiBULCBvcHRpb25zPzogeyB3YWl0OiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBzaG91bGRXYWl0ID0gIW9wdGlvbnMgfHwgb3B0aW9ucy53YWl0ID09PSB0cnVlO1xuICAgIGlmIChzaG91bGRXYWl0KSB0aGlzLiNsb2FkVHJhY2tlcj8ucmVnaXN0ZXJEZXBlbmRlbmN5KGxvYWRhYmxlKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYXN5bmNMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFekIsV0FBVyxDQUEwQztJQUV4RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3pDLE9BQU8sRUFBRTtxQkFDTixZQUFZLEVBQUU7cUJBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3BELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFUyxjQUFjLENBQXFCLEtBQXVCLEVBQUUsT0FFckU7UUFDQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBcUIsUUFBVyxFQUFFLE9BQTJCO1FBQzNFLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3JELElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBbEVVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdE9wdGlvbnMsIE9uSW5pdCwgUHJvdmlkZXJUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGFibGUsIExvYWRpbmdTdGF0ZVRyYWNrZXIsIE11dGFibGVWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBMb2FkYWJsZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHJlYWRvbmx5ICNfbG9hZGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICByZWFkb25seSAjYXN5bmNMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgcmVhZG9ubHkgI2F3YWl0ZWRMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZFRyYWNrZXI6IExvYWRpbmdTdGF0ZVRyYWNrZXIuVHJhY2tlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9hZFRyYWNrZXIgPSBpbmplY3QoTG9hZGluZ1N0YXRlVHJhY2tlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8ucmVnaXN0ZXIodGhpcyk7XG4gIH1cblxuICBnZXQgbG9hZGVkJCgpIHtcbiAgICByZXR1cm4gdGhpcy4jX2xvYWRlZCQucmVhZG9ubHkkO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmxvYWREZXBlbmRlbmNpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERlcGVuZGVuY2llcygpIHtcbiAgICB0aGlzLmxvYWRUcmFja2VyPy50cmlnZ2VyZWQoKTtcbiAgICBpZiAodGhpcy4jYXdhaXRlZExvYWRhYmxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAgdGhpcy4jYXdhaXRlZExvYWRhYmxlcy5tYXAoKGl0KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeVRyaWdnZXJlZChpdClcbiAgICAgICAgICByZXR1cm4gaXRcbiAgICAgICAgICAgIC5lbnN1cmVMb2FkZWQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeUZpbmlzaGVkKGl0KSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeUZhaWxlZChpdCwgZSkpO1xuICAgICAgICB9KVxuICAgICAgKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRUcmFja2VyPy5maW5pc2hlZCgpO1xuICAgICAgfSkuY2F0Y2goZSA9PntcbiAgICAgICAgdGhpcy5sb2FkVHJhY2tlci5mYWlsZWQoZSk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5sb2FkVHJhY2tlcj8uZmluaXNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5qZWN0TG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgb3B0aW9ucz86IEluamVjdE9wdGlvbnMgJiB7XG4gICAgd2FpdDogYm9vbGVhblxuICB9KTogVCB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJMb2FkYWJsZShpbmplY3QodG9rZW4sIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVyTG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPihsb2FkYWJsZTogVCwgb3B0aW9ucz86IHsgd2FpdDogYm9vbGVhbiB9KSB7XG4gICAgY29uc3Qgc2hvdWxkV2FpdCA9ICFvcHRpb25zIHx8IG9wdGlvbnMud2FpdCA9PT0gdHJ1ZTtcbiAgICBpZiAoc2hvdWxkV2FpdCkgdGhpcy5sb2FkVHJhY2tlcj8ucmVnaXN0ZXJEZXBlbmRlbmN5KGxvYWRhYmxlKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYXN5bmNMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
@@ -5270,10 +5270,10 @@ class LoadableComponent extends DisposableComponent {
5270
5270
  #_loaded$ = new MutableValueModel();
5271
5271
  #asyncLoadables = [];
5272
5272
  #awaitedLoadables = [];
5273
- #loadTracker;
5273
+ loadTracker;
5274
5274
  constructor() {
5275
5275
  super();
5276
- this.#loadTracker = inject(LoadingStateTracker, { optional: true })?.register(this);
5276
+ this.loadTracker = inject(LoadingStateTracker, { optional: true })?.register(this);
5277
5277
  }
5278
5278
  get loaded$() {
5279
5279
  return this.#_loaded$.readonly$;
@@ -5283,19 +5283,25 @@ class LoadableComponent extends DisposableComponent {
5283
5283
  this.loadDependencies();
5284
5284
  }
5285
5285
  loadDependencies() {
5286
+ this.loadTracker?.triggered();
5286
5287
  if (this.#awaitedLoadables.length > 0) {
5287
5288
  Promise.all(this.#awaitedLoadables.map((it) => {
5288
- this.#loadTracker?.dependencyTriggered(it);
5289
+ this.loadTracker?.dependencyTriggered(it);
5289
5290
  return it
5290
5291
  .ensureLoaded()
5291
- .then(() => this.#loadTracker?.dependencyFinished(it))
5292
- .catch((e) => this.#loadTracker?.dependencyFailed(it, e));
5292
+ .then(() => this.loadTracker?.dependencyFinished(it))
5293
+ .catch((e) => this.loadTracker?.dependencyFailed(it, e));
5293
5294
  })).then(() => {
5294
5295
  this.#_loaded$.value = true;
5296
+ this.loadTracker?.finished();
5297
+ }).catch(e => {
5298
+ this.loadTracker.failed(e);
5299
+ throw e;
5295
5300
  });
5296
5301
  }
5297
5302
  else {
5298
5303
  this.#_loaded$.value = true;
5304
+ this.loadTracker?.finished();
5299
5305
  }
5300
5306
  }
5301
5307
  injectLoadable(token, options) {
@@ -5304,7 +5310,7 @@ class LoadableComponent extends DisposableComponent {
5304
5310
  registerLoadable(loadable, options) {
5305
5311
  const shouldWait = !options || options.wait === true;
5306
5312
  if (shouldWait)
5307
- this.#loadTracker?.registerDependency(loadable);
5313
+ this.loadTracker?.registerDependency(loadable);
5308
5314
  if (this.loaded$.value) {
5309
5315
  loadable.ensureLoaded();
5310
5316
  }