@ecodev/natural 44.0.4 → 45.0.0

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.
@@ -7,7 +7,7 @@ import { NaturalAbstractPanel } from '../modules/panels/abstract-panel';
7
7
  import { finalize } from 'rxjs/operators';
8
8
  import { ifValid, validateAllFormControls } from './validators';
9
9
  import { mergeOverrideArray } from './utility';
10
- import { EMPTY } from 'rxjs';
10
+ import { EMPTY, endWith, last, switchMap } from 'rxjs';
11
11
  import * as i0 from "@angular/core";
12
12
  // @dynamic
13
13
  export class NaturalAbstractDetail extends NaturalAbstractPanel {
@@ -79,51 +79,50 @@ export class NaturalAbstractDetail extends NaturalAbstractPanel {
79
79
  this.form.disable();
80
80
  this.service
81
81
  .create(this.data.model)
82
- .pipe(finalize(() => this.form.enable()))
83
- .subscribe(model => {
82
+ .pipe(switchMap(model => {
84
83
  this.alertService.info($localize `Créé`);
85
84
  this.form.patchValue(model);
86
- this.postCreate(model).subscribe({
87
- complete: () => {
88
- if (redirect) {
89
- if (this.isPanel) {
90
- const oldUrl = this.router.url;
91
- const nextUrl = this.panelData?.config.params.nextRoute;
92
- const newUrl = oldUrl.replace('/new', '/' + model.id) + (nextUrl ? '/' + nextUrl : '');
93
- this.router.navigateByUrl(newUrl); // replace /new by /123
94
- }
95
- else {
96
- this.router.navigate(['..', model.id], { relativeTo: this.route });
97
- }
98
- }
99
- },
100
- });
101
- });
85
+ return this.postCreate(model).pipe(endWith(model), last());
86
+ }), switchMap(model => {
87
+ if (redirect) {
88
+ if (this.isPanel) {
89
+ const oldUrl = this.router.url;
90
+ const nextUrl = this.panelData?.config.params.nextRoute;
91
+ const newUrl = oldUrl.replace('/new', '/' + model.id) + (nextUrl ? '/' + nextUrl : '');
92
+ return this.router.navigateByUrl(newUrl); // replace /new by /123
93
+ }
94
+ else {
95
+ return this.router.navigate(['..', model.id], { relativeTo: this.route });
96
+ }
97
+ }
98
+ return EMPTY;
99
+ }), finalize(() => this.form.enable()))
100
+ .subscribe();
102
101
  }
103
102
  delete(redirectionRoute) {
103
+ this.form.disable();
104
104
  this.alertService
105
105
  .confirm($localize `Suppression`, $localize `Voulez-vous supprimer définitivement cet élément ?`, $localize `Supprimer définitivement`)
106
- .subscribe(confirmed => {
107
- if (confirmed) {
108
- this.preDelete(this.data.model);
109
- this.form.disable();
110
- this.service
111
- .delete([this.data.model])
112
- .pipe(finalize(() => this.form.enable()))
113
- .subscribe(() => {
114
- this.alertService.info($localize `Supprimé`);
115
- if (!this.isPanel) {
116
- const defaultRoute = ['../../' + kebabCase(this.key)];
117
- this.router.navigate(redirectionRoute ? redirectionRoute : defaultRoute, {
118
- relativeTo: this.route,
119
- });
120
- }
121
- else {
122
- this.panelService?.goToPenultimatePanel();
123
- }
124
- });
106
+ .pipe(switchMap(confirmed => {
107
+ if (!confirmed) {
108
+ return EMPTY;
125
109
  }
126
- });
110
+ this.preDelete(this.data.model);
111
+ return this.service.delete([this.data.model]).pipe(switchMap(() => {
112
+ this.alertService.info($localize `Supprimé`);
113
+ if (this.isPanel) {
114
+ this.panelService?.goToPenultimatePanel();
115
+ return EMPTY;
116
+ }
117
+ else {
118
+ const defaultRoute = ['../../' + kebabCase(this.key)];
119
+ return this.router.navigate(redirectionRoute ? redirectionRoute : defaultRoute, {
120
+ relativeTo: this.route,
121
+ });
122
+ }
123
+ }));
124
+ }), finalize(() => this.form.enable()))
125
+ .subscribe();
127
126
  }
128
127
  postUpdate(model) { }
129
128
  /**
@@ -149,4 +148,4 @@ NaturalAbstractDetail.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0",
149
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
150
149
  type: Directive
151
150
  }], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: i0.Injector }]; } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHN0MsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkMsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFjVCxTQUFRLG9CQUFvQjtJQW9DNUIsWUFDdUIsR0FBVyxFQUNkLE9BQWlCLEVBQ2QsUUFBa0I7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFKVyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwQ3pDOztXQUVHO1FBQ0ksU0FBSSxHQUFRO1lBQ2YsS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUY7O1dBRUc7UUFDSSxTQUFJ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QUMsS0FBK0IsSUFBUyxDQUFDO0lBRTlEOzs7T0FHRztJQUNPLFVBQVUsQ0FBQyxLQUErQjtRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQTRCLElBQVMsQ0FBQztJQUVoRCxRQUFRO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7T0FFRztJQUNPLFVBQVU7UUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDcEUsQ0FBQzs7a0hBM0xRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0b3IsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7a2ViYWJDYXNlLCBtZXJnZSwgbWVyZ2VXaXRoLCBvbWl0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWxlcnRTZXJ2aWNlfSBmcm9tICcuLi9tb2R1bGVzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RQYW5lbH0gZnJvbSAnLi4vbW9kdWxlcy9wYW5lbHMvYWJzdHJhY3QtcGFuZWwnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0LW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHtFeHRyYWN0VGNyZWF0ZSwgRXh0cmFjdFRvbmUsIEV4dHJhY3RUdXBkYXRlLCBMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2lmVmFsaWQsIHZhbGlkYXRlQWxsRm9ybUNvbnRyb2xzfSBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHttZXJnZU92ZXJyaWRlQXJyYXl9IGZyb20gJy4vdXRpbGl0eSc7XG5pbXBvcnQge1BhZ2luYXRlZERhdGF9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtRdWVyeVZhcmlhYmxlc30gZnJvbSAnLi9xdWVyeS12YXJpYWJsZS1tYW5hZ2VyJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0RGV0YWlsPFxuICAgICAgICBUU2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZTxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPExpdGVyYWw+LFxuICAgICAgICAgICAgUXVlcnlWYXJpYWJsZXMsXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0UGFuZWxcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8qKlxuICAgICAqIEVtcHR5IHBsYWNlaG9sZGVyIGZvciBkYXRhIHJldHJpZXZlZCBieSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgcHVibGljIGRhdGE6IGFueSA9IHtcbiAgICAgICAgbW9kZWw6IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHRoYXQgbWFuYWdlcyB0aGUgZGF0YSBmcm9tIHRoZSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IC8gaGlkZXMgdGhlIGJvdHRvbSBmYWIgYnV0dG9uIChtb3N0bHkgdG8gaGlkZSBpdCB3aGVuIHdlIGFyZSBvbiBvdGhlciB0YWJzIHdoZXJlIHNlbWFudGljIG9mIGJ1dHRvbiBjYW4gY29uZmxpY3Qgd2l0aCAuLi5cbiAgICAgKiBzZW1hbnRpYyBvZiBkYXRhIG9uIG90aGVyIHRhYiwgbGlrZSByZWxhdGlvbnMgdGhhdCBsaXN0IG90aGVyIG9iamVjdHMpXG4gICAgICovXG4gICAgcHVibGljIHNob3dGYWJCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RlZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuICAgICAgICB0aGlzLnJvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICB0aGlzLnJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHttb2RlbDogdGhpcy5zZXJ2aWNlLmdldENvbnNvbGlkYXRlZEZvckNsaWVudCgpfSwgZGF0YVt0aGlzLmtleV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHRoaXMuZGF0YSwgb21pdChkYXRhLCBbdGhpcy5rZXldKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmFiQnV0dG9uID0gaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShub3c6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5tb2RlbC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZlZhbGlkKHRoaXMuZm9ybSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVRvRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgcG9zdFVwZGF0ZSA9IChtb2RlbDogRXh0cmFjdFR1cGRhdGU8VFNlcnZpY2U+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgTWlzIMOgIGpvdXJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0VXBkYXRlKG1vZGVsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChub3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlTm93KHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlKHJlZGlyZWN0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB2YWxpZGF0ZUFsbEZvcm1Db250cm9scyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Ub0RhdGEoKTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5kYXRhLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5mb3JtLmVuYWJsZSgpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oJGxvY2FsaXplYENyw6nDqWApO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG1vZGVsKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucG9zdENyZWF0ZShtb2RlbCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUGFuZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0VXJsID0gdGhpcy5wYW5lbERhdGE/LmNvbmZpZy5wYXJhbXMubmV4dFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdVcmwgPSBvbGRVcmwucmVwbGFjZSgnL25ldycsICcvJyArIG1vZGVsLmlkKSArIChuZXh0VXJsID8gJy8nICsgbmV4dFVybCA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChuZXdVcmwpOyAvLyByZXBsYWNlIC9uZXcgYnkgLzEyM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4nLCBtb2RlbC5pZF0sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZShyZWRpcmVjdGlvblJvdXRlPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlXG4gICAgICAgICAgICAuY29uZmlybShcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgU3VwcHJlc3Npb25gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGNldCDDqWzDqW1lbnQgP2AsXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShjb25maXJtZWQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb25maXJtZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVEZWxldGUodGhpcy5kYXRhLm1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUoW3RoaXMuZGF0YS5tb2RlbF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmZvcm0uZW5hYmxlKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgU3VwcHJpbcOpYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0Um91dGUgPSBbJy4uLy4uLycgKyBrZWJhYkNhc2UodGhpcy5rZXkpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVkaXJlY3Rpb25Sb3V0ZSA/IHJlZGlyZWN0aW9uUm91dGUgOiBkZWZhdWx0Um91dGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxTZXJ2aWNlPy5nb1RvUGVudWx0aW1hdGVQYW5lbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwb3N0VXBkYXRlKG1vZGVsOiBFeHRyYWN0VHVwZGF0ZTxUU2VydmljZT4pOiB2b2lkIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCB3aWxsIGJlIHN1YnNjcmliZWQgdG8gaW1tZWRpYXRlbHkgYW5kIHRoZVxuICAgICAqIHJlZGlyZWN0IG5hdmlnYXRpb24gd2lsbCBvbmx5IGhhcHBlbiBhZnRlciB0aGUgb2JzZXJ2YWJsZSBjb21wbGV0ZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBvc3RDcmVhdGUobW9kZWw6IEV4dHJhY3RUY3JlYXRlPFRTZXJ2aWNlPik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZURlbGV0ZShtb2RlbDogRXh0cmFjdFRvbmU8VFNlcnZpY2U+KTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGluaXRGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnNlcnZpY2UuZ2V0Rm9ybUdyb3VwKHRoaXMuZGF0YS5tb2RlbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgdmFsdWVzIG9mIGZvcm0gaW50byBgdGhpcy5kYXRhLm1vZGVsYC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybVRvRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2VXaXRoKHRoaXMuZGF0YS5tb2RlbCwgdGhpcy5mb3JtLnZhbHVlLCBtZXJnZU92ZXJyaWRlQXJyYXkpO1xuICAgIH1cbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHN0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFakUsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFjVCxTQUFRLG9CQUFvQjtJQW9DNUIsWUFDdUIsR0FBVyxFQUNkLE9BQWlCLEVBQ2QsUUFBa0I7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFKVyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwQ3pDOztXQUVHO1FBQ0ksU0FBSSxHQUFRO1lBQ2YsS0FBSyxFQUFFLEVBQUU7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QUFFLElBQUksQ0FBQyxLQUFLO3FCQUN6QixDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FDckM7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQStCLElBQVMsQ0FBQztJQUU5RDs7O09BR0c7SUFDTyxVQUFVLENBQUMsS0FBK0I7UUFDaEQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUE0QixJQUFTLENBQUM7SUFFaEQsUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVO1FBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O2tIQXRNUSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2tlYmFiQ2FzZSwgbWVyZ2UsIG1lcmdlV2l0aCwgb21pdH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vbW9kdWxlcy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0UGFuZWx9IGZyb20gJy4uL21vZHVsZXMvcGFuZWxzL2Fic3RyYWN0LXBhbmVsJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7RXh0cmFjdFRjcmVhdGUsIEV4dHJhY3RUb25lLCBFeHRyYWN0VHVwZGF0ZSwgTGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtpZlZhbGlkLCB2YWxpZGF0ZUFsbEZvcm1Db250cm9sc30gZnJvbSAnLi92YWxpZGF0b3JzJztcbmltcG9ydCB7bWVyZ2VPdmVycmlkZUFycmF5fSBmcm9tICcuL3V0aWxpdHknO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7UXVlcnlWYXJpYWJsZXN9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0VNUFRZLCBlbmRXaXRoLCBsYXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0RGV0YWlsPFxuICAgICAgICBUU2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZTxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPExpdGVyYWw+LFxuICAgICAgICAgICAgUXVlcnlWYXJpYWJsZXMsXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0UGFuZWxcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8qKlxuICAgICAqIEVtcHR5IHBsYWNlaG9sZGVyIGZvciBkYXRhIHJldHJpZXZlZCBieSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgcHVibGljIGRhdGE6IGFueSA9IHtcbiAgICAgICAgbW9kZWw6IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHRoYXQgbWFuYWdlcyB0aGUgZGF0YSBmcm9tIHRoZSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IC8gaGlkZXMgdGhlIGJvdHRvbSBmYWIgYnV0dG9uIChtb3N0bHkgdG8gaGlkZSBpdCB3aGVuIHdlIGFyZSBvbiBvdGhlciB0YWJzIHdoZXJlIHNlbWFudGljIG9mIGJ1dHRvbiBjYW4gY29uZmxpY3Qgd2l0aCAuLi5cbiAgICAgKiBzZW1hbnRpYyBvZiBkYXRhIG9uIG90aGVyIHRhYiwgbGlrZSByZWxhdGlvbnMgdGhhdCBsaXN0IG90aGVyIG9iamVjdHMpXG4gICAgICovXG4gICAgcHVibGljIHNob3dGYWJCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RlZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuICAgICAgICB0aGlzLnJvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICB0aGlzLnJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHttb2RlbDogdGhpcy5zZXJ2aWNlLmdldENvbnNvbGlkYXRlZEZvckNsaWVudCgpfSwgZGF0YVt0aGlzLmtleV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHRoaXMuZGF0YSwgb21pdChkYXRhLCBbdGhpcy5rZXldKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmFiQnV0dG9uID0gaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShub3c6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5tb2RlbC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZlZhbGlkKHRoaXMuZm9ybSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVRvRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgcG9zdFVwZGF0ZSA9IChtb2RlbDogRXh0cmFjdFR1cGRhdGU8VFNlcnZpY2U+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgTWlzIMOgIGpvdXJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0VXBkYXRlKG1vZGVsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChub3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlTm93KHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlKHJlZGlyZWN0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB2YWxpZGF0ZUFsbEZvcm1Db250cm9scyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Ub0RhdGEoKTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5kYXRhLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgQ3LDqcOpYCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3N0Q3JlYXRlKG1vZGVsKS5waXBlKGVuZFdpdGgobW9kZWwpLCBsYXN0KCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0VXJsID0gdGhpcy5wYW5lbERhdGE/LmNvbmZpZy5wYXJhbXMubmV4dFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1VybCA9IG9sZFVybC5yZXBsYWNlKCcvbmV3JywgJy8nICsgbW9kZWwuaWQpICsgKG5leHRVcmwgPyAnLycgKyBuZXh0VXJsIDogJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5ld1VybCk7IC8vIHJlcGxhY2UgL25ldyBieSAvMTIzXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uJywgbW9kZWwuaWRdLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZShyZWRpcmVjdGlvblJvdXRlPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlXG4gICAgICAgICAgICAuY29uZmlybShcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgU3VwcHJlc3Npb25gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGNldCDDqWzDqW1lbnQgP2AsXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZURlbGV0ZSh0aGlzLmRhdGEubW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZGVsZXRlKFt0aGlzLmRhdGEubW9kZWxdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBTdXBwcmltw6lgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUGFuZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFNlcnZpY2U/LmdvVG9QZW51bHRpbWF0ZVBhbmVsKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRSb3V0ZSA9IFsnLi4vLi4vJyArIGtlYmFiQ2FzZSh0aGlzLmtleSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVkaXJlY3Rpb25Sb3V0ZSA/IHJlZGlyZWN0aW9uUm91dGUgOiBkZWZhdWx0Um91dGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBvc3RVcGRhdGUobW9kZWw6IEV4dHJhY3RUdXBkYXRlPFRTZXJ2aWNlPik6IHZvaWQge31cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgc3Vic2NyaWJlZCB0byBpbW1lZGlhdGVseSBhbmQgdGhlXG4gICAgICogcmVkaXJlY3QgbmF2aWdhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIGFmdGVyIHRoZSBvYnNlcnZhYmxlIGNvbXBsZXRlcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcG9zdENyZWF0ZShtb2RlbDogRXh0cmFjdFRjcmVhdGU8VFNlcnZpY2U+KTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlRGVsZXRlKG1vZGVsOiBFeHRyYWN0VG9uZTxUU2VydmljZT4pOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuc2VydmljZS5nZXRGb3JtR3JvdXAodGhpcy5kYXRhLm1vZGVsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXJnZSB2YWx1ZXMgb2YgZm9ybSBpbnRvIGB0aGlzLmRhdGEubW9kZWxgLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtVG9EYXRhKCk6IHZvaWQge1xuICAgICAgICBtZXJnZVdpdGgodGhpcy5kYXRhLm1vZGVsLCB0aGlzLmZvcm0udmFsdWUsIG1lcmdlT3ZlcnJpZGVBcnJheSk7XG4gICAgfVxufVxuIl19
@@ -40,9 +40,10 @@ export function cancellableTimeout(canceller, milliSeconds = 0) {
40
40
  export function debug(debugName) {
41
41
  return tap({
42
42
  subscribe: () => console.log('SUBSCRIBE', debugName),
43
+ unsubscribe: () => console.log('UNSUBSCRIBE', debugName),
43
44
  next: value => console.log('NEXT', debugName, value),
44
45
  error: error => console.log('ERROR', debugName, error),
45
46
  complete: () => console.log('COMPLETE', debugName),
46
47
  });
47
48
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3J4anMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBOEIsRUFBRSxlQUF1QixDQUFDO0lBQ3ZGLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNMLE9BQU87SUFDWCxDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUksU0FBaUI7SUFDdEMsT0FBTyxHQUFHLENBQUk7UUFDVixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1FBQ3BELElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDcEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUN0RCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO0tBQ3JELENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2UsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogQmVoYXZlIGxpa2Ugc2V0VGltZW91dCgpLCBidXQgd2l0aCBhIG1hbmRhdG9yeSBjYW5jZWwgbWVjaGFuaXNtLlxuICpcbiAqIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWZ1bCB0byByZXBsYWNlIHNldFRpbWVvdXQoKSBpbiBjb21wb25lbnRzIHdoZXJlIHRoZSBjYWxsYmFja1xuICogd291bGQgY3Jhc2ggaWYgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBkZXN0cnVjdGlvbi4gVGhhdCBjYW4gZWFzaWx5IGhhcHBlblxuICogd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZSBxdWlja2x5IGJldHdlZW4gcGFnZXMuXG4gKlxuICogVHlwaWNhbCB1c2FnZSBpbiBhIGNvbXBvbmVudCB3b3VsZCBiZTpcbiAqXG4gKiBgYGB0c1xuICogY2FuY2VsbGFibGVUaW1lb3V0KHRoaXMubmdVbnN1YnNjcmliZSkuc3Vic2NyaWJlKG15Q2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogSW5zdGVhZCBvZiB0aGUgbW9yZSBlcnJvciBwcm9uZTpcbiAqXG4gKiBgYGB0c1xuICogcHVibGljIGZvbygpOiB2b2lkIHtcbiAqICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KG15Q2FsbEJhY2spO1xuICogfVxuICpcbiAqIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAqICAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gKiAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICogICAgICAgICB0aGlzLnRpbWVvdXQgPSBudWxsO1xuICogICAgICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbmNlbGxhYmxlVGltZW91dChjYW5jZWxsZXI6IE9ic2VydmFibGU8dW5rbm93bj4sIG1pbGxpU2Vjb25kczogbnVtYmVyID0gMCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aW1lcihtaWxsaVNlY29uZHMpLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRha2VVbnRpbChjYW5jZWxsZXIpLFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9KSxcbiAgICApO1xufVxuXG4vKipcbiAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZSBvbmx5LCB3aWxsIGR1bXAgaW4gY29uc29sZSBldmVyeXRoaW5nIHRoYXQgaGFwcGVuIHRvXG4gKiB0aGUgb2JzZXJ2YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVidWc8VD4oZGVidWdOYW1lOiBzdHJpbmcpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiB0YXA8VD4oe1xuICAgICAgICBzdWJzY3JpYmU6ICgpID0+IGNvbnNvbGUubG9nKCdTVUJTQ1JJQkUnLCBkZWJ1Z05hbWUpLFxuICAgICAgICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZygnTkVYVCcsIGRlYnVnTmFtZSwgdmFsdWUpLFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gY29uc29sZS5sb2coJ0VSUk9SJywgZGVidWdOYW1lLCBlcnJvciksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnQ09NUExFVEUnLCBkZWJ1Z05hbWUpLFxuICAgIH0pO1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3J4anMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBOEIsRUFBRSxlQUF1QixDQUFDO0lBQ3ZGLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNMLE9BQU87SUFDWCxDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUksU0FBaUI7SUFDdEMsT0FBTyxHQUFHLENBQUk7UUFDVixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1FBQ3BELFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUM7UUFDeEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO1FBQ3RELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7S0FDckQsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBCZWhhdmUgbGlrZSBzZXRUaW1lb3V0KCksIGJ1dCB3aXRoIGEgbWFuZGF0b3J5IGNhbmNlbCBtZWNoYW5pc20uXG4gKlxuICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZnVsIHRvIHJlcGxhY2Ugc2V0VGltZW91dCgpIGluIGNvbXBvbmVudHMgd2hlcmUgdGhlIGNhbGxiYWNrXG4gKiB3b3VsZCBjcmFzaCBpZiBleGVjdXRlZCBhZnRlciB0aGUgY29tcG9uZW50IGRlc3RydWN0aW9uLiBUaGF0IGNhbiBlYXNpbHkgaGFwcGVuXG4gKiB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlIHF1aWNrbHkgYmV0d2VlbiBwYWdlcy5cbiAqXG4gKiBUeXBpY2FsIHVzYWdlIGluIGEgY29tcG9uZW50IHdvdWxkIGJlOlxuICpcbiAqIGBgYHRzXG4gKiBjYW5jZWxsYWJsZVRpbWVvdXQodGhpcy5uZ1Vuc3Vic2NyaWJlKS5zdWJzY3JpYmUobXlDYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBtb3JlIGVycm9yIHByb25lOlxuICpcbiAqIGBgYHRzXG4gKiBwdWJsaWMgZm9vKCk6IHZvaWQge1xuICogICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQobXlDYWxsQmFjayk7XG4gKiB9XG4gKlxuICogcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICogICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAqICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gKiAgICAgICAgIHRoaXMudGltZW91dCA9IG51bGw7XG4gKiAgICAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FuY2VsbGFibGVUaW1lb3V0KGNhbmNlbGxlcjogT2JzZXJ2YWJsZTx1bmtub3duPiwgbWlsbGlTZWNvbmRzOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRpbWVyKG1pbGxpU2Vjb25kcykucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFrZVVudGlsKGNhbmNlbGxlciksXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0pLFxuICAgICk7XG59XG5cbi8qKlxuICogRm9yIGRlYnVnZ2luZyBwdXJwb3NlIG9ubHksIHdpbGwgZHVtcCBpbiBjb25zb2xlIGV2ZXJ5dGhpbmcgdGhhdCBoYXBwZW4gdG9cbiAqIHRoZSBvYnNlcnZhYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZzxUPihkZWJ1Z05hbWU6IHN0cmluZyk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gICAgcmV0dXJuIHRhcDxUPih7XG4gICAgICAgIHN1YnNjcmliZTogKCkgPT4gY29uc29sZS5sb2coJ1NVQlNDUklCRScsIGRlYnVnTmFtZSksXG4gICAgICAgIHVuc3Vic2NyaWJlOiAoKSA9PiBjb25zb2xlLmxvZygnVU5TVUJTQ1JJQkUnLCBkZWJ1Z05hbWUpLFxuICAgICAgICBuZXh0OiB2YWx1ZSA9PiBjb25zb2xlLmxvZygnTkVYVCcsIGRlYnVnTmFtZSwgdmFsdWUpLFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gY29uc29sZS5sb2coJ0VSUk9SJywgZGVidWdOYW1lLCBlcnJvciksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnQ09NUExFVEUnLCBkZWJ1Z05hbWUpLFxuICAgIH0pO1xufVxuIl19
@@ -1,7 +1,8 @@
1
1
  import { Directive, EventEmitter, HostListener, Inject, Input, Output, } from '@angular/core';
2
- import { acceptType, createInvisibleFileInputWrap, detectSwipe, eventToFiles, fileListToArray, isFileInput, stopEvent, } from './utils';
2
+ import { acceptType, createInvisibleFileInputWrap, detectSwipe, eventToFiles, fileListToArray, isDirectory, isFileInput, stopEvent, } from './utils';
3
3
  import { NaturalAbstractController } from '../../classes/abstract-controller';
4
4
  import { DOCUMENT } from '@angular/common';
5
+ import { forkJoin, map, of, tap } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "./file.service";
7
8
  /**
@@ -19,10 +20,6 @@ export class NaturalAbstractFile extends NaturalAbstractController {
19
20
  this.element = element;
20
21
  this.naturalFileService = naturalFileService;
21
22
  this.document = document;
22
- this.validators = [
23
- { name: 'accept', fn: this.acceptValidator },
24
- { name: 'fileSize', fn: this.fileSizeValidator },
25
- ];
26
23
  /**
27
24
  * Whether we should accept a single file or multiple files
28
25
  */
@@ -119,8 +116,7 @@ export class NaturalAbstractFile extends NaturalAbstractController {
119
116
  valid: [],
120
117
  invalid: [],
121
118
  };
122
- for (const file of files) {
123
- const error = this.validate(file);
119
+ forkJoin(files.map(file => this.validate(file).pipe(tap(error => {
124
120
  if (error) {
125
121
  selection.invalid.push({
126
122
  file: file,
@@ -130,17 +126,18 @@ export class NaturalAbstractFile extends NaturalAbstractController {
130
126
  else {
131
127
  selection.valid.push(file);
132
128
  }
133
- }
134
- if (selection.valid.length) {
135
- this.fileChange.emit(selection.valid[0]);
136
- }
137
- if (selection.valid.length || selection.invalid.length) {
138
- this.filesChange.emit(selection);
139
- if (this.broadcast) {
140
- this.naturalFileService.filesChanged.next(selection);
129
+ })))).subscribe(() => {
130
+ if (selection.valid.length) {
131
+ this.fileChange.emit(selection.valid[0]);
141
132
  }
142
- }
143
- this.getFileElement().value = '';
133
+ if (selection.valid.length || selection.invalid.length) {
134
+ this.filesChange.emit(selection);
135
+ if (this.broadcast) {
136
+ this.naturalFileService.filesChanged.next(selection);
137
+ }
138
+ }
139
+ this.getFileElement().value = '';
140
+ });
144
141
  }
145
142
  /**
146
143
  * Called when input has files
@@ -187,18 +184,18 @@ export class NaturalAbstractFile extends NaturalAbstractController {
187
184
  this.handleFiles(files);
188
185
  }
189
186
  validate(file) {
190
- for (const validator of this.validators) {
191
- if (!validator.fn.call(this, file)) {
192
- return validator.name;
187
+ return forkJoin({
188
+ accept: of(acceptType(this.accept, file.type, file.name)),
189
+ fileSize: of(!(this.maxSize && file.size > this.maxSize)),
190
+ directory: isDirectory(file),
191
+ }).pipe(map(result => {
192
+ for (const [key, value] of Object.entries(result)) {
193
+ if (!value) {
194
+ return key;
195
+ }
193
196
  }
194
- }
195
- return null;
196
- }
197
- acceptValidator(item) {
198
- return acceptType(this.accept, item.type, item.name);
199
- }
200
- fileSizeValidator(item) {
201
- return !(this.maxSize && item.size > this.maxSize);
197
+ return null;
198
+ }));
202
199
  }
203
200
  }
204
201
  NaturalAbstractFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalAbstractFile, deps: [{ token: i0.ElementRef }, { token: i1.NaturalFileService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
@@ -228,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
228
225
  type: HostListener,
229
226
  args: ['change', ['$event']]
230
227
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvYWJzdHJhY3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViw0QkFBNEIsRUFDNUIsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLFNBQVMsQ0FBQztBQUVqQixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQW1CekM7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQWdCLG1CQUFvQixTQUFRLHlCQUF5QjtJQTJEdkUsWUFDcUIsT0FBZ0MsRUFDOUIsa0JBQXNDLEVBQ3RCLFFBQWtCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSlMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUR4QyxlQUFVLEdBQUc7WUFDMUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQzFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFDO1NBQ2pELENBQUM7UUFFRjs7V0FFRztRQUNhLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakM7Ozs7O1dBS0c7UUFDYSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ2EsWUFB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e1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgYWNjZXB0VHlwZSxcbiAgICBjcmVhdGVJbnZpc2libGVGaWxlSW5wdXRXcmFwLFxuICAgIGRldGVjdFN3aXBlLFxuICAgIGV2ZW50VG9GaWxlcyxcbiAgICBmaWxlTGlzdFRvQXJyYXksXG4gICAgaXNGaWxlSW5wdXQsXG4gICAgc3RvcEV2ZW50LFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7TmF0dXJhbEZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJ9IGZyb20gJy4uLy4uL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludmFsaWRGaWxlIHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNlbGVjdGlvbiB7XG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc2VsZWN0ZWQuXG4gICAgICovXG4gICAgdmFsaWQ6IEZpbGVbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIHNlbGVjdGVkIGJ1dCBhcmUgaW52YWxpZCBhY2NvcmRpbmcgdG8gdmFsaWRhdG9ycy5cbiAgICAgKi9cbiAgICBpbnZhbGlkOiBJbnZhbGlkRmlsZVtdO1xufVxuXG4vKipcbiAqIEEgbWFzdGVyIGJhc2Ugc2V0IG9mIGxvZ2ljIGludGVuZGVkIHRvIHN1cHBvcnQgZmlsZSBzZWxlY3QvZHJhZy9kcm9wIG9wZXJhdGlvbnNcbiAqXG4gKiBJbiBtb3N0IGNhc2VzIHlvdSBwcm9iYWJseSB3YW50IGNsaWNrLXRvLXNlbGVjdCBhbmQgZHJhZy10by1zZWxlY3QsIHNvIHlvdSBzaG91bGQgdXNlOlxuICpcbiAqICAgICA8ZGl2IG5hdHVyYWxGaWxlRHJvcCBbc2VsZWN0YWJsZV09XCJ0cnVlXCI+PC9kaXY+XG4gKlxuICogQGR5bmFtaWNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF0dXJhbEFic3RyYWN0RmlsZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIGZpbGVFbGVtZW50PzogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnMgPSBbXG4gICAgICAgIHtuYW1lOiAnYWNjZXB0JywgZm46IHRoaXMuYWNjZXB0VmFsaWRhdG9yfSxcbiAgICAgICAge25hbWU6ICdmaWxlU2l6ZScsIGZuOiB0aGlzLmZpbGVTaXplVmFsaWRhdG9yfSxcbiAgICBdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB3ZSBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb3IgbXVsdGlwbGUgZmlsZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHVuaXF1ZSBmaWxlIHR5cGUgc3BlY2lmaWVycy4gTGlrZSB0aGUgbmF0aXZlIGVsZW1lbnRcbiAgICAgKiBpdCBjYW4gYmUgYSBtaXhlZCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcy4gMCBtZWFucyBubyB2YWxpZGF0aW9uIGF0IGFsbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4U2l6ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBmaWxlIHNlbGVjdGlvbiBlbnRpcmVseVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxlU2VsZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIHRoZSBlbGVtZW50IHRvIHNlbGVjdCBzb21ldGhpbmdcbiAgICAgKlxuICAgICAqIFRoaXMgaGFzIG9ubHkgZWZmZWN0IGR1cmluZyBpbml0aWFsaXphdGlvbi4gU3Vic2VxdWVudCBjaGFuZ2VzIHdpbGwgaGF2ZVxuICAgICAqIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbGwgYmUgYnJvYWRjYXN0IHRocm91Z2ggYE5hdHVyYWxGaWxlU2VydmljZS5maWxlc0NoYW5nZWRgLlxuICAgICAqXG4gICAgICogSXQgaXMgdXNlZnVsIHRvIHNldCB0aGlzIHRvIGZhbHNlIGlmIHRoZXJlIGlzIHR3byB1cGxvYWQgb24gYSBwYWdlIHdpdGggZGlmZmVyZW50IHB1cnBvc2VcbiAgICAgKiBhbmQgdGhlIHNlY29uZCB1cGxvYWQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBmaXJzdCBvbmUuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGJyb2FkY2FzdCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2luZ2xlIHZhbGlkIGZpbGUgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIEl0IGlzIGZvciBjb252ZW5pZW5jZSBvZiB1c2UsIGFuZCB3aWxsIG9ubHkgZW1pdCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmVcbiAgICAgKiB2YWxpZCBmaWxlLiBTZWUgYGZpbGVzQ2hhbmdlYCBmb3IgYSBtb3JlIGNvbXBsZXRlIG91dHB1dC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlOiBOYXR1cmFsRmlsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsZUVsZW1lbnQ7IC8vIGZhc3RlciBtZW1vcnkgcmVsZWFzZSBvZiBkb20gZWxlbWVudFxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVTZWxlY3RpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYWNjZXB0KSB7XG4gICAgICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBjaGFuZ2VzLmFjY2VwdC5jdXJyZW50VmFsdWUgfHwgJyonKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVsbSBpcyBhIGZpbGUgaW5wdXRcbiAgICAgICAgaWYgKGlzRmlsZUlucHV0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5maWxlRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBmb28gZmlsZSBpbnB1dFxuICAgICAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAodGhpcy5kb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZmlsZUVsZW1lbnQgPSBsYWJlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZUZuLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTZWxlY3RpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0ZpbGVJbnB1dChlbG0pKSB7XG4gICAgICAgICAgICBjb25zdCBiaW5kZWRIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5iZWZvcmVTZWxlY3QoKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJpbmRlZEhhbmRsZXIpO1xuICAgICAgICAgICAgZWxtLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmRlZEhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiA9PiB0aGlzLmNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgYmluZGVkSGFuZGxlcik7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbjogRmlsZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBbXSxcbiAgICAgICAgICAgIGludmFsaWQ6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnZhbGlkYXRlKGZpbGUpO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLmludmFsaWQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLnZhbGlkLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uLnZhbGlkLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoc2VsZWN0aW9uLnZhbGlkWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWxlY3Rpb24udmFsaWQubGVuZ3RoIHx8IHNlbGVjdGlvbi5pbnZhbGlkLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJyb2FkY2FzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbEZpbGVTZXJ2aWNlLmZpbGVzQ2hhbmdlZC5uZXh0KHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBpbnB1dCBoYXMgZmlsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoYW5nZUZuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAgICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5oYW5kbGVGaWxlcyhmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsaWNrSGFuZGxlcihldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxtID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbG0uZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcmV2ZW50IHRoZSBjbGljayBpZiBpdCBpcyBhIHN3aXBlXG4gICAgICAgIGlmIChkZXRlY3RTd2lwZShldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUVsbSA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKTtcbiAgICAgICAgZmlsZUVsbS5jbGljaygpO1xuICAgICAgICB0aGlzLmJlZm9yZVNlbGVjdCgpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlZm9yZVNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBubyBmaWxlcyBpbiBhcnJheSwgYmUgc3VyZSBicm93c2VyIGRvZXNudCBwcmV2ZW50IHJlc2VsZWN0IG9mIHNhbWUgZmlsZSAoc2VlIGdpdGh1YiBpc3N1ZSAyNylcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5maWxlcztcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IGZpbGVMaXN0ID8gZmlsZUxpc3RUb0FycmF5KGZpbGVMaXN0KSA6IGV2ZW50VG9GaWxlcyhldmVudCk7XG5cbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGUoZmlsZTogRmlsZSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB0aGlzLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgIGlmICghdmFsaWRhdG9yLmZuLmNhbGwodGhpcywgZmlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjY2VwdFZhbGlkYXRvcihpdGVtOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY2NlcHRUeXBlKHRoaXMuYWNjZXB0LCBpdGVtLnR5cGUsIGl0ZW0ubmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWxlU2l6ZVZhbGlkYXRvcihpdGVtOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMubWF4U2l6ZSAmJiBpdGVtLnNpemUgPiB0aGlzLm1heFNpemUpO1xuICAgIH1cbn1cbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvYWJzdHJhY3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViw0QkFBNEIsRUFDNUIsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUErQixFQUFFLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFtQnpFOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSx5QkFBeUI7SUF1RHZFLFlBQ3FCLE9BQWdDLEVBQzlCLGtCQUFzQyxFQUN0QixRQUFrQjtRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQUpTLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXZEekQ7O1dBRUc7UUFDYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpDOzs7OztXQUtHO1FBQ2EsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUU1Qjs7V0FFRztRQUNhLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFDYSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUM7Ozs7O1dB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VTtzQkFBbkMsTUFBTTtnQkFLbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFzSkEsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBhY2NlcHRUeXBlLFxuICAgIGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAsXG4gICAgZGV0ZWN0U3dpcGUsXG4gICAgZXZlbnRUb0ZpbGVzLFxuICAgIGZpbGVMaXN0VG9BcnJheSxcbiAgICBpc0RpcmVjdG9yeSxcbiAgICBpc0ZpbGVJbnB1dCxcbiAgICBzdG9wRXZlbnQsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtOYXR1cmFsRmlsZVNlcnZpY2V9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2ZvcmtKb2luLCBtYXAsIE9ic2VydmFibGUsIE9ic2VydmFibGVJbnB1dCwgb2YsIHRhcH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52YWxpZEZpbGUge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgZXJyb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlU2VsZWN0aW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICB2YWxpZDogRmlsZVtdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc2VsZWN0ZWQgYnV0IGFyZSBpbnZhbGlkIGFjY29yZGluZyB0byB2YWxpZGF0b3JzLlxuICAgICAqL1xuICAgIGludmFsaWQ6IEludmFsaWRGaWxlW107XG59XG5cbi8qKlxuICogQSBtYXN0ZXIgYmFzZSBzZXQgb2YgbG9naWMgaW50ZW5kZWQgdG8gc3VwcG9ydCBmaWxlIHNlbGVjdC9kcmFnL2Ryb3Agb3BlcmF0aW9uc1xuICpcbiAqIEluIG1vc3QgY2FzZXMgeW91IHByb2JhYmx5IHdhbnQgY2xpY2stdG8tc2VsZWN0IGFuZCBkcmFnLXRvLXNlbGVjdCwgc28geW91IHNob3VsZCB1c2U6XG4gKlxuICogICAgIDxkaXYgbmF0dXJhbEZpbGVEcm9wIFtzZWxlY3RhYmxlXT1cInRydWVcIj48L2Rpdj5cbiAqXG4gKiBAZHluYW1pY1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXR1cmFsQWJzdHJhY3RGaWxlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgZmlsZUVsZW1lbnQ/OiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB3ZSBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb3IgbXVsdGlwbGUgZmlsZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHVuaXF1ZSBmaWxlIHR5cGUgc3BlY2lmaWVycy4gTGlrZSB0aGUgbmF0aXZlIGVsZW1lbnRcbiAgICAgKiBpdCBjYW4gYmUgYSBtaXhlZCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcy4gMCBtZWFucyBubyB2YWxpZGF0aW9uIGF0IGFsbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4U2l6ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBmaWxlIHNlbGVjdGlvbiBlbnRpcmVseVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxlU2VsZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIHRoZSBlbGVtZW50IHRvIHNlbGVjdCBzb21ldGhpbmdcbiAgICAgKlxuICAgICAqIFRoaXMgaGFzIG9ubHkgZWZmZWN0IGR1cmluZyBpbml0aWFsaXphdGlvbi4gU3Vic2VxdWVudCBjaGFuZ2VzIHdpbGwgaGF2ZVxuICAgICAqIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbGwgYmUgYnJvYWRjYXN0IHRocm91Z2ggYE5hdHVyYWxGaWxlU2VydmljZS5maWxlc0NoYW5nZWRgLlxuICAgICAqXG4gICAgICogSXQgaXMgdXNlZnVsIHRvIHNldCB0aGlzIHRvIGZhbHNlIGlmIHRoZXJlIGlzIHR3byB1cGxvYWQgb24gYSBwYWdlIHdpdGggZGlmZmVyZW50IHB1cnBvc2VcbiAgICAgKiBhbmQgdGhlIHNlY29uZCB1cGxvYWQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBmaXJzdCBvbmUuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGJyb2FkY2FzdCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2luZ2xlIHZhbGlkIGZpbGUgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIEl0IGlzIGZvciBjb252ZW5pZW5jZSBvZiB1c2UsIGFuZCB3aWxsIG9ubHkgZW1pdCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmVcbiAgICAgKiB2YWxpZCBmaWxlLiBTZWUgYGZpbGVzQ2hhbmdlYCBmb3IgYSBtb3JlIGNvbXBsZXRlIG91dHB1dC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlOiBOYXR1cmFsRmlsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsZUVsZW1lbnQ7IC8vIGZhc3RlciBtZW1vcnkgcmVsZWFzZSBvZiBkb20gZWxlbWVudFxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVTZWxlY3RpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYWNjZXB0KSB7XG4gICAgICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBjaGFuZ2VzLmFjY2VwdC5jdXJyZW50VmFsdWUgfHwgJyonKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVsbSBpcyBhIGZpbGUgaW5wdXRcbiAgICAgICAgaWYgKGlzRmlsZUlucHV0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5maWxlRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBmb28gZmlsZSBpbnB1dFxuICAgICAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAodGhpcy5kb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZmlsZUVsZW1lbnQgPSBsYWJlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZUZuLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTZWxlY3RpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0ZpbGVJbnB1dChlbG0pKSB7XG4gICAgICAgICAgICBjb25zdCBiaW5kZWRIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5iZWZvcmVTZWxlY3QoKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJpbmRlZEhhbmRsZXIpO1xuICAgICAgICAgICAgZWxtLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmRlZEhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiA9PiB0aGlzLmNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgYmluZGVkSGFuZGxlcik7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbjogRmlsZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBbXSxcbiAgICAgICAgICAgIGludmFsaWQ6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgZmlsZXMubWFwKGZpbGUgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlKGZpbGUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcChlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uaW52YWxpZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24udmFsaWQucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxlY3Rpb24udmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoc2VsZWN0aW9uLnZhbGlkWzBdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi52YWxpZC5sZW5ndGggfHwgc2VsZWN0aW9uLmludmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5icm9hZGNhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsRmlsZVNlcnZpY2UuZmlsZXNDaGFuZ2VkLm5leHQoc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS52YWx1ZSA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBpbnB1dCBoYXMgZmlsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoYW5nZUZuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAgICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5oYW5kbGVGaWxlcyhmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsaWNrSGFuZGxlcihldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxtID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbG0uZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcmV2ZW50IHRoZSBjbGljayBpZiBpdCBpcyBhIHN3aXBlXG4gICAgICAgIGlmIChkZXRlY3RTd2lwZShldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUVsbSA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKTtcbiAgICAgICAgZmlsZUVsbS5jbGljaygpO1xuICAgICAgICB0aGlzLmJlZm9yZVNlbGVjdCgpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlZm9yZVNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBubyBmaWxlcyBpbiBhcnJheSwgYmUgc3VyZSBicm93c2VyIGRvZXNudCBwcmV2ZW50IHJlc2VsZWN0IG9mIHNhbWUgZmlsZSAoc2VlIGdpdGh1YiBpc3N1ZSAyNylcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5maWxlcztcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IGZpbGVMaXN0ID8gZmlsZUxpc3RUb0FycmF5KGZpbGVMaXN0KSA6IGV2ZW50VG9GaWxlcyhldmVudCk7XG5cbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW48UmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+Pj4oe1xuICAgICAgICAgICAgYWNjZXB0OiBvZihhY2NlcHRUeXBlKHRoaXMuYWNjZXB0LCBmaWxlLnR5cGUsIGZpbGUubmFtZSkpLFxuICAgICAgICAgICAgZmlsZVNpemU6IG9mKCEodGhpcy5tYXhTaXplICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZSkpLFxuICAgICAgICAgICAgZGlyZWN0b3J5OiBpc0RpcmVjdG9yeShmaWxlKSxcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -69,6 +69,17 @@ function createFileInput(document) {
69
69
  fileElem.type = 'file';
70
70
  return fileElem;
71
71
  }
72
+ export function isDirectory(file) {
73
+ return file
74
+ .slice(0, 1)
75
+ .text()
76
+ .then(text => {
77
+ // Firefox will return empty string for a folder, so we must check that special case.
78
+ // That means that any empty file will incorrectly be interpreted as a folder on all
79
+ // browsers, but that's tolerable because there is no real use-case to upload an empty file.
80
+ return text !== '';
81
+ }, () => false);
82
+ }
72
83
  export function stopEvent(event) {
73
84
  event.preventDefault();
74
85
  event.stopPropagation();
@@ -104,4 +115,4 @@ export function eventToFiles(event) {
104
115
  }
105
116
  return [];
106
117
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJ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QUFRLEVBQUU7UUFDVixPQUFPLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0RDtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhY2NlcHRUeXBlKGFjY2VwdDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWFjY2VwdC50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gYWNjZXB0LnNwbGl0KCcsJykuc29tZShtaW1lT3JFeHRlbnNpb24gPT4ge1xuICAgICAgICBtaW1lT3JFeHRlbnNpb24gPSBtaW1lT3JFeHRlbnNpb24udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChtaW1lT3JFeHRlbnNpb24uc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZW5hbWUuZW5kc1dpdGgobWltZU9yRXh0ZW5zaW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRyYW5zZm9ybSBgKmAgaW50byBgLipgXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gbWltZU9yRXh0ZW5zaW9uLnJlcGxhY2UoL1xcKi9nLCAnLionKTtcblxuICAgICAgICAgICAgcmV0dXJuIHR5cGUubWF0Y2gocGF0dGVybik7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZUlucHV0KGVsbTogSFRNTEVsZW1lbnQpOiBlbG0gaXMgSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgdHlwZSA9IGVsbS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcblxuICAgIHJldHVybiBlbG0udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmICEhdHlwZSAmJiB0eXBlLnRvTG93ZXJDYXNlKCkgPT09ICdmaWxlJztcbn1cblxubGV0IGluaXRpYWxUb3VjaFN0YXJ0WSA9IDA7XG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRYID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdFN3aXBlKGV2ZW50OiBFdmVudCB8IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0b3VjaGVzID0gJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCA/IGV2ZW50LmNoYW5nZWRUb3VjaGVzIDogbnVsbDtcbiAgICBpZiAoIXRvdWNoZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChldmVudC50eXBlID09PSAndG91Y2hzdGFydCcpIHtcbiAgICAgICAgaW5pdGlhbFRvdWNoU3RhcnRYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFkgPSB0b3VjaGVzWzBdLmNsaWVudFk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIGRvbid0IGJsb2NrIGV2ZW50IGRlZmF1bHRcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwcmV2ZW50IHNjcm9sbCBmcm9tIHRyaWdnZXJpbmcgZXZlbnRcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaGVuZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFkgPSB0b3VjaGVzWzBdLmNsaWVudFk7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoY3VycmVudFggLSBpbml0aWFsVG91Y2hTdGFydFgpID4gMjAgfHwgTWF0aC5hYnMoY3VycmVudFkgLSBpbml0aWFsVG91Y2hTdGFydFkpID4gMjApIHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTExhYmVsRWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQpO1xuICAgIGNvbnN0IGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTtcbiAgICBsYWJlbC5pbm5lckhUTUwgPSAndXBsb2FkJztcbiAgICBsYWJlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgbGFiZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGxhYmVsLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgbGFiZWwuc3R5bGUud2lkdGggPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7XG4gICAgbGFiZWwuc3R5bGUubWFyZ2luID0gJzBweCc7XG4gICAgbGFiZWwuc3R5bGUucGFkZGluZyA9ICcwcHgnO1xuICAgIGxhYmVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcblxuICAgIGxhYmVsLmFwcGVuZENoaWxkKGZpbGVFbGVtKTtcblxuICAgIHJldHVybiBsYWJlbDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZUlucHV0KGRvY3VtZW50OiBEb2N1bWVudCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGNvbnN0IGZpbGVFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBmaWxlRWxlbS50eXBlID0gJ2ZpbGUnO1xuXG4gICAgcmV0dXJuIGZpbGVFbGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3Q6IEZpbGVMaXN0KTogRmlsZVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IEZpbGVbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVMaXN0Lml0ZW0oaSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGRhdGFUcmFuc2Zlckl0ZW1MaXN0VG9BcnJheShpdGVtczogRGF0YVRyYW5zZmVySXRlbUxpc3QpOiBGaWxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmlsZVtdID0gW107XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBpdGVtc1tpXS5nZXRBc0ZpbGUoKTtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50VG9GaWxlcyhldmVudDogRXZlbnQgfCBEcmFnRXZlbnQpOiBGaWxlW10ge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gJ2RhdGFUcmFuc2ZlcicgaW4gZXZlbnQgPyBldmVudC5kYXRhVHJhbnNmZXIgOiBudWxsO1xuICAgIGlmICh0cmFuc2Zlcj8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmlsZUxpc3RUb0FycmF5KHRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFUcmFuc2Zlckl0ZW1MaXN0VG9BcnJheSh0cmFuc2Zlci5pdGVtcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xufVxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7QUFDNUYsQ0FBQztBQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBRTNCLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBeUI7SUFDakQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtRQUM3QixrQkFBa0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7S0FDNUM7U0FBTTtRQUNILHVDQUF1QztRQUN2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5RixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQjtnQkFFRCxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsUUFBa0I7SUFDM0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzNCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUM1QixLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTVCLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxRQUFrQjtJQUN2QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRXZCLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVU7SUFDbEMsT0FBTyxJQUFJO1NBQ04sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDWCxJQUFJLEVBQUU7U0FDTixJQUFJLENBQ0QsSUFBSSxDQUFDLEVBQUU7UUFDSCxxRkFBcUY7UUFDckYsb0ZBQW9GO1FBQ3BGLDRGQUE0RjtRQUM1RixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQyxFQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FDZCxDQUFDO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBWTtJQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCO0lBQzlDLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxFQUFFO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtLQUNKO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBMkI7SUFDNUQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRTFCLDREQUE0RDtJQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLEVBQUU7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0tBQ0o7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUF3QjtJQUNqRCxNQUFNLFFBQVEsR0FBRyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUM7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNWLE9BQU8sMkJBQTJCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFjY2VwdFR5cGUoYWNjZXB0OiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghYWNjZXB0LnRyaW0oKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGZpbGVuYW1lID0gZmlsZW5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBhY2NlcHQuc3BsaXQoJywnKS5zb21lKG1pbWVPckV4dGVuc2lvbiA9PiB7XG4gICAgICAgIG1pbWVPckV4dGVuc2lvbiA9IG1pbWVPckV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1pbWVPckV4dGVuc2lvbi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZS5lbmRzV2l0aChtaW1lT3JFeHRlbnNpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGAqYCBpbnRvIGAuKmBcbiAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBtaW1lT3JFeHRlbnNpb24ucmVwbGFjZSgvXFwqL2csICcuKicpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZS5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlSW5wdXQoZWxtOiBIVE1MRWxlbWVudCk6IGVsbSBpcyBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCB0eXBlID0gZWxtLmdldEF0dHJpYnV0ZSgndHlwZScpO1xuXG4gICAgcmV0dXJuIGVsbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgISF0eXBlICYmIHR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2ZpbGUnO1xufVxuXG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRZID0gMDtcbmxldCBpbml0aWFsVG91Y2hTdGFydFggPSAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0U3dpcGUoZXZlbnQ6IEV2ZW50IHwgVG91Y2hFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvdWNoZXMgPSAnY2hhbmdlZFRvdWNoZXMnIGluIGV2ZW50ID8gZXZlbnQuY2hhbmdlZFRvdWNoZXMgOiBudWxsO1xuICAgIGlmICghdG91Y2hlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0Jykge1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIGluaXRpYWxUb3VjaFN0YXJ0WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZG9uJ3QgYmxvY2sgZXZlbnQgZGVmYXVsdFxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHByZXZlbnQgc2Nyb2xsIGZyb20gdHJpZ2dlcmluZyBldmVudFxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhjdXJyZW50WCAtIGluaXRpYWxUb3VjaFN0YXJ0WCkgPiAyMCB8fCBNYXRoLmFicyhjdXJyZW50WSAtIGluaXRpYWxUb3VjaFN0YXJ0WSkgPiAyMCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW52aXNpYmxlRmlsZUlucHV0V3JhcChkb2N1bWVudDogRG9jdW1lbnQpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICBjb25zdCBmaWxlRWxlbSA9IGNyZWF0ZUZpbGVJbnB1dChkb2N1bWVudCk7XG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgIGxhYmVsLmlubmVySFRNTCA9ICd1cGxvYWQnO1xuICAgIGxhYmVsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgbGFiZWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgICBsYWJlbC5zdHlsZS5tYXJnaW4gPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgbGFiZWwuYXBwZW5kQ2hpbGQoZmlsZUVsZW0pO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGZpbGVFbGVtLnR5cGUgPSAnZmlsZSc7XG5cbiAgICByZXR1cm4gZmlsZUVsZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShmaWxlOiBGaWxlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZpbGVcbiAgICAgICAgLnNsaWNlKDAsIDEpXG4gICAgICAgIC50ZXh0KClcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICB0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGaXJlZm94IHdpbGwgcmV0dXJuIGVtcHR5IHN0cmluZyBmb3IgYSBmb2xkZXIsIHNvIHdlIG11c3QgY2hlY2sgdGhhdCBzcGVjaWFsIGNhc2UuXG4gICAgICAgICAgICAgICAgLy8gVGhhdCBtZWFucyB0aGF0IGFueSBlbXB0eSBmaWxlIHdpbGwgaW5jb3JyZWN0bHkgYmUgaW50ZXJwcmV0ZWQgYXMgYSBmb2xkZXIgb24gYWxsXG4gICAgICAgICAgICAgICAgLy8gYnJvd3NlcnMsIGJ1dCB0aGF0J3MgdG9sZXJhYmxlIGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhbCB1c2UtY2FzZSB0byB1cGxvYWQgYW4gZW1wdHkgZmlsZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dCAhPT0gJyc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVMaXN0VG9BcnJheShmaWxlTGlzdDogRmlsZUxpc3QpOiBGaWxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmlsZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gZmlsZUxpc3QuaXRlbShpKTtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KGl0ZW1zOiBEYXRhVHJhbnNmZXJJdGVtTGlzdCk6IEZpbGVbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBGaWxlW10gPSBbXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRUb0ZpbGVzKGV2ZW50OiBFdmVudCB8IERyYWdFdmVudCk6IEZpbGVbXSB7XG4gICAgY29uc3QgdHJhbnNmZXIgPSAnZGF0YVRyYW5zZmVyJyBpbiBldmVudCA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IG51bGw7XG4gICAgaWYgKHRyYW5zZmVyPy5maWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmaWxlTGlzdFRvQXJyYXkodHJhbnNmZXIuZmlsZXMpO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KHRyYW5zZmVyLml0ZW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG4iXX0=
@@ -1,12 +1,25 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../fixed-button/fixed-button.component";
5
- import * as i3 from "@angular/material/tooltip";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../fixed-button/fixed-button.component";
6
+ import * as i4 from "@angular/material/tooltip";
6
7
  export class NaturalFixedButtonDetailComponent {
7
- constructor() {
8
+ constructor(route) {
9
+ this.canChange = true;
10
+ this.isCreation = false;
8
11
  this.create = new EventEmitter();
9
12
  this.delete = new EventEmitter();
13
+ route.params.subscribe(() => (this.canChange = true));
14
+ }
15
+ get model() {
16
+ return this._model;
17
+ }
18
+ set model(value) {
19
+ this._model = value;
20
+ if (this.canChange) {
21
+ this.isCreation = !this._model.id;
22
+ }
10
23
  }
11
24
  clickCreate() {
12
25
  if (this.form.enabled) {
@@ -19,12 +32,12 @@ export class NaturalFixedButtonDetailComponent {
19
32
  }
20
33
  }
21
34
  }
22
- NaturalFixedButtonDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- NaturalFixedButtonDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalFixedButtonDetailComponent, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"!model.id\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"model.id && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
35
+ NaturalFixedButtonDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
36
+ NaturalFixedButtonDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalFixedButtonDetailComponent, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"isCreation\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"!isCreation && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
24
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, decorators: [{
25
38
  type: Component,
26
- args: [{ selector: 'natural-fixed-button-detail', template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"!model.id\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"model.id && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n" }]
27
- }], propDecorators: { model: [{
39
+ args: [{ selector: 'natural-fixed-button-detail', template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"isCreation\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"!isCreation && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n" }]
40
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }]; }, propDecorators: { model: [{
28
41
  type: Input
29
42
  }], form: [{
30
43
  type: Input
@@ -33,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
33
46
  }], delete: [{
34
47
  type: Output
35
48
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXJFLE1BQU0sT0FBTyxpQ0FBaUM7SUFMOUM7UUFlOEIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FhL0Q7SUFYVSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDOzs4SEF2QlEsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsOEpDUjlDLDJtQkFvQkE7MkZEWmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNJLDZCQUE2Qjs4QkFLdkIsS0FBSztzQkFBcEIsS0FBSztnQkFPVSxJQUFJO3NCQUFuQixLQUFLO2dCQUVvQixNQUFNO3NCQUEvQixNQUFNO2dCQUNtQixNQUFNO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtZml4ZWQtYnV0dG9uLWRldGFpbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpeGVkQnV0dG9uRGV0YWlsQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZWwhOiB7XG4gICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICBwZXJtaXNzaW9ucz86IHtcbiAgICAgICAgICAgIGRlbGV0ZTogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgQElucHV0KCkgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBjbGlja0NyZWF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tEZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdHVyYWwtZml4ZWQtYnV0dG9uXG4gICAgKGNsaWNrKT1cImNsaWNrQ3JlYXRlKClcIlxuICAgICpuZ0lmPVwiIW1vZGVsLmlkXCJcbiAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiXG4gICAgW2NvbG9yXT1cImZvcm0udmFsaWQgPyAnYWNjZW50JyA6ICd3YXJuJ1wiXG4gICAgY2xhc3M9XCJkZXRhaWwtc3BlZWQtZGlhbFwiXG4gICAgaWNvbj1cInNhdmVcIlxuPjwvbmF0dXJhbC1maXhlZC1idXR0b24+XG5cbjxuYXR1cmFsLWZpeGVkLWJ1dHRvblxuICAgIChjbGljayk9XCJjbGlja0RlbGV0ZSgpXCJcbiAgICAqbmdJZj1cIm1vZGVsLmlkICYmICghbW9kZWwucGVybWlzc2lvbnMgfHwgbW9kZWwucGVybWlzc2lvbnMuZGVsZXRlKVwiXG4gICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIlxuICAgIGNsYXNzPVwiZGV0YWlsLXNwZWVkLWRpYWxcIlxuICAgIGNvbG9yPVwid2FyblwiXG4gICAgaWNvbj1cImRlbGV0ZV9mb3JldmVyXCJcbiAgICBpMThuLW1hdFRvb2x0aXBcbiAgICBtYXRUb29sdGlwPVwiU3VwcHJpbWVyIGTDqWZpbml0aXZlbWVudFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4+PC9uYXR1cmFsLWZpeGVkLWJ1dHRvbj5cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWdCckUsTUFBTSxPQUFPLGlDQUFpQztJQXVCMUMsWUFBbUIsS0FBcUI7UUF0QmhDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQWtCQSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd4RCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBckJELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDVyxLQUFLLENBQUMsS0FBWTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQWFNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7OzhIQXJDUSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw4SkNoQjlDLCttQkFvQkE7MkZESmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNJLDZCQUE2QjtxR0FhNUIsS0FBSztzQkFEZixLQUFLO2dCQVVVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRW9CLE1BQU07c0JBQS9CLE1BQU07Z0JBQ21CLE1BQU07c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIE1vZGVsID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBkZWxldGU6IGJvb2xlYW47XG4gICAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1maXhlZC1idXR0b24tZGV0YWlsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRml4ZWRCdXR0b25EZXRhaWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgY2FuQ2hhbmdlID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNDcmVhdGlvbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBtb2RlbCgpOiBNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IE1vZGVsKSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmNhbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5pc0NyZWF0aW9uID0gIXRoaXMuX21vZGVsLmlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWwhOiBNb2RlbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjcmVhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Iocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuY2FuQ2hhbmdlID0gdHJ1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0NyZWF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tEZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdHVyYWwtZml4ZWQtYnV0dG9uXG4gICAgKGNsaWNrKT1cImNsaWNrQ3JlYXRlKClcIlxuICAgICpuZ0lmPVwiaXNDcmVhdGlvblwiXG4gICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIlxuICAgIFtjb2xvcl09XCJmb3JtLnZhbGlkID8gJ2FjY2VudCcgOiAnd2FybidcIlxuICAgIGNsYXNzPVwiZGV0YWlsLXNwZWVkLWRpYWxcIlxuICAgIGljb249XCJzYXZlXCJcbj48L25hdHVyYWwtZml4ZWQtYnV0dG9uPlxuXG48bmF0dXJhbC1maXhlZC1idXR0b25cbiAgICAoY2xpY2spPVwiY2xpY2tEZWxldGUoKVwiXG4gICAgKm5nSWY9XCIhaXNDcmVhdGlvbiAmJiAoIW1vZGVsLnBlcm1pc3Npb25zIHx8IG1vZGVsLnBlcm1pc3Npb25zLmRlbGV0ZSlcIlxuICAgIFtkaXNhYmxlZF09XCJmb3JtLmRpc2FibGVkXCJcbiAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICBjb2xvcj1cIndhcm5cIlxuICAgIGljb249XCJkZWxldGVfZm9yZXZlclwiXG4gICAgaTE4bi1tYXRUb29sdGlwXG4gICAgbWF0VG9vbHRpcD1cIlN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuPjwvbmF0dXJhbC1maXhlZC1idXR0b24+XG4iXX0=
@@ -26,10 +26,10 @@ export class NaturalGroupComponent {
26
26
  }
27
27
  }
28
28
  NaturalGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- NaturalGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalGroupComponent, selector: "natural-group", inputs: { placeholder: "placeholder", facets: "facets", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "newValueInput", first: true, predicate: ["newValueInput"], descendants: true }], ngImport: i0, template: "<natural-input\n (cleared)=\"removeInput(i)\"\n (selectionChange)=\"updateInput($event, i)\"\n *ngFor=\"let selection of innerSelections; let i = index\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n></natural-input>\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n></natural-input>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:none;display:inline-flex;margin-right:10px}:host natural-input:last-of-type{flex:1;margin-right:0;min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.NaturalInputComponent, selector: "natural-input", inputs: ["placeholder", "searchFieldName", "selection", "facets"], outputs: ["selectionChange", "cleared"] }] });
29
+ NaturalGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalGroupComponent, selector: "natural-group", inputs: { placeholder: "placeholder", facets: "facets", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "newValueInput", first: true, predicate: ["newValueInput"], descendants: true }], ngImport: i0, template: "<natural-input\n (cleared)=\"removeInput(i)\"\n (selectionChange)=\"updateInput($event, i)\"\n *ngFor=\"let selection of innerSelections; let i = index\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n></natural-input>\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n></natural-input>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:auto;display:inline-flex;margin-right:10px;margin-bottom:10px}:host natural-input:last-of-type{flex:1;min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.NaturalInputComponent, selector: "natural-input", inputs: ["placeholder", "searchFieldName", "selection", "facets"], outputs: ["selectionChange", "cleared"] }] });
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalGroupComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'natural-group', template: "<natural-input\n (cleared)=\"removeInput(i)\"\n (selectionChange)=\"updateInput($event, i)\"\n *ngFor=\"let selection of innerSelections; let i = index\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n></natural-input>\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n></natural-input>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:none;display:inline-flex;margin-right:10px}:host natural-input:last-of-type{flex:1;margin-right:0;min-width:250px}\n"] }]
32
+ args: [{ selector: 'natural-group', template: "<natural-input\n (cleared)=\"removeInput(i)\"\n (selectionChange)=\"updateInput($event, i)\"\n *ngFor=\"let selection of innerSelections; let i = index\"\n [facets]=\"facets\"\n [selection]=\"selection\"\n></natural-input>\n\n<natural-input\n #newValueInput\n (selectionChange)=\"addInput($event)\"\n [facets]=\"facets\"\n [placeholder]=\"placeholder\"\n tabIndex=\"10\"\n cdkFocusInitial\n></natural-input>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap}:host natural-input{flex:auto;display:inline-flex;margin-right:10px;margin-bottom:10px}:host natural-input:last-of-type{flex:1;min-width:250px}\n"] }]
33
33
  }], propDecorators: { newValueInput: [{
34
34
  type: ViewChild,
35
35
  args: ['newValueInput']