@coolon/angular-ui-powerups 16.1.0-aplpha.165 → 16.1.0-aplpha.166

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.
@@ -1,37 +1,32 @@
1
1
  import { Directive, inject } from '@angular/core';
2
2
  import { MutableValueModel } from '@coolon/pectin';
3
+ import { LoadingMonitor } from '../services/loading-monitor';
3
4
  import { DisposableComponent } from './disposable-component';
4
5
  import * as i0 from "@angular/core";
5
6
  export class LoadableComponent extends DisposableComponent {
6
7
  #_loaded$ = new MutableValueModel();
7
8
  #asyncLoadables = [];
8
9
  #awaitedLoadables = [];
10
+ #loadTracker;
11
+ constructor() {
12
+ super();
13
+ this.#loadTracker = inject(LoadingMonitor, { optional: true })?.createTracker(this);
14
+ }
9
15
  get loaded$() {
10
16
  return this.#_loaded$.readonly$;
11
17
  }
12
18
  ngOnInit() {
13
19
  super.ngOnInit();
14
- // setTimeout(() => {
15
- // if (!this.#_loaded$.value) {
16
- // const state = {};
17
- // this.#awaitedLoadables.forEach((it: Loadable) => {
18
- // state[it.constructor.name] = it.loaded$.value;
19
- // }, {});
20
- // console.error('Failed to load after five seconds', state);
21
- // }
22
- // }, 5000);
23
20
  this.loadDependencies();
24
21
  }
25
22
  loadDependencies() {
26
23
  this.#asyncLoadables.forEach(it => it.ensureLoaded());
27
24
  if (this.#awaitedLoadables.length > 0) {
28
- // console.log(`loading ${this.constructor.name} dependencies: ${this.#awaitedLoadables.map(it => it.constructor.name).join(', ')}`);
29
25
  Promise.all(this.#awaitedLoadables.map(it => {
30
- return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
26
+ return it.ensureLoaded();
31
27
  })).catch(reason => {
32
28
  console.error(`${this.constructor.name} failed to load all loadables:`, reason);
33
29
  }).finally(() => {
34
- // console.log(`${this.constructor.name} loaded`);
35
30
  this.#_loaded$.value = true;
36
31
  });
37
32
  }
@@ -43,11 +38,14 @@ export class LoadableComponent extends DisposableComponent {
43
38
  return this.registerLoadable(inject(token, options), options);
44
39
  }
45
40
  registerLoadable(loadable, options) {
41
+ const shouldWait = !options || options.wait === true;
42
+ if (shouldWait)
43
+ this.#loadTracker?.registerLoadableDependency(loadable);
46
44
  if (this.loaded$.value) {
47
45
  loadable.ensureLoaded();
48
46
  }
49
47
  else {
50
- if (!options || options.wait === true) {
48
+ if (shouldWait) {
51
49
  this.#awaitedLoadables.push(loadable);
52
50
  }
53
51
  else {
@@ -56,10 +54,10 @@ export class LoadableComponent extends DisposableComponent {
56
54
  }
57
55
  return loadable;
58
56
  }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
60
58
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
61
59
  }
62
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
63
61
  type: Directive
64
- }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUk3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFNUMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixxQkFBcUI7UUFDckIsaUNBQWlDO1FBQ2pDLHdCQUF3QjtRQUN4Qix5REFBeUQ7UUFDekQsdURBQXVEO1FBQ3ZELGNBQWM7UUFDZCxpRUFBaUU7UUFDakUsTUFBTTtRQUNOLFlBQVk7UUFDWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxxSUFBcUk7WUFDckksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBLDREQUE0RDtZQUN2RixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNkLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFUyxjQUFjLENBQXFCLEtBQXVCLEVBQUUsT0FFckU7UUFDQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBcUIsUUFBVyxFQUFFLE9BQTJCO1FBQzNFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO3VHQTFEVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RPcHRpb25zLCBPbkluaXQsIFByb3ZpZGVyVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE11dGFibGVWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGFibGUgfSBmcm9tICcuL3R5cGVzL2xvYWRhYmxlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTG9hZGFibGVDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICByZWFkb25seSAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gIHJlYWRvbmx5ICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG5cbiAgZ2V0IGxvYWRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI19sb2FkZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gICBpZiAoIXRoaXMuI19sb2FkZWQkLnZhbHVlKSB7XG4gICAgLy8gICAgIGNvbnN0IHN0YXRlID0ge307XG4gICAgLy8gICAgIHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMuZm9yRWFjaCgoaXQ6IExvYWRhYmxlKSA9PiB7XG4gICAgLy8gICAgICAgc3RhdGVbaXQuY29uc3RydWN0b3IubmFtZV0gPSBpdC5sb2FkZWQkLnZhbHVlO1xuICAgIC8vICAgICB9LCB7fSk7XG4gICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFmdGVyIGZpdmUgc2Vjb25kcycsIHN0YXRlKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9LCA1MDAwKTtcbiAgICB0aGlzLmxvYWREZXBlbmRlbmNpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERlcGVuZGVuY2llcygpIHtcbiAgICB0aGlzLiNhc3luY0xvYWRhYmxlcy5mb3JFYWNoKGl0ID0+IGl0LmVuc3VyZUxvYWRlZCgpKTtcbiAgICBpZiAodGhpcy4jYXdhaXRlZExvYWRhYmxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgbG9hZGluZyAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZGVwZW5kZW5jaWVzOiAke3RoaXMuI2F3YWl0ZWRMb2FkYWJsZXMubWFwKGl0ID0+IGl0LmNvbnN0cnVjdG9yLm5hbWUpLmpvaW4oJywgJyl9YCk7XG4gICAgICBQcm9taXNlLmFsbCh0aGlzLiNhd2FpdGVkTG9hZGFibGVzLm1hcChpdCA9PiB7XG4gICAgICAgIHJldHVybiBpdC5lbnN1cmVMb2FkZWQoKTsvLy50aGVuKCgpID0+IGNvbnNvbGUubG9nKGAke2l0LmNvbnN0cnVjdG9yLm5hbWV9IGxvYWRlZGApKTtcbiAgICAgIH0pKS5jYXRjaChyZWFzb24gPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZmFpbGVkIHRvIGxvYWQgYWxsIGxvYWRhYmxlczpgLCByZWFzb24pO1xuICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gbG9hZGVkYCk7XG4gICAgICAgIHRoaXMuI19sb2FkZWQkLnZhbHVlID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluamVjdExvYWRhYmxlPFQgZXh0ZW5kcyBMb2FkYWJsZT4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4sIG9wdGlvbnM/OiBJbmplY3RPcHRpb25zICYge1xuICAgIHdhaXQ6IGJvb2xlYW5cbiAgfSk6IFQge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyTG9hZGFibGUoaW5qZWN0KHRva2VuLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cblxuICByZWdpc3RlckxvYWRhYmxlPFQgZXh0ZW5kcyBMb2FkYWJsZT4obG9hZGFibGU6IFQsIG9wdGlvbnM/OiB7IHdhaXQ6IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy53YWl0ID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNhc3luY0xvYWRhYmxlcy5wdXNoKGxvYWRhYmxlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxvYWRhYmxlO1xuICB9XG59XG4iXX0=
62
+ }], ctorParameters: function () { return []; } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUFtQjtJQUUvQyxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBVyxDQUFDO0lBQzdDLGVBQWUsR0FBZSxFQUFFLENBQUM7SUFDakMsaUJBQWlCLEdBQWUsRUFBRSxDQUFDO0lBRW5DLFlBQVksQ0FBcUM7SUFFMUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFUyxjQUFjLENBQXFCLEtBQXVCLEVBQUUsT0FFckU7UUFDQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBcUIsUUFBVyxFQUFFLE9BQTJCO1FBQzNFLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3JELElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBekRVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdE9wdGlvbnMsIE9uSW5pdCwgUHJvdmlkZXJUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXV0YWJsZVZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBMb2FkaW5nTW9uaXRvciB9IGZyb20gJy4uL3NlcnZpY2VzL2xvYWRpbmctbW9uaXRvcic7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkYWJsZSB9IGZyb20gJy4vdHlwZXMvbG9hZGFibGUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBMb2FkYWJsZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHJlYWRvbmx5ICNfbG9hZGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICByZWFkb25seSAjYXN5bmNMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgcmVhZG9ubHkgI2F3YWl0ZWRMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcblxuICByZWFkb25seSAjbG9hZFRyYWNrZXI6IExvYWRpbmdNb25pdG9yLlRyYWNrZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLiNsb2FkVHJhY2tlciA9IGluamVjdChMb2FkaW5nTW9uaXRvciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uY3JlYXRlVHJhY2tlcih0aGlzKTtcbiAgfVxuXG4gIGdldCBsb2FkZWQkKCkge1xuICAgIHJldHVybiB0aGlzLiNfbG9hZGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMubG9hZERlcGVuZGVuY2llcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGVwZW5kZW5jaWVzKCkge1xuICAgIHRoaXMuI2FzeW5jTG9hZGFibGVzLmZvckVhY2goaXQgPT4gaXQuZW5zdXJlTG9hZGVkKCkpO1xuICAgIGlmICh0aGlzLiNhd2FpdGVkTG9hZGFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByb21pc2UuYWxsKHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMubWFwKGl0ID0+IHtcbiAgICAgICAgcmV0dXJuIGl0LmVuc3VyZUxvYWRlZCgpO1xuICAgICAgfSkpLmNhdGNoKHJlYXNvbiA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBmYWlsZWQgdG8gbG9hZCBhbGwgbG9hZGFibGVzOmAsIHJlYXNvbik7XG4gICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19sb2FkZWQkLnZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5qZWN0TG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgb3B0aW9ucz86IEluamVjdE9wdGlvbnMgJiB7XG4gICAgd2FpdDogYm9vbGVhblxuICB9KTogVCB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJMb2FkYWJsZShpbmplY3QodG9rZW4sIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVyTG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPihsb2FkYWJsZTogVCwgb3B0aW9ucz86IHsgd2FpdDogYm9vbGVhbiB9KSB7XG4gICAgY29uc3Qgc2hvdWxkV2FpdCA9ICFvcHRpb25zIHx8IG9wdGlvbnMud2FpdCA9PT0gdHJ1ZTtcbiAgICBpZiAoc2hvdWxkV2FpdCkgdGhpcy4jbG9hZFRyYWNrZXI/LnJlZ2lzdGVyTG9hZGFibGVEZXBlbmRlbmN5KGxvYWRhYmxlKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYXN5bmNMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
22
22
  type: Inject,
23
23
  args: [ALERT_CONFIG]
24
24
  }] }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSXJDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBTSxhQUFhLENBQUMsQ0FBQztBQUtuRSxNQUFNLE9BQU8sdUJBQXdELFNBQVEsUUFBaUI7SUFFdkM7SUFBckQsWUFBcUQsTUFBUztRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUQyQyxXQUFNLEdBQU4sTUFBTSxDQUFHO1FBRTVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsQ0FBQzt1R0FMVSx1QkFBdUIsa0JBRWQsWUFBWTsyRkFGckIsdUJBQXVCLDJFQUZ4QixFQUFFOzsyRkFFRCx1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQUdjLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge2xhbmd9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSAnLi4vYWN0aXZpdHknO1xuaW1wb3J0IHtBbGVydH0gZnJvbSAnLi4vYWxlcnQnO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tICcuLi9jb25maXJtJztcblxuZXhwb3J0IGNvbnN0IEFMRVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdBbGVydENvbmZpZycpO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGlhbG9nQ29tcG9uZW50PEMgZXh0ZW5kcyBBbGVydCwgRCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBBY3Rpdml0eTxELCBSLCBFPiB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChBTEVSVF9DT05GSUcpIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEMpIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoY29uZmlnKTtcbiAgfVxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3ZDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBTSxhQUFhLENBQUMsQ0FBQztBQUtuRSxNQUFNLE9BQU8sdUJBQXdELFNBQVEsUUFBaUI7SUFFdkM7SUFBckQsWUFBcUQsTUFBUztRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUQyQyxXQUFNLEdBQU4sTUFBTSxDQUFHO1FBRTVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsQ0FBQzt1R0FMVSx1QkFBdUIsa0JBRWQsWUFBWTsyRkFGckIsdUJBQXVCLDJFQUZ4QixFQUFFOzsyRkFFRCx1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQUdjLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJy4uL2FsZXJ0JztcblxuZXhwb3J0IGNvbnN0IEFMRVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdBbGVydENvbmZpZycpO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGlhbG9nQ29tcG9uZW50PEMgZXh0ZW5kcyBBbGVydCwgRCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBBY3Rpdml0eTxELCBSLCBFPiB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChBTEVSVF9DT05GSUcpIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEMpIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoY29uZmlnKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,7 @@
1
+ import { __decorate, __metadata } from "tslib";
1
2
  import { Component, Input, QueryList, ViewChild, ViewChildren } from "@angular/core";
2
3
  import { MatTabGroup } from "@angular/material/tabs";
3
- import { assert, DelegatingValueModel, Dsl, GarbageCollector, MutableValueModel } from "@coolon/pectin";
4
+ import { assert, DelegatingValueModel, Dsl, GarbageCollector, MutableValueModel, Trace } from "@coolon/pectin";
4
5
  import { lang } from "@coolon/typescript-utilities";
5
6
  import { findLast } from "lodash-es";
6
7
  import { PlaceRouter } from "../../../place/place-router";
@@ -101,7 +102,6 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
101
102
  * Cancels the current activity and returns true the context is no longer active, false if
102
103
  * there is still another activity running.
103
104
  */
104
- // @Trace()
105
105
  async cancelActiveActivity() {
106
106
  const activity = this.getActiveActivityRef();
107
107
  activity.cancel();
@@ -256,6 +256,12 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
256
256
  { provide: INTERACTION_CONTEXT, useClass: ActivityContainerComponent },
257
257
  ], viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i4.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
258
258
  }
259
+ __decorate([
260
+ Trace(),
261
+ __metadata("design:type", Function),
262
+ __metadata("design:paramtypes", []),
263
+ __metadata("design:returntype", Promise)
264
+ ], ActivityContainerComponent.prototype, "cancelActiveActivity", null);
259
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
260
266
  type: Component,
261
267
  args: [{ selector: "aup-activity-container", providers: [
@@ -271,5 +277,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
271
277
  args: [ActivityOutletComponent]
272
278
  }], animationDuration: [{
273
279
  type: Input
274
- }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxNQUFNLEVBR04sb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFFbEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7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YUFDcEM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtJQUMvQixDQUFDO3VHQXZSVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixxSUFKM0I7WUFDUixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUM7U0FDckUsMkpBVWEsdUJBQXVCLHVFQ3ZDdkMseWdDQW9CQTs7MkZEV2EsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLHdCQUF3QixhQUd4Qjt3QkFDUixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLDRCQUE0QixFQUFDO3FCQUNyRTtrR0FLRCxhQUFhO3NCQURaLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSWpDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBTXJDLGlCQUFpQjtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdFRhYkdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFic1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlVmFsdWVNb2RlbCwgVHJhY2Vcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2xhbmd9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7ZmluZExhc3R9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi8uLi9wbGFjZS9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB7QWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWN0aXZpdHlSZWZ9IGZyb20gXCIuLi8uLi9hY3Rpdml0eS1yZWZcIjtcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVCwgSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50fSBmcm9tIFwiLi9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLWFjdGl2aXR5LWNvbnRhaW5lclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6W1xuICAgIHtwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhULCB1c2VDbGFzczogQWN0aXZpdHlDb250YWluZXJDb21wb25lbnR9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50PEQsIFIsIEU+IGV4dGVuZHMgQWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHQge1xuXG4gIEBJbnB1dCgpXG4gIGR5bmFtaWNIZWlnaHQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwidGFic1wiLCB7c3RhdGljOiB0cnVlfSlcbiAgdGFiczogTWF0VGFiR3JvdXA7XG5cbiAgQFZpZXdDaGlsZHJlbihBY3Rpdml0eU91dGxldENvbXBvbmVudClcbiAgYWN0aXZpdHlPdXRsZXRzOiBRdWVyeUxpc3Q8QWN0aXZpdHlPdXRsZXRDb21wb25lbnQ8YW55LCBhbnksIGFueT4+O1xuXG4gIGFjdGl2aXR5UmVmczogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gXCI1MDBtc1wiXG5cbiAgcHJpdmF0ZSBfaWRlbnRpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIF9kZWZlcnJlZENsZWFuVXA6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGludGVyYWN0aW9uU2VydmljZUFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaTtcblxuICBwcml2YXRlIGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICBwcml2YXRlIHN5bmNTZWxlY3RlZFRhYlRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBvbkFuaW1hdGlvbkZpbmlzaGVkSm9iOiAoKSA9PiB2b2lkO1xuXG4gIHJlYWRvbmx5IF9zdGFydGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9yZWFkeSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBfYW5pbWF0aW5nJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgYnVzeSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG5cbiAgcmVhZG9ubHkgc3luY1RhYnNKb2I6ICgpID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgc3RhYmxlJDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcHJpdmF0ZSB3YXNBY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgdmFsdWVPZiwgd2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnJlYWR5JCkuYmVjb21lc1RydXRoeSgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSlcbiAgICB0aGlzLnN0YWJsZSQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMucmVhZHkkLFxuICAgICAgdGhpcy5fc3RhcnRlZCQsXG4gICAgICBjaGFpbih0aGlzLmFuaW1hdGluZyQpLmlzRmFsc2V5KClcbiAgICApLmFyZVRydXRoeSgpO1xuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgcmVhZHkkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeSQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGluZyQucmVhZG9ubHkkO1xuICB9XG5cbiAgaW5pdGlhbGlzZShpZGVudGlmaWVyOiBzdHJpbmcsIGFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaSkge1xuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbChpZGVudGlmaWVyKTtcbiAgICBhc3NlcnQubm90TmlsKGFwaSk7XG4gICAgdGhpcy5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkgPSBhcGk7XG4gIH1cblxuICBub3RpZnlSZWFkeShyZWFkeTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWR5JC52YWx1ZSA9IHJlYWR5O1xuICB9XG5cbiAgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuaWRlbnRpZmllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYW4gYWN0aXZpdHkgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqL1xuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpID4gMDtcbiAgICAvLyBpZiAodGhpcy53YXNBY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyh7d2FzOiB0aGlzLndhc0FjdGl2ZSwgaXM6IGlzQWN0aXZlfSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMud2FzQWN0aXZlID0gaXNBY3RpdmVcbiAgICByZXR1cm4gaXNBY3RpdmU7XG4gIH1cblxuICByZWdpc3RlckRpc3Bvc2FibGU8VCBleHRlbmRzIERpc3Bvc2FibGU+KGRpc3Bvc2FibGU6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nYXJiYWdlLnJlZ2lzdGVyRGlzcG9zYWJsZShkaXNwb3NhYmxlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpbmsgYWJvdXQgYXV0byBjYW5jZWxsaW5nIGFueSBvdXRzdGFuZGluZyBhY3Rpdml0eSBvbiBkaXNwb3NlLlxuICAgIC8vICAgICAgIFNlZSBOYXZpZ2F0aW9uU3RhdGUuTmF2aWdhdGluZyBmb3IgYSB1c2UtY2FzZS5cbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICB0aGlzLmdhcmJhZ2UuZGlzcG9zZSgpO1xuICB9XG5cbiAgZ2V0QWN0aXZlQWN0aXZpdHlSZWYoKTogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4ge1xuICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShcIm5vIGFjdGl2aXR5IGluIHByb2dyZXNzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZmluZExhc3QodGhpcy5hY3Rpdml0eVJlZnMsIHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZUNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCkuYWN0aXZpdHkuZGlzYWJsZUNsb3NlXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyB0aGUgY3VycmVudCBhY3Rpdml0eSBhbmQgcmV0dXJucyB0cnVlIHRoZSBjb250ZXh0IGlzIG5vIGxvbmdlciBhY3RpdmUsIGZhbHNlIGlmXG4gICAqIHRoZXJlIGlzIHN0aWxsIGFub3RoZXIgYWN0aXZpdHkgcnVubmluZy5cbiAgICovXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGFjdGl2aXR5ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eVJlZigpO1xuICAgIGFjdGl2aXR5LmNhbmNlbCgpO1xuICAgIGlmICh0aGlzLmlzQ2xlYW5pbmdVcCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmVzdGVkIGFjdGl2aXRpZXMgaXMgb25seSB1c2VkIGJ5IHRoZSBhY3Rpdml0eSBjb21wb25lbnQgYW5kIGlzIG5vdCBhIGdlbmVyYWwgY2FzZS5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxEMSwgUjEsIEUxPj4sIGRhdGE6IEQxLCBvcHRpb25zPzogSW50ZXJhY3Rpb25Db250ZXh0Lk9wdGlvbnMpOiBQcm9taXNlPFIxPiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTsgLy8gbWFrZSBzdXJlIHdlJ3ZlIGJlZW4gaW5pdGlhbGlzZWRcbiAgICBjb25zdCBhY3Rpdml0eVJlZiA9IG5ldyBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPihhY3Rpdml0eVR5cGUsIGRhdGEsICgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5pc2hBbmRTdGFydENsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxhdW5jaEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aXZpdHlSZWYuYWN0aXZpdHlSZXN1bHQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiY2xvc2luZyBhY3Rpdml0eVwiLCBhY3Rpdml0eVR5cGUubmFtZSwgdGhpcy5hY3Rpdml0eVJlZnMpXG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAvLyB3YWl0IHVudGlsIHRoZSBhY3Rpdml0eSByb3V0ZSBzeW5jaW5nIGhhcyBmaW5pc2hlZFxuICAgICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLndhaXRBY3Rpdml0aWVzU3luY2hyb25pc2VkKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWN0aXZpdHkgc3luY2luZyBmaW5pc2hlZFwiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIocmVmID0+ICFyZWYuaXNDb21wbGV0ZSgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgZmluaXNoZWQgYW4gaXMgaW4gdGhlIHByb2Nlc3Mgb2Ygd2FpdGluZ1xuICAgKiBmb3IgYWxsIHRoZSBpbmZyYXN0cnVjdHVyZSAoaW5jbHVkaW5nIHJvdXRlIHVwZGF0ZXMpIHRvIGJlIGNvbXBsZXRlZC5cbiAgICovXG4gIGlzQ2xlYW5pbmdVcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWZlcnJlZENsZWFuVXA7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA/XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgOlxuICAgICAgdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoQW5kU3RhcnRDbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGVmZXJyZWRDbGVhblVwKSB7XG4gICAgICAvLyBJbXBvcnRhbnQ6XG4gICAgICAvLyBDbGVhciBvdXIgdGFicyBzbyB0aGUgbmV4dCBhY3Rpdml0eSB0cmlnZ2VycyBhIHRhYiBjaGFuZ2UuXG4gICAgICAvLyBXaXRob3V0IHRoaXMgb3VyIGFuaW1hdGlvbiBkb25lIHdhc24ndCBjYWxsZWQgd2hlbiBhIHNpbmdsZVxuICAgICAgLy8gbmV3IGFjdGl2aXR5IGZvbGxvd2VkIGEgc2luZ2xlIHRhYiBhY3Rpdml0eSAoc2luY2Ugd2UncmUgdHJhY2tpbmdcbiAgICAgIC8vIGJ5IGFjdGl2aXR5IGluZGV4KVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107IC8vIHdlIGhhdmUgdG8gZG8gaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiB0aW1lb3V0IG9yIHRoZSBhY3Rpdml0eSBkaXNhcHBlYXJzIGJlZm9yZSB0aGUgYW5pbWF0aW4gZmluc2loZXNcbiAgICAgIH0sIHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpKTtcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaS5ub3RpZnlGaW5pc2hlZCh0aGlzKTtcbiAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IHByb21pc2VcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4vLyBAVHJhY2UoKVxuICBsYXVuY2hBY3Rpdml0eTxEMSwgUjEsIEUxPihhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RDEsIFIxLCBFMT4pIHtcbiAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpdml0eSBsZXQgdGhlIGludGVyYWN0aW9uIHNlcnZpY2Uga25vdy5cbiAgICBjb25zdCBjbGVhbmVkVGFicyA9IHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcih0YWIgPT4gIXRhYi5pc0NvbXBsZXRlKCkpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gY2xlYW5lZFRhYnMuY29uY2F0KGFjdGl2aXR5UmVmKTtcbiAgICBjb25zdCBmaXJzdFRpbWUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPT09IDE7XG4gICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5QWN0aXZlKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpO1xuICB9XG5cbiAgYWN0aXZpdHlJbmRleChpbmRleDogbnVtYmVyLCBhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXNlcyB0aGUgc2VsZWN0ZWQgdGFiIGluZGV4LlxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTogdm9pZCB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNBY3RpdmUoKSk7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMudGFicy5zZWxlY3RlZEluZGV4O1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgLSAxO1xuICAgIGNvbnN0IGFuaW1hdGUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPiAxO1xuICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSBuZXdJbmRleCkge1xuICAgICAgdGhpcy5fYW5pbWF0aW5nJC52YWx1ZSA9IGFuaW1hdGU7XG4gICAgICBjb25zdCBhY3Rpdml0eVJlZiA9IHRoaXMuYWN0aXZpdHlSZWZzW25ld0luZGV4XTtcbiAgICAgIGFjdGl2aXR5UmVmLnNldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgdGhpcy5idXN5LnNldERlbGVnYXRlKGFjdGl2aXR5UmVmLmFjdGl2aXR5QnVzeSk7XG4gICAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgLy8gaWYgKHRoaXMucmVhZHkkLnZhbHVlKSB7XG4gICAgICAvLyAgIC8vIE5vdGU6IFdlJ3JlIG5vdCB1c2luZyB0aGUgYW5pbWF0aW9uIGRvbmUgZXZlbnQgYXMgaXQncyBmaXJpbmcgYWxtb3N0IGltbWVhZGlhdGVseS5cbiAgICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSwgYW5pbWF0ZSA/IHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpIDogMCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpIHtcbiAgICB0aGlzLl9hbmltYXRpbmckLnZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcy5mb3JFYWNoKChyZWYsIGluZGV4KSA9PiB7XG4gICAgICByZWYuc2V0Rm9jdXNlZChpbmRleCA9PT0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZE91dGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eU91dGxldHMudG9BcnJheSgpW3RoaXMudGFicy5zZWxlY3RlZEluZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJBbmltYXRpb25EdXJhdGlvbigpOiBzdHJpbmcge1xuICAgIC8vIGNvbnN0IHMgPSB0aGlzLl9zdGFydGVkJC52YWx1ZSA/IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gOiBcIjBcIjtcbiAgICAvLyByZXR1cm4gc1xuICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbkR1cmF0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uSW5NaWxsaXMoKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXRjaCA9IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24ubWF0Y2goLyhcXGQrKSguKikvKTtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBzd2l0Y2ggKG1hdGNoWzJdLnRyaW0oKSkge1xuICAgICAgY2FzZSBcIm1zXCI6XG4gICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gMTAwMCAqIG51bWVyaWNWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGB1bnN1cHBvcnRlZCBkdXJhdGlvbiBzdHJpbmc6ICR7dGhpcy50YWJzLmFuaW1hdGlvbkR1cmF0aW9ufWApO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgICAgIH1cbiAgICB9LCA3NSk7XG4gIH1cblxuICBvbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgdGhpcy5fc3RhcnRlZCQudmFsdWUgPSB0cnVlXG4gICAgdGhpcy5maW5hbGlzZUFjdGl2aXR5U3RhdGVzKClcbiAgfVxufVxuIiwiPG1hdC10YWItZ3JvdXAgI3RhYnMgbm8tdGFiLWhlYWRlclxuICAgICAgICAgICAgICAgW2R5bmFtaWNIZWlnaHRdPVwiZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbY2xhc3MuZnVsbC1oZWlnaHQtdGFic109XCIhZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb24oKVwiXG4gICAgICAgICAgICAgICAoYW5pbWF0aW9uRG9uZSk9XCJvbkFuaW1hdGlvbkRvbmUoKVwiXG4+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBhY3Rpdml0eVJlZiBvZiBhY3Rpdml0eVJlZnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGFjdGl2aXR5SW5kZXhcIj5cbiAgICA8YXVwLWJ1c3ktb3ZlcmxheSBbYnVzeSRdPVwiYnVzeVwiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgICAgIDwhLS1cbiAgICAgIFdlIGhhdmUgaXNzdWVzIHdoZXJlIGFuZ3VsYXIgaXMgdHJpZ2dlcmluZyBhIGxlYXZlIGFuaW1hdGlvbiB3aGVuIGFuXG4gICAgICBuZXcgYWN0aXZpdHkgaXMgc3RhcnRlZCwgYnV0IGlzIG5vdCBydW5uaW5nIHRoZSBlbnRlciBhbmltYXRpb25cbiAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgYmFjayBpbnRvIHZpZXcuICBTbyB3ZSB0cmFjayB0aGUgdGFiIGNoYW5nZXMgYW5kXG4gICAgICBkaXNhYmxlIGFsbCBhbmltYXRpb25zIGluc2lkZSB0aGUgdGFiIHdoaWxlIHdlJ3JlIGFuaW1hdGluZy5cbiAgICAgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LW91dGxldC13cmFwcGVyXCIgW0AuZGlzYWJsZWRdPVwiIWFjdGl2aXR5UmVmLmZvY3VzZWRcIj5cbiAgICAgICAgPGF1cC1hY3Rpdml0eS1vdXRsZXQgW25lc3RlZEludGVyYWN0aW9uQ29udGV4dF09XCJ0aGlzXCIgW2FjdGl2aXR5UmVmXT1cImFjdGl2aXR5UmVmXCI+PC9hdXAtYWN0aXZpdHktb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9hdXAtYnVzeS1vdmVybGF5PlxuICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+XG4iXX0=
280
+ }], cancelActiveActivity: [] } });
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsTUFBTSxFQUdOLG9CQUFvQixFQUVwQixHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUFFLEtBQUssRUFDekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFbEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFOUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBcUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMs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LENBQUM7YUFDcEM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtJQUMvQixDQUFDO3VHQXZSVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixxSUFKM0I7WUFDUixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUM7U0FDckUsMkpBVWEsdUJBQXVCLHVFQ3ZDdkMseWdDQW9CQTs7QURrSVE7SUFETCxLQUFLLEVBQUU7Ozs7c0VBU1A7MkZBL0hVLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHeEI7d0JBQ1IsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSw0QkFBNEIsRUFBQztxQkFDckU7a0dBS0QsYUFBYTtzQkFEWixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlqQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCO2dCQU1yQyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBMEdBLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdFRhYkdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFic1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlVmFsdWVNb2RlbCwgVHJhY2Vcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2xhbmd9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7ZmluZExhc3R9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi8uLi9wbGFjZS9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB7QWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWN0aXZpdHlSZWZ9IGZyb20gXCIuLi8uLi9hY3Rpdml0eS1yZWZcIjtcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVCwgSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50fSBmcm9tIFwiLi9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLWFjdGl2aXR5LWNvbnRhaW5lclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6W1xuICAgIHtwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhULCB1c2VDbGFzczogQWN0aXZpdHlDb250YWluZXJDb21wb25lbnR9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50PEQsIFIsIEU+IGV4dGVuZHMgQWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHQge1xuXG4gIEBJbnB1dCgpXG4gIGR5bmFtaWNIZWlnaHQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwidGFic1wiLCB7c3RhdGljOiB0cnVlfSlcbiAgdGFiczogTWF0VGFiR3JvdXA7XG5cbiAgQFZpZXdDaGlsZHJlbihBY3Rpdml0eU91dGxldENvbXBvbmVudClcbiAgYWN0aXZpdHlPdXRsZXRzOiBRdWVyeUxpc3Q8QWN0aXZpdHlPdXRsZXRDb21wb25lbnQ8YW55LCBhbnksIGFueT4+O1xuXG4gIGFjdGl2aXR5UmVmczogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gXCI1MDBtc1wiXG5cbiAgcHJpdmF0ZSBfaWRlbnRpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIF9kZWZlcnJlZENsZWFuVXA6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGludGVyYWN0aW9uU2VydmljZUFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaTtcblxuICBwcml2YXRlIGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICBwcml2YXRlIHN5bmNTZWxlY3RlZFRhYlRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBvbkFuaW1hdGlvbkZpbmlzaGVkSm9iOiAoKSA9PiB2b2lkO1xuXG4gIHJlYWRvbmx5IF9zdGFydGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9yZWFkeSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBfYW5pbWF0aW5nJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgYnVzeSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG5cbiAgcmVhZG9ubHkgc3luY1RhYnNKb2I6ICgpID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgc3RhYmxlJDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcHJpdmF0ZSB3YXNBY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgdmFsdWVPZiwgd2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnJlYWR5JCkuYmVjb21lc1RydXRoeSgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSlcbiAgICB0aGlzLnN0YWJsZSQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMucmVhZHkkLFxuICAgICAgdGhpcy5fc3RhcnRlZCQsXG4gICAgICBjaGFpbih0aGlzLmFuaW1hdGluZyQpLmlzRmFsc2V5KClcbiAgICApLmFyZVRydXRoeSgpO1xuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgcmVhZHkkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeSQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGluZyQucmVhZG9ubHkkO1xuICB9XG5cbiAgaW5pdGlhbGlzZShpZGVudGlmaWVyOiBzdHJpbmcsIGFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaSkge1xuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbChpZGVudGlmaWVyKTtcbiAgICBhc3NlcnQubm90TmlsKGFwaSk7XG4gICAgdGhpcy5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkgPSBhcGk7XG4gIH1cblxuICBub3RpZnlSZWFkeShyZWFkeTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWR5JC52YWx1ZSA9IHJlYWR5O1xuICB9XG5cbiAgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuaWRlbnRpZmllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYW4gYWN0aXZpdHkgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqL1xuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpID4gMDtcbiAgICAvLyBpZiAodGhpcy53YXNBY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyh7d2FzOiB0aGlzLndhc0FjdGl2ZSwgaXM6IGlzQWN0aXZlfSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMud2FzQWN0aXZlID0gaXNBY3RpdmVcbiAgICByZXR1cm4gaXNBY3RpdmU7XG4gIH1cblxuICByZWdpc3RlckRpc3Bvc2FibGU8VCBleHRlbmRzIERpc3Bvc2FibGU+KGRpc3Bvc2FibGU6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nYXJiYWdlLnJlZ2lzdGVyRGlzcG9zYWJsZShkaXNwb3NhYmxlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpbmsgYWJvdXQgYXV0byBjYW5jZWxsaW5nIGFueSBvdXRzdGFuZGluZyBhY3Rpdml0eSBvbiBkaXNwb3NlLlxuICAgIC8vICAgICAgIFNlZSBOYXZpZ2F0aW9uU3RhdGUuTmF2aWdhdGluZyBmb3IgYSB1c2UtY2FzZS5cbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICB0aGlzLmdhcmJhZ2UuZGlzcG9zZSgpO1xuICB9XG5cbiAgZ2V0QWN0aXZlQWN0aXZpdHlSZWYoKTogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4ge1xuICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShcIm5vIGFjdGl2aXR5IGluIHByb2dyZXNzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZmluZExhc3QodGhpcy5hY3Rpdml0eVJlZnMsIHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZUNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCkuYWN0aXZpdHkuZGlzYWJsZUNsb3NlXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyB0aGUgY3VycmVudCBhY3Rpdml0eSBhbmQgcmV0dXJucyB0cnVlIHRoZSBjb250ZXh0IGlzIG5vIGxvbmdlciBhY3RpdmUsIGZhbHNlIGlmXG4gICAqIHRoZXJlIGlzIHN0aWxsIGFub3RoZXIgYWN0aXZpdHkgcnVubmluZy5cbiAgICovXG4gIEBUcmFjZSgpXG4gIGFzeW5jIGNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGFjdGl2aXR5ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eVJlZigpO1xuICAgIGFjdGl2aXR5LmNhbmNlbCgpO1xuICAgIGlmICh0aGlzLmlzQ2xlYW5pbmdVcCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmVzdGVkIGFjdGl2aXRpZXMgaXMgb25seSB1c2VkIGJ5IHRoZSBhY3Rpdml0eSBjb21wb25lbnQgYW5kIGlzIG5vdCBhIGdlbmVyYWwgY2FzZS5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxEMSwgUjEsIEUxPj4sIGRhdGE6IEQxLCBvcHRpb25zPzogSW50ZXJhY3Rpb25Db250ZXh0Lk9wdGlvbnMpOiBQcm9taXNlPFIxPiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTsgLy8gbWFrZSBzdXJlIHdlJ3ZlIGJlZW4gaW5pdGlhbGlzZWRcbiAgICBjb25zdCBhY3Rpdml0eVJlZiA9IG5ldyBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPihhY3Rpdml0eVR5cGUsIGRhdGEsICgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5pc2hBbmRTdGFydENsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxhdW5jaEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aXZpdHlSZWYuYWN0aXZpdHlSZXN1bHQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiY2xvc2luZyBhY3Rpdml0eVwiLCBhY3Rpdml0eVR5cGUubmFtZSwgdGhpcy5hY3Rpdml0eVJlZnMpXG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAvLyB3YWl0IHVudGlsIHRoZSBhY3Rpdml0eSByb3V0ZSBzeW5jaW5nIGhhcyBmaW5pc2hlZFxuICAgICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLndhaXRBY3Rpdml0aWVzU3luY2hyb25pc2VkKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWN0aXZpdHkgc3luY2luZyBmaW5pc2hlZFwiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIocmVmID0+ICFyZWYuaXNDb21wbGV0ZSgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgZmluaXNoZWQgYW4gaXMgaW4gdGhlIHByb2Nlc3Mgb2Ygd2FpdGluZ1xuICAgKiBmb3IgYWxsIHRoZSBpbmZyYXN0cnVjdHVyZSAoaW5jbHVkaW5nIHJvdXRlIHVwZGF0ZXMpIHRvIGJlIGNvbXBsZXRlZC5cbiAgICovXG4gIGlzQ2xlYW5pbmdVcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWZlcnJlZENsZWFuVXA7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA/XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgOlxuICAgICAgdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoQW5kU3RhcnRDbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGVmZXJyZWRDbGVhblVwKSB7XG4gICAgICAvLyBJbXBvcnRhbnQ6XG4gICAgICAvLyBDbGVhciBvdXIgdGFicyBzbyB0aGUgbmV4dCBhY3Rpdml0eSB0cmlnZ2VycyBhIHRhYiBjaGFuZ2UuXG4gICAgICAvLyBXaXRob3V0IHRoaXMgb3VyIGFuaW1hdGlvbiBkb25lIHdhc24ndCBjYWxsZWQgd2hlbiBhIHNpbmdsZVxuICAgICAgLy8gbmV3IGFjdGl2aXR5IGZvbGxvd2VkIGEgc2luZ2xlIHRhYiBhY3Rpdml0eSAoc2luY2Ugd2UncmUgdHJhY2tpbmdcbiAgICAgIC8vIGJ5IGFjdGl2aXR5IGluZGV4KVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107IC8vIHdlIGhhdmUgdG8gZG8gaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiB0aW1lb3V0IG9yIHRoZSBhY3Rpdml0eSBkaXNhcHBlYXJzIGJlZm9yZSB0aGUgYW5pbWF0aW4gZmluc2loZXNcbiAgICAgIH0sIHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpKTtcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaS5ub3RpZnlGaW5pc2hlZCh0aGlzKTtcbiAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IHByb21pc2VcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4vLyBAVHJhY2UoKVxuICBsYXVuY2hBY3Rpdml0eTxEMSwgUjEsIEUxPihhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RDEsIFIxLCBFMT4pIHtcbiAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpdml0eSBsZXQgdGhlIGludGVyYWN0aW9uIHNlcnZpY2Uga25vdy5cbiAgICBjb25zdCBjbGVhbmVkVGFicyA9IHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcih0YWIgPT4gIXRhYi5pc0NvbXBsZXRlKCkpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gY2xlYW5lZFRhYnMuY29uY2F0KGFjdGl2aXR5UmVmKTtcbiAgICBjb25zdCBmaXJzdFRpbWUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPT09IDE7XG4gICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5QWN0aXZlKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpO1xuICB9XG5cbiAgYWN0aXZpdHlJbmRleChpbmRleDogbnVtYmVyLCBhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXNlcyB0aGUgc2VsZWN0ZWQgdGFiIGluZGV4LlxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTogdm9pZCB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNBY3RpdmUoKSk7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMudGFicy5zZWxlY3RlZEluZGV4O1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgLSAxO1xuICAgIGNvbnN0IGFuaW1hdGUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPiAxO1xuICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSBuZXdJbmRleCkge1xuICAgICAgdGhpcy5fYW5pbWF0aW5nJC52YWx1ZSA9IGFuaW1hdGU7XG4gICAgICBjb25zdCBhY3Rpdml0eVJlZiA9IHRoaXMuYWN0aXZpdHlSZWZzW25ld0luZGV4XTtcbiAgICAgIGFjdGl2aXR5UmVmLnNldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgdGhpcy5idXN5LnNldERlbGVnYXRlKGFjdGl2aXR5UmVmLmFjdGl2aXR5QnVzeSk7XG4gICAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgLy8gaWYgKHRoaXMucmVhZHkkLnZhbHVlKSB7XG4gICAgICAvLyAgIC8vIE5vdGU6IFdlJ3JlIG5vdCB1c2luZyB0aGUgYW5pbWF0aW9uIGRvbmUgZXZlbnQgYXMgaXQncyBmaXJpbmcgYWxtb3N0IGltbWVhZGlhdGVseS5cbiAgICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSwgYW5pbWF0ZSA/IHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpIDogMCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpIHtcbiAgICB0aGlzLl9hbmltYXRpbmckLnZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcy5mb3JFYWNoKChyZWYsIGluZGV4KSA9PiB7XG4gICAgICByZWYuc2V0Rm9jdXNlZChpbmRleCA9PT0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZE91dGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eU91dGxldHMudG9BcnJheSgpW3RoaXMudGFicy5zZWxlY3RlZEluZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJBbmltYXRpb25EdXJhdGlvbigpOiBzdHJpbmcge1xuICAgIC8vIGNvbnN0IHMgPSB0aGlzLl9zdGFydGVkJC52YWx1ZSA/IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gOiBcIjBcIjtcbiAgICAvLyByZXR1cm4gc1xuICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbkR1cmF0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uSW5NaWxsaXMoKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXRjaCA9IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24ubWF0Y2goLyhcXGQrKSguKikvKTtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBzd2l0Y2ggKG1hdGNoWzJdLnRyaW0oKSkge1xuICAgICAgY2FzZSBcIm1zXCI6XG4gICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gMTAwMCAqIG51bWVyaWNWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGB1bnN1cHBvcnRlZCBkdXJhdGlvbiBzdHJpbmc6ICR7dGhpcy50YWJzLmFuaW1hdGlvbkR1cmF0aW9ufWApO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgICAgIH1cbiAgICB9LCA3NSk7XG4gIH1cblxuICBvbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgdGhpcy5fc3RhcnRlZCQudmFsdWUgPSB0cnVlXG4gICAgdGhpcy5maW5hbGlzZUFjdGl2aXR5U3RhdGVzKClcbiAgfVxufVxuIiwiPG1hdC10YWItZ3JvdXAgI3RhYnMgbm8tdGFiLWhlYWRlclxuICAgICAgICAgICAgICAgW2R5bmFtaWNIZWlnaHRdPVwiZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbY2xhc3MuZnVsbC1oZWlnaHQtdGFic109XCIhZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb24oKVwiXG4gICAgICAgICAgICAgICAoYW5pbWF0aW9uRG9uZSk9XCJvbkFuaW1hdGlvbkRvbmUoKVwiXG4+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBhY3Rpdml0eVJlZiBvZiBhY3Rpdml0eVJlZnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGFjdGl2aXR5SW5kZXhcIj5cbiAgICA8YXVwLWJ1c3ktb3ZlcmxheSBbYnVzeSRdPVwiYnVzeVwiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgICAgIDwhLS1cbiAgICAgIFdlIGhhdmUgaXNzdWVzIHdoZXJlIGFuZ3VsYXIgaXMgdHJpZ2dlcmluZyBhIGxlYXZlIGFuaW1hdGlvbiB3aGVuIGFuXG4gICAgICBuZXcgYWN0aXZpdHkgaXMgc3RhcnRlZCwgYnV0IGlzIG5vdCBydW5uaW5nIHRoZSBlbnRlciBhbmltYXRpb25cbiAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgYmFjayBpbnRvIHZpZXcuICBTbyB3ZSB0cmFjayB0aGUgdGFiIGNoYW5nZXMgYW5kXG4gICAgICBkaXNhYmxlIGFsbCBhbmltYXRpb25zIGluc2lkZSB0aGUgdGFiIHdoaWxlIHdlJ3JlIGFuaW1hdGluZy5cbiAgICAgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LW91dGxldC13cmFwcGVyXCIgW0AuZGlzYWJsZWRdPVwiIWFjdGl2aXR5UmVmLmZvY3VzZWRcIj5cbiAgICAgICAgPGF1cC1hY3Rpdml0eS1vdXRsZXQgW25lc3RlZEludGVyYWN0aW9uQ29udGV4dF09XCJ0aGlzXCIgW2FjdGl2aXR5UmVmXT1cImFjdGl2aXR5UmVmXCI+PC9hdXAtYWN0aXZpdHktb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9hdXAtYnVzeS1vdmVybGF5PlxuICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+XG4iXX0=
@@ -18,7 +18,7 @@ export class DialogInteractionContextFactory extends ModalInteractionContextFact
18
18
  this.matDialogDefaultConfig = matDialogDefaultConfig;
19
19
  assert.notNil(dialogService);
20
20
  }
21
- createInteractionContext(identifier, api, disableClose) {
21
+ createInteractionContext(identifier, api) {
22
22
  const config = {
23
23
  autoFocus: false,
24
24
  hasBackdrop: true,
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
47
47
  type: Inject,
48
48
  args: [MAT_DIALOG_DEFAULT_OPTIONS]
49
49
  }] }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL21hdC1kaWFsb2ctaW50ZXJhY3Rpb24vZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFaEcsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7QUFFdEUsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxjQUFjLENBQXVCLHFDQUFxQyxDQUFDLENBQUM7QUFLbkksTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDhCQUE4QjtJQUlwRDtJQUNpRDtJQUNUO0lBSjVELE1BQU0sQ0FBeUI7SUFFeEMsWUFBNkIsYUFBd0IsRUFDeUIscUJBQTJDLEVBQ3BELHNCQUE0QztRQUUvRyxLQUFLLEVBQUUsQ0FBQztRQUptQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQ3BELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBc0I7UUFHL0csTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBa0IsRUFBRSxHQUEyQixFQUFFLFlBQXNCO1FBQzlGLE1BQU0sTUFBTSxHQUFvQjtZQUM5QixTQUFTLEVBQUUsS0FBSztZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQjtZQUM5QixHQUFHLElBQUksQ0FBQyxxQkFBcUI7U0FDOUIsQ0FBQztRQUVGLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkYsQ0FBQzt1R0F0QlUsK0JBQStCLDJDQUtWLG1DQUFtQyw2QkFDbkMsMEJBQTBCOzJHQU4vQywrQkFBK0IsY0FGOUIsTUFBTTs7MkZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTWMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQ0FBbUM7OzBCQUN0RCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUywgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWd9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0Jvb2xlYW5WYWx1ZU1vZGVsQ2hhaW59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcblxuaW1wb3J0IHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2V9IGZyb20gJy4uL2ludGVyYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtNb2RhbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnl9IGZyb20gJy4uL21vZGFsLWludGVyYWN0aW9uLWNvbnRleHQuZmFjdG9yeSc7XG5pbXBvcnQge0RpYWxvZ0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi9kaWFsb2ctaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjb25zdCBESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXREaWFsb2dDb25maWc8YW55Pj4oJ0RJQUxPR19JTlRFUkFDVElPTl9TRVJWSUNFX0RFRkFVTFRTJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0ludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkgZXh0ZW5kcyBNb2RhbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnkge1xuXG4gIHJlYWRvbmx5IGFjdGl2ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUykgcmVhZG9ubHkgZGlhbG9nU2VydmljZURlZmF1bHRzOiBNYXREaWFsb2dDb25maWc8YW55PixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUykgcmVhZG9ubHkgbWF0RGlhbG9nRGVmYXVsdENvbmZpZzogTWF0RGlhbG9nQ29uZmlnPGFueT5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhc3NlcnQubm90TmlsKGRpYWxvZ1NlcnZpY2UpO1xuICB9XG5cbiAgY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KGlkZW50aWZpZXI6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpLCBkaXNhYmxlQ2xvc2U/OiBib29sZWFuKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgIC4uLnRoaXMubWF0RGlhbG9nRGVmYXVsdENvbmZpZyxcbiAgICAgIC4uLnRoaXMuZGlhbG9nU2VydmljZURlZmF1bHRzXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgRGlhbG9nSW50ZXJhY3Rpb25Db250ZXh0KGlkZW50aWZpZXIsIGFwaSwgdGhpcy5kaWFsb2dTZXJ2aWNlLCBjb25maWcpO1xuICB9XG5cblxufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL21hdC1kaWFsb2ctaW50ZXJhY3Rpb24vZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFaEcsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7QUFFdEUsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxjQUFjLENBQXVCLHFDQUFxQyxDQUFDLENBQUM7QUFLbkksTUFBTSxPQUFPLCtCQUFnQyxTQUFRLDhCQUE4QjtJQUlwRDtJQUNpRDtJQUNUO0lBSjVELE1BQU0sQ0FBeUI7SUFFeEMsWUFBNkIsYUFBd0IsRUFDeUIscUJBQTJDLEVBQ3BELHNCQUE0QztRQUUvRyxLQUFLLEVBQUUsQ0FBQztRQUptQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQ3BELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBc0I7UUFHL0csTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBa0IsRUFBRSxHQUEyQjtRQUN0RSxNQUFNLE1BQU0sR0FBb0I7WUFDOUIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixHQUFHLElBQUksQ0FBQyxzQkFBc0I7WUFDOUIsR0FBRyxJQUFJLENBQUMscUJBQXFCO1NBQzlCLENBQUM7UUFFRixPQUFPLElBQUksd0JBQXdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLENBQUM7dUdBdEJVLCtCQUErQiwyQ0FLVixtQ0FBbUMsNkJBQ25DLDBCQUEwQjsyR0FOL0MsK0JBQStCLGNBRjlCLE1BQU07OzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1jLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUNBQW1DOzswQkFDdEQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMsIE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtCb29sZWFuVmFsdWVNb2RlbENoYWlufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi9pbnRlcmFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7TW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5fSBmcm9tICcuLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnknO1xuaW1wb3J0IHtEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4vZGlhbG9nLWludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWF0RGlhbG9nQ29uZmlnPGFueT4+KCdESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUycpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IGV4dGVuZHMgTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IHtcblxuICByZWFkb25seSBhY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBNYXREaWFsb2csXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRElBTE9HX0lOVEVSQUNUSU9OX1NFUlZJQ0VfREVGQVVMVFMpIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2VEZWZhdWx0czogTWF0RGlhbG9nQ29uZmlnPGFueT4sXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMpIHJlYWRvbmx5IG1hdERpYWxvZ0RlZmF1bHRDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxhbnk+XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgYXNzZXJ0Lm5vdE5pbChkaWFsb2dTZXJ2aWNlKTtcbiAgfVxuXG4gIGNyZWF0ZUludGVyYWN0aW9uQ29udGV4dChpZGVudGlmaWVyOiBzdHJpbmcsIGFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaSk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgY29uc3QgY29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB7XG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAuLi50aGlzLm1hdERpYWxvZ0RlZmF1bHRDb25maWcsXG4gICAgICAuLi50aGlzLmRpYWxvZ1NlcnZpY2VEZWZhdWx0c1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IERpYWxvZ0ludGVyYWN0aW9uQ29udGV4dChpZGVudGlmaWVyLCBhcGksIHRoaXMuZGlhbG9nU2VydmljZSwgY29uZmlnKTtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @file Automatically generated by barrelsby.
3
3
  */
4
+ export * from "./loading-monitor";
4
5
  export * from "./visibility-service";
5
6
  export * from "./markdown/markdown.service";
6
7
  export * from "./markdown/pill-plugin";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3NlcnZpY2VzL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYmFycmVsc2J5LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL3Zpc2liaWxpdHktc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFya2Rvd24vbWFya2Rvd24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFya2Rvd24vcGlsbC1wbHVnaW5cIjtcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3NlcnZpY2VzL2V4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbG9hZGluZy1tb25pdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92aXNpYmlsaXR5LXNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hcmtkb3duL21hcmtkb3duLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hcmtkb3duL3BpbGwtcGx1Z2luXCI7XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Dsl, GarbageCollector, MutableValueModel } from '@coolon/pectin';
3
+ import * as i0 from "@angular/core";
4
+ export class LoadingMonitor extends GarbageCollector {
5
+ watchChanges$ = new MutableValueModel(false);
6
+ trackers = new Map();
7
+ createTracker(loadable) {
8
+ const existing = this.trackers.get(loadable);
9
+ if (!existing) {
10
+ const tracker = new LoadingMonitor.Tracker(loadable, this.watchChanges$);
11
+ tracker.onDispose(() => this.trackers.delete(loadable));
12
+ this.trackers.set(loadable, tracker);
13
+ return loadable.registerDisposable(tracker);
14
+ }
15
+ else {
16
+ return existing;
17
+ }
18
+ }
19
+ dumpState() {
20
+ console.group('LoadingMonitor.dumpState:');
21
+ this.trackers.forEach((tracker, loadable) => tracker.dumpState());
22
+ console.groupEnd();
23
+ }
24
+ watchChanges(watch) {
25
+ this.watchChanges$.value = watch;
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, decorators: [{
31
+ type: Injectable
32
+ }] });
33
+ (function (LoadingMonitor) {
34
+ class Tracker extends GarbageCollector {
35
+ root;
36
+ watchChanges$;
37
+ loadables = [];
38
+ rootName;
39
+ constructor(root, watchChanges$) {
40
+ super();
41
+ this.root = root;
42
+ this.watchChanges$ = watchChanges$;
43
+ this.rootName = root.constructor.name;
44
+ }
45
+ registerLoadableDependency(loadable) {
46
+ const { when } = Dsl.disposeWith(this);
47
+ if (this.loadables.includes(loadable)) {
48
+ console.warn(`%c${this.rootName} already has a dependency on ${loadable.constructor?.name}`, 'color: red');
49
+ }
50
+ else {
51
+ when(loadable.loaded$).changes((is, was) => this.dumpState({
52
+ loadable,
53
+ is,
54
+ was
55
+ }), { asLongAs: this.watchChanges$ });
56
+ this.loadables.push(loadable);
57
+ }
58
+ }
59
+ dumpState(changed) {
60
+ const isLoaded = this.root.loaded$.value;
61
+ console.groupCollapsed(`%c${this.rootName} loaded: %c${isLoaded}`, 'font-weight: normal; color: #999', isLoaded ? '' : 'font-weight: normal; color: #999');
62
+ this.loadables.forEach(loadable => {
63
+ if (loadable === changed?.loadable) {
64
+ console.log(`${loadable.constructor?.name}.loaded$: ${changed.was} -> %c${changed.is}`, 'font-weight: bold');
65
+ }
66
+ else {
67
+ console.log(`%c${loadable.constructor?.name}.loaded$: ${loadable.loaded$.value}`, 'color: #999');
68
+ }
69
+ });
70
+ console.groupEnd();
71
+ }
72
+ }
73
+ LoadingMonitor.Tracker = Tracker;
74
+ })(LoadingMonitor || (LoadingMonitor = {}));
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvc2VydmljZXMvbG9hZGluZy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDOztBQU1sRyxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQUVqQyxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7SUFFaEUsYUFBYSxDQUFDLFFBQXlDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTCxPQUFPLFFBQVEsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzNDLElB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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZSwgRHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBNdXRhYmxlVmFsdWVNb2RlbCwgVmFsdWVNb2RlbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IExvYWRhYmxlIGFzIEV4dGVybmFsbHlMb2FkYWJsZX0gZnJvbSAnLi4vY29tcG9uZW50cy90eXBlcy9sb2FkYWJsZSc7XG5cbnR5cGUgTG9hZGFibGUgPSBQaWNrPEV4dGVybmFsbHlMb2FkYWJsZSwgXCJsb2FkZWQkXCI+O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9hZGluZ01vbml0b3IgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoQ2hhbmdlcyQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWwoZmFsc2UpO1xuICByZWFkb25seSB0cmFja2VycyA9IG5ldyBNYXA8TG9hZGFibGUsIExvYWRpbmdNb25pdG9yLlRyYWNrZXI+KCk7XG5cbiAgY3JlYXRlVHJhY2tlcihsb2FkYWJsZTogTG9hZGFibGUgJiBEaXNwb3NhYmxlLkNvbGxlY3Rvcikge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy50cmFja2Vycy5nZXQobG9hZGFibGUpO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIGNvbnN0IHRyYWNrZXIgPSBuZXcgTG9hZGluZ01vbml0b3IuVHJhY2tlcihsb2FkYWJsZSwgdGhpcy53YXRjaENoYW5nZXMkKTtcbiAgICAgIHRyYWNrZXIub25EaXNwb3NlKCgpID0+IHRoaXMudHJhY2tlcnMuZGVsZXRlKGxvYWRhYmxlKSk7XG4gICAgICB0aGlzLnRyYWNrZXJzLnNldChsb2FkYWJsZSwgdHJhY2tlcik7XG4gICAgICByZXR1cm4gbG9hZGFibGUucmVnaXN0ZXJEaXNwb3NhYmxlKHRyYWNrZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICB9XG5cbiAgZHVtcFN0YXRlKCkge1xuICAgIGNvbnNvbGUuZ3JvdXAoJ0xvYWRpbmdNb25pdG9yLmR1bXBTdGF0ZTonKTtcbiAgICB0aGlzLnRyYWNrZXJzLmZvckVhY2goKHRyYWNrZXIsIGxvYWRhYmxlKSA9PiB0cmFja2VyLmR1bXBTdGF0ZSgpKTtcbiAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gIH1cblxuICB3YXRjaENoYW5nZXMod2F0Y2g6IGJvb2xlYW4pIHtcbiAgICB0aGlzLndhdGNoQ2hhbmdlcyQudmFsdWUgPSB3YXRjaDtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTG9hZGluZ01vbml0b3Ige1xuICBleHBvcnQgY2xhc3MgVHJhY2tlciBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvb3ROYW1lOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcm9vdDogTG9hZGFibGUsIHByb3RlY3RlZCByZWFkb25seSB3YXRjaENoYW5nZXMkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5yb290TmFtZSA9IHJvb3QuY29uc3RydWN0b3IubmFtZTtcbiAgICB9XG5cbiAgICByZWdpc3RlckxvYWRhYmxlRGVwZW5kZW5jeShsb2FkYWJsZTogTG9hZGFibGUpIHtcbiAgICAgIGNvbnN0IHsgd2hlbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgICAgaWYgKHRoaXMubG9hZGFibGVzLmluY2x1ZGVzKGxvYWRhYmxlKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYCVjJHt0aGlzLnJvb3ROYW1lfSBhbHJlYWR5IGhhcyBhIGRlcGVuZGVuY3kgb24gJHtsb2FkYWJsZS5jb25zdHJ1Y3Rvcj8ubmFtZX1gLCAnY29sb3I6IHJlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2hlbihsb2FkYWJsZS5sb2FkZWQkKS5jaGFuZ2VzKChpcywgd2FzKSA9PiB0aGlzLmR1bXBTdGF0ZSh7XG4gICAgICAgICAgbG9hZGFibGUsXG4gICAgICAgICAgaXMsXG4gICAgICAgICAgd2FzXG4gICAgICAgIH0pLCB7IGFzTG9uZ0FzOiB0aGlzLndhdGNoQ2hhbmdlcyQgfSk7XG4gICAgICAgIHRoaXMubG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGR1bXBTdGF0ZShjaGFuZ2VkPzogeyBsb2FkYWJsZTogTG9hZGFibGUsIGlzOiBib29sZWFuLCB3YXM6IGJvb2xlYW4gfSkge1xuICAgICAgY29uc3QgaXNMb2FkZWQgPSB0aGlzLnJvb3QubG9hZGVkJC52YWx1ZTtcbiAgICAgIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoYCVjJHt0aGlzLnJvb3ROYW1lfSBsb2FkZWQ6ICVjJHtpc0xvYWRlZH1gLCAnZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICM5OTknLCBpc0xvYWRlZCA/ICcnIDogJ2ZvbnQtd2VpZ2h0OiBub3JtYWw7IGNvbG9yOiAjOTk5Jyk7XG4gICAgICB0aGlzLmxvYWRhYmxlcy5mb3JFYWNoKGxvYWRhYmxlID0+IHtcbiAgICAgICAgaWYgKGxvYWRhYmxlID09PSBjaGFuZ2VkPy5sb2FkYWJsZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAke2xvYWRhYmxlLmNvbnN0cnVjdG9yPy5uYW1lfS5sb2FkZWQkOiAke2NoYW5nZWQud2FzfSAtPiAlYyR7Y2hhbmdlZC5pc31gLCAnZm9udC13ZWlnaHQ6IGJvbGQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgJWMke2xvYWRhYmxlLmNvbnN0cnVjdG9yPy5uYW1lfS5sb2FkZWQkOiAke2xvYWRhYmxlLmxvYWRlZCQudmFsdWV9YCwgJ2NvbG9yOiAjOTk5Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIH1cblxuICB9XG59XG4iXX0=
@@ -5242,36 +5242,102 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
5242
5242
  args: ["style.--aup-table-row-height"]
5243
5243
  }] } });
5244
5244
 
5245
+ class LoadingMonitor extends GarbageCollector {
5246
+ watchChanges$ = new MutableValueModel(false);
5247
+ trackers = new Map();
5248
+ createTracker(loadable) {
5249
+ const existing = this.trackers.get(loadable);
5250
+ if (!existing) {
5251
+ const tracker = new LoadingMonitor.Tracker(loadable, this.watchChanges$);
5252
+ tracker.onDispose(() => this.trackers.delete(loadable));
5253
+ this.trackers.set(loadable, tracker);
5254
+ return loadable.registerDisposable(tracker);
5255
+ }
5256
+ else {
5257
+ return existing;
5258
+ }
5259
+ }
5260
+ dumpState() {
5261
+ console.group('LoadingMonitor.dumpState:');
5262
+ this.trackers.forEach((tracker, loadable) => tracker.dumpState());
5263
+ console.groupEnd();
5264
+ }
5265
+ watchChanges(watch) {
5266
+ this.watchChanges$.value = watch;
5267
+ }
5268
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5269
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor });
5270
+ }
5271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadingMonitor, decorators: [{
5272
+ type: Injectable
5273
+ }] });
5274
+ (function (LoadingMonitor) {
5275
+ class Tracker extends GarbageCollector {
5276
+ root;
5277
+ watchChanges$;
5278
+ loadables = [];
5279
+ rootName;
5280
+ constructor(root, watchChanges$) {
5281
+ super();
5282
+ this.root = root;
5283
+ this.watchChanges$ = watchChanges$;
5284
+ this.rootName = root.constructor.name;
5285
+ }
5286
+ registerLoadableDependency(loadable) {
5287
+ const { when } = Dsl.disposeWith(this);
5288
+ if (this.loadables.includes(loadable)) {
5289
+ console.warn(`%c${this.rootName} already has a dependency on ${loadable.constructor?.name}`, 'color: red');
5290
+ }
5291
+ else {
5292
+ when(loadable.loaded$).changes((is, was) => this.dumpState({
5293
+ loadable,
5294
+ is,
5295
+ was
5296
+ }), { asLongAs: this.watchChanges$ });
5297
+ this.loadables.push(loadable);
5298
+ }
5299
+ }
5300
+ dumpState(changed) {
5301
+ const isLoaded = this.root.loaded$.value;
5302
+ console.groupCollapsed(`%c${this.rootName} loaded: %c${isLoaded}`, 'font-weight: normal; color: #999', isLoaded ? '' : 'font-weight: normal; color: #999');
5303
+ this.loadables.forEach(loadable => {
5304
+ if (loadable === changed?.loadable) {
5305
+ console.log(`${loadable.constructor?.name}.loaded$: ${changed.was} -> %c${changed.is}`, 'font-weight: bold');
5306
+ }
5307
+ else {
5308
+ console.log(`%c${loadable.constructor?.name}.loaded$: ${loadable.loaded$.value}`, 'color: #999');
5309
+ }
5310
+ });
5311
+ console.groupEnd();
5312
+ }
5313
+ }
5314
+ LoadingMonitor.Tracker = Tracker;
5315
+ })(LoadingMonitor || (LoadingMonitor = {}));
5316
+
5245
5317
  class LoadableComponent extends DisposableComponent {
5246
5318
  #_loaded$ = new MutableValueModel();
5247
5319
  #asyncLoadables = [];
5248
5320
  #awaitedLoadables = [];
5321
+ #loadTracker;
5322
+ constructor() {
5323
+ super();
5324
+ this.#loadTracker = inject(LoadingMonitor, { optional: true })?.createTracker(this);
5325
+ }
5249
5326
  get loaded$() {
5250
5327
  return this.#_loaded$.readonly$;
5251
5328
  }
5252
5329
  ngOnInit() {
5253
5330
  super.ngOnInit();
5254
- // setTimeout(() => {
5255
- // if (!this.#_loaded$.value) {
5256
- // const state = {};
5257
- // this.#awaitedLoadables.forEach((it: Loadable) => {
5258
- // state[it.constructor.name] = it.loaded$.value;
5259
- // }, {});
5260
- // console.error('Failed to load after five seconds', state);
5261
- // }
5262
- // }, 5000);
5263
5331
  this.loadDependencies();
5264
5332
  }
5265
5333
  loadDependencies() {
5266
5334
  this.#asyncLoadables.forEach(it => it.ensureLoaded());
5267
5335
  if (this.#awaitedLoadables.length > 0) {
5268
- // console.log(`loading ${this.constructor.name} dependencies: ${this.#awaitedLoadables.map(it => it.constructor.name).join(', ')}`);
5269
5336
  Promise.all(this.#awaitedLoadables.map(it => {
5270
- return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
5337
+ return it.ensureLoaded();
5271
5338
  })).catch(reason => {
5272
5339
  console.error(`${this.constructor.name} failed to load all loadables:`, reason);
5273
5340
  }).finally(() => {
5274
- // console.log(`${this.constructor.name} loaded`);
5275
5341
  this.#_loaded$.value = true;
5276
5342
  });
5277
5343
  }
@@ -5283,11 +5349,14 @@ class LoadableComponent extends DisposableComponent {
5283
5349
  return this.registerLoadable(inject(token, options), options);
5284
5350
  }
5285
5351
  registerLoadable(loadable, options) {
5352
+ const shouldWait = !options || options.wait === true;
5353
+ if (shouldWait)
5354
+ this.#loadTracker?.registerLoadableDependency(loadable);
5286
5355
  if (this.loaded$.value) {
5287
5356
  loadable.ensureLoaded();
5288
5357
  }
5289
5358
  else {
5290
- if (!options || options.wait === true) {
5359
+ if (shouldWait) {
5291
5360
  this.#awaitedLoadables.push(loadable);
5292
5361
  }
5293
5362
  else {
@@ -5296,12 +5365,12 @@ class LoadableComponent extends DisposableComponent {
5296
5365
  }
5297
5366
  return loadable;
5298
5367
  }
5299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5368
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5300
5369
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
5301
5370
  }
5302
5371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
5303
5372
  type: Directive
5304
- }] });
5373
+ }], ctorParameters: function () { return []; } });
5305
5374
 
5306
5375
  class TableCustomMoreMenuPopupComponent extends LoadableComponent {
5307
5376
  _value$ = this.registerDisposable(new DelegatingValueModel());
@@ -10228,7 +10297,6 @@ class ActivityContainerComponent extends AbstractInteractionContext {
10228
10297
  * Cancels the current activity and returns true the context is no longer active, false if
10229
10298
  * there is still another activity running.
10230
10299
  */
10231
- // @Trace()
10232
10300
  async cancelActiveActivity() {
10233
10301
  const activity = this.getActiveActivityRef();
10234
10302
  activity.cancel();
@@ -10383,6 +10451,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
10383
10451
  { provide: INTERACTION_CONTEXT, useClass: ActivityContainerComponent },
10384
10452
  ], viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
10385
10453
  }
10454
+ __decorate([
10455
+ Trace(),
10456
+ __metadata("design:type", Function),
10457
+ __metadata("design:paramtypes", []),
10458
+ __metadata("design:returntype", Promise)
10459
+ ], ActivityContainerComponent.prototype, "cancelActiveActivity", null);
10386
10460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
10387
10461
  type: Component,
10388
10462
  args: [{ selector: "aup-activity-container", providers: [
@@ -10398,7 +10472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
10398
10472
  args: [ActivityOutletComponent]
10399
10473
  }], animationDuration: [{
10400
10474
  type: Input
10401
- }] } });
10475
+ }], cancelActiveActivity: [] } });
10402
10476
 
10403
10477
  class AbstractActivityTriggerComponent extends DisposableComponent {
10404
10478
  #activityClass_accessor_storage;
@@ -12637,7 +12711,7 @@ class DialogInteractionContextFactory extends ModalInteractionContextFactory {
12637
12711
  this.matDialogDefaultConfig = matDialogDefaultConfig;
12638
12712
  assert$1.notNil(dialogService);
12639
12713
  }
12640
- createInteractionContext(identifier, api, disableClose) {
12714
+ createInteractionContext(identifier, api) {
12641
12715
  const config = {
12642
12716
  autoFocus: false,
12643
12717
  hasBackdrop: true,
@@ -13094,5 +13168,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
13094
13168
  * Generated bundle index. Do not edit.
13095
13169
  */
13096
13170
 
13097
- export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractCellRenderer, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityContext, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AlertRendererComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, ButtonRendererComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellFooterPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, Confirm, ConfirmRendererComponent, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FOOTER_CELL_RENDERER_PORTAL, FileDownloadComponent, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, FooterRowModel, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, INTERACTION_CONTEXT, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextProvider, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, SlideDownInteractionContextComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableActionColumnComponent, TableBodyComponent, TableCellComponent, TableComponent, TableCustomMoreMenuComponent, TableCustomMoreMenuPopupComponent, TableFilterModel, TableFooterRow, TableHeaderCellComponent, TableModel, TableRowAttributesDirective, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideDownWhenOpenAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
13171
+ export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractCellRenderer, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityContext, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AlertRendererComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, ButtonRendererComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellFooterPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, Confirm, ConfirmRendererComponent, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FOOTER_CELL_RENDERER_PORTAL, FileDownloadComponent, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, FooterRowModel, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, INTERACTION_CONTEXT, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextProvider, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, LoadingMonitor, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, SlideDownInteractionContextComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableActionColumnComponent, TableBodyComponent, TableCellComponent, TableComponent, TableCustomMoreMenuComponent, TableCustomMoreMenuPopupComponent, TableFilterModel, TableFooterRow, TableHeaderCellComponent, TableModel, TableRowAttributesDirective, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideDownWhenOpenAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
13098
13172
  //# sourceMappingURL=coolon-angular-ui-powerups.mjs.map