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

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,19 @@ 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
- Promise.all(this.#awaitedLoadables.map((it) => {
24
- this.#loadTracker?.dependencyTriggered(it);
25
- return it
26
- .ensureLoaded()
27
- .then(() => this.#loadTracker?.dependencyFinished(it))
28
- .catch((e) => this.#loadTracker?.dependencyFailed(it, e));
29
- })).then(() => {
24
+ Promise.all(this.#awaitedLoadables.map((it) => it.ensureLoaded())).then(() => {
30
25
  this.#_loaded$.value = true;
26
+ this.loadTracker?.finished();
27
+ }).catch(e => {
28
+ this.loadTracker.failed(e);
29
+ throw e;
31
30
  });
32
31
  }
33
32
  else {
34
33
  this.#_loaded$.value = true;
34
+ this.loadTracker?.finished();
35
35
  }
36
36
  }
37
37
  injectLoadable(token, options) {
@@ -40,7 +40,7 @@ export class LoadableComponent extends DisposableComponent {
40
40
  registerLoadable(loadable, options) {
41
41
  const shouldWait = !options || options.wait === true;
42
42
  if (shouldWait)
43
- this.#loadTracker?.registerDependency(loadable);
43
+ this.loadTracker?.registerDependency(loadable);
44
44
  if (this.loaded$.value) {
45
45
  loadable.ensureLoaded();
46
46
  }
@@ -60,4 +60,4 @@ export class LoadableComponent extends DisposableComponent {
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
61
61
  type: Directive
62
62
  }], ctorParameters: function () { return []; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFbkMsWUFBWSxDQUEwQztJQUUvRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUMxQyxPQUFPLEVBQUU7cUJBQ04sWUFBWSxFQUFFO3FCQUNkLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUNyRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRVMsY0FBYyxDQUFxQixLQUF1QixFQUFFLE9BRXJFO1FBQ0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQXFCLFFBQVcsRUFBRSxPQUEyQjtRQUMzRSxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUNyRCxJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWhFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO3VHQTVEVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RPcHRpb25zLCBPbkluaXQsIFByb3ZpZGVyVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRhYmxlLCBMb2FkaW5nU3RhdGVUcmFja2VyLCBNdXRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTG9hZGFibGVDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gIHJlYWRvbmx5ICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG5cbiAgcmVhZG9ubHkgI2xvYWRUcmFja2VyOiBMb2FkaW5nU3RhdGVUcmFja2VyLlRyYWNrZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLiNsb2FkVHJhY2tlciA9IGluamVjdChMb2FkaW5nU3RhdGVUcmFja2VyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5yZWdpc3Rlcih0aGlzKTtcbiAgfVxuXG4gIGdldCBsb2FkZWQkKCkge1xuICAgIHJldHVybiB0aGlzLiNfbG9hZGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGVwZW5kZW5jaWVzKCkge1xuICAgIGlmICh0aGlzLiNhd2FpdGVkTG9hZGFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLm1hcCgoaXQpID0+IHtcbiAgICAgICAgICB0aGlzLiNsb2FkVHJhY2tlcj8uZGVwZW5kZW5jeVRyaWdnZXJlZChpdClcbiAgICAgICAgICByZXR1cm4gaXRcbiAgICAgICAgICAgIC5lbnN1cmVMb2FkZWQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy4jbG9hZFRyYWNrZXI/LmRlcGVuZGVuY3lGaW5pc2hlZChpdCkpXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHRoaXMuI2xvYWRUcmFja2VyPy5kZXBlbmRlbmN5RmFpbGVkKGl0LCBlKSk7XG4gICAgICAgIH0pXG4gICAgICApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbmplY3RMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+LCBvcHRpb25zPzogSW5qZWN0T3B0aW9ucyAmIHtcbiAgICB3YWl0OiBib29sZWFuXG4gIH0pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlckxvYWRhYmxlKGluamVjdCh0b2tlbiwgb3B0aW9ucyksIG9wdGlvbnMpO1xuICB9XG5cbiAgcmVnaXN0ZXJMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KGxvYWRhYmxlOiBULCBvcHRpb25zPzogeyB3YWl0OiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBzaG91bGRXYWl0ID0gIW9wdGlvbnMgfHwgb3B0aW9ucy53YWl0ID09PSB0cnVlO1xuICAgIGlmIChzaG91bGRXYWl0KSB0aGlzLiNsb2FkVHJhY2tlcj8ucmVnaXN0ZXJEZXBlbmRlbmN5KGxvYWRhYmxlKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYXN5bmNMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFekIsV0FBVyxDQUEwQztJQUV4RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FDdEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRVMsY0FBYyxDQUFxQixLQUF1QixFQUFFLE9BRXJFO1FBQ0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQXFCLFFBQVcsRUFBRSxPQUEyQjtRQUMzRSxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUNyRCxJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9ELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO3VHQTVEVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RPcHRpb25zLCBPbkluaXQsIFByb3ZpZGVyVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRhYmxlLCBMb2FkaW5nU3RhdGVUcmFja2VyLCBNdXRhYmxlVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTG9hZGFibGVDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gIHJlYWRvbmx5ICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRUcmFja2VyOiBMb2FkaW5nU3RhdGVUcmFja2VyLlRyYWNrZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvYWRUcmFja2VyID0gaW5qZWN0KExvYWRpbmdTdGF0ZVRyYWNrZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk/LnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGxvYWRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI19sb2FkZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5sb2FkRGVwZW5kZW5jaWVzKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWREZXBlbmRlbmNpZXMoKSB7XG4gICAgdGhpcy5sb2FkVHJhY2tlcj8udHJpZ2dlcmVkKCk7XG4gICAgaWYgKHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMubGVuZ3RoID4gMCkge1xuICAgICAgUHJvbWlzZS5hbGwoXG4gICAgICAgIHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMubWFwKChpdCkgPT4gaXQuZW5zdXJlTG9hZGVkKCkpXG4gICAgICApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZFRyYWNrZXI/LmZpbmlzaGVkKCk7XG4gICAgICB9KS5jYXRjaChlID0+e1xuICAgICAgICB0aGlzLmxvYWRUcmFja2VyLmZhaWxlZChlKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRUcmFja2VyPy5maW5pc2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbmplY3RMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+LCBvcHRpb25zPzogSW5qZWN0T3B0aW9ucyAmIHtcbiAgICB3YWl0OiBib29sZWFuXG4gIH0pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlckxvYWRhYmxlKGluamVjdCh0b2tlbiwgb3B0aW9ucyksIG9wdGlvbnMpO1xuICB9XG5cbiAgcmVnaXN0ZXJMb2FkYWJsZTxUIGV4dGVuZHMgTG9hZGFibGU+KGxvYWRhYmxlOiBULCBvcHRpb25zPzogeyB3YWl0OiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBzaG91bGRXYWl0ID0gIW9wdGlvbnMgfHwgb3B0aW9ucy53YWl0ID09PSB0cnVlO1xuICAgIGlmIChzaG91bGRXYWl0KSB0aGlzLmxvYWRUcmFja2VyPy5yZWdpc3RlckRlcGVuZGVuY3kobG9hZGFibGUpO1xuXG4gICAgaWYgKHRoaXMubG9hZGVkJC52YWx1ZSkge1xuICAgICAgbG9hZGFibGUuZW5zdXJlTG9hZGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzaG91bGRXYWl0KSB7XG4gICAgICAgIHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNhc3luY0xvYWRhYmxlcy5wdXNoKGxvYWRhYmxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxvYWRhYmxlO1xuICB9XG59XG4iXX0=
@@ -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,19 @@ 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
- Promise.all(this.#awaitedLoadables.map((it) => {
5288
- this.#loadTracker?.dependencyTriggered(it);
5289
- return it
5290
- .ensureLoaded()
5291
- .then(() => this.#loadTracker?.dependencyFinished(it))
5292
- .catch((e) => this.#loadTracker?.dependencyFailed(it, e));
5293
- })).then(() => {
5288
+ Promise.all(this.#awaitedLoadables.map((it) => it.ensureLoaded())).then(() => {
5294
5289
  this.#_loaded$.value = true;
5290
+ this.loadTracker?.finished();
5291
+ }).catch(e => {
5292
+ this.loadTracker.failed(e);
5293
+ throw e;
5295
5294
  });
5296
5295
  }
5297
5296
  else {
5298
5297
  this.#_loaded$.value = true;
5298
+ this.loadTracker?.finished();
5299
5299
  }
5300
5300
  }
5301
5301
  injectLoadable(token, options) {
@@ -5304,7 +5304,7 @@ class LoadableComponent extends DisposableComponent {
5304
5304
  registerLoadable(loadable, options) {
5305
5305
  const shouldWait = !options || options.wait === true;
5306
5306
  if (shouldWait)
5307
- this.#loadTracker?.registerDependency(loadable);
5307
+ this.loadTracker?.registerDependency(loadable);
5308
5308
  if (this.loaded$.value) {
5309
5309
  loadable.ensureLoaded();
5310
5310
  }